Hello Guilers, And happy birthday Guile! I started this project a few weeks ago, and managed to make enough progress that I thought I'd share it for the potluck. Joy is a simple, forth-like, purely functional, concatenative programming language: https://en.wikipedia.org/wiki/Joy_(programming_language) http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language Attached is a patch to guile master that adds a module/language/joy directory, with lexer, parser, compiler to tree-il, runtime, and minimal standard library. This is still a work-in-progress, but you can already do some fun things: $ guile scheme@(guile-user)> ,L joy joy@(guile-user)> "/base.joy" include . joy@(guile-user)> 2 3 + 4 1 . $1 = (1 4 5) joy@(guile-user)> DEFINE foo == 2 3 + 4 1 ; bar == + + . joy@(guile-user)> foo bar . $2 = (10) joy@(guile-user)> [1 2 3 4 5 6] [fact] map . $3 = ((1 2 6 24 120 720)) joy@(guile-user)> [1 2 3 4 5 6] [fact] map sum . $4 = (873) joy@(guile-user)> [1 2 3 4 5 6] [fact 2 /] map . $5 = ((0 1 3 12 60 360)) My interest in Joy came from a search to find a small language whose minimal base could be implemented as an easily-audited assembly interpreter, but which has higher-level language capabilities. The guile implementation sprang out of a desire to get to know the language a bit more before embarking on the assembly route. Learning more about Guile's multi-language support has been a real pleasure, and I'd love to see it/help it grow more. Limitations and things yet to do: - The compiler and runtime currently do not support "sets" aka bitsets as a native type like the reference implementation does. - String support in the primitives and base library is not complete. I have been toying with the idea of just compiling strings to lists-of-chars for easier handling and simplicity of the primitives. - REPL: A joy-specific writer would be nice. And better backtraces? - Writing more interesting libraries. I had hoped to write a useful parser-combinator library. - Better include-path handling. - Distribution: part of Guile, or separate? Anyhow, I hope some find this interesting. Happy Hacking and happy birthday Guile! `~Eric Bavier