Re: Building a wasm library, need to override .object._d_newitemT!T

2023-12-24 Thread Etienne via Digitalmars-d-learn
On Sunday, 24 December 2023 at 10:50:41 UTC, Johan wrote: _d_newitemT!T is fairly new, what compiler version are you using? -Johan Nevermind, I managed to get it working but I had to compile without including druntime and phobos and move everything into the library. I'm using ldc 1.36.0-bet

Re: Lazy and GC Allocations

2023-02-20 Thread Etienne via Digitalmars-d-learn
On Monday, 20 February 2023 at 19:58:32 UTC, Steven Schveighoffer wrote: On 2/20/23 1:50 PM, Etienne wrote: On Monday, 20 February 2023 at 02:50:20 UTC, Steven Schveighoffer wrote: See Adam's bug report: https://issues.dlang.org/show_bug.cgi?id=23627 So, according to this bug report, the im

Re: Lazy and GC Allocations

2023-02-20 Thread Etienne via Digitalmars-d-learn
On Monday, 20 February 2023 at 02:50:20 UTC, Steven Schveighoffer wrote: See Adam's bug report: https://issues.dlang.org/show_bug.cgi?id=23627 -Steve So, according to this bug report, the implementation is allocating a closure on the GC even though the spec says it shouldn't? I've been wr

Lazy and GC Allocations

2023-02-19 Thread Etienne via Digitalmars-d-learn
Hello, I'm wondering at which moment the following would make an allocation of the scope variables on the GC. Should I assume that the second parameter of enforce being lazy, we would get a delegate/literal that saves the current scope on the GC even if it's not needed? I'm asking purely for

mscoff x86 invalid pointers

2015-05-08 Thread Etienne via Digitalmars-d-learn
I'm trying to compile a library that I think used to work with -m32mscoff flag before I reset my machine configurations. https://github.com/etcimon/memutils Whenever I run `dub test --config=32mscoff` it gives me an assertion failure, which is a global variable that already has a pointer valu

Re: build vibe-d-0.7.23 error on win7 x86?

2015-04-20 Thread Etienne via Digitalmars-d-learn
On Monday, 20 April 2015 at 07:58:40 UTC, mzf wrote: win 7 x86,3GB ram: 1. dmd 2.066 vibe-d-0.7.23, it's ok. 2. dmd 2.067 vibe-d-0.7.23, show error msg "out of memory" why? http://forum.dlang.org/thread/mghqlf$10l2$1...@digitalmars.com#post-ybrtcxrcmrrsoaaksdbj:40forum.dlang.org

Internal symbols?

2015-04-18 Thread Etienne via Digitalmars-d-learn
Is there a way to prevent DMD from exporting a symbol? Basically, I would need an attribute like extern(none) because my library makes heavy use of CTFE and the linker takes 13 seconds, while OMF is also off the table for me and this is creating tons of problems... Thanks in advance!

Re: DMD 64 bit on Windows

2015-04-14 Thread Etienne via Digitalmars-d-learn
On 4/14/2015 3:47 PM, Kai Nacke wrote: Short recipe: Download & VisualStudio 2013 Community Edition Download the DMD source OR clone from GitHub repository. Start VS 2013. Open solution dmd_msc_vs10.sln (in folser src) Right click solution dmd_msc_vs10 and select Properties. Change Configuration

Re: DMD 64 bit on Windows

2015-04-14 Thread Etienne via Digitalmars-d-learn
On Tuesday, 14 April 2015 at 09:57:55 UTC, wobbles wrote: On Tuesday, 14 April 2015 at 01:31:27 UTC, Etienne wrote: I'm currently experiencing Out Of Memory errors when compiling in DMD on Windows Has anyone found a way to compile a DMD x86_64 compiler on Windows? I've been having this same

Re: DMD 64 bit on Windows

2015-04-13 Thread Etienne via Digitalmars-d-learn
On 4/13/2015 9:42 PM, Dennis Ritchie wrote: Main article here: http://wiki.dlang.org/Installing_DMD_on_64-bit_Windows_7_%28COFF-compatible%29 I think this might be about the -m64 option in the d compiler. I'm actually having the Out Of Memory error with the -m64 option, because DMD crashes a

DMD 64 bit on Windows

