January 16, 2015 Re: For the lulz: ddmd vs libdparse lexer timings | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | "Iain Buclaw via Digitalmars-d" wrote in message news:mailman.4161.1420481405.9932.digitalmars-d@puremagic.com... > > > > I think I've got a handle on this, sort of. I've moved the declaration of > > __va_argsave into the glue layer, and added intrinsic detection for > > va_start/va_end/va_arg (the two-arg form). > > > > I've implemented them in the backend for win32 and they have passed a simple > > test! > > I now have it working (and tested) for win32/linux32/linux64. va_start and va_copy will probably both need intrinsics, but druntime's va_arg is fine. On x86_64 all I do is completely ignore the second parameter to va_start and memcpy the fields in. I haven't done va_copy yet, but it should be fairly simple. > > Do you think we can change _all_ the druntime and phobos code to just use > > va_arg directly? It would be nice to have it all portable like that. > > Oh, yeah, do it! You have references to __va_argsave in phobos, don't you? There are a _lot_ in lifetime.d. These should have been replaced with non-variadic versions years ago, so I'm going to do that instead of trying to un-hack them. https://github.com/D-Programming-Language/dmd/pull/4303 https://github.com/D-Programming-Language/druntime/pull/1102 |
January 28, 2015 Re: For the lulz: ddmd vs libdparse lexer timings | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | "Iain Buclaw via Digitalmars-d" wrote in message news:mailman.4161.1420481405.9932.digitalmars-d@puremagic.com... > > Do you think we can change _all_ the druntime and phobos code to just use > > va_arg directly? It would be nice to have it all portable like that. > > Oh, yeah, do it! You have references to __va_argsave in phobos, don't you? Here it is: https://github.com/D-Programming-Language/phobos/pull/2926 __va_argsave wasn't used here, but it was creating its own __va_argsave_t in order to abuse va_arg! |
Copyright © 1999-2021 by the D Language Foundation