tiflolinux.org - GNU Social
  • Login

Bienvenido

  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:26:52 CEST Shamar Shamar

    At times I wonder if command line arguments are half thought surrogates for a small interpreter in the standard library.

    I wonder how life would be if every single command would implement his own mini language and exec() would take a string to be interpreted instead of an array of... arguments.

    Such interpreter would likely be a sort of lisp (but veeery minimal..), and probably so would be the shell (but a bit more powerful).

    Such approach would have interesting impacts on command line programs and general terminal UX.

    I would not expect much fuss for such change kernel side.

    I wonder if anybody else explored such approach (except on Lisp Machines, obviously)

    In conversation Wednesday, 14-Apr-2021 01:26:52 CEST from qoto.org permalink
    • shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:28:31 CEST Shamar Shamar
      • Ekaitz Zárraga 👹

      @ekaitz_zarraga a cheap alternative to a better solution

      In conversation Wednesday, 14-Apr-2021 01:28:31 CEST permalink
    • shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:36:03 CEST Shamar Shamar
      • Ekaitz Zárraga 👹

      @ekaitz_zarraga I mean: what if instead of "argc" and "argv" you had "length" and "program" where program was just a string to be interpreted in your specific (but very simple and conventional) language?

      What if the shell could apply macro to commands' "programs" before calling exec()?

      And what if the syntax was both homoiconic and pythonic?

      Yes... I should sleep more... but it sounds VERY interesting in my head.

      In conversation Wednesday, 14-Apr-2021 01:36:03 CEST permalink
    • shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:43:55 CEST Shamar Shamar
      • Ekaitz Zárraga 👹

      @ekaitz_zarraga technically speaking, that's true for any operating system (it is at least for #Jehanne and #Plan9): the program image of a program is cached so that already faulted page won't be load twice (unless there's high memory pressure and images are discarded).

      This is a plain advantage of actual binaries over interpreted stuff, I think. And actually it's not easy to achieve outside kernel without an always running virtual machine.

      In conversation Wednesday, 14-Apr-2021 01:43:55 CEST permalink
    • shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:45:51 CEST Shamar Shamar
      • Ekaitz Zárraga 👹

      @ekaitz_zarraga

      Probably Wirth was far ahead of... OUR times.

      In conversation Wednesday, 14-Apr-2021 01:45:51 CEST permalink
    • shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:57:26 CEST Shamar Shamar
      • Ekaitz Zárraga 👹

      @ekaitz_zarraga Said this way, I can stop #Jehanne and redirect the home page to #Oberon! 😄

      In conversation Wednesday, 14-Apr-2021 01:57:26 CEST permalink
    • shamar@qoto.org's status on Wednesday, 14-Apr-2021 01:59:39 CEST Shamar Shamar
      • Ekaitz Zárraga 👹

      @ekaitz_zarraga What I have in mind would be a function that take a string and return an AST. And then functions to traverse/validate/pattern match such AST.

      It would not need a whole Turing complete language (and thus it should NOT be so), but could be more readable than --with-this=that -xcfs or the like.

      AND the shell could do interesting things with the AST before passing to the command.

      In conversation Wednesday, 14-Apr-2021 01:59:39 CEST permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

tiflolinux.org - GNU Social is a social network, courtesy of tiflolinux.org. It runs on GNU social, version 2.0.1-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All tiflolinux.org - GNU Social content and data are available under the Creative Commons Attribution 3.0 license.