Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread Adam D. Ruppe via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 14:36:16 UTC, Adam D. Ruppe wrote: (btw as for me fixing it myself oh edit, I should point out it also requires some degree of language change to match what Microsoft's C++ does. They do dllimport and dllexport annotations to help the compiler generate the

Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread Adam D. Ruppe via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 13:39:32 UTC, SealabJaster wrote: The biggest one for me, is that RTTI isn't "shared" across boundaries. Yeah, that's a big one. Exception handling tables are also not properly merged leading to random behavior even if you do manage to catch the exception (I

Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread SealabJaster via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 13:39:32 UTC, SealabJaster wrote: I've crossed them out of my mind entirely at this point though, since Windows in general doesn't seem to get much love in certain parts of D (e.g. the makefile for Phobos didn't support things that the posix makefile did).

Re: How do I get the output of the time bash command?

2021-01-27 Thread bachmeier via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 09:58:25 UTC, Marcone wrote: On Wednesday, 27 January 2021 at 09:35:21 UTC, Anthony wrote: I'm trying to read the timed output of a pipeShell command but it only results in empty output. Does anyone know why this is? ``` auto p = pipeShell("time ls");

Re: 200-600x slower Dlang performance with nested foreach loop

2021-01-27 Thread FeepingCreature via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 02:14:39 UTC, H. S. Teoh wrote: Yes, definitely try this. This will completely eliminate the overhead of using an AA, which has to allocate memory (at least) once per entry added. Especially since the data has to be sorted eventually anyway, you might as well

Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread SealabJaster via Digitalmars-d-learn
On Tuesday, 26 January 2021 at 17:39:50 UTC, H. S. Teoh wrote: On Tue, Jan 26, 2021 at 02:12:17PM +, Adam D. Ruppe via Digitalmars-d-learn wrote: On Monday, 25 January 2021 at 21:48:10 UTC, Vitalii wrote: > Q: Why filling assoc.array in shared library freeze > execution? D exes loading D

Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread H. S. Teoh via Digitalmars-d-learn
On Wed, Jan 27, 2021 at 02:39:08PM +, Adam D. Ruppe via Digitalmars-d-learn wrote: > On Wednesday, 27 January 2021 at 14:36:16 UTC, Adam D. Ruppe wrote: > > (btw as for me fixing it myself > > oh edit, I should point out it also requires some degree of language > change to match what

Re: 200-600x slower Dlang performance with nested foreach loop

2021-01-27 Thread Paul Backus via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 15:12:32 UTC, Paul Backus wrote: Maybe it's to avoid invalidating the result of `key in aa` when adding or removing entries? The spec doesn't say anything about it either way [1], but allowing invalidation would make AAs much more difficult to use in @safe

Re: 200-600x slower Dlang performance with nested foreach loop

2021-01-27 Thread Paul Backus via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 14:15:26 UTC, FeepingCreature wrote: Associative arrays allocate per entry added?! https://github.com/dlang/druntime/blob/master/src/rt/aaA.d#L205 Oh God, associative arrays allocate per entry added! Maybe it's to avoid invalidating the result of `key in aa`

Re: F*cked by memory corruption after assiging value to associative array

2021-01-27 Thread frame via Digitalmars-d-learn
On Tuesday, 26 January 2021 at 14:31:58 UTC, frame wrote: but why does not see DLL 1 then that sub objects of B are still alive? I may fool myself but could it be caused by an already gone slice data? It very looks like that only a specific string property is corrupted which got the same

Re: F*cked by memory corruption after assiging value to associative array

2021-01-27 Thread frame via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 17:41:05 UTC, Ali Çehreli wrote: On 1/26/21 6:31 AM, frame wrote: > all GCs Multiple D runtimes? That might work I guess but I've never heard of anybody talking about having multiple runtimes. Does rt_init() initialize *a* D runtime or *the* D runtime? If it

How to dinamically create Tuples?

2021-01-27 Thread Leonardo via Digitalmars-d-learn
Hi, I want to know if are some way to dinamically create Tuples, with variable size and types defined at runtime. Thanks.

Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread Adam D. Ruppe via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 15:25:17 UTC, H. S. Teoh wrote: I'm surprised this stuff hasn't been fixed yet, considering Walter (mostly?) works on Windows. Has he never run into these issues before? It had a dconf talk spell it all out. But it can be difficult to reproduce the nasty

Re: How to dinamically create Tuples?

2021-01-27 Thread Paul Backus via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 17:11:52 UTC, Leonardo wrote: Hi, I want to know if are some way to dinamically create Tuples, with variable size and types defined at runtime. Thanks. No. D is a statically-typed language, so all types have to be defined at compile time.

Re: F*cked by memory corruption after assiging value to associative array

2021-01-27 Thread Ali Çehreli via Digitalmars-d-learn
On 1/26/21 6:31 AM, frame wrote: > all GCs Multiple D runtimes? That might work I guess but I've never heard of anybody talking about having multiple runtimes. Does rt_init() initialize *a* D runtime or *the* D runtime? If it indeed works we definitely need much better documentation. I

Re: How to dinamically create Tuples?

2021-01-27 Thread H. S. Teoh via Digitalmars-d-learn
On Wed, Jan 27, 2021 at 05:17:18PM +, Paul Backus via Digitalmars-d-learn wrote: > On Wednesday, 27 January 2021 at 17:11:52 UTC, Leonardo wrote: > > Hi, I want to know if are some way to dinamically create Tuples, > > with variable size and types defined at runtime. Thanks. > > No. D is a

Re: Compile time check for GC?

2021-01-27 Thread Kagamin via Digitalmars-d-learn
You can define a symbol that will conflict with GC and prevent linking with it.

Re: Conversion error.

2021-01-27 Thread Ruby The Roobster via Digitalmars-d-learn
On Thursday, 28 January 2021 at 01:01:36 UTC, Ruby The Roobster wrote: I don't know any explanation for the following error: std.conv.ConvException@D:\Programs\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(2437): Unexpected '\n' when converting from type LockingTextReader to type int In

Conversion error.

2021-01-27 Thread Ruby The Roobster via Digitalmars-d-learn
I don't know any explanation for the following error: std.conv.ConvException@D:\Programs\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(2437): Unexpected '\n' when converting from type LockingTextReader to type int Here is my code for reference: module main; import std.stdio; import

Re: Initializing D runtime and executing module and TLS ctors for D libraries

2021-01-27 Thread rikki cattermole via Digitalmars-d-learn
On 28/01/2021 1:16 PM, tsbockman wrote: The documentation build on dlang.org is broken. Check the source code or Adam D. Ruppe's dpldocs.info for the complete documentation: http://dpldocs.info/experimental-docs/core.thread.osthread.html Fixed: https://issues.dlang.org/show_bug.cgi?id=21309

Assigning to class struct member leading to unexpected behavior.

2021-01-27 Thread Paul via Digitalmars-d-learn
I'm experiencing a compile error, but for the life of me, I cannot figure out what is wrong. I'll try to keep it short but the code is roughly as follows: class Window{ Screen screen; alias screen this; this() { Screen s = {bottom_f: {[0, 1]}}; this.screen = s; //

Re: Conversion error.

2021-01-27 Thread Ruby The Roobster via Digitalmars-d-learn
On Thursday, 28 January 2021 at 01:09:52 UTC, Adam D. Ruppe wrote: On Thursday, 28 January 2021 at 01:01:36 UTC, Ruby The Roobster wrote: readf("%d",x); This is why I hate readf, it is sensitive to litte things. If you put a space in that string I think it will fix it. What happens here

Re: Assigning to class struct member leading to unexpected behavior.

2021-01-27 Thread Paul Backus via Digitalmars-d-learn
On Thursday, 28 January 2021 at 01:43:13 UTC, Paul wrote: I'm experiencing a compile error, but for the life of me, I cannot figure out what is wrong. I'll try to keep it short but the code is roughly as follows: class Window{ Screen screen; alias screen this; this() {

Re: Conversion error.

2021-01-27 Thread Adam D. Ruppe via Digitalmars-d-learn
On Thursday, 28 January 2021 at 01:01:36 UTC, Ruby The Roobster wrote: readf("%d",x); This is why I hate readf, it is sensitive to litte things. If you put a space in that string I think it will fix it. What happens here is it reads the float, then leaves the buffer at the \n from when

Re: Assigning to class struct member leading to unexpected behavior.

2021-01-27 Thread Paul via Digitalmars-d-learn
On Thursday, 28 January 2021 at 02:03:40 UTC, Paul Backus wrote: The braced-initializer syntax only works in declarations, not assignments. Oh, I see, I'm guessing that explains the (sadly unfinished) In-place struct initialization DIP of wilzbach. (https://github.com/dlang/DIPs/pull/71)

Re: How do I get the output of the time bash command?

2021-01-27 Thread Anthony via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 09:58:18 UTC, Arafel wrote: On 27/1/21 10:35, Anthony wrote: I'm trying to read the timed output of a pipeShell command but it only results in empty output. Does anyone know why this is? ```     auto p = pipeShell("time ls");     foreach(str;

Re: F*cked by memory corruption after assiging value to associative array

2021-01-27 Thread tsbockman via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 18:09:39 UTC, frame wrote: I have no idea if there are multiple runtimes. I just use the mixin SimpleDllMain. But there must be multiple instances of GCs running because Another thread is running right now which I think is touching upon these same issues.

Re: Compile time check for GC?

2021-01-27 Thread Ola Fosheim Grøstad via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 20:21:02 UTC, Kagamin wrote: You can define a symbol that will conflict with GC and prevent linking with it. That was an interesting thought! Maybe that could be a first step. It didn't occur to me that I could sabotage the usage of GC. :-D

Re: Initializing D runtime and executing module and TLS ctors for D libraries

2021-01-27 Thread tsbockman via Digitalmars-d-learn
On Sunday, 24 January 2021 at 03:59:26 UTC, Ali Çehreli wrote: I am surprised how much I had learned at that time and how much I've already forgotten. :/ For example, my PR involves thread_setThis, which seems to be history now:

Re: 200-600x slower Dlang performance with nested foreach loop

2021-01-27 Thread Steven Schveighoffer via Digitalmars-d-learn
On 1/27/21 10:14 AM, Paul Backus wrote: On Wednesday, 27 January 2021 at 15:12:32 UTC, Paul Backus wrote: Maybe it's to avoid invalidating the result of `key in aa` when adding or removing entries? The spec doesn't say anything about it either way [1], but allowing invalidation would make

Re: F*cked by memory corruption after assiging value to associative array

2021-01-27 Thread tsbockman via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 18:09:39 UTC, frame wrote: there must be multiple instances of GCs running because Sharing data between multiple threads that each use a different instance of the D GC will definitely not work right, because each GC will only know to pause the threads and

Re: Why filling AA in shared library freezes execution?

2021-01-27 Thread SealabJaster via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 16:38:07 UTC, Adam D. Ruppe wrote: ... Yikes! Ok, I thought DLLs were just "sort of" unusable due to the RTTI issue, but now I'm convinced that they're almost completely useless in their current state unless you want to live in a world of hurt and pain.

Re: F*cked by memory corruption after assiging value to associative array

2021-01-27 Thread frame via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 22:57:11 UTC, tsbockman wrote: There is supposed to only be one instance of the D GC running per process. If you have more than one running then either you aren't linking and loading the DLLs correctly, or you have run into a serious bug in the D tooling.

Re: Initializing D runtime and executing module and TLS ctors for D libraries

2021-01-27 Thread tsbockman via Digitalmars-d-learn
On Thursday, 28 January 2021 at 00:58:17 UTC, rikki cattermole wrote: On 28/01/2021 1:16 PM, tsbockman wrote: The documentation build on dlang.org is broken. Check the source code or Adam D. Ruppe's dpldocs.info for the complete documentation:

How do I get the output of the time bash command?

2021-01-27 Thread Anthony via Digitalmars-d-learn
I'm trying to read the timed output of a pipeShell command but it only results in empty output. Does anyone know why this is? ``` auto p = pipeShell("time ls"); foreach(str; p.stdout.byLine) { writefln("%s",str); } ```

Re: How do I get the output of the time bash command?

2021-01-27 Thread Marcone via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 09:35:21 UTC, Anthony wrote: I'm trying to read the timed output of a pipeShell command but it only results in empty output. Does anyone know why this is? ``` auto p = pipeShell("time ls"); foreach(str; p.stdout.byLine) {

Re: How do I get the output of the time bash command?

2021-01-27 Thread Arafel via Digitalmars-d-learn
On 27/1/21 10:35, Anthony wrote: I'm trying to read the timed output of a pipeShell command but it only results in empty output. Does anyone know why this is? ```     auto p = pipeShell("time ls");     foreach(str; p.stdout.byLine) {     writefln("%s",str);     } ``` I'm not

Re: How do I get the output of the time bash command?

2021-01-27 Thread Ferhat Kurtulmuş via Digitalmars-d-learn
On Wednesday, 27 January 2021 at 09:35:21 UTC, Anthony wrote: I'm trying to read the timed output of a pipeShell command but it only results in empty output. Does anyone know why this is? ``` auto p = pipeShell("time ls"); foreach(str; p.stdout.byLine) {