Jump to page: 1 2 3
Thread overview
Re: LDC2 Status
Feb 23, 2011
Alexey Prokhin
Feb 23, 2011
Trass3r
Feb 25, 2011
Don
Feb 25, 2011
Jacob Carlborg
Feb 25, 2011
Kagamin
Feb 24, 2011
dsimcha
Feb 24, 2011
Alexey Prokhin
Feb 24, 2011
Andrew Wiley
build Ldc2 for win xp 32 bit Error
Jul 25, 2012
huynh van sen
Jul 25, 2012
Rainer Schuetze
Jul 26, 2012
Jacob Carlborg
Jul 31, 2012
Don Clugston
Jul 31, 2012
David Nadlinger
Jul 31, 2012
Jacob Carlborg
Jul 28, 2012
Kai Nacke
Aug 04, 2012
Kagamin
Aug 04, 2012
Jacob Carlborg
Aug 04, 2012
Hans W. Uhlig
Aug 04, 2012
Hans W. Uhlig
Aug 05, 2012
David Nadlinger
Aug 05, 2012
João Matos
Aug 06, 2012
David Nadlinger
Aug 06, 2012
Andrej Mitrovic
Aug 06, 2012
David Nadlinger
Jul 29, 2012
Kai Nacke
February 23, 2011
> 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
> 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
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
> 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
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
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
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
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
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

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