2015-04-13 Thread Etienne via Digitalmars-d-learn
I'm currently experiencing Out Of Memory errors when compiling in DMD on Windows Has anyone found a way to compile a DMD x86_64 compiler on Windows?

Re: How to connect asynchronously (non block) with kqueue?

2015-03-24 Thread Etienne via Digitalmars-d-learn
On 3/24/2015 5:50 AM, zhmt wrote: I am using kqueue on macosx, I know how to write a simple server. But don't know which event will be triggered in kqueue when connected successfully , which event when failed? EVFILT_READ or EVFILT_WRITE? I have googled this question, got no examples, any sugge

Re: OPTLINK Error 45 "Too Much DEBUG Data for Old CodeView format"

2015-03-22 Thread Etienne via Digitalmars-d-learn
On 3/20/2015 1:35 PM, Koi wrote: Hello, after some coding i needed to update some external libraries like DerelictSDL2. As we all know, one update isn't enough, so i updated my whole d-environment at the end of the day (current dmd version, VisualD). After getting rid of some linking errors (sy

Re: State of Windows x64 COFF support?

2015-02-19 Thread Etienne via Digitalmars-d-learn
On 2015-02-19 1:41 PM, ketmar wrote: i remember that DMD creates one section for each function (to allow smartlink feature). with templates this can be alot. maybe it needs new cli flag "--collapse-sections" or something like it. I watched the section names and discovered over 20,000 sections

Re: State of Windows x64 COFF support?

2015-02-19 Thread Etienne via Digitalmars-d-learn
On 2015-02-19 11:39 AM, Etienne wrote: I'm having corrupt symbol table errors on a Win64 build of a big application, I can't find a way around it. I'm wondering if the COFF support is still experimental in DMD? Thanks! I just counted 67k sections using a printf in DMD... The limit is 65k so t

State of Windows x64 COFF support?

2015-02-19 Thread Etienne via Digitalmars-d-learn
I'm having corrupt symbol table errors on a Win64 build of a big application, I can't find a way around it. I'm wondering if the COFF support is still experimental in DMD? Thanks!

Re: Debugging a Memory Leak

2014-11-18 Thread Etienne via Digitalmars-d-learn
On 2014-11-17 6:12 PM, Maxime Chevalier-Boisvert wrote: Help or advice on solving this problem is welcome. I've tried dumping logs from the garbage collection process and it's the biggest waste of time. Even if you left a reference somewhere, the logs will not help identify the code that caus

Re: vibe.d problem

2014-11-18 Thread Etienne via Digitalmars-d-learn
On 2014-11-18 8:37 AM, Lázaro Armando via Digitalmars-d-learn wrote: How could I do that using dub? You must download the most recent version of dub from http://code.dlang.org Run the commands: dub remove vibe-d --force-remove dub fetch vibe-d --version=0.7.21-rc.4 The list of versions you

Re: Precise & TLS GC

2014-11-16 Thread Etienne via Digitalmars-d-learn
I realize this shouldn't belong in D.learn :) http://forum.dlang.org/thread/m4aahr$25qd$2...@digitalmars.com#post-m4aahr:2425qd:242:40digitalmars.com

Precise & TLS GC

2014-11-16 Thread Etienne via Digitalmars-d-learn
I always wondered why we would use the shared keyword on GC allocations if only the stack can be optimized for TLS Storage. After thinking about how shared objects should work with the GC, it's become obvious that the GC should be optimized for local data. Anything shared would have to be manu

Re: Memory usage of dmd

2014-11-10 Thread Etienne via Digitalmars-d-learn
On 2014-11-10 2:52 PM, "Marc =?UTF-8?B?U2Now7x0eiI=?= " wrote: If your server runs systemd, I would strongly recommend to use that instead of a shell script. You can use "Restart=always" or "Restart=on-failure" in the unit file. It also provides socket activation, which will allow you to restart

Re: Memory usage of dmd

2014-11-10 Thread Etienne via Digitalmars-d-learn
On 2014-11-10 12:02 PM, Xavier Bigand wrote: As I know to be able to have no down time with vibe we need to be able to build directly on the server where the program runs. Maybe I just need to wait that I have some users to pay a better server with more memory. With a low number of users, ther

Re: Memory usage of dmd

2014-11-10 Thread Etienne via Digitalmars-d-learn
On 2014-11-10 11:32 AM, Xavier Bigand wrote: Is there some options can help me to reduce the memory consumption? As it's for production purpose I don't think that is a good idea to remove compiler optimizations. The memory issues are probably related to diet templates. LDC and GDC won't help.

Re: Strictness of language styling

2014-11-10 Thread Etienne via Digitalmars-d-learn
On 2014-11-10 11:16 AM, Adam D. Ruppe wrote: Personally, I don't really care about naming conventions. I prefer the camelCase and it seems most D people do, but if you're translating another library, there's value it keeping it the same for ease of documentation lookups from the original etc. I

Strictness of language styling

2014-11-10 Thread Etienne via Digitalmars-d-learn
I'm translating the library Botan and I'm at a point where I have to ask myself if I'm going to change functions and object names respectively from snake_case and Camel_Case to camelCase and CamelCase. Same goes for file names. Is this a strict rule for D libraries?

Re: Access Violation Tracking

2014-11-09 Thread Etienne via Digitalmars-d-learn
On 2014-11-05 6:09 AM, Bauss wrote: Is there any way to track down access violations, instead of me having to look through my source code manually. I have a pretty big source code and an access violation happens at runtime, but it's going to be a nightmare looking through it all to find the acce

Re: Equivalent in D for .p2align 4,,15 ?

2014-10-29 Thread Etienne via Digitalmars-d-learn
On 2014-10-29 1:44 PM, anonymous wrote: D inline assembler has an 'align' directive [1]. Aligning to a 16 byte boundary in D: `align 16;`. [1] http://dlang.org/iasm.html -- "align IntegerExpression", near the top Of course, align directive works on instructions in asm. Thanks anonymous, that

Equivalent in D for .p2align 4,,15 ?

2014-10-29 Thread Etienne via Digitalmars-d-learn
I'm looking for the D inline assembler equivalent of the .p2align 4,,15 directive to optimize a loop. Here's more information: http://stackoverflow.com/questions/21546946/what-p2align-does-in-asm-code I tried searching through a turbo assembler tutorial (because D's is based on it) and found n

Using imm8 through inline assembler

2014-10-28 Thread Etienne via Digitalmars-d-learn
I'm trying to write (in DMD) the assembler that handles the function : __m256i _mm256_permute4x64_epi64(__m256i a, in int M); This translates to vpermq The closest thing I could find in DMD assembly is VPERMILPS, which is called with: asm { vpermilps YMM0, YMM1, IMM8; } However, I cannot fi

Translating inline ASM from C++

2014-10-15 Thread Etienne via Digitalmars-d-learn
I'm translating some library from C++ and I'd need some help with assembler translations. I've read the guides on D inline assembler but it's fairly thin. I don't understand what "=r", "=a", "%0", "%1" should be in D. Is this some sort of register? https://github.com/etcimon/botan/blob/master/

Re: How do I write __simd(void16*, void16) ?

