-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No BSD support #220
Comments
@e2 thanks for this great "recipe". I'm sorry for BSD users. |
Truth is - this didn't work for years (comparing bsd.rb history and above patches) and no one really complained or created pull requests. The sadder thing is: if I spent time getting this to work, it wouldn't make many people happy - because there aren't many doing Rails development on *BSD. Why? Probably because there's simply no upside to doing that - none that I know of. I actually dumped Windows completely for FreeBSD back in about 2002 (and soon switched to Linux), so - as my branch suggests - I'm "weeping" a bit. Shedding tears not on how much time it takes to get the basics working, such as patching FFI ... (I won't even mention Celluloid) ... ... but over how there's no good reason out there to sit down and fix it. Here's a "strategy" for getting BSD support working perfectly "out of the box":
This is a month's worth of work (and even that may be underestimating) - and I don't see an incentive to spend a summer doing that instead of e.g. chasing skirts... On top of that - most BSD developers run their OSs inside a VM on their Macs... which makes any commonly claimed benefits of using BSD (performance, security, documentation, kernel, ZFS, SMP, etc.) irrelevant. Philosophy is one thing, but analogically, actually working on *BSD nowadays is like choosing between "patching your hammer (tool) to support *BSD" or "punching in nails with bare knuckles". I.e. you're not going to end up building a lot of new houses (which is the point of "development"). My closure: I've put in more than a reasonable amount of effort as a "thank you" for introducing me to the Unix world years ago. I'm not looking for "personal challenges" in the form of getting listen to work on BSD, because it doesn't help others much (or anyone actually). Summary: the most challenging aspect for *BSDs is ... getting everyone else to care (i.e. Mac and Linux users). And I don't know how fix that (enormous donations?). Then again, neither does the BSD community. |
I'm closing this ("won't fix") since it shows a warning with a link to this issue. Closed in 2.7.5 release: https://github.com/guard/listen/releases/tag/v2.7.5 |
This makes me sad... Have just ported quite a bit of servers to FreeBSD, and would love to have a development jail up and running. I'll try starting to poke some people in the FreeBSD work ther might be able to get this up and running. Thanks for explaining the state of the projects FreeBSD support, this unfortenly for me means that I once again need to find a new development stack -.- |
TL;DR - try it anyway. It could work to the extent you need it. If not, use the LISTEN_GEM_DEBUGGING=1 env var (or =2) and submit pull requests if it's something obvious. @rawzone - it could work to an extent that's "good enough" - there's just a lot of juggling to do (gem versions, branches). If Ruby thread tests don't pass, and Listen heavily depends on Celluloid - things may not work without any indication as what is wrong. Then again, I haven't removed or disabled the support - and I try to apply any changes to it as well. The sad thing is: BSD users are almost non-existent and spending precious hours supporting BSD just for 2-3 people makes little sense if my hands are full anyway. Not to mention - I've already put a lot of work in already to try and get it to work... |
Thank you @e2 for all the research and work you've done on this I don't have a lot of useful and accurate information to give, but
I don't always check all ruby releases, but those last years I never ruby 2.1 included in FreeBSD ports (lang/ruby21):
ruby 2.1.2p95 compiled from official sources:
ruby trunk:
I confirm for past releases, I've been using v0.16.0.pre since some
However, I've been using guard with celluloid v0.16.0.pre since I just checked more recent releases, and it seems all tests are now v0.16.0.pre2:
master:
I don't have exact metrics, but I do remember using guard, listen
I don't know if you meant people who contribute code to those OS, or
This is what I feel when I need to make something work under a kind Sorry not to add any constructive information or code, but I wanted I also have the feeling (maybe I'm wrong), that it may be possible
|
@tjouan - thanks for all the insights. TL;DR; - if other gems get to a point where Listen can work out of the box, I'll reconsider mentioning BSD as supported again. Overall, I just wanted to communicate that FreeBSD didn't work for me (flawlessly - on 4 cores), a quick fix wasn't possible and so I didn't want BSD users to get frustrated from expecting Listen to work out of the box. The nail to the coffin was: no released celluloid and FFI gems working on BSD (the primary reason for the hammer analogy - it's not BSD's fault, just few developers seem to test for BSD specifics out there). Personally, I'd rather drop support for Windows, because it's a horrible platform for development (IMHO), but the obvious reason to support it is: "too many users". (I wish that was more true of BSD than Windows). While BSD is "unsupported", I see no reason why it won't work (given the right patched gems, etc.) - though I'd prefer it remains mentioned as "unsupported" at least until it can work out of the box - and until all the tests run. (That said - there are probably kqueue adapter-specific edge cases as well that are currently unhandled). Then again, Listen itself isn't "supported" (beyond me trying to keep the latest release and master working perfectly), so PRs and questions about getting things working are always welcome. Thanks again for the feedback. |
UPDATE: Ruby (MRI) threads don't work on *BSD
listen
heavily relies on threads and celluloid, fixing BSD issues in listen doesn't make ANY sense at this point.This mandates dropping BSD support completely (maybe forever!)
(I'd say it would take a month full time to get it working properly - time I don't have).
But if you're feeling really, really bored/brave/unchallenged ...
Here's a "recipe" to avoid some of the misery:
After that, you're on your own... but here's a few tips:
LISTEN_GEM_DEBUGGING=1
, which should give you a few *BSD specific "bonuses" for debuggingLISTEN_GEM_DEBUGGING=2
Celluloid.task_class = Celluloid::TaskThread
- it may help with the debuggingbecomes:
For convenience, you'll want to locally check out at least the celluloid repo for hacking and use that from your
listen
Gemfile.Good luck!
The text was updated successfully, but these errors were encountered: