www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - SDC-32bit

reply "Stefan Koch" <uplink.coder gmail.com> writes:
Hello,
I am happy to announce that my 32bit version of sdc compiles the 
whole testsuite including mixins.
the only there are only 6 tests still failing
2 of them are dependent on size_t.siezof beeing 8.
The otherer 4 have to do with execptoion handling.

please check out the 32-branches
on https://github.com/UplinkCoder/sdc
and https://github.com/UplinkCoder/libd-llvm
and https://github.com/UplinkCoder/libd

I haven't yet updated the submodules so you have to fetch the 
32-branch manually.

and remember that this is experimental!
please file issues on in my repo if your errors appear with both 
-m64 and -m32.

if there are any questions please ask them.
Jul 29 2014
next sibling parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Tue, 29 Jul 2014 13:36:37 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

wow.
Jul 29 2014
parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
On Tuesday, 29 July 2014 at 14:22:43 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Tue, 29 Jul 2014 13:36:37 +0000
 Stefan Koch via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 wow.
Well thanks. please give me feedback if you are using it. In the next days i'm going to tackle ArrayLiterals and foreach
Jul 29 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Tue, 29 Jul 2014 15:43:56 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

ah. sure i'll try to write you about every bug i found. %-)
Jul 29 2014
parent reply "UplinkCoder" <uplink.coder gmail.com> writes:
Sorry I think i messed up with my github branches.
until i get it straightend out you can get my local working 
source verbatim from
http://www42.zippyshare.com/v/4371099/file.html
I modified the sdc to produce 32bit code if the -m32 argument is 
passed to it. 64bit is still the default.
I also modified the runner executable to use the 32bit-sdc if 
--m32 is passed to it.
Don't  recompile the runner it will only produce 32bit tests.
I modified the sdrt to get it to compile for 32bit.
Therefore everything with Execptions will fail.
Jul 29 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
On Tuesday, 29 July 2014 at 18:58:50 UTC, UplinkCoder wrote:
 Sorry I think i messed up with my github branches.
 until i get it straightend out you can get my local working 
 source verbatim from
 http://www42.zippyshare.com/v/4371099/file.html
 I modified the sdc to produce 32bit code if the -m32 argument 
 is passed to it. 64bit is still the default.
 I also modified the runner executable to use the 32bit-sdc if 
 --m32 is passed to it.
 Don't  recompile the runner it will only produce 32bit tests.
 I modified the sdrt to get it to compile for 32bit.
 Therefore everything with Execptions will fail.
I have now setup a repo with my 32bbi sdc source. https://github.com/UplinkCoder/sdc32-experimental There are now submodules I dump my source straight in there. cloning it and calling make should be enough.
Jul 30 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
make that
 I have now setup a repo with my 32bit sdc source.
 https://github.com/UplinkCoder/sdc32-experimental
 There are NO submodules I dump my source straight in there.
 cloning it and calling make should be enough.
Jul 30 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Wed, 30 Jul 2014 09:39:15 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

can't link it. GNU/Linux, x86, latest DMD from git.

