digitalmars.D - Re: LDC2 Status
- Alexey Prokhin <alexey.prokhin yandex.ru> Feb 23 2011
- Trass3r <un known.com> Feb 23 2011
- Don <nospam nospam.com> Feb 25 2011
- Jacob Carlborg <doob me.com> Feb 25 2011
- Kagamin <spam here.lot> Feb 25 2011
- dsimcha <dsimcha yahoo.com> Feb 23 2011
- Alexey Prokhin <alexey.prokhin yandex.ru> Feb 23 2011
- Andrew Wiley <debio264 gmail.com> Feb 24 2011
- Michel Fortin <michel.fortin michelf.com> Feb 24 2011
LDC2 Status
I currently work on linux X86_64 port: ldc2 already compiles druntime and phobos, although there are some serious issues with GC (which make ldc2 quite useless on 64 bits). Trass3r Wrote:Also I got the feeling that LDC2 has been hastily updated to the newest dmd frontend without verifying each upgrade step by step and now things are subtly broken.
I need a hand with writing a good building instruction. If you want to help, send me a letter, I'll talk you through building process. By the way, druntime and phobos with ldc2 patches can be found here: https://github.com/AlexeyProkhin.
Feb 23 2011
Trass3r Wrote:Also I got the feeling that LDC2 has been hastily updated to the newest dmd frontend without verifying each upgrade step by step and now things are subtly broken.
even compile). So, yes, I decided to update ldc to the latest dmd frontend at the time. But after that every frontend merge was thoroughly tested using phobos unittests and dmd test suite.
Glad to hear that! Didn't mean to talk your efforts down ;) Hope you can make it usable. Now if only those LLVM suckers implemented SEH...I need a hand with writing a good building instruction. If you want to help, send me a letter, I'll talk you through building process. By the way, druntime and phobos with ldc2 patches can be found here: https://github.com/AlexeyProkhin.
I might try compiling it on Windows again.
Feb 23 2011
Trass3r wrote:Trass3r Wrote:Also I got the feeling that LDC2 has been hastily updated to the newest dmd frontend without verifying each upgrade step by step and now things are subtly broken.
even compile). So, yes, I decided to update ldc to the latest dmd frontend at the time. But after that every frontend merge was thoroughly tested using phobos unittests and dmd test suite.
Glad to hear that! Didn't mean to talk your efforts down ;) Hope you can make it usable. Now if only those LLVM suckers implemented SEH...
Wouldn't it be possible for LDC to use the exception handling implementation in druntime? (With some modifications, of course). With the last compiler release, there is no longer any dependency on the DMC runtime. I put a lot of effort into understanding Windows SEH, and I believe it is quite well documented now.I need a hand with writing a good building instruction. If you want to help, send me a letter, I'll talk you through building process. By the way, druntime and phobos with ldc2 patches can be found here: https://github.com/AlexeyProkhin.
I might try compiling it on Windows again.
Feb 25 2011
On 2011-02-25 10:10, Don wrote:Trass3r wrote:Trass3r Wrote:Also I got the feeling that LDC2 has been hastily updated to the newest dmd frontend without verifying each upgrade step by step and now things are subtly broken.
even compile). So, yes, I decided to update ldc to the latest dmd frontend at the time. But after that every frontend merge was thoroughly tested using phobos unittests and dmd test suite.
Glad to hear that! Didn't mean to talk your efforts down ;) Hope you can make it usable. Now if only those LLVM suckers implemented SEH...
Wouldn't it be possible for LDC to use the exception handling implementation in druntime? (With some modifications, of course). With the last compiler release, there is no longer any dependency on the DMC runtime. I put a lot of effort into understanding Windows SEH, and I believe it is quite well documented now.
I think that the compiler outputs exception tables, or something like that. Without does tables no exceptions.I need a hand with writing a good building instruction. If you want to help, send me a letter, I'll talk you through building process. By the way, druntime and phobos with ldc2 patches can be found here: https://github.com/AlexeyProkhin.
I might try compiling it on Windows again.
-- /Jacob Carlborg
Feb 25 2011
Don Wrote:Wouldn't it be possible for LDC to use the exception handling implementation in druntime? (With some modifications, of course). With the last compiler release, there is no longer any dependency on the DMC runtime. I put a lot of effort into understanding Windows SEH, and I believe it is quite well documented now.
The runtime is not a problem, llvm lacks compile time support for SEH. They may try to get sjlj to work.
Feb 25 2011
On 2/23/2011 3:00 PM, Alexey Prokhin wrote:LDC2 Status
I currently work on linux X86_64 port: ldc2 already compiles druntime and phobos, although there are some serious issues with GC (which make ldc2 quite useless on 64 bits). Trass3r Wrote:Also I got the feeling that LDC2 has been hastily updated to the newest dmd frontend without verifying each upgrade step by step and now things are subtly broken.
I need a hand with writing a good building instruction. If you want to help, send me a letter, I'll talk you through building process. By the way, druntime and phobos with ldc2 patches can be found here: https://github.com/AlexeyProkhin.
Still can't get druntime to compile. The readme file in runtime/ is horribly outdated. I cloned your github repo, and tried a few things, but I have no clue where I should put it, or how to build it. It looks like the make file is still for DMD.
Feb 23 2011
Still can't get druntime to compile. The readme file in runtime/ is horribly outdated. I cloned your github repo, and tried a few things, but I have no clue where I should put it, or how to build it. It looks like the make file is still for DMD.
$ cd ldc2_build_dir $ cmake -DRUNTIME_DIR=path_to_druntime -DPHOBOS2_DIR=path_to_phobos . $ make phobos2 (or 'make runtime' if you want to build only druntime)
Feb 23 2011
On Thu, Feb 24, 2011 at 12:56 AM, Alexey Prokhin <alexey.prokhin yandex.ru> wrote:I use cmake to compile druntime and phobos: $ cd ldc2_build_dir $ cmake -DRUNTIME_DIR=path_to_druntime -DPHOBOS2_DIR=path_to_phobos . $ make phobos2 (or 'make runtime' if you want to build only druntime)
I tried building on ARM just for the heck of it, and ldc2 compiles successfully, but when I compile druntime, odd things happen. Specifically, looking at the version blocks in core/stdc/stdargs.d, I should be getting a static assert failure because my platform is unsupported, but instead I'm seeing this: $ ldc2 core/stdc/stdarg.d core/stdc/stdio.d(345): Error: undefined identifier va_list core/stdc/stdio.d(345): Error: va_list is used as a type core/stdc/stdio.d(346): Error: undefined identifier va_list core/stdc/stdio.d(346): Error: va_list is used as a type core/stdc/stdio.d(347): Error: undefined identifier va_list core/stdc/stdio.d(347): Error: va_list is used as a type core/stdc/stdio.d(348): Error: undefined identifier va_list core/stdc/stdio.d(348): Error: va_list is used as a type core/stdc/stdio.d(349): Error: undefined identifier va_list core/stdc/stdio.d(349): Error: va_list is used as a type core/stdc/stdio.d(350): Error: undefined identifier va_list core/stdc/stdio.d(350): Error: va_list is used as a type core/stdc/stdio.d(405): Error: undefined identifier va_list core/stdc/stdio.d(405): Error: va_list is used as a type core/stdc/wchar_.d(37): Error: undefined identifier va_list core/stdc/wchar_.d(37): Error: va_list is used as a type core/stdc/wchar_.d(38): Error: undefined identifier va_list core/stdc/wchar_.d(38): Error: va_list is used as a type core/stdc/wchar_.d(39): Error: undefined identifier va_list core/stdc/wchar_.d(39): Error: va_list is used as a type core/stdc/wchar_.d(40): Error: undefined identifier va_list core/stdc/wchar_.d(40): Error: va_list is used as a type core/stdc/wchar_.d(41): Error: undefined identifier va_list core/stdc/wchar_.d(41): Error: va_list is used as a type core/stdc/wchar_.d(42): Error: undefined identifier va_list core/stdc/wchar_.d(42): Error: va_list is used as a type This is odd because stdarg contains no import statements. Is the compiler generating references to the other modules somehow, and if so, why do I get these errors instead of the unsupported platform error?
Feb 24 2011
On 2011-02-24 10:49:31 -0500, Andrew Wiley <debio264 gmail.com> said:On Thu, Feb 24, 2011 at 12:56 AM, Alexey Prokhin <alexey.prokhin yandex.ru> wrote:I use cmake to compile druntime and phobos: $ cd ldc2_build_dir $ cmake -DRUNTIME_DIR=path_to_druntime -DPHOBOS2_DIR=path_to_phobos . $ make phobos2 (or 'make runtime' if you want to build only druntime)
I tried building on ARM just for the heck of it, and ldc2 compiles successfully, but when I compile druntime, odd things happen. Specifically, looking at the version blocks in core/stdc/stdargs.d, I should be getting a static assert failure because my platform is unsupported, but instead I'm seeing this: $ ldc2 core/stdc/stdarg.d core/stdc/stdio.d(345): Error: undefined identifier va_list core/stdc/stdio.d(345): Error: va_list is used as a type core/stdc/stdio.d(346): Error: undefined identifier va_list core/stdc/stdio.d(346): Error: va_list is used as a type core/stdc/stdio.d(347): Error: undefined identifier va_list core/stdc/stdio.d(347): Error: va_list is used as a type core/stdc/stdio.d(348): Error: undefined identifier va_list core/stdc/stdio.d(348): Error: va_list is used as a type core/stdc/stdio.d(349): Error: undefined identifier va_list core/stdc/stdio.d(349): Error: va_list is used as a type core/stdc/stdio.d(350): Error: undefined identifier va_list core/stdc/stdio.d(350): Error: va_list is used as a type core/stdc/stdio.d(405): Error: undefined identifier va_list core/stdc/stdio.d(405): Error: va_list is used as a type core/stdc/wchar_.d(37): Error: undefined identifier va_list core/stdc/wchar_.d(37): Error: va_list is used as a type core/stdc/wchar_.d(38): Error: undefined identifier va_list core/stdc/wchar_.d(38): Error: va_list is used as a type core/stdc/wchar_.d(39): Error: undefined identifier va_list core/stdc/wchar_.d(39): Error: va_list is used as a type core/stdc/wchar_.d(40): Error: undefined identifier va_list core/stdc/wchar_.d(40): Error: va_list is used as a type core/stdc/wchar_.d(41): Error: undefined identifier va_list core/stdc/wchar_.d(41): Error: va_list is used as a type core/stdc/wchar_.d(42): Error: undefined identifier va_list core/stdc/wchar_.d(42): Error: va_list is used as a type This is odd because stdarg contains no import statements. Is the compiler generating references to the other modules somehow, and if so, why do I get these errors instead of the unsupported platform error?
The object module in druntime is always imported implicitly. You could try commenting everything in module object and reenabling things as you need them. -- Michel Fortin michel.fortin michelf.com http://michelf.com/
Feb 24 2011