View mode: basic / threaded / horizontal-split · Log in · Help
February 23, 2011
Re: LDC2 Status
> LDC2 Status
LDC2 passes almost all phobos unittests and tests from dmd suite on linux x86. Also it probably works on freebsd, but it's broken on other platforms and architectures. 
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.
When I started to work on ldc2, it was in terrible state (it did not 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.


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.
February 23, 2011
Re: LDC2 Status
> 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.
> When I started to work on ldc2, it was in terrible state (it did not  
> 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.
February 24, 2011
Re: LDC2 Status
On 2/23/2011 3:00 PM, Alexey Prokhin wrote:
>> LDC2 Status
> LDC2 passes almost all phobos unittests and tests from dmd suite on linux x86. Also it probably works on freebsd, but it's broken on other platforms and architectures.
> 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.
> When I started to work on ldc2, it was in terrible state (it did not 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.
>
>
> 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.
February 24, 2011
Re: LDC2 Status
> 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.
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)
February 24, 2011
Re: LDC2 Status
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?
February 25, 2011
Re: LDC2 Status
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.
>> When I started to work on ldc2, it was in terrible state (it did not 
>> 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.
February 25, 2011
Re: LDC2 Status
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.
>>> When I started to work on ldc2, it was in terrible state (it did not
>>> 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
February 25, 2011
Re: LDC2 Status
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.
July 25, 2012
build Ldc2 for win xp 32 bit Error
Please build LDC2 for windowXP with visual studio 2010
I try compling on windows XP 32 bit .But I get Error
Please Help me !

C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(33): error A2034: must 
be in segment
 block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(34): error A2034: must 
be in segment
 block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(35): error A2034: must 
be in segment
 block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(36): error A2034: must 
be in segment
 block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(37): error A2034: must 
be in segment
 block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(38): fatal error 
A1010: unmatched bl
ock nesting : ld_read [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
Done Building Project "C:\ldcenv\build-ldc2\LDCShared.vcxproj" 
(default targets



"C:\ldcenv\build-ldc2\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\ldcenv\build-ldc2\LDCShared.vcxproj" (default target) (2) ->
(CustomBuild target) ->
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(23): error A2013: 
.MODEL must prec
ede this directive [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(25): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(27): error A2013: 
.MODEL must prec
ede this directive [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(31): error A2034: 
must be in segme
nt block : ld_read [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(32): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(33): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(34): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(35): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(36): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(37): error A2034: 
must be in segme
nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
  C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(38): fatal error 
A1010: unmatched
block nesting : ld_read [C:\ldcenv\build-ldc2\LDCShared.vcxproj]


"C:\ldcenv\build-ldc2\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\ldcenv\build-ldc2\ldmd2.vcxproj" (default target) (8) ->
(Link target) ->
  LINK : fatal error LNK1104: cannot open file 'Program.lib' 
[C:\ldcenv\build-l
dc2\ldmd2.vcxproj]

    30 Warning(s)
    12 Error(s)

Time Elapsed 00:00:20.18

C:\ldcenv\build-ldc2>
July 25, 2012
Re: build Ldc2 for win xp 32 bit Error
On 25.07.2012 06:28, huynh van sen wrote:
> Please build LDC2 for windowXP with visual studio 2010
> I try compling on windows XP 32 bit .But I get Error
> Please Help me !
>
> C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(33): error A2034: must be in
> segment
....
> nt block [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
>    C:/ldcenv/build-ldc2/ldc/vcbuild/ldfpu.asm(38): fatal error A1010:
> unmatched
> block nesting : ld_read [C:\ldcenv\build-ldc2\LDCShared.vcxproj]
>
>
> "C:\ldcenv\build-ldc2\ALL_BUILD.vcxproj" (default target) (1) ->
> "C:\ldcenv\build-ldc2\ldmd2.vcxproj" (default target) (8) ->
> (Link target) ->
>    LINK : fatal error LNK1104: cannot open file 'Program.lib'
> [C:\ldcenv\build-l
> dc2\ldmd2.vcxproj]
>
>      30 Warning(s)
>      12 Error(s)
>
> Time Elapsed 00:00:20.18
>
> C:\ldcenv\build-ldc2>

I have not tried to build LDC myself, but my guess is that there is 
something wrong with the build step for the assembly file ldfpu.asm. It 
seems the VS projects are generated from CMake, so it might not be setup 
correctly.

For x64 builds, the command line in dmd_msc.vcproj is "ml64 -c -Zi 
"-Fl$(IntDir)\$(InputName).lst" "-Fo$(IntDir)\$(InputName).obj" 
"$(InputPath)".
For win32 builds, ldfpu.asm should be excluded from the build, inline 
assembly is used instead in longdouble.c.

BTW: are there instructions how to build LDC2 on Windows? What is the 
state of the missing exception handling for Windows?
« First   ‹ Prev
1 2 3
Top | Discussion index | About this forum | D home