lib/libd.a(semantic.o): In function
`_D1d3ast10expression56__T15UnaryExpressionTC1d3ast10expression13AstExpress=
ionZ15UnaryExpression11__T6__ctorZ6__ctorMFS1d8location8LocationE1d3ast10ex=
pression7UnaryOpC1d3ast10expression13AstExpressionZC1d3ast10expression56__T=
15UnaryExpressionTC1d3ast10expression13AstExpressionZ15UnaryExpression': ...
and so on

LLVM 3.4.2, so prerequisites are ok.
Aug 01 2014
next sibling parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
hmm it looks like you are not linking llvm in ...
do you use the most recent version from my sdc32-experimental 
repo ?
please not that the dub build is broken because i can't get the 
link order right.
so you have to `make` it :D
Aug 01 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 15:07:56 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 hmm it looks like you are not linking llvm in ...
but i am. %-) or, better to say, your makefile doing it with `llvm-config --libs`.
 do you use the most recent version from my sdc32-experimental=20
 repo ?
yes, just cloned it before sending report. commit 34fdd6a73e6137173a3840218a76dfd2f6c50d68
 so you have to `make` it :D
yes, i read README and did 'make'. %-) actually, i'm not using DUB at all. and before anyone will ask: it's Slackware, there is no need to install any '-devel' packages. %-) also please note that i'm using the lastest DMD git, not any of the officially released versions. and gcc 4.9.1. p.s. maybe i should rebuild llvm from sources before we continue. i'll try to do it tomorrow.
Aug 01 2014
next sibling parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
please do `git pull` and if the error presists post the full 
error-message on dpaste or similar.
Aug 01 2014
next sibling parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
Are you on a 64bit system ?
my makesfiles are hardcoded to use -m32
so I guess it will not link with 64bit libs
Aug 01 2014
parent ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 15:40:31 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 Are you on a 64bit system ?
no, i said somewhere in the previous messages that i'm using x86 arch. %-)
Aug 01 2014
prev sibling parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 15:33:05 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 please do `git pull` and if the error presists post the full=20
 error-message on dpaste or similar.
you're welcome. upgated to git commit 58a36a1acdc6b9a5bcd07edf69b958c3b4ac1657 build log: http://dpaste.com/2NBTC2W
Aug 01 2014
parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
On Friday, 1 August 2014 at 15:46:14 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Fri, 01 Aug 2014 15:33:05 +0000
 Stefan Koch via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 please do `git pull` and if the error presists post the full 
 error-message on dpaste or similar.
you're welcome. upgated to git commit 58a36a1acdc6b9a5bcd07edf69b958c3b4ac1657 build log: http://dpaste.com/2NBTC2W
AFAICS this it because you are using dmd-master if it fails with the dmd-2.065 then I have a real nut to crack
Aug 01 2014
next sibling parent "Stefan Koch" <uplink.coder gmail.com> writes:
I can say it has nothing todo with llvm (so far)
Aug 01 2014
prev sibling parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 15:54:42 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 AFAICS this it because you are using dmd-master
 if it fails with the dmd-2.065 then I have a real nut to crack
sorry, you are right. downgrading to dmd-2.065 fixes the build.
Aug 01 2014
parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
On Friday, 1 August 2014 at 16:31:49 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Fri, 01 Aug 2014 15:54:42 +0000
 Stefan Koch via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 AFAICS this it because you are using dmd-master
 if it fails with the dmd-2.065 then I have a real nut to crack
sorry, you are right. downgrading to dmd-2.065 fixes the build.
OK I`am glad it was so easy please try to compile a few tests and tell me if it works
Aug 01 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 16:33:39 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 please try to compile a few tests and tell me if it works
results of runner.d: http://dpaste.com/0P4DXGE
Aug 01 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
On Friday, 1 August 2014 at 16:52:39 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Fri, 01 Aug 2014 16:33:39 +0000
 Stefan Koch via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 please try to compile a few tests and tell me if it works
results of runner.d: http://dpaste.com/0P4DXGE
Thats is just as excpected of those 15 failed tests 10 are expected to fail. of the 5 regressions 4 are due to execption handling, and test0083 is empty because sdc32 segfaulted on that one
Aug 01 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 18:29:59 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

still, very impressive!
Aug 01 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
Next time you might want to use my jsonRunner
it runs 7.5x times faster than the old one :D
thogh it needs a bit more work
enableing multihtreading and such
Aug 01 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 21:58:58 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 enableing multihtreading and such
i explititely passes runner.d -j1 (other cores has work to do too %-)
Aug 01 2014
parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
first run "time ./runner"

and then run
"sh buildTester.sh && ./convtest"
and then "time ./jsonRunner"

i am intressted in your timings
runner d envokes the sdc binary
while jsonRunner is linked with sdc
Aug 01 2014
next sibling parent ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 22:16:50 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 sh buildTester.sh
alas, i have no LLVMArchive, and it refuses to link without it. when i removed -L-lLLVMArchive, it says that /usr/lib/gcc/i486-slackware-linux/4.9.1/../../../libLLVMSupport.a(Process.o= ): In function `llvm::sys::Process::FileDescriptorHasColors(int)': Process.cpp:(.text+0x948): undefined reference to `setupterm' Process.cpp:(.text+0x962): undefined reference to `tigetnum' Process.cpp:(.text+0x975): undefined reference to `set_curterm' Process.cpp:(.text+0x97d): undefined reference to `del_curterm' collect2: error: ld returned 1 exit status
Aug 01 2014
prev sibling parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Sat, 2 Aug 2014 01:37:33 +0300
ketmar via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

damn, it's hard to switch between two dmds. ok, i compiled everything,
here's the timings:

./runner 2> /dev/null > /dev/null  21.39s user 1.48s system 146% cpu 15.643=
 total
