-
Notifications
You must be signed in to change notification settings - Fork 52
Conversation
Removed this fantastic hack:
Now use of the frontend |
Removed |
Also removed all other codegen helpers that no longer have any benefit. |
@jpf91 - Feel free to have a look here: ibuclaw@f83b832 I'll leave it at that for the moment, but thought I might get a second opinion on encapsulating routines that use |
LGTM. I think that's the right approach in the long term. |
OK - maintaining this PR is clearly not going to work in the long run, so I'm going to merge in some stuff early once there is a nice window open to do so. |
1317217
to
4aeb01c
Compare
40d18a6
to
920ddc3
Compare
f02ddef
to
4b5afdd
Compare
2eea29a
to
5c31a5a
Compare
db3c4b5
to
62ad1ab
Compare
68dc25e
to
76845bb
Compare
OK, let's get this in. Just to allow anyone to iron out any bugs in master before trickling it down to other branches. |
Great! Have you already tested ARM builds? |
Not yet, but I imagine I should pull in the 2.068 druntime C bindings. |
Yay! |
No downloads are available yet. |
@ibuclaw this has introduced 40 new unresolved tests on semaphore. Are these all caused by the missing C++ compiler on semaphore? |
Hmm, I have not come across that before in my local testing. |
Nope, it was #160 that introduced the regression. |
It happens because |
Ah, I was looking at the wrong output. I've added the following to our build commands:
I hope this should do the right thing™ |
There is already a 5.2 w/ the 2.066.1 FE, but Travis-CI is still on 4.9.3. |
Maybe wait for travis to roll out the next LTS version of Ubuntu? I'm a bit weary of ABI changes in g++-5 will start breaking stuff. In particular the C++ tests in the testsuite. |
They didn't change that ever and would get into many more troubles by doing it, so you'll wait a very long time. If the latest gdc version isn't compatible with older g++ versions, then people at least know they have to use an older version and can explicitly select gdc-4.9.3. |
Ah, I thought you meant for building just ddmd. |
WORK IN PROGRESS
You may notice that there is a lacking of actual merging of DMD here. That's because it's not being committed yet.
There is a lot of catching up to do with regards to moving most things over to either free functions, double-dispatch visitors, or removing a whole range of stubs entirely!
This leaves some nice room in GDC to do a better clean-room redesign in some places. Whilst starting from scratch is not really an immediate option, what I'll instead do it put up the scaffolding and slowly / surely move things across.
Some things I'd like to end up with are:
.cc
for sources that interact with the frontend, and....c
for sources for independent GDC code generation.namespace gcc { namespace d { } }
for common codegen routines, or...Visitor
classes, and possibly in the process...IRState
entirely, or merge it's routines as part of a bigger structure /Visitor
, same goes also goes for...dt_t*
being replaced withtree
and remove thedt_t**
functions, or mergetoDt
with the generaltoElem
codegen routines.Symbol
, andblock
, but that will have to wait until 2.069 maybe.Immediate things that need to be done: