1. 1

    Is there a place where FLENG developers/users/interested parties hang and chat - mailing list or online hangout?

    1. 2

      A gitlab repository has been set up here: https://gitlab.com/b2495/fleng, bug reports and suggestions are very welcome!

      1. 2

        Sorry, no, nothing exists in that regard yet, as I got relatively little feedback so far (probably exactly because there is no central place to report bugs, ask qestions, etc…. :-) A public git repository would also be nice, but I’m not sure where to host this. I will try to set something up. Stay tuned!

        1. 2

          I have also created a temporary channel named “#fleng” on libera.chat (hopefully to be registered soon), feel free to join!

          1. 1

            This is great thanks! I’ll definitely drop in.

        1. 1

          Hello. This looks very interesting. What would you say is the main differentiator from eg Erlang+HiPE (apart from not being basically deprecated) or Erlang+JIT? And what impact does having such a good interop story have on performance/response time guarantees? Like an Erlang NIF has to respond in 1ms to retain the soft real time guarantees, is there an equivalent restriction for C/C++ code included in FLENG projects? Or is the soft real-time stuff not such a goal?

          1. 2

            The restrictions that I can make out from erl_nif seem to be similar to what you have in FLENG: lengthy operation of a foreign call would block the current thread that the process runs on as long as the foreign code executes, and as long as all parameters are provided (this is something the set-up to the foreign call has to ensure, by forcing whole or partial arguments to be instantiated). Having a general mechanism to provide any sort of soft real-time guarantee would be mightily complex and would probably be more in the user’s way than giving much of any benefit.

            Thanks for pointing out this issue, I have not considered this so far, assuming that foreign code should in general do small amounts of work of (more or less) bounded timespan. I will try to clear this up in the manual.

            1. 1

              Thanks!

          1. 23

            I enjoyed this quite a bit when I first saw it, and I still do kinda enjoy the original - it was never meant to be taken too seriously of course and it succeeds as a joke - but since then, the word “wat” has become a trigger of rage for me.

            These things tend to have a reasonable explanation if you take the time to understand why it does what it does. They tend to be predictable consequences of actually generally useful rules, just used in a different way than originally intended and coming out a bit silly. You might laugh but you can also be educated.

            But you know how often I see people taking the time to try to understand the actual why? Not nearly as often as I see people saying “WAT” and just dismissing things and calling the designers all kinds of unkind things. And that attitude is both useless and annoying.

            1. 38

              These things tend to have a reasonable explanation if you take the time to understand why it does what it does. They tend to be predictable consequences of actually generally useful rules, just used in a different way than originally intended and coming out a bit silly.

              For me the most important takeaway is that rules might make sense by themselves, but you have to consider them in the bigger picture, as part of a whole. When you design something, you must keep this in mind to avoid bringing about a huge mess in the completed system.

              1. 4

                Exactly. It is generally underappreciated how incredible hard language design is. The cases Bernhardt points out are genuine design mistakes and not just the unfortunate side effects of otherwise reasonable decisions.

                That’s why there are very few languages that don’t suffer from ugly corner cases which don’t fit into the whole or turn out to have absurd oddities. Programming languages are different, contrary to the “well, does it really matter?” mindset.

                1. 3

                  I don’t know. What I always think about JS is that R4RS Scheme existed at the time JS was created and the world would be tremendously better off if they had just used that as the scripting system. Scheme isn’t perfect but it is much more regular and comprehensible than JS.

                  1. 3

                    I think one have to remember the context in which JavaScript was created; I’m guessing the main use case was to show some funny “alert” pop-ups here and there.

                    In that context a lot of the design decisions start to make sense; avoid crashes whenever possible and have a “do what I mean” approach to type coercion.

                    But yeah, I agree; we would’ve all been better off with a Scheme as the substrate for maybe 80% of today’s end-user applications. OTOH, if someone would’ve told Mozilla how successful JS would become we could very well have ended up with some bloated, Java-like design-by-committee monstrosity instead

                  2. 2

                    I don’t think I know a single (nontrivial - thinking about brainfuck/assembly maybe) programming language with no “unexpected behaviour”.

                    But some just have more or less than others. Haskell, for example, has a lot of these unexpected behaviours but you tend not to fall on these corner cases by mistake. While in javascript and Perl, it is more common to see such a “surprise behaviour” in the wild.

                    Another lesson I gather from this talk is that you should try to stick as much as possible in your well-known territory if you want to predict the behaviour of your program. In particular, try not to play too much with “auto coercion of types”. If a function expects a string, I tend not to give it a random object even if when I tried it, it perform string coercion which will most of the time be what I would expect.

                    1. 1

                      Well, there are several non-trivial languages that try hard not to surprise you. One should also distinguish betweem “unexpected behaviour” and convenience features that turn out to be counterproductive by producing edge-cases. This is a general problem with many dynamically typed languages, especially recent inventions: auto-coercion will remove opportunities for error checking (and run-time checks are what make dynamically typed languages type-safe). By automatic conversion of value types and also by using catch-all values like the pervasive use of maps in (say) Clojure, you effectively end up with untyped data. If a function expects a string, give it a string. The coercion might save some typing in the REPL, but hides bugs in production code.

                  3. 3

                    In javascript, overloading the + operator and the optional semicolon rules I would call unforced errors in the language and those propagate through to a few other places. Visual Basic used & for concatenation, and it was very much a contemporary of JS when it was new, but they surely just copied Java’s design (which I still think is a mistake but less so given the type system).

                    Anyway, the rest of the things shown talk I actually think are pretty useful and not much of a problem when combined. The NaNNaN Batman one is just directly useful - it converts a thing that is not a number to a numeric type, so NaN is a reasonable return, then it converts to string to join them, which is again reasonable.

                    People like to hate on == vs === but…. == is just more useful. In a dynamic, weakly typed language, things get mixed. You prompt for a number from the user and technically it is a string, but you want to compare it with numbers. So that’s pretty useful. Then if you don’t want that, you could coerce or be more specific and they made === as a shortcut for that. This is pretty reasonable. And the [object Object] thing comes from these generally useful conversions.

                    1. 3

                      == vs ===

                      It definitely makes sense to have multiple comparison operators. Lisp has = (numeric equality), eq (object identity), eql (union of the previous two), equal (structural equality).

                      The problem is that js comes from a context (c) in which == is the ‘default’ comparison operator. And since === is just ==, but more, it is difficult to be intentional about which comparison you choose to make.

                      1. 1

                        Well, a lot of these things boil down to implicit type coercion and strange results due to mismatched intuitive expectations. It’s also been shown time and again (especially in PHP) that implicit type coercions are lurking security problems, mostly because intuition does not match reality (especially regarding == and the bizarre coercion rules). So perhaps the underlying issue of most of the WATs in here simply is that implicit type coercion should be avoided as much as possible in languages because it results in difficult to predict behaviour in code.

                        1. 1

                          Yeah, I perfer a stronger, static type system and that’s my first choice in languages. But if it is dynamically typed… I prefer it weaker, with these implicit coercion. It is absurd to me to get a runtime error when you do like var a = prompt("number"); a - whatever; A compile time error, sure. But a runtime one? What a pain, just make it work.

                          1. 3

                            Lots of dynamic languages do this (e.g. Python, Ruby, all Lisp dialects that spring to mind), and IME it’s actually helpful in catching bugs early. And like I said, it prevents security issues due to type confusions.

                    2. 10

                      Yeah, I think that this talk was well-intentioned enough, but I definitely think that programmers suffer from too much “noping” and too little appreciation for the complexity that goes into real-world designs, and that this talk was a contributor… or maybe just a leading indicator.

                      1. 6

                        There was a good talk along these lines a couple of years ago, explaining why javascript behaves the way it does in those scenarios, and then presenting similar ‘WAT’s from other languages and explaining their origins. Taking the attitude of ‘ok this seems bizarre and funny, but let’s not just point and laugh, let’s also figure out why it’s actually fairly sensible in context’.

                        Sadly I can’t find it now, though I do remember the person who delivered it was associated with ruby (maybe this rings a bell for somebody else).

                        1. 1

                          Isn’t the linked talk exactly the talk you’re thinking about? Gary is ‘associated with’ Ruby and does give examples from other languages as well.

                          1. 2

                            No. I was thinking of this, linked else-thread.

                        2. 3

                          While things might have an explanation, I do strongly prefer systems and languages that stick to the principle of least surprise: if your standard library has a function called ‘max’ that returns the maximum value in an array and a function called ‘min’ that returns the position of the minimum element instead, you are making your language less discoverable and putting a lot of unnecessary cognitive load on the user.

                          As someone who has been programming for over 20 years and is now a CTO of a small company that uses your average stack of like 5 programming languages on a regular basis I don’t want to learn why anymore, I just want to use the functionality and be productive. My mind is cluttered with useless trivia about inconsistent APIs I learned 20, 15, 10 years ago, the last thing I need is learning more of that.

                        1. 6

                          Yeah, CSV is bad. But try to find any file format for data interchange that can be easily handled on the command line and that, at the same time, is something which institutional (scientific, gouvernmental) bodies can handle. There is none. Just accept that you might have to tweak your data-conversion all the time, or that you even manually adjust things, because all alternatives are much worse.

                          CSV is just a meta-format, the problems with its usage comes from careless data formatting and borked exporting from tools (e.g. Excel), not from the format itself.

                          1. 9

                            Can we get a ‘marxist’ tag so we know when an article is about profit being evil?

                            There is no such thing as free in capitalism. If a for-profit corporation, like Microsoft, gives you something free, be prepared to become raped at some point.

                            jesus christ

                            1. 8

                              Just because something is anti-capitalist doesn’t make it Marxist. Marxism is a specific set of analysis and critiques of capitalist economics that goes beyond “capitalism bad big companies evil”.

                              1. 3

                                Change it to anti-capitalist then, i’m not picky.

                                1. 1

                                  Is open source anti-capitalist, in your opinion?

                                  1. 4

                                    No, not at all.

                              2. 4

                                The revolution is not an apple that falls when it is ripe, You have to make it fall, comrade.

                                1. 4

                                  I found the post to be utter garbage, but (to be fair) the real complaint seems to be monopolization, rent-seeking and putting a community commons behind paywalls are evil. If you read the entire screed, the article is not just about MSFT making a profit but the author’s claim that MSFT is trying to assert full control over the TypeScript/JavaScript open source community/project/whatever for maximum profit. I’d hope we could agree, if that were true, that it would be bad and that all pursuit of profits are not equal.

                                  1. 2

                                    sure, i just wonder how they would do that, and the article doesn’t give a hint. For now, they support the free software community with free code hosting, a free high-quality editor, free js package hosting and created a free (as in beer) javascript-like language. That’s a lot of good things. If they switched to ‘let’s be evil’ mode, people could move away from them rather easily (although admittedly not trivially). The biggest JS client runner is still Google Chrome, so MS doesn’t control the front- and backend.

                                    1. 2

                                      The article doesn’t give a hint because there’s no hint to be given. While I’m no fanboy for MSFT, what they’re doing with TypeScript and VSCode, etc. seems fairly benign. Yeah, they want to “own” that developer profile in the sense that they want developers to use their stuff / target their platforms. So they’re doing the work to make that happen.

                                      Would the world be better off if it were Google or Apple or Oracle or whomever bought NPM, GitHub and invested in a superset language for JS? I really doubt it. I also doubt that MSFT bought GitHub just to dominate the JS/TypeScript developer community… the whole post is just a rant that isn’t even well supported.

                                      1. 1

                                        Would the world be better off if it were Google or Apple or Oracle or whomever bought NPM, GitHub and invested in a superset language for JS?

                                        It’s kind of sad that the only alternative to Microsoft that comes to mind is “well, another giant multinational corporation could have bought it.”

                                  2. 3

                                    That’s the part of the quote you find objectionable? Not the comparison have having to pay for software to being a victim of sexual violence?

                                    1. 7

                                      I quoted it in full because it’s one thought and I did find this exact thing objectionable.

                                  1. 5

                                    CPS as an intermediate representation of compilers can actually make the CPS more efficient than the direct encoding, as it matches the compiler’s model of the control flow graph more closely (and CPS is structurally equivalent to SSA). The really important point is closure representation, which can make the CPS variant very efficient even with a compiler that is not “sufficiently smart”, when you have optimizations like what Appel called “callee save registers” and specialized representations (as described in the papers on closure analysis from Zhao, which I believe, have been implemented in SML/NJ). Escape analysis is crucial, of course, but even a direct style compiler will have to do this to be competitive.

                                    So, unless the compiler is very simple or when continuation closures escape, it basically doesn’t make a difference what style you use, with the exception that the performance of the worst case (the continuation itself escapes) will always be abysmal with the direct style compiler.

                                    1. 5

                                      Languages that blew my mind where: Lisp, Prolog, APL, FP, Forth, Strand, Verilog, in roughly that order. Note that it is not sufficient to just dabble with a language to get the real “feel” for its peculiarities. Ideally, one should try to implement a language to truly attempt to understand it.

                                      1. 1

                                        Nice! Is this a successor to Strand? Could you elaborate on the differences?

                                        1. 2

                                          Indeed, after learning a lot from implementing Strand, I was able to start fresh while still taking over some ideas,

                                          From the implementation side: the runtime system is written in C (and not Forth), and the compiler generates x86-64 or arm32 assembler and the overall system is much faster. Calling C code is relatively straightforward. The system uses a refcounting GC (no pauses) and utilizes native threads (with no shared heap), but there are currently no facilities for distributed computing (yet). I was able to be slightly more faithful in the implementation of non-determinism: clause selection can now suspend on multiple variables (but matching still takes place sequentially).

                                          From the language side: FLENG is very low level, but FGHC is basically Strand with full (output-) unification.

                                        1. 1

                                          Right on the spot. Thank you, Mr. Ohno.

                                            1. 24

                                              One can no more dissuade a visionary of this kind than one can dissuade a member of the Fabian Society from the virtues of global humanitarian government, but then neither will the vox populi of provincial yokels be of any use in countering it. One can only stoically resign to the pull of inexorable necessity.

                                              With the help of an Internet search query or two, and a good deal of re-reading, I could probably figure out what this means. But I am le tired. And I haven’t even gotten through the first chapter.

                                              This brings up a different controversy: Is writing like this useful to stretch peoples minds, help them grow? Or does it just discourage people and make them feel dumb? Is writing a form of art, or a means of communication, or both?

                                              From my perspective, it looks more focused on artistry than actually communicating and transferring knowledge. Which isn’t necessarily a bad thing.

                                              1. 23

                                                It’s called “purple prose”.

                                                1. 2

                                                  That’s exactly what I was referring to, TIL.

                                                2. 9

                                                  From my perspective, it looks more focused on artistry than actually communicating and transferring knowledge.

                                                  Your perspective may change if you finish reading the document before dashing off to post a comment about the style instead of the substance of the source material. :)

                                                  It goes on to give a lot of historical context on previous attempts and on systems issues.

                                                  1. 9

                                                    That’s the point though - I’d happily read the whole thing, if I had the mental capacity to do so. I’m sure there’s plenty of good info in there, but it’s buried under so much prose that I feel like I need a college degree to begin understanding it.

                                                    1. 4

                                                      The point that you mentioned is a local maximum in terms of hard-to-read prose, and (from my reading up to section 2.3) I believe it is a global maximum too - the text is much nicer almost from that passage onward and I only found one other spot that I believe to be particularly egregious. I encourage you to keep going! I very much dislike the Unix culture and tooling in general, but found this article to be fascinating anyway.

                                                      1. 1

                                                        I sampled towards the end and found the prose similarly tiresome.

                                                      2. 4

                                                        Not every reader is native English speaker (and reader). Reading this style is very demanding and makes it harder to focus on the main topic. I have no idea if there are expressions hidden that I don’t know yet, or if a reference in the text is key to the final point.

                                                      3. 9

                                                        You make the mistake of implying that there’s an objective way to communicate clearly and it’s not instead dependent on the listeners.

                                                        Most tech documentations, even when assuming no previous knowledge from the reader, would be unreadable for most people for the sole reason of their structure and dryness.

                                                        You’re witnessing something written by a person that is on the boundary between different worlds and can merge them into a single piece of writing and this confuses you. It’s normal and probably the author did it deliberately.

                                                        Lot of us programmers on the left are keen in rupturing the cultural and social bubble in which the tech sector is entrenched and I wouldn’t be surprised if the author wrote the piece in this way to deliberately challenge the stylistic elements of engineer-oriented writing.

                                                        1. 7

                                                          I agree, but I think it’s just interesting that the author seems to have raised the educational bar, not lowered it. Now you have to be an engineer AND a literary genius to understand what’s being written.

                                                          And I’m not saying this is necessarily a bad thing. I’m just noting that it’s unapproachable for people like me. I’m sure after a bit more education and time, I’ll appreciate it too.

                                                          1. 13

                                                            You don’t have to be a genius to understand that paragraph, just literate. I understood it just fine and the highest formal education I’ve received is community college.

                                                            Anyone who works in software is accustomed to googling tech jargon they’re unfamiliar with and learning as they go. I think it is interesting that you balk at doing this in a humanities context and perhaps that was the point.

                                                            1. 4

                                                              I think you hit the nail on the head. It sounds to me like you’ve put in the hard work to understand and appreciate this kind of writing, and that is truly awesome (no sarcasm there). For me, I could totally figure this out, no doubt about it. But it would still be quite the slog, because I haven’t invested quite as much hard work as you have into the humanities yet. And that’s ok.

                                                              That’s why I say this “isn’t necessarily a bad thing.” I could use some more development in my humanities skills! But if the goal is to communicate ideas, then writing like this will only communicate ideas to a gifted few who are good at both engineering and humanities. Again: Not necessarily a bad thing.

                                                            2. 1

                                                              If you want to start from somewhere, I suggest you read Geek Sublime from Vikhram Chandra. He’s both a programmer and a novelist.

                                                            3. 1

                                                              Lot of us programmers on the left are keen in rupturing the cultural and social bubble in which the tech sector is entrenched

                                                              And yet you at the same time alienate readers who’ve never studied literature in English, nor English literature. More often than not from second and third world countries.

                                                              1. 6

                                                                We write in different ways to reach different audiences in different ways. I never said everything should be written this way. There’s a growing idea of writing more propaganda disguised as tech opinion pieces using a language that programmers like. I mean, the far-right has been doing that for three decades now, it’s time for the left to react.

                                                                The “poking” at the bubble is complementary and clearly doesn’t aim at reaching the masses, but just at bringing out those that have the potential to connect with those readings.

                                                                Also I’m not American, I’m not an English native speaker and in “second and third world countries” humanities are usually valued a lot more than in the protestant anglosphere, so I don’t get your point.

                                                            4. 8

                                                              This is the “English (Literary)” locale where it is assumed you know your leftist lore (and French philosophy). Not my thing but sometimes the references lead to interesting wikipedia pages.

                                                              1. 11

                                                                This brings up a different controversy: Is writing like this useful to stretch peoples minds, help them grow? Or does it just discourage people and make them feel dumb? Is writing a form of art, or a means of communication, or both?

                                                                When I was younger I thought that impressing people with my vocabulary is the utmost purpose of my writing, but as years have gone on I have realized that this is just mental peacocking (to use a friendly term). The real greatness is to convey information (or even humor) using simple language while staying informative and engaging. I have been way more impressed with authors being able to write like this than people who just show they own a thesaurus.

                                                                1. 6

                                                                  This brings up a different controversy: Is writing like this useful to stretch peoples minds, help them grow? Or does it just discourage people and make them feel dumb? Is writing a form of art, or a means of communication, or both?

                                                                  I would argue the former. You’ve learned a little more about the world by virtue of looking up a literary or cultural reference you didn’t previously understand. I’ve done this with plenty of texts I’ve read, in English and particularly in other languages (English is my cradletongue). Of course you weren’t obligated to do so - you could’ve decided that this article about systemd written using these kinds of literary references wasn’t worth your time to understand, and if enough people thought similarly, it would lose a substantial portion of its potential audience. But using literary and cultural references is something that writers and speakers do in pretty much every genre of human communication; and it’s only because this author happened to choose ones that you were unfamiliar with, that you found it something worth remarking on.

                                                                  1. 3

                                                                    I found it really funny. To me, that kind of descriptiveness adds humor, but maybe I’m the only one? Like putting an eccentric accent on a movie character.

                                                                    1. 1

                                                                      i found it pretty funny too :)

                                                                    2. 2

                                                                      I think the article would be much longer if it wasn’t for the use of various literary devices for compression.

                                                                      Maybe that would be for the better as more people would benefit from reading it.

                                                                      On the other hand, it’s useful to have someone shine a light on gaps in your knowledge of things which used to be well known. Certainly I don’t think that a lot of the things referred to in the writing should be particularly exotic, yet sadly they are.

                                                                      Finally, I personally get some enjoyment from reading things like these. It’s the kind of enjoyment I get from reading old books. Difficult to read but full of very interesting ideas.

                                                                      1. 2

                                                                        Is writing like this useful to stretch peoples minds

                                                                        While I do not particularly like the style of this text, I appreciate any kind of writing style that does not resemble the current “ted-talk” style uncultured vomit that is becoming the style of almost everybody today.

                                                                        1. 2

                                                                          I”m less offended by the use of some obscure terms and references than by the implicit comparison of a Gnome maintainer to a follower of Stalin:

                                                                          And if we are to take the “revolution OS” metaphor further, then Bassi’s position is not unlike Stalin’s defense of the need of a vanguard party in The Foundations of Leninism (1924), with those opposed consequently in the role of Trotskyites, Zinovievites and ultra-leftists: “The theory of worshipping spontaneity is decidedly opposed to giving the spontaneous movement a politically conscious, planned character. It is opposed to the Party marching at the head of the working class, to the Party raising the masses to the level of political consciousness, to the Party leading the movement; it is in favour of the politically conscious elements of the movement not hindering the movement from taking its own course; it is in favour of the Party only heeding the spontaneous movement and dragging at the tail of it.”

                                                                          1. 2

                                                                            Arguably, in many historical cases, such ways of expression were used to hide the real meaning, a sort of emphemization. It was especially used when it came to criticizing a point of view, to filter out as many people as possible to not bear the consequences of saying clearly what you intended to say. The more fluff and ambiguity the more you can hide behind it.

                                                                            EDIT as this comment says, it’s called “purple prose”.

                                                                            1. 1

                                                                              FWIW, here’s my translation:

                                                                              You can’t dissuade visionaries like this, and the popular bloggers won’t help you counter them either. All you can do is give in [and use the visionaries’ stuff?]

                                                                              Without the context of the surrounding paras I don’t really know what they were getting at.

                                                                              I think people write like this because it’s fun for the writer, not necessarily for the reader ;)

                                                                              Edit: the context is:

                                                                              • The Fabian Society is a British internationalist lefty think tank. Because they’re internationalist and lefty (but not anarchists), they’d probably really like a global humanitarian government.

                                                                              • “vox populi” is latin for “voice of the people” and sometimes means the “opinion of the people”, but that bit is a bit clumsy anyway.

                                                                            1. 1

                                                                              Try PROLOG, if you manage to explore it deeply enough, it changes the way you think about programming.

                                                                              1. 5

                                                                                I can recommend this book highly, particularly the experience reports from engineers who describe how they brought up Smalltalk systems on various machines with nothing but a binary image and an abstract VM description.

                                                                                1. 6

                                                                                  When you get stuck, simplify, either the code or the problem you are trying to solve. (this isn’t overly profound, but when taken seriously, it requires sometimes the courage to reduce your expectations)

                                                                                  1. 3

                                                                                    There has been a wealth of research in parallel logic languages (Concurrent Prolog, GHC, Parlog, Strand) which unfortunately got lost with the death of Japan’s 5th generation project. I find this approach (implicit fine-grained parallelism) very natural and elegant.

                                                                                    1. 7

                                                                                      What nonsense. As if the speed of hammering code into an editor says anything about the abilities to program…

                                                                                      1. 1

                                                                                        In the post I’m very clear that it relates to all aspects of coding, not just writing the code. That is to say, writing commit messages, writing commands, communicating with remote team mates, searching online for answers, etc. There are a lot of aspects to the daily code cycle other than just typing code itself which still involve typing.

                                                                                        But I appreciate the comment.

                                                                                        1. 1

                                                                                          You mix up a personal metric of “productivity” (producing certain amounts of text by a keyboard in a certain time) as an indicator of quality and I can tell you from personal experience that this is utterly wrong. What makes you a better programmer is reducing the amount of typing through automation and thus making superfluous typing unnecessary.

                                                                                          1. 1

                                                                                            I mean, I could also tell you the opposite from “personal experience”. It’s difficult to make arguments based on that.

                                                                                            What kind of automation are you talking about in this regard?

                                                                                      1. 1

                                                                                        To those still interested: a new release (version 2) is now available, with quite a number of bug fixes and improvements. Many thanks to @jacereda for fixing several problems on Darwin!

                                                                                        1. 7

                                                                                          I use rc(1), the only shell that doesn’t confuse me endlessly with absurd quoting problems. Now I actually enjoy writing shell scripts…

                                                                                          1. 2

                                                                                            I wrote a dotfile manager in rc and it was such a breath of fresh air. Just reading the documentation honestly made me happy, and not much documentation does that! I don’t think I could ever use it as an interactive shell though, and I still write most scripts in portable sh, but I do wish rc were more ubiquitous.

                                                                                            1. 1

                                                                                              I loved using RC but eventually gave up and use zsh (home) and bash (work).

                                                                                              1. 1

                                                                                                I use rc as my fulltime shell as well - specifically Byron’s rc which cleans up some of the silly “if not” logical things.

                                                                                              1. 1

                                                                                                I’m going to download this and look at it, but the 32 thread POWER9 under my desk is salivating at this. What are the system dependent portions I would need to write to port it to Power ISA?

                                                                                                1. 2

                                                                                                  Look at forth/k-x86_64.s. You’d need to write those primitives for POWER9 and cross-build the boot image from a supported system.

                                                                                                  1. 2

                                                                                                    As jacareda said - the assembly language kernel some information about system calls in sys.f are needed. In fact, I have most of the stuff ported (but completely untested). Please contact me, if you are still interested.