./jsonRunner 2> /dev/null > /dev/null  2.60s user 0.76s system 86% cpu 3.89=
9 total
Aug 01 2014
parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
On Friday, 1 August 2014 at 22:44:48 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Sat, 2 Aug 2014 01:37:33 +0300
 ketmar via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 damn, it's hard to switch between two dmds. ok, i compiled 
 everything,
 here's the timings:

 ./runner 2> /dev/null > /dev/null  21.39s user 1.48s system 
 146% cpu 15.643 total
 ./jsonRunner 2> /dev/null > /dev/null  2.60s user 0.76s system 
 86% cpu 3.899 total
Thanks jsonRunner really runs fast ... io overhead really makes a diffrence well I will go to bed now. it's 1AM localtime Thanks for your cooperation! Good Night
Aug 01 2014
next sibling parent ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 23:16:43 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 Thanks for your cooperation!
you're welcome. %-)
Aug 01 2014
prev sibling parent "Stefan Koch" <uplink.coder googlemail.com> writes:
On Friday, 1 August 2014 at 23:16:45 UTC, Stefan Koch wrote:

 jsonRunner really runs fast ... io overhead really makes a 
 diffrence
Correction I just checked the old runner and I found out the following: sdc runs 7.5 times faster if all sourceFiles are compiled together. (as dub does) the slowdown is only visible if one compiles each file into an objectfile and then links it together. (as the makefile does)
Aug 06 2014
prev sibling parent reply "Stefan Koch" <uplink.coder gmail.com> writes:
On Friday, 1 August 2014 at 15:26:08 UTC, ketmar via 
Digitalmars-d-announce wrote:
 yes, just cloned it before sending report.
 commit 34fdd6a73e6137173a3840218a76dfd2f6c50d68
Hmm I can't find commit 34fdd6a73e6137173a3840218a76dfd2f6c50d68 ... it must have a commit I have squashed. I do this quite often since sometimes I commit stuff that causes my build to fail :p
Aug 01 2014
parent reply ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Fri, 01 Aug 2014 15:49:09 +0000
Stefan Koch via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 it must have a commit I have squashed.
 I do this quite often since sometimes I commit stuff that causes=20
 my build to fail :p
btw, please, don't do that. just revert commits, there's no need to rewrite the history hard way. or use branches and do cherry-picking, it's easy once you get used to it.
Aug 03 2014
parent "Stefan Koch" <uplink.coder googlemail.com> writes:
On Sunday, 3 August 2014 at 11:31:10 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Fri, 01 Aug 2014 15:49:09 +0000
 Stefan Koch via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 it must have a commit I have squashed.
 I do this quite often since sometimes I commit stuff that 
 causes my build to fail :p
