On Monday, 2 December 2024 at 19:15:07 UTC, Ali Çehreli wrote:
On 12/2/24 9:03 AM, Basile B. wrote:
I've noticed that empty struct are always at least a size of
1, see [D explorer](https://godbolt.org/z/sGYcex4cf). There
you can see `%example.S = type { [1 x i8] }`
So te compiler inserts a du
On Tuesday, 3 December 2024 at 12:41:18 UTC, Basile B. wrote:
Not sure if that should compile
```d
int f()
{
while (true) {}
}
```
What I observe and think right now is:
1. if you remove the while statement, you get an error about
return statement missing
2. here the compiler detects that
I've noticed that empty struct are always at least a size of 1,
see [D explorer](https://godbolt.org/z/sGYcex4cf). There you can
see `%example.S = type { [1 x i8] }`
So te compiler inserts a dummy member so that that everything can
work as usual.
Big question is what is the problem if we spe
On Saturday, 10 August 2024 at 07:46:46 UTC, Vitaliy Fadeev wrote:
## Trouble 1
Pass the structure through registers ?
[...]
How to implement on D?
You dont need to pass whole event. The obvious design for this
kind of things is that you declare a local event that's an union
of all possibl
On Sunday, 30 June 2024 at 11:23:45 UTC, Nick Treleaven wrote:
On Saturday, 29 June 2024 at 23:33:41 UTC, solidstate1991 wrote:
S foo0 = S(TypeEnum.Integer32, S(20)); //Ugly, but works
S foo1 = S(TypeEnum.Integer64, S(20L)); //Error: cannot
Did you mean `U(20)`? The 20 applies to the first fi
On Saturday, 29 June 2024 at 23:33:41 UTC, solidstate1991 wrote:
[...]
My question is can I initialize structs like these in one line
without relying on a second line? My usecase scenario doesn't
really allow constructors for the struct, since it's a binding
to an external library via C API.
On Tuesday, 18 June 2024 at 23:07:47 UTC, Murilo wrote:
I've created a software which performs the Fermat's Primality
Test, however if I input a very big number it causes an error
saying "Illegal instruction (core dumped)". Does anyone know
why?
I've used GDB and here is the message:
Program
On Saturday, 8 June 2024 at 02:22:00 UTC, Xiaochao Yan wrote:
Hi, I am new to D and is experimenting with game development
using D and C.
I had some problem when trying to recreate the
https://dlang.org/spec/importc.html
[...]
Thanks in advance!
on a recent compiler this should work:
```d
On Wednesday, 5 June 2024 at 01:18:06 UTC, Paul Backus wrote:
On Tuesday, 4 June 2024 at 16:58:50 UTC, Basile B. wrote:
```d
void main(string[] args)
{
ushort a = 0b;
bool* b = cast(bool*)&a;
setIt(*b);
assert(a == 0b); // what actually happens
On Wednesday, 5 June 2024 at 01:18:06 UTC, Paul Backus wrote:
On Tuesday, 4 June 2024 at 16:58:50 UTC, Basile B. wrote:
you have violated the language's safety invariants.
ah mais non.
question in the header, code in the body, execute on a X86 or
X86_64 CPU
```d
module test;
void setIt(ref bool b) @safe
{
b = false;
}
void main(string[] args)
{
ushort a = 0b;
bool* b = cast(bool*)&a;
setIt(*b);
assert(a == 0b); // what actu
On Friday, 26 April 2024 at 13:25:34 UTC, Salih Dincer wrote:
You have a 5-item data tuples as Tuple(1, 2, 3, [1, 3], 5) and
implement the sum (total = 15) with the least codes using the
sum() function of the language you are coding...
Let's start with D:
Here's [STYX](https://gitlab.com/st
On Saturday, 30 March 2024 at 09:35:24 UTC, Per Nordlöw wrote:
Does anybody recognize the error
```
Attribute 'nocapture' does not apply to function return values
%12 = call noalias nocapture align 8 ptr @_D3xxx(ptr nonnull
%10, { i64, ptr } %11) #2, !dbg !7978
Attribute 'nocapture' does not
On Friday, 15 March 2024 at 00:00:01 UTC, Richard (Rikki) Andrew
Cattermole wrote:
On 15/03/2024 12:47 PM, Basile B. wrote:
On Thursday, 14 March 2024 at 23:39:33 UTC, Liam McGillivray
wrote:
On Thursday, 14 March 2024 at 01:58:46 UTC, Richard (Rikki)
Andrew Cattermole wrote:
[...]
I tried
On Thursday, 14 March 2024 at 23:39:33 UTC, Liam McGillivray
wrote:
On Thursday, 14 March 2024 at 01:58:46 UTC, Richard (Rikki)
Andrew Cattermole wrote:
[...]
I tried to rework the functions to use bitwise operations, but
it was difficult to figure out the correct logic. I decided
that it's
On Thursday, 14 March 2024 at 20:58:21 UTC, Andy Valencia wrote:
On Thursday, 14 March 2024 at 18:05:59 UTC, H. S. Teoh wrote:
...
The best way to do multi-type varags in D is to use templates:
import std;
void myFunc(Args...)(Args args) {
Thank you. The first parenthetical l
On Tuesday, 12 March 2024 at 05:38:03 UTC, Liam McGillivray wrote:
I am in need of a data type for holding direction information;
one of 8 directions on a single axis. They are named in terms
of compass directions. If D had a 4-bit datatype, I would just
use this and do `+=2` whenever I want to
On Thursday, 15 February 2024 at 03:17:11 UTC, Jonathan M Davis
wrote:
On Wednesday, February 14, 2024 7:17:15 PM MST Basile B. via
Digitalmars-d- learn wrote:
From what I remember, it was that there was no reference to
the
source. Things got blitted and you had to fix the copy, already
On Monday, 5 February 2024 at 14:26:45 UTC, Basile B. wrote:
On Tuesday, 30 January 2024 at 15:38:26 UTC, Paul Backus wrote:
[...]
This definitely isn't allowed in C or C++. I wonder what the
rationale is for having this behavior in D?
[1]: https://dlang.org/spec/expression.html
An hypothes
On Tuesday, 30 January 2024 at 15:38:26 UTC, Paul Backus wrote:
[...]
This definitely isn't allowed in C or C++. I wonder what the
rationale is for having this behavior in D?
[1]: https://dlang.org/spec/expression.html
An hypothesis is that this makes codegening the pre and the post
variant
On Thursday, 14 December 2023 at 03:58:37 UTC, Joel wrote:
If I get user input, for example, how do I check to see if it's
a valid path, like, file name.
```d
// something like this:
if (getUserInput.isValidPath) {
...
}
```
https://dlang.org/phobos/std_file.html#exists
On Wednesday, 13 December 2023 at 12:49:14 UTC, fred wrote:
[...]
a bug ?
thanks anyway
Try to define the flag as static
```d
static shared(bool) isDone = false;
```
I dont know if that should be a compiler error to have local
shared (I tend to think yes as locals are specific to a frame,
i
On Thursday, 23 November 2023 at 16:33:52 UTC, DLearner wrote:
Code below is intended to test simple mixin with lambda
function under -betterC.
Works with full-D, but fails with 'needs GC' errors under
-betterC.
Why is this so, bearing in mind the concatenations are executed
at
compile, not
On Saturday, 4 November 2023 at 13:51:20 UTC, Dadoum wrote:
On Saturday, 4 November 2023 at 13:45:56 UTC, Emmanuel Danso
Nyarko wrote:
[...]
There is a syntax disagreement here that's why the D compiler
is instantly stopping you from doing any symbol generated
interaction with string in C++ i
On Thursday, 2 November 2023 at 11:17:42 UTC, Salih Dincer wrote:
On Wednesday, 1 November 2023 at 20:04:52 UTC, Basile B. wrote:
Yes. D constructors are not named but the current
implementation adds a name that is `__ctor`, so add
```d
alias add = __ctor;
```
to you struct.
Yeah, it wor
On Tuesday, 31 October 2023 at 20:09:44 UTC, Salih Dincer wrote:
[...]
is it possible to do something like `alias add = this;`?
```d
struct Calculate
{
int memory;
string result;
auto toString() => result;
// alias add = this;
import std.string : format;
this(stri
On Thursday, 14 September 2023 at 15:19:29 UTC, BoQsc wrote:
https://dlang.org/phobos/core_vararg.html
The common way to use **va_arg** is `va_arg!(int)(_argptr);`
What would be the alternative way or syntax that behave exactly
the same way, even if more verbose?
`va_arg!(int)(_argptr)
On Thursday, 14 September 2023 at 03:23:48 UTC, An Pham wrote:
import std.stdio;
void main()
{
float f = 6394763.345f;
import std.format : sformat;
char[80] vBuffer = void;
writeln("6394763.345 = ", sformat(vBuffer[], "%.4f",
f));
On Friday, 8 September 2023 at 19:14:47 UTC, H. S. Teoh wrote:
[...]
My guess is that you have a double-free somewhere, or there's a
buffer overrun. Or maybe some bad interaction with the GC, e.g.
if you tried to free a pointer from the GC heap.
That cant be a GC problem as rempas project is
On Friday, 8 September 2023 at 18:59:21 UTC, rempas wrote:
On Friday, 8 September 2023 at 16:02:36 UTC, Basile B. wrote:
Could this be a problem of copy construction ?
I don't think so.
My idea was that if you dont have defined a copy constructor and
if an instance is assigned to another,
On Friday, 8 September 2023 at 07:59:37 UTC, rempas wrote:
I do have the following struct:
[...]
Is there any possible that there is a compiler bug? I do use
ldc2 and `betterC`!
Could this be a problem of copy construction ?
On Monday, 28 August 2023 at 10:20:14 UTC, Basile B. wrote:
On Monday, 28 August 2023 at 06:38:50 UTC, Vino wrote:
Hi All,
The the below code is not working, hence requesting your
help.
Code:
```
import std.stdio;
import std.process: environment;
void main () {
int* ext(string) = &envir
On Monday, 28 August 2023 at 06:38:50 UTC, Vino wrote:
Hi All,
The the below code is not working, hence requesting your help.
Code:
```
import std.stdio;
import std.process: environment;
void main () {
int* ext(string) = &environment.get("PATHEXT");
writeln(*ext);
}
```
Problems is th
On Tuesday, 15 August 2023 at 12:20:54 UTC, repr_man wrote:
On Tuesday, 15 August 2023 at 07:02:45 UTC, Basile B. wrote:
You can add a kind of tag with the mixin, that will allow to
to test if the type supplied to `f` is well a Base implementor:
Firstly, thank you for your help. This is probabl
On Tuesday, 15 August 2023 at 02:30:37 UTC, repr_man wrote:
Consider the following template mixin:
```d
mixin template Base()
{
int x(){ return 10; }
}
```
It could be used in a variety of structs as follows:
```d
struct Child
{
mixin Base!();
}
```
Now, let's suppose we write a function
On Friday, 7 July 2023 at 08:19:28 UTC, Chris Katko wrote:
For a specific system (Linux, e.g):
What is the level of interoperability between the different D
compilers; DMD, LDC, and GDC?
It appears each one has different benefits, and, different
experimental features. Link-time optimization
On Thursday, 15 June 2023 at 01:47:45 UTC, Paul wrote:
I found I can check for key membership in a multi-D aa...
```d
byte zKey = someval;
byte[byte][byte][byte] cubelist;
foreach(byte xK, yzcubelist; cubelist) {
foreach(byte yK, zcubelist; yzcubelist) {
foreach(byte zK, val; zcubelist) {
On Tuesday, 13 June 2023 at 16:46:26 UTC, DLearner wrote:
Only a small thing, but is it intended that:
```
void main() {
// static assert (false, "Static Assert triggered");
assert(false, "Assert triggered");
}
```
produces
```
core.exception.AssertError@staticassertex01.d(4): Assert
trigge
On Friday, 9 June 2023 at 15:07:54 UTC, Murloc wrote:
On Friday, 9 June 2023 at 12:56:20 UTC, Cecil Ward wrote:
On Friday, 9 June 2023 at 11:24:38 UTC, Murloc wrote:
If you have four ubyte variables in a struct and then
an array of them, then you are getting optimal memory usage.
Is this some
On Tuesday, 6 June 2023 at 14:23:59 UTC, Steven Schveighoffer
wrote:
On 6/5/23 11:33 AM, Basile B. wrote:
[...]
Ugh, don't do it that way. Always give opDispatch a template
constraint or it will suck to use.
Also, given the problem constraints, you can build the method
automatically using
On Monday, 5 June 2023 at 15:28:34 UTC, Paul Backus wrote:
Is there a reason you can't just make these fields `public`?
My bet is that OP actually wants to generate something like
```d
void setStrokeWidth(uint value)
{
if (value = strokeWidth) return;
strokeWidth = value;
redraw();
On Monday, 5 June 2023 at 15:28:34 UTC, Paul Backus wrote:
Is there a reason you can't just make these fields `public`?
My bet is that OP actually wants to generate something like
```d
void setStrokeWidth(uint value)
{
if (value = strokeWidth) return;
strokeWidth = value;
redraw();
On Monday, 5 June 2023 at 15:13:43 UTC, Basile B. wrote:
On Monday, 5 June 2023 at 13:57:20 UTC, Ki Rill wrote:
How do I generate `setX` methods for all private mutable
although I did not spent time on the setter body... I suppose
the question was more about the metprogramming technic, and
t
On Monday, 5 June 2023 at 13:57:20 UTC, Ki Rill wrote:
How do I generate `setX` methods for all private mutable
variables in my class? Do I need to use `__traits`?
I need this for my
[tiny-svg](https://github.com/rillki/tiny-svg) project to
generate `setX` methods for all Shapes.
Example:
`
On Saturday, 27 May 2023 at 13:23:38 UTC, vushu wrote:
[...]
Is there something equivalent in dlang, doesn't seem like d
support specialized overload?
D solution is called [template
constraints](https://dlang.org/spec/template.html#template_constraints).
On Friday, 26 May 2023 at 09:07:07 UTC, Alex Biscotti wrote:
Hello everyone! While researching the phobos library, I
discovered that a class can have multiple destructors if the
destructors are added via mixin injection. Accordingly, the
question is whether a description of such feature should
On Wednesday, 26 April 2023 at 18:24:08 UTC, DLearner wrote:
Consider:
```
struct S1 {
int A;
int B;
int foo() {
return(A+B);
}
}
struct S2 {
int A;
int B;
}
int fnAddS2(S2 X) {
return (X.A + X.B);
}
void main() {
import std.stdio : writeln;
S1 Var1 = S1(1, 2);
On Sunday, 19 March 2023 at 13:49:36 UTC, bomat wrote:
Thanks for the suggested workaround, I can live with the
`static` solution, I guess.
I still don't understand why it's necessary, though.
Since a `struct` is a value type and, as I understand it, stack
allocated, what difference does it ma
On Sunday, 19 March 2023 at 07:20:17 UTC, Jeremy wrote:
Hello, is there any difference at all between the following
lines, as an example:
```d
import std.regex;
import std.regex : matchFirst;
```
What technical differences does it make (except for having the
identifier available), using the c
On Sunday, 12 March 2023 at 15:09:45 UTC, Salih Dincer wrote:
Hi,
[...]
// A, we can get its to guarantee us that parameters
// won't change:
auto inConst(T)(T a, const T b) // const
{ // it's not needed --^ but ^-- why can't this be used
Well you got the great answers to your questio
On Saturday, 4 March 2023 at 19:19:26 UTC, Chris Piker wrote:
On Monday, 27 February 2023 at 12:09:50 UTC, Basile B. wrote:
At least this is what is done for the Dexed GDB widget, so
that gdb breaks automatically when an Error or an Exception is
new'd
(https://gitlab.com/basile.b/dexed/-/blob/
On Saturday, 25 February 2023 at 15:55:33 UTC, solidstate1991
wrote:
I had a lot of trouble trying to get Visual Studio to catch
handled exceptions, which would have been mandatory for
debugging unittests, but I either forgot how to do it, or
something have changed in either the newer versions
On Friday, 20 January 2023 at 03:11:33 UTC, Ruby The Roobster
wrote:
Take this example:
[...]
What is the purpose of this 'Result' type? To serve as a
generic range?
Yes this is a lazy input range. Use `.array` to yield directly as
a concrete value,
then you can append using `~=`.
Note tha
On Wednesday, 30 November 2022 at 03:19:49 UTC, Basile B. wrote:
[...]
It's always a wraparound (think modulo) but your examples with
negative number can be explained because there are hidden
unsigned to signed implicit convertions.
That the only special things D does.
forgot to say, you can
On Wednesday, 30 November 2022 at 03:07:44 UTC, thebluepandabear
wrote:
I am reading through Ali's book about D, and he gives the
following examples for an overflow:
```D
import std.stdio;
void main() {
// 3 billion each
uint number_1 = 30;
uint number_2 = 30;
}
writeln("maximum
On Tuesday, 29 November 2022 at 18:59:46 UTC, DLearner wrote:
To me, it appears that there are really two (_entirely
separate_) concepts:
A. Supporting the useful concept of variable length (but
otherwise entirely conventional) arrays;
B. Supporting a language feature that acts as a window to
On Friday, 13 May 2022 at 16:11:14 UTC, BoQsc wrote:
Haven't used debuggers or debugged a lot just yet, but I've had
this question in my mind and I'd like to inspect some debugging
information manually. Are there some kind of documentation or
specification and are there a lot of information tha
On Thursday, 12 May 2022 at 15:31:03 UTC, Steven Schveighoffer
wrote:
On 5/12/22 11:18 AM, jmh530 wrote:
On Thursday, 12 May 2022 at 12:13:32 UTC, Basile B. wrote:
[snip]
```
is ( Type : TypeSpecialization , TemplateParameterList )
is ( Type == TypeSpecialization , TemplateParameterList )
is (
On Thursday, 12 May 2022 at 14:06:13 UTC, Arjan wrote:
On Thursday, 12 May 2022 at 11:05:08 UTC, Basile B. wrote:
On Wednesday, 11 May 2022 at 05:41:35 UTC, Ali Çehreli wrote:
- Operator overloading in certain cases was confusing, I
remember that for one particular form once I had to use your
On Thursday, 12 May 2022 at 12:13:32 UTC, Basile B. wrote:
On Thursday, 12 May 2022 at 11:50:59 UTC, Alain De Vos wrote:
Some keywords are overloaded and have different meaning when
used in a different place.
Also some syntactic-sugar is way to much meaning too many
different ways to do the sam
On Thursday, 12 May 2022 at 11:50:59 UTC, Alain De Vos wrote:
Some keywords are overloaded and have different meaning when
used in a different place.
Also some syntactic-sugar is way to much meaning too many
different ways to do the same thing. I would prefer one way
which is advised.
`ptr1 i
On Wednesday, 11 May 2022 at 05:41:35 UTC, Ali Çehreli wrote:
What are you stuck at? What was the most difficult features to
understand? etc.
To make it more meaningful, what is your experience with other
languages?
Ali
Overhall I think that D was not hard to learn because well
designed (
On Tuesday, 10 May 2022 at 16:10:26 UTC, Ben Jones wrote:
On Tuesday, 10 May 2022 at 16:05:15 UTC, H. S. Teoh wrote:
Using wrapper structs, etc., for this is IMO total overkill.
Just use an enum for your token types. Something like this
would suffice:
That's basically what sumtype is going t
On Monday, 14 March 2022 at 09:40:00 UTC, zhad3 wrote:
Hey everyone, I am in need of some help. I have written this
Windows CP949 encoding table
https://github.com/zhad3/zencoding/blob/main/windows949/source/zencoding/windows949/table.d which is used to convert CP949 to UTF-16.
After some rese
On Saturday, 12 March 2022 at 18:49:32 UTC, Anonymouse wrote:
I'm introspecting structs, and I ran into an issue where
`__traits(derivedMembers)` includes manifest constant enums in
the returned tuple.
What is the correct way to statically detect these? The
immediate thing that springs to mi
On Sunday, 27 February 2022 at 16:14:31 UTC, Matheus wrote:
Hi,
[...]
After one minute I think I get:
rdmd playground.d
Server error:
Thanks,
Matheus.
This was [reported before]. Apparently this would be caused by a
timeout.
[reported before]:
https://forum.dlang.org/post/skc2dd$1o52$
On Sunday, 27 February 2022 at 16:58:34 UTC, Chris Piker wrote:
Hi D
Coming from a python background it's worked well to organize my
D projects as a dub `sourceLibrary` and then to put top level
programs in a directory named `scripts` that are just dub
single file projects. So the layout loo
On Monday, 21 February 2022 at 11:12:38 UTC, partypooper wrote:
On Monday, 21 February 2022 at 11:07:55 UTC, Basile B. wrote:
Yeah there must be another one then. Something actionnable is
the documentation.
What about Mike Parker answer?
if nothrow fails that's because things are checked. We
On Monday, 21 February 2022 at 11:05:42 UTC, partypooper wrote:
On Monday, 21 February 2022 at 10:58:26 UTC, Basile B. wrote:
more likely UTFException actually
Additionaly catching UTF and Conv exceptions doesn't help.
Yeah there must be another one then. Something actionnable is the
docume
On Monday, 21 February 2022 at 10:49:13 UTC, partypooper wrote:
Do I completely not understand what is `nothrow` or why I can't
make function nothrow with just catching StdioException?
This doesn't work
```d
nothrow void hello() {
try {
writeln("Hello, World!")
} catch (StdioException)
On Monday, 21 February 2022 at 10:53:56 UTC, Basile B. wrote:
On Monday, 21 February 2022 at 10:49:13 UTC, partypooper wrote:
Do I completely not understand what is `nothrow` or why I
can't make function nothrow with just catching StdioException?
This doesn't work
```d
nothrow void hello() {
On Monday, 21 February 2022 at 10:53:56 UTC, Basile B. wrote:
On Monday, 21 February 2022 at 10:49:13 UTC, partypooper wrote:
Do I completely not understand what is `nothrow` or why I
can't make function nothrow with just catching StdioException?
This doesn't work
```d
nothrow void hello() {
On Monday, 21 February 2022 at 10:49:13 UTC, partypooper wrote:
Do I completely not understand what is `nothrow` or why I can't
make function nothrow with just catching StdioException?
This doesn't work
```d
nothrow void hello() {
try {
writeln("Hello, World!")
} catch (StdioException)
On Sunday, 20 February 2022 at 11:08:55 UTC, partypooper wrote:
Hello, I'm new to D.
Title is self described, is it possible to use keyword as
struct field?
Maybe it is XYproblem, so here I will describe a little what I
need.
I'm parsing some json currently with
[mir-ion](https://code.dlang
On Saturday, 12 February 2022 at 12:36:06 UTC, BoQsc wrote:
`bool nextArgumentDoesNotReachEndOfArray = i + 1 < args.length;`
How can I declare it out of scope and reuse it in any scope
that has `i` and `args.length` declared?
Here is an ugly solution, just to encourage someone else to post
b
On Saturday, 12 February 2022 at 16:50:16 UTC, H. S. Teoh wrote:
Without alias this it would be harder to pull off, yes.
I don't see any other way that allows to unbox *implictly*.
That would require a new operator. Something like opCast but more
permissive, that works without `cast`.
On Thursday, 3 February 2022 at 01:51:34 UTC, Basile B. wrote:
On Thursday, 3 February 2022 at 01:39:33 UTC, forkit wrote:
On Wednesday, 2 February 2022 at 23:30:50 UTC, H. S. Teoh
wrote:
[...]
that explains ldc perhaps (although i don't really get it.
It's cast to mutable and being assigned
On Thursday, 3 February 2022 at 01:39:33 UTC, forkit wrote:
On Wednesday, 2 February 2022 at 23:30:50 UTC, H. S. Teoh wrote:
[...]
that explains ldc perhaps (although i don't really get it. It's
cast to mutable and being assigned to mutable.
in any case... ldc doesn't like it, but dmd is fi
On Friday, 12 November 2021 at 00:46:05 UTC, Elronnd wrote:
On Thursday, 11 November 2021 at 13:22:15 UTC, Basile B. wrote:
As for now, I know no compiler that can do that.
GCC can do it. Somewhat notoriously,
you meant "infamously" ?
LTO can lead to bugs from underspecified asm constraint
On Thursday, 11 November 2021 at 08:58:43 UTC, rempas wrote:
I've seen from
[this](https://forum.dlang.org/post/op.vrzngqeavxi10f@biotronic-laptop) reply in a thread from 2011 that DMD will not inline functions that contain inline assembly. Is this still the case?
Yes, this is still the case. A
On Sunday, 24 October 2021 at 14:38:44 UTC, jfondren wrote:
[...]
With nothing to the contrary, I'd take "must be terminated by a
null pointer" as "can't itself be a null pointer".
ah yeah, and thanks, of course ... how would the count of arg be
known without the sentinel...
On Sunday, 24 October 2021 at 14:21:52 UTC, Basile B. wrote:
The following code, on linux
[...]
What do you think ?
Forgot to say that this change
```diff
- execv("a", null);
+ execv("a", ["whatever".ptr].ptr);
```
makes the problem goes away, so it would be caused by how `null`
args are han
The following code, on linux
```d
module runnable;
extern(C) int execv(const char* p, const char** args);
immutable src = `
import std.getopt;
void main(string[] args)
{
bool c;
getopt(args, "c", &c);
}
`;
void prepareProgram()
{
import std.process : exe
On Friday, 15 October 2021 at 20:33:33 UTC, JN wrote:
Is there some nice way of achieving something like this C99
code in D?
[...]
The
[literal](https://www.ibm.com/docs/sr/xl-c-and-cpp-aix/13.1.0?topic=operators-compound-literal-expressions) in the C version creates an alloca too but it's h
On Sunday, 3 October 2021 at 22:21:45 UTC, Tim wrote:
Hi all,
I am currently using GDB within VScode with the -gc DMD2
compiler switch and my debugging is not amazing. Whenever I
inspect a struct/object it just shows me the pointer rather
than the object information and strings come up as a g
On Saturday, 2 October 2021 at 08:48:24 UTC, Stephen wrote:
Is this by design?
No but it's easily explainable.
## without mixins
```d
struct Ar { Br b; ubyte a; }
struct Br { ubyte b; }
```
`Ar` semantic starts, members are analyzed, that begins with the
variable declaration `Br b`. `Br` ty
On Thursday, 30 September 2021 at 02:02:19 UTC, Hipreme wrote:
On Thursday, 30 September 2021 at 01:56:42 UTC, Basile B. wrote:
On Thursday, 30 September 2021 at 01:09:47 UTC, Hipreme wrote:
I have a template function that all it does is given a
symbol, it loads a dll for its type + its name:
On Thursday, 30 September 2021 at 01:09:47 UTC, Hipreme wrote:
I have a template function that all it does is given a symbol,
it loads a dll for its type + its name:
```
void loadSymbol(alias s, string symName = "")()
{
static if(symName == "")
s = cast(typeof(s))_loadSy
On Monday, 13 September 2021 at 14:42:42 UTC, jfondren wrote:
On Monday, 13 September 2021 at 14:33:03 UTC, user1234 wrote:
- condition al expression ` cond ? exp : exp `
And many other boolean operators, unary !, binary && and ||
https://dlang.org/spec/operatoroverloading.html lists all the
On Friday, 10 September 2021 at 09:27:49 UTC, eugene wrote:
Here is test program (which is using DList aggressively)
[...]
Can this (really unwanted) behavior be disabled in DMD?
I do not want to have multiple threads,
a program (real program, not the test above) has to be
single-threaded.
sys
On Saturday, 4 September 2021 at 19:43:27 UTC, Per Nordlöw wrote:
Is there a reason for the absence of an `isAllocator` trait
under `std.experimental.allocator`?
I had ask a similar Q once and I've been told that (more or less):
It's because the clients of an allocator should rather statically
On Thursday, 22 July 2021 at 05:57:02 UTC, jfondren wrote:
On Thursday, 22 July 2021 at 03:43:44 UTC, someone wrote:
... it compiles no-more: Error: found `End of File` when
expecting `}` following compound statement
... what I am doing wrong ?
You'll get the same error from this code:
```d
On Monday, 19 July 2021 at 10:21:58 UTC, kinke wrote:
On Sunday, 18 July 2021 at 16:32:46 UTC, Basile B. wrote:
- **=x** says "returns in whatever is has to"
- **x** (1) is the constraint for input `a`, which is passed
as operand **$0**
- **x** (2) is the constraint for input `b`, which is pass
On Sunday, 18 July 2021 at 17:45:05 UTC, Guillaume Piolat wrote:
On Sunday, 18 July 2021 at 16:32:46 UTC, Basile B. wrote:
[...]
Thanks.
Indeed that seems to work even when inline and optimized.
Registers are spilled to stack.
A minor concern is what happens when the enclosing function is
e
On Sunday, 18 July 2021 at 18:47:50 UTC, Basile B. wrote:
On Sunday, 18 July 2021 at 17:45:05 UTC, Guillaume Piolat wrote:
On Sunday, 18 July 2021 at 16:32:46 UTC, Basile B. wrote:
[...]
Thanks.
Indeed that seems to work even when inline and optimized.
Registers are spilled to stack.
A mino
On Sunday, 18 July 2021 at 11:42:24 UTC, Guillaume Piolat wrote:
Is anyone versed in LLVM inline asm?
I know how to generate SIMD unary op with:
return __asm!int4("pmovsxwd $1,$0","=x,x",a);
but I struggle to generate 2-operands SIMD ops like:
return __asm!int4("paddd $1,$0","=x,x",a,
On Tuesday, 8 June 2021 at 17:10:47 UTC, seany wrote:
Hello
How can I increase the speed of executable files created via :
`dub build -b release`
try `dub build -b release --compiler=ldc2`
Then you can set some specific DFlags for ldc, like -O3 or --mcpu
I am unable to parallellise all of
On Thursday, 27 May 2021 at 08:47:50 UTC, Tariq Siddiqui wrote:
When using Compiler Explorer (https://godbolt.org/) to compare
assembly output of simple programs, why D language assembly
output is so long compared to C or C++ output. The simple
square function output is the same for C, C++, and
On Wednesday, 12 May 2021 at 19:35:31 UTC, Jack wrote:
I'd to change the visibility of a method overrided from public
to private but it doesn't work tho to protected it does. Why is
that?
...
Why is that? why must I leave it accessible somehow (even if
it's protected) to all derived class of m
On Monday, 10 May 2021 at 01:25:10 UTC, Alain De Vos wrote:
This does not:
```
import std.stdio;
void main()
{
int afunction(int x){return x;};
it's not static so -> context -> delegate
alias myint = int;
myint i=5;
1 - 100 of 729 matches
Mail list logo