2014-10-10 Thread Etienne via Digitalmars-d-learn
On 2014-10-10 9:01 AM, ketmar via Digitalmars-d-learn wrote: import core.simd; import gcc.builtins; void main () { float4 a, b; auto tmp = __builtin_ia32_mulps(a, b); // a*b } i don't know what the hell this means, but at least it accepts types from core.simd. ;-) so i assu

Re: How do I write __simd(void16*, void16) ?

2014-10-10 Thread Etienne via Digitalmars-d-learn
On 2014-10-10 4:12 AM, ketmar via Digitalmars-d-learn wrote: actually, importing it works like a trigger, and then programmer has access to GCC builtins defined in GCC source. one can read GCC documentation to find more information about 'em. Hi ketmar, Which type would have to be sent to the

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 5:05 PM, David Nadlinger wrote: On Thursday, 9 October 2014 at 20:29:44 UTC, Benjamin Thaut wrote: Unforunately the gcc.buildints module seems to be generated during compilation of gdc, so you might want to get a binary version or compile it yourself to see the module. By the way

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 4:29 PM, Benjamin Thaut wrote: I think a good starting point would be Manu's std.simd module. I don't know if he is still working on it, but a old version can be found here: https://github.com/TurkeyMan/simd/blob/master/std/simd.d That's a great reference! I can do a lot from tha

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 2:32 PM, Benjamin Thaut wrote: I know that GDC stopped supporting D style inline asm a while ago. If you need inline asm with GDC you have to use the gcc style inline assembly. I don't know about ldc though. But generally you want to use the official intrinsics with gdc and ldc beca

Re: Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 9:46 AM, anonymous wrote: I'm out of my knowledge zone here, but it seems to work when you move the pointers to registers first: void store(__m128i* src, __m128i* dst) { asm { mov RAX, src; mov RBX, dst; movdqu XMM0, [RAX]; movdqu

Re: Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
Maybe someone can help with the more specific problem. I'm translating a crypto engine here: https://github.com/etcimon/botan/blob/master/source/botan/block/aes_ni/aes_ni.d But I need this to work on DMD, LDC and GDC. I decided to write the assembler code directly for the functions in this mod

Re: Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 8:54 AM, anonymous wrote: This compiles: align(16) union __m128i { ubyte[16] data; } /* note the position of the semicolon */ void store(__m128i* src, __m128i* dst) { asm { movdqu XMM0, [src]; /* note: [src] */ movdqu [dst], XMM0; } } Yes, t

Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
I'm a bit new to the inline assembler, I'm trying to use the `movdqu` operation to move a 128 bit double quadword from a pointer location into another location like this: align(16) union __m128i { ubyte[16] data }; void store(__m128i* src, __m128i* dst) { asm { movdqu [dst], src; } }

Re: How do I write __simd(void16*, void16) ?

2014-10-08 Thread Etienne via Digitalmars-d-learn
On 2014-10-08 3:04 PM, Benjamin Thaut wrote: I strongly advise to not use core.simd at this point. It is in a horribly broken state and generates code that is far from efficient. If I think I'll have to re-write the xmmintrin.h functions I need as string mixins to inline the assembly. Is that

How do I write __simd(void16*, void16) ?

2014-10-08 Thread Etienne via Digitalmars-d-learn
I can't seem to find this function anywhere: __simd(void16*, void16) The mangling seems to go through to dmd's glue.lib This is for SSE2 operations: MOVDQU => void _mm_storeu_si128 ( __m128i *p, __m128i a) MOVDQU => __m128i _mm_loadu_si128 ( __m128i *p) Would I have to write this with ASM?

Re: vibe.d https_server example fails

2014-09-29 Thread Etienne via Digitalmars-d-learn
Yes, the ssl_stream should be defined outside the if clause. The FreeLostRef refcount goes to 0 when it goes out of scope in http/server.d On Monday, 29 September 2014 at 21:39:03 UTC, Nordlöw wrote: On Monday, 29 September 2014 at 18:37:28 UTC, Martin Nowak wrote: Please report it https://gi

Re: Segfault in DMD OSX

2014-09-22 Thread Etienne via Digitalmars-d-learn
Here's with debug symbols in DMD Program received signal SIGSEGV, Segmentation fault. 0x00010013c4d0 in TemplateInstance::findBestMatch (this=0x101c34050, sc=0x12058d740, fargs=0x0) at template.c:7329 7329 tempdecl->kind(), tempdecl->parent->toPrettyChars(), tempdecl->ident->toChars()); (g

Re: Segfault in DMD OSX

2014-09-22 Thread Etienne via Digitalmars-d-learn
I managed to get gdb running, here's what I get: Starting program: /bin/dmd -lib -m64 -g source/event/internals/epoll.d source/event/internals/kqueue.d source/event/internals/path.d source/event/internals/validator.d source/event/internals/hashmap.d source/event/internals/memory.d source/event

Segfault in DMD OSX

2014-09-22 Thread Etienne via Digitalmars-d-learn
I'm having issues with DMD returning exit code -11 rather than compiling my project. I have no idea how to debug this, I'm using Mac OS X 10.9.4 with latest git DMD tagged 2.066, and this project: https://github.com/etcimon/event.d When I hit `dub run`, I get the exit code. Not sure why or whe

Re: std.container.array linker error on OS X

2014-09-09 Thread Etienne via Digitalmars-d-learn
On 2014-09-09 3:58 PM, Etienne wrote: I have to specify that AsyncSignal is defined as a "final shared class", and the array is defined as a Array!AsyncSignal I'm not sure if the compiler on OSX could act different and add the shared symbols there? Meh, I answered my own question. Substituting

Re: std.container.array linker error on OS X

2014-09-09 Thread Etienne via Digitalmars-d-learn
On 2014-09-09 4:11 PM, Etienne wrote: On 2014-09-09 3:58 PM, Etienne wrote: I have to specify that AsyncSignal is defined as a "final shared class", and the array is defined as a Array!AsyncSignal I'm not sure if the compiler on OSX could act different and add the shared symbols there? Meh, I

Re: std.container.array linker error on OS X

2014-09-09 Thread Etienne via Digitalmars-d-learn
I have to specify that AsyncSignal is defined as a "final shared class", and the array is defined as a Array!AsyncSignal I'm not sure if the compiler on OSX could act different and add the shared symbols there?

std.container.array linker error on OS X

2014-09-09 Thread Etienne via Digitalmars-d-learn
Hello, Can anyone help me? Maybe someone has seen this before. I'm getting a (strange) error when testing on OSX with dmd 2.066, the build works with the same compiler/library versions on linux x64 and windows x86 but for some reason it's not working here. The repos are: https://github.com/

Re: Both shared & local classes, method selection

2014-08-29 Thread Etienne via Digitalmars-d-learn
On 2014-08-29 9:39 AM, Dicebot wrote: based on shared qualified I'd call it a smart ass one and never accepted it through code review :) Such things really need to be explicit, magic is worst enemy of multi-threading The other option is to keep `__gshared ThreadSlot[Thread] gs_signals;` member

Both shared & local classes, method selection

2014-08-29 Thread Etienne via Digitalmars-d-learn
Hey, I'm trying to build a driver for my native event implementation in vibe (https://github.com/etcimon/event.d/ and https://github.com/etcimon/vibe.d/blob/native-events/source/vibe/core/drivers/native.d) I currently have 2 ways of signaling an event loop to wake up, the AsyncNotifier (even

Using the delete Keyword /w GC

2014-08-25 Thread Etienne via Digitalmars-d-learn
People have been saying for quite a long time not to use the `delete` keyword on GC-allocated pointers. I've looked extensively through the code inside the engine and even made a few modifications on it/benchmarked it for weeks and I still can't see why it would be wrong. Wouldn't it help avoi

COFF32 limitations?

2014-08-22 Thread Etienne via Digitalmars-d-learn
I'm wondering about the COFF on windows x86, if I compile a C++ library in Mingw (gcc 4.9), using the new extern(C++, a.b.c) will I be able to statically link it through DMD?

Re: delegates & GC allocations

2014-08-20 Thread Etienne via Digitalmars-d-learn
On 2014-08-20 5:25 PM, Ola Fosheim Gr wrote: Well, I guess simple recursion could be solved easily too by having a wrapper function that puts the frame pointer in a free callee save register... So, my question inspired a new optimization? :-p

delegates & GC allocations

2014-08-20 Thread Etienne via Digitalmars-d-learn
I've been hearing that delegates get a context pointer which will be allocated on the GC. Is this also true for delegates which stay in scope? e.g. void addThree() { int val; void addOne() { val++; } addOne(); addOne(); ad

Re: extern (c++) std::function?

2014-08-16 Thread Etienne via Digitalmars-d-learn
On 2014-08-15 6:12 AM, Rémy Mouëza wrote: assignments of anonymous/inline ones. You may want to add a layer of abstraction to the API you expose in D so that user D delegates are used from a second extern (C) delegate itself used by the C++ wrapper: Thanks for the detailed answer, this is the d

Re: Deploying Vibe.d applications to OpenShift

2014-07-24 Thread Etienne via Digitalmars-d-learn
On 2014-07-24 3:45 AM, Nikolay wrote: Please let me know how you did it, because I know it's possible with the DIY-cartridge they provide you(atleast it should be). I tried it some time ago. It is possible but: - vibe.d requires a lot of memory for project compilation - it is hard to inst

Re: Windows DLL / Windows service

2014-06-07 Thread Etienne via Digitalmars-d-learn
On Saturday, 7 June 2014 at 16:07:47 UTC, Adam D. Ruppe wrote: On Saturday, 7 June 2014 at 14:41:15 UTC, Etienne Cimon wrote: no documentation though. Any idea how to attach/detach with a known example? I'd also like to create a windows DLL that compiles through DMD/GDC/LDC with extern(c) so th

asserts and release

2014-06-03 Thread Etienne via Digitalmars-d-learn
Are asserts supposed to be evaluated in DMD release? I was getting a "privileged instructions error 0xC096" which was caused by an assert, when doing some gc programming in druntime