btw, please, don't do that. just revert commits, there's no need to rewrite the history hard way. or use branches and do cherry-picking, it's easy once you get used to it.
yeah I will try to keep it clean :D
Aug 03 2014
prev sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Friday, 1 August 2014 at 09:02:23 UTC, ketmar via 
Digitalmars-d-announce wrote:
 On Wed, 30 Jul 2014 09:39:15 +0000
 Stefan Koch via Digitalmars-d-announce
 <digitalmars-d-announce puremagic.com> wrote:

 can't link it. GNU/Linux, x86, latest DMD from git.

 lib/libd.a(semantic.o): In function
 `_D1d3ast10expression56__T15UnaryExpressionTC1d3ast10expression13AstExpressionZ15UnaryExpression11__T6__ctorZ6__ctorMFS1d8location8LocationE1d3ast10expression7UnaryOpC1d3ast10expression13AstExpressionZC1d3ast10expression56__T15UnaryExpressionTC1d3ast10expression13AstExpression
15UnaryExpression': 
 ...
 and so on

 LLVM 3.4.2, so prerequisites are ok.
I got that error recently. It is an LLVM bug and upgrading LLVM should do the trick.
Aug 01 2014
parent ketmar via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> writes:
On Sat, 02 Aug 2014 03:27:58 +0000
deadalnix via Digitalmars-d-announce
<digitalmars-d-announce puremagic.com> wrote:

 I got that error recently. It is an LLVM bug and upgrading LLVM=20
 should do the trick.
in my case it was nothing with LLVM. sdc-32 needs dmd-2.065, and i'm using dmd-2.066-master. switching to 2.065 resolves the issue.
Aug 02 2014
prev sibling next sibling parent "Stefan Koch" <uplink.coder gmail.com> writes:
On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
Correction I fixed the tests for 32bit only 4 tests are failing all of them due to Execptions
Jul 29 2014
prev sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 I am happy to announce that my 32bit version of sdc compiles 
 the whole testsuite including mixins.
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
 The otherer 4 have to do with execptoion handling.

 please check out the 32-branches
 on https://github.com/UplinkCoder/sdc
 and https://github.com/UplinkCoder/libd-llvm
 and https://github.com/UplinkCoder/libd

 I haven't yet updated the submodules so you have to fetch the 
 32-branch manually.

 and remember that this is experimental!
 please file issues on in my repo if your errors appear with 
 both -m64 and -m32.

 if there are any questions please ask them.
A bit late, but that is awesome. I need to go through all of this back.
Jul 31 2014
next sibling parent Shammah Chancellor <email domain.com> writes:
On 2014-08-01 05:00:53 +0000, deadalnix said:

 On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 I am happy to announce that my 32bit version of sdc compiles the whole 
 testsuite including mixins.
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
 The otherer 4 have to do with execptoion handling.
 
 please check out the 32-branches
 on https://github.com/UplinkCoder/sdc
 and https://github.com/UplinkCoder/libd-llvm
 and https://github.com/UplinkCoder/libd
 
 I haven't yet updated the submodules so you have to fetch the 32-branch 
 manually.
 
 and remember that this is experimental!
 please file issues on in my repo if your errors appear with both -m64 and -m32.
 
 if there are any questions please ask them.
A bit late, but that is awesome. I need to go through all of this and
The methodology of SDC is awesome deadalnix. I'm very happy this is moving forward. It reduces the code to implement a D compiler by a substantial amount. When I have more time I plan to start contributing.
Aug 02 2014
prev sibling parent reply Shammah Chancellor <email domain.com> writes:
On 2014-08-01 05:00:53 +0000, deadalnix said:

 On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 I am happy to announce that my 32bit version of sdc compiles the whole 
 testsuite including mixins.
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
 The otherer 4 have to do with execptoion handling.
 
 please check out the 32-branches
 on https://github.com/UplinkCoder/sdc
 and https://github.com/UplinkCoder/libd-llvm
 and https://github.com/UplinkCoder/libd
 
 I haven't yet updated the submodules so you have to fetch the 32-branch 
 manually.
 
 and remember that this is experimental!
 please file issues on in my repo if your errors appear with both -m64 and -m32.
 
 if there are any questions please ask them.
A bit late, but that is awesome. I need to go through all of this and
Also, it looks by using your fiber based scheduler that you can naturally parallize compiling. Have you investigated that at all?
Aug 02 2014
next sibling parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
On Saturday, 2 August 2014 at 22:48:35 UTC, Shammah Chancellor 
wrote:
 On 2014-08-01 05:00:53 +0000, deadalnix said:

 On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 I am happy to announce that my 32bit version of sdc compiles 
 the whole testsuite including mixins.
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
 The otherer 4 have to do with execptoion handling.
 
 please check out the 32-branches
 on https://github.com/UplinkCoder/sdc
 and https://github.com/UplinkCoder/libd-llvm
 and https://github.com/UplinkCoder/libd
 
 I haven't yet updated the submodules so you have to fetch the 
 32-branch manually.
 
 and remember that this is experimental!
 please file issues on in my repo if your errors appear with 
 both -m64 and -m32.
 
 if there are any questions please ask them.
A bit late, but that is awesome. I need to go through all of come back.
Also, it looks by using your fiber based scheduler that you can naturally parallize compiling. Have you investigated that at all?
I have planned to add async IO through vibe.d. that alone just grant huge speedups. I also want to integrate SQLite or redis based incremental compilation. I don`t think we can beat dmd soon. But I think we can come much closer :D
Aug 03 2014
parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Sunday, 3 August 2014 at 11:19:01 UTC, Stefan Koch wrote:
 On Saturday, 2 August 2014 at 22:48:35 UTC, Shammah Chancellor 
 wrote:
 On 2014-08-01 05:00:53 +0000, deadalnix said:

 On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 I am happy to announce that my 32bit version of sdc compiles 
 the whole testsuite including mixins.
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
 The otherer 4 have to do with execptoion handling.
 
 please check out the 32-branches
 on https://github.com/UplinkCoder/sdc
 and https://github.com/UplinkCoder/libd-llvm
 and https://github.com/UplinkCoder/libd
 
 I haven't yet updated the submodules so you have to fetch 
 the 32-branch manually.
 
 and remember that this is experimental!
 please file issues on in my repo if your errors appear with 
 both -m64 and -m32.
 
 if there are any questions please ask them.
