www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: LDC2 Status

reply Alexey Prokhin <alexey.prokhin yandex.ru> writes:
 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
next sibling parent reply Trass3r <un known.com> writes:
 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
parent reply Don <nospam nospam.com> writes:
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
next sibling parent Jacob Carlborg <doob me.com> writes:
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
prev sibling parent Kagamin <spam here.lot> writes:
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
prev sibling parent reply dsimcha <dsimcha yahoo.com> writes:
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
next sibling parent Alexey Prokhin <alexey.prokhin yandex.ru> writes:
 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
prev sibling parent reply Andrew Wiley <debio264 gmail.com> writes:
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
parent Michel Fortin <michel.fortin michelf.com> writes:
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