Letting go of ZeroMQ, for now...

At one point @gchiu asked me to port the R3-Alpha ZeroMQ extension that Andreas had made to Ren-C. I did so, even though I didn't know much about it.

He never used it. But, it did give more experience with writing extensions...and became the first to switch over to using libRebol instead of core APIs. It also was the first "C99 only" extension, where it was accepted that you didn't have to put rebEND on the end of libRebol API calls.

There's really nothing profound about this particular integration, and no one uses it. It does create headaches in terms of the build process. That means we're being held back in rewriting Rebmake because every one of these extensions that has to be worried about contributes problems.

It's not a terribly complex extension, and it wouldn't be hard to resurrect in its current state of functionality if anyone wanted it. The real problem it has is defining what that functionality is and how Rebol can make it meaningful.

Given that it doesn't have an active owner...I don't want the trouble of keeping it working. So I'm moving it to an archived repository.

https://github.com/metaeducation/rebol-zeromq

3 Likes

I was never able to use it because I couldn't find any image that worked with ZeroMQ. I wasn't able to compile it in Linux, and the rest of the details now escape me.

If there were a binary in Windows that I could use, I would

Per our discussion, I believe the hope was that you would evaluate the Linux version, run the sample scripts, and decide if it worked the way you wanted a ZeroMQ extension to work.

The way you've phrased it here sort of explains my point of view... "you must not have been that interested". You could have installed a Virtual Machine or ssh'd into a Linux box to tinker with it, given feedback, done a writeup of the differences between ZeroMQ interfaces you'd seen and the design...

...but all of that would take too much time, in your view. :no_mouth:

The problem is that this viewpoint doesn't really seem to account for my time. If you're too busy for it, then the answer isn't to offload development into my infinite queue. We can't be trading on a ratio of a half hour of your time to two weeks of mine!! It doesn't have to be exactly equal, but it should be some kind of fair proportion.

I'd be happy to come back to any project where the time ratio is going to be fair, and where we can all be enthusiastic together in making something. But that thing has to have tests and produce something more than just a short term solution for one need.

So that's what this refocusing is about. We can put ZeroMQ back on the table if we're going to work together on ZeroMQ and defining what it is and what value it can have in the language.

Previously it was doubly difficult to get the Windows builds to link to ZeroMQ; firstly because Windows doesn't have turnkey installation of development libraries. (Linux has sudo apt-get libzeromq-dev and that's it.) But for Linux-focused open-source libraries, Windows is a second-class citizen...you usually have to use convoluted methods and tools to build the library yourself. Even worse, our Windows Travis builds were cross platform...done with MinGW. So the already-estoeric Windows build process gets made even worse.

But we'd have a better shot now. I'm rigging up GitHub Actions to actually build windows executables on a Windows server, so that would be more viable. If you really want to throw your back into it and join me on the ZeroMQ mission, then ok.

...but as I mentioned--if you just want some free consulting on how to solve a problem on a screen-sharing session--that's also an option. But that solution might not involve me spending days/weeks of coding time on an attempt to make a generic answer that may or may not be what you want anyway. We might just buy a $15 program that does that thing and configure it and go on.