A bit late, but that is awesome. I need to go through all of come back.
Also, it looks by using your fiber based scheduler that you can naturally parallize compiling. Have you investigated that at all?
I have planned to add async IO through vibe.d. that alone just grant huge speedups. I also want to integrate SQLite or redis based incremental compilation. I don`t think we can beat dmd soon. But I think we can come much closer :D
Any idea what the significant bottlenecks are / what dmd is much faster at?
Aug 03 2014
next sibling parent "Stefan Koch" <uplink.coder googlemail.com> writes:
On Sunday, 3 August 2014 at 11:37:26 UTC, John Colvin wrote:
 On Sunday, 3 August 2014 at 11:19:01 UTC, Stefan Koch wrote:
 On Saturday, 2 August 2014 at 22:48:35 UTC, Shammah Chancellor 
 wrote:
 On 2014-08-01 05:00:53 +0000, deadalnix said:

 On Tuesday, 29 July 2014 at 13:36:39 UTC, Stefan Koch wrote:
 Hello,
 I am happy to announce that my 32bit version of sdc 
 compiles the whole testsuite including mixins.
 the only there are only 6 tests still failing
 2 of them are dependent on size_t.siezof beeing 8.
 The otherer 4 have to do with execptoion handling.
 
 please check out the 32-branches
 on https://github.com/UplinkCoder/sdc
 and https://github.com/UplinkCoder/libd-llvm
 and https://github.com/UplinkCoder/libd
 
 I haven't yet updated the submodules so you have to fetch 
 the 32-branch manually.
 
 and remember that this is experimental!
 please file issues on in my repo if your errors appear with 
 both -m64 and -m32.
 
 if there are any questions please ask them.
A bit late, but that is awesome. I need to go through all of i come back.
Also, it looks by using your fiber based scheduler that you can naturally parallize compiling. Have you investigated that at all?
I have planned to add async IO through vibe.d. that alone just grant huge speedups. I also want to integrate SQLite or redis based incremental compilation. I don`t think we can beat dmd soon. But I think we can come much closer :D
Any idea what the significant bottlenecks are / what dmd is much faster at?
hmm i would say io ist a huge factor but this is just a guess I have to do profiling probably i am wrong
Aug 03 2014
prev sibling parent "deadalnix" <deadalnix gmail.com> writes:
On Sunday, 3 August 2014 at 11:37:26 UTC, John Colvin wrote:
 Any idea what the significant bottlenecks are / what dmd is 
 much faster at?
No idea. I'd like to know, but ultimately, supporting more of D is more important than being fast right now.
Aug 03 2014
prev sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Saturday, 2 August 2014 at 22:48:35 UTC, Shammah Chancellor 
wrote:
 Also, it looks by using your fiber based scheduler that you can 
 naturally parallize compiling.  Have you investigated that at 
 all?
Obviously, yes. But that is quite tricky to get a deterministic result due to compile time features.
Aug 03 2014
parent reply Shammah Chancellor <anonymous coward.com> writes:
On 2014-08-04 04:19:01 +0000, deadalnix said:

 On Saturday, 2 August 2014 at 22:48:35 UTC, Shammah Chancellor wrote:
 Also, it looks by using your fiber based scheduler that you can 
 naturally parallize compiling.  Have you investigated that at all?
Obviously, yes. But that is quite tricky to get a deterministic result due to compile time features.
I'm not sure what you mean. Are you referring to things like pragma msg?
Aug 05 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
On Tuesday, 5 August 2014 at 11:56:28 UTC, Shammah Chancellor 
wrote:
 On 2014-08-04 04:19:01 +0000, deadalnix said:

 On Saturday, 2 August 2014 at 22:48:35 UTC, Shammah Chancellor 
 wrote:
 Also, it looks by using your fiber based scheduler that you 
 can naturally parallize compiling.  Have you investigated 
 that at all?
Obviously, yes. But that is quite tricky to get a deterministic result due to compile time features.
I'm not sure what you mean. Are you referring to things like pragma msg?
to things like mixin("mixin(`writeln ("Hello World");`");
Aug 05 2014
parent reply "Dicebot" <public dicebot.lv> writes:
On Tuesday, 5 August 2014 at 16:54:47 UTC, Stefan Koch wrote:
 I'm not sure what you mean.   Are you referring to things like 
 pragma msg?
