1. 26


This work proposes Magritte, a general-purpose language that is viable as a shell scripting language. Like shells, it manages concurrent processes which are composed by connecting implicit input and output streams with a pipe. Unlike traditional bytestream-based pipes, however, Magritte pipes can process rich values, enabling their use as a more general composition mechanism, which enables Magritte to express concurrent processes as normal functions.

Included in the design are modern language features such as data structures and lambda functions with lexical scope, as well as systems for automatic process cleanup and error handling. The syntax is also designed to optimize for command-line usability.

This work also presents an implementation, along with a proposed method of integration with a POSIX system.


  2. 3

    I literally LOLed when I read the name

    1. 2

      But more seriously: This looks like a well-designed shell replacement. I wonder if it’ll catch on

      1. 1

        I don’t get it, could you explain?

        1. 2

          There’s a famous painting by Magritte involving a pipe.

      2. 3

        The evaluation criteria are interesting:

        it is appropriate for writing large programs

        Some days I think it would be interesting to see a shell language designed for small, shell-size programs.

        1. 1

          I see this in Bash in almost every way. I wonder what you think would need to change for Bash to be more appropriate for only small programs?

        2. 1

          Har, har. Good name.