Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2019-04-29 Thread Basile B. via Digitalmars-d-announce

On Sunday, 1 July 2018 at 12:04:06 UTC, Basile B. wrote:

I've recently ported libfirm to D.

This nice C library, developed at the Karlsruhe university, 
allows to build compiler back-ends, using the SSA intermediate 
representation.


In theory it could even be used to make a new D compiler 
version, e.g "FDC", although this is obviously of no interest ;)


So this is mostly to make JIT scripting engines or back-ends 
for toy languages...


See:

- https://github.com/BBasile/libfirm-d
- https://code.dlang.org/packages/firm-d
- https://pp.ipd.kit.edu/firm/

Note that unfortunately this library is LGPL2 licensed, so much 
less usable than LLVM-d, which is a similar but a more 
mainstream library.


With the recent release of dstep 1.0.0 I've managed to make a new 
minor release that only auto generate the sources (v0.1.0). It 
was obviously not a good idea to maintain all the headers up to 
date manually, although this permitted to learn a bit the API.


Note that building must be done at least twice the first time 
because of a DUB limitation.


other changes :
- dub package on code dlang is gone, it must really be a git 
stuff now

- it's much faster because build is optimized using git hashes.
- location changed due to GH account renaming

https://github.com/Basile-z/libfirm-d


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-05 Thread Chris M. via Digitalmars-d-announce

On Thursday, 5 July 2018 at 01:11:58 UTC, Basile B. wrote:

On Thursday, 5 July 2018 at 00:00:07 UTC, Chris M. wrote:

On Sunday, 1 July 2018 at 12:04:06 UTC, Basile B. wrote:

[...]


Very nice, I remember checking this one out a while back.

I don't see the files from the ADT module though, was there a 
reason they weren't included?


https://github.com/libfirm/libfirm/tree/master/include/libfirm/adt


Yes there's a reason that is that these files mostly contain 
data structures, they are not needed in D and i don't remember 
having seen them as parameter type during translation of the 
headers, (although it's been done semi manually, so i could 
have missed one).


Makes sense, I didn't think you would have just missed them.


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-04 Thread ketmar via Digitalmars-d-announce

Basile B. wrote:


On Sunday, 1 July 2018 at 15:03:30 UTC, ketmar wrote:

Basile B. wrote:


I've recently ported libfirm to D.


great news and great work, thank you. yet i must admit that wrapping != 
porting.


Right, i have used the wrong words. Title hopefully is not ambiguous.


ah, tbh, i'm just being jealous. you did my work! me is useless now!


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-04 Thread Basile B. via Digitalmars-d-announce

On Thursday, 5 July 2018 at 00:00:07 UTC, Chris M. wrote:

On Sunday, 1 July 2018 at 12:04:06 UTC, Basile B. wrote:

I've recently ported libfirm to D.

This nice C library, developed at the Karlsruhe university, 
allows to build compiler back-ends, using the SSA intermediate 
representation.


Very nice, I remember checking this one out a while back.

I don't see the files from the ADT module though, was there a 
reason they weren't included?


https://github.com/libfirm/libfirm/tree/master/include/libfirm/adt


Yes there's a reason that is that these files mostly contain data 
structures, they are not needed in D and i don't remember having 
seen them as parameter type during translation of the headers, 
(although it's been done semi manually, so i could have missed 
one).


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-04 Thread Basile B. via Digitalmars-d-announce

On Sunday, 1 July 2018 at 15:03:30 UTC, ketmar wrote:

Basile B. wrote:


I've recently ported libfirm to D.


great news and great work, thank you. yet i must admit that 
wrapping != porting.


Right, i have used the wrong words. Title hopefully is not 
ambiguous.


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-04 Thread Chris M. via Digitalmars-d-announce

On Sunday, 1 July 2018 at 12:04:06 UTC, Basile B. wrote:

I've recently ported libfirm to D.

This nice C library, developed at the Karlsruhe university, 
allows to build compiler back-ends, using the SSA intermediate 
representation.


In theory it could even be used to make a new D compiler 
version, e.g "FDC", although this is obviously of no interest ;)


So this is mostly to make JIT scripting engines or back-ends 
for toy languages...


See:

- https://github.com/BBasile/libfirm-d
- https://code.dlang.org/packages/firm-d
- https://pp.ipd.kit.edu/firm/

Note that unfortunately this library is LGPL2 licensed, so much 
less usable than LLVM-d, which is a similar but a more 
mainstream library.


Very nice, I remember checking this one out a while back.

I don't see the files from the ADT module though, was there a 
reason they weren't included?


https://github.com/libfirm/libfirm/tree/master/include/libfirm/adt


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-01 Thread ketmar via Digitalmars-d-announce

Basile B. wrote:


On Sunday, 1 July 2018 at 15:03:30 UTC, ketmar wrote:

Basile B. wrote:


I've recently ported libfirm to D.


great news and great work, thank you. yet i must admit that wrapping != 
porting. for a moment you made my heart stopped, 'cause i thought that i 
wasted alot of time trying to do a proper port (nope, not finished, but 
still...).


Thanks. BTW I remember you said on IRC that SSA form is much better 
(maybe it was once when we talked about DMD optimizations or something 
like that)... this is basically why i choose this one, although not sure 
if i'll manage to do something with it.


tbh, i gave up on porting it fully, so i prolly will go with your wrapper, 
if anything. and yeah, SSA rox. i am temporarily on C++ side now, yet 
sooner or later i'll return, and will have to restart Aliced again. maybe 
this time with a brand new backend. ;-)


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-01 Thread Basile B. via Digitalmars-d-announce

On Sunday, 1 July 2018 at 15:03:30 UTC, ketmar wrote:

Basile B. wrote:


I've recently ported libfirm to D.


great news and great work, thank you. yet i must admit that 
wrapping != porting. for a moment you made my heart stopped, 
'cause i thought that i wasted alot of time trying to do a 
proper port (nope, not finished, but still...).


Thanks. BTW I remember you said on IRC that SSA form is much 
better (maybe it was once when we talked about DMD optimizations 
or something like that)... this is basically why i choose this 
one, although not sure if i'll manage to do something with it.


Re: libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-01 Thread ketmar via Digitalmars-d-announce

Basile B. wrote:


I've recently ported libfirm to D.


great news and great work, thank you. yet i must admit that wrapping != 
porting. for a moment you made my heart stopped, 'cause i thought that i 
wasted alot of time trying to do a proper port (nope, not finished, but still...).


libfirm-d - D bindings of Firm, a compiler IR based on the SSA form

2018-07-01 Thread Basile B. via Digitalmars-d-announce

I've recently ported libfirm to D.

This nice C library, developed at the Karlsruhe university, 
allows to build compiler back-ends, using the SSA intermediate 
representation.


In theory it could even be used to make a new D compiler version, 
e.g "FDC", although this is obviously of no interest ;)


So this is mostly to make JIT scripting engines or back-ends for 
toy languages...


See:

- https://github.com/BBasile/libfirm-d
- https://code.dlang.org/packages/firm-d
- https://pp.ipd.kit.edu/firm/

Note that unfortunately this library is LGPL2 licensed, so much 
less usable than LLVM-d, which is a similar but a more mainstream 
library.