~technomancy/fennel

03263b8bea5ccf928978920f5082e42bc69c9ad8 — Phil Hagelberg a month ago 289d55f 0.6.0
Release 0.6.0
6 files changed, 55 insertions(+), 23 deletions(-)

M changelog.md
M fennel.1
M reference.md
A rockspecs/fennel-0.6.0-1.rockspec
M setup.md
M src/fennel.fnl
M changelog.md => changelog.md +2 -1
@@ 1,12 1,13 @@
# Summary of user-visible changes

## 0.6.0 / ???
## 0.6.0 / 2020-09-03

This release introduces the plugin system as well as starting to
sandbox the compiler environment for safer code loading. Nothing is
blocked yet, but it emits warnings when macros use functionality that
is not considered safe; future versions will prevent this.

* Change table reference notation in fennelview to use `@`.
* Fix a bug where long arglists could get jumbled.
* Add plugin system.
* Sandbox compiler environment and emit a warning when it leaks.

M fennel.1 => fennel.1 +3 -0
@@ 83,6 83,9 @@ header files in LUA_DIR. See
.B \-\-compile-binary \-\-help
for details.
.TP
.B \-\-no\-sandbox\-compiler
Do not limit compiler environment to minimal sandbox.
.TP
.B \-h, \-\-help
Print a help message and exit
.TP

M reference.md => reference.md +5 -5
@@ 1005,11 1005,10 @@ command-line argument `--no-sandbox-compiler` or by passing `{:compiler-env
_G}` in the options table when invoking the compiler programmatically.

Note that lists are compile-time concepts that don't exist at runtime; they
are implemented as regular tables which have a special metatable to
distinguish them from regular tables defined with square or curly
brackets. Similarly symbols are tables with a string entry for their name
and a metatable that the compiler uses to distinguish them. You can use
`tostring` to get the name of a symbol.
are implemented as tables which have a special metatable to distinguish them
from regular tables defined with square or curly brackets. Similarly symbols
are tables with a string entry for their name and a marker metatable. You
can use `tostring` to get the name of a symbol.

* `list` - return a list, which is a special kind of table used for code
* `sym` - turn a string into a symbol


@@ 1021,6 1020,7 @@ and a metatable that the compiler uses to distinguish them. You can use
* `gensym` - generates a unique symbol for use in macros.
* `varg?` - is this a `...` symbol which indicates var args?
* `multi-sym?` - a multi-sym is a dotted symbol which refers to a table's field
* `gensym` - generate a guaranteed-unique symbol

* `assert-compile` - works like `assert` but takes a list/symbol as its third
  argument in order to provide pinpointed error messages.

A rockspecs/fennel-0.6.0-1.rockspec => rockspecs/fennel-0.6.0-1.rockspec +31 -0
@@ 0,0 1,31 @@
-- -*- lua -*-

package = "fennel"
version = "0.6.0-1"
source = {
    -- use URL to a pre-built release archive so the standalone launcher can be used
    url = "https://fennel-lang.org/downloads/Fennel-0.6.0.tgz",
}
description = {
   summary = "Lisp that compiles to Lua",
   detailed = [[
A lisp-like language that compiles to efficient Lua. Combine
meta-programming with Lua.]],
   homepage = "https://fennel-lang.org/",
   license = "MIT"
}
dependencies = {
   "lua >= 5.1"
}
build = {
   type = "builtin",
   modules = {
       fennel = "fennel.lua",
       fennelview = "fennelview.lua",
   },
   install = {
       bin = {
           fennel = "fennel"
       },
   }
}

M setup.md => setup.md +13 -16
@@ 13,9 13,6 @@ will not be covered in this document.
Downloading Fennel on your computer allows you to run Fennel code and
compile to Lua. You have a few options for how to install Fennel.

**Tip**: Fennel comes included in [TIC-80](https://tic.computer), so you
won't need to download Fennel if you already have TIC-80 installed.


### Downloading the fennel script



@@ 28,12 25,12 @@ installed on your system.
This method requires you to manually update the `fennel` script when
you want to use a newer version that has come out.

 1. Download [the fennel script](https://fennel-lang.org/downloads/fennel-0.5.0)
 2. Run `chmod +x fennel-0.5.0` to make it executable
 3. Download [the signature](https://fennel-lang.org/downloads/fennel-0.5.0.asc)
 4. Run `gpg --verify fennel-0.5.0.asc` to verify that the fennel
 1. Download [the fennel script](https://fennel-lang.org/downloads/fennel-0.6.0)
 2. Run `chmod +x fennel-0.6.0` to make it executable
 3. Download [the signature](https://fennel-lang.org/downloads/fennel-0.6.0.asc)
 4. Run `gpg --verify fennel-0.6.0.asc` to verify that the fennel
    script is from the Fennel creators (optional but recommended)
 5. Move `fennel-0.5.0` to a directory on your `$PATH`, such as `/usr/local/bin`
 5. Move `fennel-0.6.0` to a directory on your `$PATH`, such as `/usr/local/bin`

**Note**: You can rename the script to `fennel` for convenience. Or
you can leave the version in the name, which makes it easy to keep


@@ 46,14 43,14 @@ Downloading a Fennel binary allows you to run Fennel on your computer without
having to download Lua, if you are on a supported platform.

 1. Choose one the options below, depending on your system:
      - [GNU/Linux x86_64](https://fennel-lang.org/downloads/fennel-0.5.0-x86_64)
        ([signature](https://fennel-lang.org/downloads/fennel-0.5.0-x86_64.asc))
      - [GNU/Linux arm32](https://fennel-lang.org/downloads/fennel-0.5.0-arm32)
        ([signature](https://fennel-lang.org/downloads/fennel-0.5.0-arm32.asc))
      - [Windows x86 32-bit](https://fennel-lang.org/downloads/fennel-0.5.0-windows32.exe)
        ([signature](https://fennel-lang.org/downloads/fennel-0.5.0-windows32.exe.asc))
 2. Run `chmod +x fennel-0.5.0*` to make it executable (not needed on Windows).
 3. Download the signature and confirm it matches using `gpg --verify fennel-0.5.0*.asc`
      - [GNU/Linux x86_64](https://fennel-lang.org/downloads/fennel-0.6.0-x86_64)
        ([signature](https://fennel-lang.org/downloads/fennel-0.6.0-x86_64.asc))
      - [GNU/Linux arm32](https://fennel-lang.org/downloads/fennel-0.6.0-arm32)
        ([signature](https://fennel-lang.org/downloads/fennel-0.6.0-arm32.asc))
      - [Windows x86 32-bit](https://fennel-lang.org/downloads/fennel-0.6.0-windows32.exe)
        ([signature](https://fennel-lang.org/downloads/fennel-0.6.0-windows32.exe.asc))
 2. Run `chmod +x fennel-0.6.0*` to make it executable (not needed on Windows).
 3. Download the signature and confirm it matches using `gpg --verify fennel-0.6.0*.asc`
    (optional but recommended).
 4. Move the downloaded binary to a directory on your `$PATH`, such as `/usr/local/bin`


M src/fennel.fnl => src/fennel.fnl +1 -1
@@ 95,7 95,7 @@

            :eval eval
            :dofile dofile*
            :version "0.6.0-dev"
            :version "0.6.0"

            :repl repl})