metaeducation / ren-c

Library for embedding a Rebol interpreter into C codebases
GNU Lesser General Public License v3.0
126 stars 27 forks source link

Haiku-x64 port #1154

Closed jacereda closed 11 months ago

jacereda commented 11 months ago

Here are the changes I made to build on Haiku-x64.

Review carefully because my Rebol-fu is quite rusty.

Some changes are questionable (like stat()ing for each entry, but I didn't find any other way on Haiku) and could be considered misplaced (the stat() kludge probably belongs in libuv, but I didn't figure out how to access the directory descriptor).

I also had to change the make.r/rebmake.r stuff, generating makefiles didn't work for me.

jacereda commented 11 months ago

r_2_102_0_5_40_43299C_BFE1B1.log

This is the log of the test suite.

hostilefork commented 11 months ago

Review carefully because my Rebol-fu is quite rusty.

Ren-C fu is a whole new game (especially if you're dealing with the bootstrap process), so congratulations on getting things to work!

the stat() kludge probably belongs in libuv,

Oops--I jumped to read over the PR first, and repeated this point. Well as I say, it seems they're sincere about supporting Haiku. So seems just throwing a proposal their way and letting them give feedback on how they'd want to attack it could probably work out...

I also had to change the make.r/rebmake.r stuff, generating makefiles didn't work for me.

If it works for you and doesn't break anything else, I'll call it good enough.

Rebmake is a catastrophe that turned out to be a somewhat educational catastrophe. I didn't write it, and the various pitfalls I encountered trying to keep it running fed back into the language design considerably...features like the distinction between NULL, NONE, VOID and BLANK! really came from how little of a safety net classical Rebol let you have:

https://forum.rebol.info/t/shades-of-distinction-in-non-valued-intents/1604


Overall, looks good.. if you can take the zlib and libuv issues to them then the rest is mostly fine. Seems like it's about time to purge any BeOS references (outside of comments in systems.r for the historical versioning).

hostilefork commented 11 months ago

Just to get this moved along I went ahead and merged it, and added a few patches to make it work with the bootstrap executables:

https://github.com/metaeducation/ren-c/commit/711c94d480a9ec86826f2733daa7fc40480757d7

I added comments regarding reaching out to libuv and zlib, lest the changes be lost in some future shuffle...