to things like mixin("mixin(`writeln ("Hello World");`");
``` bool foo() { ... } template bar(bool cond) { static if (cond) enum bar = "int a;"; else enum bar = "int b;"; } mixin(bar!(foo())); pragma(msg, is(typeof(a))); ``` Good luck doing parallel semantic analysis :D I am sure deadalnix can give example much worse than that though.
Aug 05 2014
next sibling parent Shammah Chancellor <anonymous coward.com> writes:
On 2014-08-05 17:02:27 +0000, Dicebot said:

 On Tuesday, 5 August 2014 at 16:54:47 UTC, Stefan Koch wrote:
 I'm not sure what you mean.   Are you referring to things like pragma msg?
to things like mixin("mixin(`writeln ("Hello World");`");
``` bool foo() { ... } template bar(bool cond) { static if (cond) enum bar = "int a;"; else enum bar = "int b;"; } mixin(bar!(foo())); pragma(msg, is(typeof(a))); ``` Good luck doing parallel semantic analysis :D I am sure deadalnix can give example much worse than that though.
They'd still work right. The only thing I can think of that'd be annoying would be that independent functions would compile in a non-deterministic order. So your errors and whatnot may display non-deterministically.
Aug 05 2014
prev sibling parent reply "deadalnix" <deadalnix gmail.com> writes:
On Tuesday, 5 August 2014 at 17:02:28 UTC, Dicebot wrote:
 On Tuesday, 5 August 2014 at 16:54:47 UTC, Stefan Koch wrote:
 I'm not sure what you mean.   Are you referring to things 
 like pragma msg?
to things like mixin("mixin(`writeln ("Hello World");`");
``` bool foo() { ... } template bar(bool cond) { static if (cond) enum bar = "int a;"; else enum bar = "int b;"; } mixin(bar!(foo())); pragma(msg, is(typeof(a))); ``` Good luck doing parallel semantic analysis :D I am sure deadalnix can give example much worse than that though.
Yes, this kind of thing, and it can get much more nasty if you scatter the declaration in various scopes, or better in various modules.
Aug 09 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
I just updated my fork.

   https://github.com/UplinkCoder/sdc32-experimental

* test0037 passes now
   meaning that alias works in more cases

* I implemented foreach for Arrays
   though since ArrayLiterals are currently not supported this is 
not too helpful.
Oct 05 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
Updated fork again.
-m32 and -m64 switches work properly now.
sdc32 uses a the same default outputFile as dmd does.
Soon to come :
- ArrayLiterals
In planning :
- a new backend ;D
- Source-to-Source transformations
Oct 06 2014
parent reply "Temtaime" <temtaime gmail.com> writes:
New backend why ?
Oct 17 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
On Friday, 17 October 2014 at 10:39:15 UTC, Temtaime wrote:
 New backend why ?
Because I want to code a backend. I want output C or maybe even Cool ... generating UML via a backend would also be nice.
Oct 17 2014
next sibling parent reply "Suliman" <evermind live.ru> writes:
I want output C or maybe even Cool ...
What's benefits this would give?
Oct 18 2014
parent reply "Stefan Koch" <uplink.coder googlemail.com> writes:
On Saturday, 18 October 2014 at 09:29:10 UTC, Suliman wrote:
 What's benefits this would give?
apart from the hack-factor a backend that generates _nice_ C-code is a really usefil thing to have. For example if you want to program microcontrollers in D.
Oct 18 2014
parent "Stefan Koch" <uplink.coder googlemail.com> writes:
My sdc32-experimental has now limited support for :
  * foreach on forward-ranges
  * inference of purity
  * checking the returnType of main

currently it CANNOT generate 32bit code anymore ...
Mar 19 2015
prev sibling parent reply "Laeeth Isharc" <laeeth nospamlaeeth.com> writes:
On Friday, 17 October 2014 at 18:47:54 UTC, Stefan Koch wrote:
 On Friday, 17 October 2014 at 10:39:15 UTC, Temtaime wrote:
 New backend why ?
Because I want to code a backend. I want output C or maybe even Cool ... generating UML via a backend would also be nice.
Congrats on the project - v impressive. How about Javascript or JSASM? So we can write D on the browser?
Mar 20 2015
parent "Stefan Koch" <uplink.coder googlemail.com> writes:
On Friday, 20 March 2015 at 17:20:36 UTC, Laeeth Isharc wrote:

 How about Javascript or JSASM?  So we can write D on the 
 browser?
You mean asm.js. I will hook up emscripten soon. However the biggest issue is porting the runtime to javascript.
Mar 21 2015