Milton»Forums
Neo Ar
165 posts / 1 project
riscy.tv host
Linux Support
I think we need a general topic here about Linux support :)

I've decided to help out with porting Milton to Linux, as I'd like to use it on my stream (twitch.tv/miotatsu).

Right now, I have a working Makefile, but Milton doesn't build without errors yet. The patch that was linked in the blog comments seems to be for an older version of Milton and didn't work out, but I manually patched it. Miblo also pointed out that there is an issue on github about linux support (#20). Haven't read that carefully yet.

All my work on Milton will be streamed live. The first Milton stream is archived here:


If anyone else wants to help with Linux support or has any useful information/feedback, let me know :)
Abner Coimbre
320 posts
Founder
Linux Support
Edited by Abner Coimbre on
Miotatsu if you want to cc @handmade_net when you start a stream, we'll typically retweet you. We'd like to get the word out there to help handmade streamers.
Neo Ar
165 posts / 1 project
riscy.tv host
Linux Support
Thanks for the tip Abner, I'll keep that in mind for future streams :)
Sergio González
35 posts / 1 project
I'm working on Milton, a paint program with infinite canvas. My mom thinks I'm awesome.
Linux Support
This is pretty cool! Please let me know if there's anything I can help with.
Neo Ar
165 posts / 1 project
riscy.tv host
Linux Support
Edited by Neo Ar on
Hey Sergio,

Today we got Milton running on Linux:


I haven't had time to explore the features that we are currently missing yet, but it seems like the program works well!
Most of the Linux platform layer is shimed with IMPL_MISSING as was done in the WIP Mac platform layer.

One thing to note is that I am currently using a GNU compiler specific macro to get the executable path. To support alternative compilers, other implementations will be needed, or the use of this macro can be replaced - either with a global variable that gets initialized with the value from argv[0], or more ideally by reading the command line arguments from /proc/self in the one function that needs it. There might be other ways to get the executable path that I'm not currently aware of, as the Linux interface is pretty big :)
EDIT: I just noticed we compiled with clang++, so clang does support this GNU extension. It might be fine leaving it as is unless you want to support more obscure compilers, clang and gcc are pretty much the only two compilers most everyone uses on linux I believe.

I can open a pull request if you would like what I have now in the official code base. If there are any major missing features that I need to use Milton on stream, I'll implement them, but otherwise I might want to switch gears to other projects on stream. Would you (or anyone else) be willing to take over the Linux development from this point? If not, I'd be willing to finish everything up myself for it.

Cheers
N Setobol
15 posts
Warehouse worker/Programmer
Linux Support
I "witness" this and it was "rad"!! I hope this will work with my old laptop and/or raspberry pi. I'm not sure if both has opengl.
Sergio González
35 posts / 1 project
I'm working on Milton, a paint program with infinite canvas. My mom thinks I'm awesome.
Linux Support
Sweet!!

Thanks for the good work! And yes, please open a pull request.

I'm fine supporting just GCC and Clang.

I would be glad to continue with Linux support going forward.

:D
Sergio González
35 posts / 1 project
I'm working on Milton, a paint program with infinite canvas. My mom thinks I'm awesome.
Linux Support
popcorn
I "witness" this and it was "rad"!! I hope this will work with my old laptop and/or raspberry pi. I'm not sure if both has opengl.


I don't know anything about the specs for the raspberry pi. I would be happy/surprised if it worked there. Please let me know how it goes with your old laptop. If it doesn't work, it may start working later when I put some effort into lowering the GL requirements.
N Setobol
15 posts
Warehouse worker/Programmer
Linux Support
Oops I forgot to report back. I guess since it's on an ARM architecture there isn't a intrinsic for ARM so it doesn't compile, oh well, it was worth the try.