1. 1

    Wow, such simple yet useful idea. Great job!

    Could you add some explicit version number to it? I’d like to have it packaged for Void Linux but we need version number for that :)

    1. 2

      Hey! Thanks! I’ll add a version number to it. You might have a naming conflicting with https://github.com/maandree/pp tho.

        1. 1

          Thank you <3

    1. 4

      It’s a bummer that most of the Lua ecosystem is stuck on 5.1 due to LuaJIT compatibility.

      1. 1

        Would you happen to know if there is any particular reason for this?? Apart from lack of time.

        1. 1

          My high-level understanding is the implementation of how integers were added in 5.3 conflicts with some of the optimizations LuaJIT does. (Also “lack of time” is a bit of an oversimplification; Mike Pall, the superhero genius author of LuaJIT is retired and there’s only one or two other humans on the planet as smart as he is.)

          1. 1

            it’s a shame I really like the focus on minimalism. Seems like the javascript hipsters that dominates the current generation never have seen a modem. I find the wastefulness of much of modern tools to be distasteful. lua is one of the best arguments that you can achieve a lot with very little.

            Beutifully designed and fun language as well. It’s a shame to hear of the state of luajit as JIT really is necessery for the language to compete.

            1. 5

              The default interpreter is also fast (faster than Python or Ruby) and I’m using it successfully at work to parse SIP messages (well, Lua and LPEG) in real time.

          2. 1

            It’s largely due to Mike Pall (creator of LuaJIT) having a fundamental disagreement with how globals are handled in Lua 5.2 and above—the entire mechanism changed (and it affected how modules are written as well). In Lua 5.1, globals are stored in a table associated with a function (its so called “environment”), and there were two functions to manipulate this (getfenv() and setfenv() in Lua; lua_getfenv() and lua_setfenv() from C). This changed in Lua 5.2 to a local variable (technically, an “upvalue”) holding the global variables (by the name of _ENV). It may have been too much of a change to deal with it properly in LuaJIT, I don’t know as I haven’t looked into the guts of it.

          3. 1

            Why do you think this is a “bummer”? Lua 5.1 is perfectly capable, 5.2-3 have had very minor changes (unless it was something you really cared about like an integer type).

            Granted a generational gc could be significant for long running scripts, but my impression is most lua usage is not long running scripts. That’s my impression at least.

            1. 2

              How modules work is a bit more than “very minor change” so at the time, I didn’t feel any compelling reason to even use Lua 5.2. Lua 5.3 introduced 64-bit integers and byte packing functions that were compelling enough to switch to (plus a UTF-8 module and built in boolean operators). There are some minor annoyances to deal with (mainly around module definitions and some C API changes) but I was able to get the modules I’ve written to work with Lua 5.1 through Lua 5.3 (I’m still waiting for the official release of Lua 5.4 before updating my modules).

              1. 1

                It’s not that bad but it makes more work for people who write libraries for Lua. Currently most libs support both 5.1 and 5.3. There is even library that helps in writing compatible code. It will just get harder with every breaking change in Lua.

                1. 1

                  my impression is most lua usage is not long running scripts.

                  Isn’t this a bit of a circular argument? Lua isn’t used for long-running scripts because its GC isn’t that good; Lua doesn’t need a good GC because it’s not used for long-running scripts.

                  1. 3

                    We use long running Lua based (5.1) programs at work and we’ve had no issues with the GC. And by “long running” I mean “around six months or so between deployments [1].”

                    [1] Due to several factors we don’t move fast and break things—the SLAs and updating procedures we have with the Monopolistic Phone Company precludes doing that.

              1. 1

                I hope Mint will gain traction, it looks like great alternative for Elm. It is much simpler and allows easy js interop.

                1. 2

                  I love to play VimGolf using Kakoune. While golfing is mostly entertainment, optimal solutions are usually close to „real world” usage. It’s also wildly satisfying when you manage to beat Vim in it’s own game ;)

                  1. 5

                    It seems that people who prefer white/light backgrounds in terminal/editors are in minority. Personally I find light background less tiring for my eyes. I use Selenized color scheme.

                    1. 4

                      I do, Mastodon replaced Twitter for me. I mean I still follow people on Twitter but most of my activity is on Mastodon now. It’s smaller community but fortunately there is plenty of tech people and artists out there. My account if anyone is interested in nerdy rambling and generative art.

                        1. 2

                          Personally I love Lit css. It’s work of art :)

                          1. 2

                            While it’s small, it’s not a “classless” CSS framework so it’s not quite in the same ballpark of all these other frameworks. I think the whole point of the other frameworks and OP is that you just add them and you’re done.

                            1. 1

                              ah, yes you are right. While most stuff will work without classes, you need at least container for good spacing.

                          2. 1

                            Another alternative is Marx https://mblode.github.io/marx/.

                          1. 9

                            If anyone is interested in seeing Kakoune in action, without installing it: there is website showing bunch of VimGolf challenges solved with Kakoune - Kakoune Tv. Nice thing is that every key press is explained there.

                            Of course golfing is a bit different from normal usage (but in case of Kakoune optimal solutions are usually close to things you do every day).