fix: on windows, make doc special output crlf

Resolves #354 (on github)

This updates the doc special so that it checks if running in windows
(stupidly, by comparing the path separator  against "\\"), and
conditionally outputs the docstring with \n replaced by \r\n.

This also conditionally modifies the docstring test cases when run on
Not every C compiler knows -dumpmachine.
Mention libera in code of conduct.
readme: replace freenode link with with libera.chat
10c097e9 — Ma'or Kadosh 3 months ago
mention allowedGlobals in the tutorial

Inspired by the following problem I've experienced when interfacing with Luakit:
Disambiguate parens better in tset.

Sadly Lua is not a lisp, so it has bizarre rules around precedence
when it comes to parens. This should catch another weird edge case as
per https://todo.sr.ht/~technomancy/fennel/58
Modify string escaping test since once again PUC 5.1 is bananas.
Detect failure to parse string literals with invalid escape sequences.

Fixes #357
A few more notes in the from-clojure guide.
Add some notes on dynamic scope, and reference Cljlib

I've thought that it may be worth including Cljlib in the guide, as it
allows almost direct porting of Clojure code into Fennel with some
small alternations in function and macro names, thus can make the
transition easier.

I've also included some notes on dynamic scoping, and how somewhat
similar facilities can be obtained via tables.

Lastly, I believe, Markdown uses full "clojure" instead of "clj", as
it tend to use full language names for syntax highlighting to work.
Merge pull request #352 from mrichards42/destructure-table-in-values

Fix destructuring kv tables inside values
ba7c56d2 — Mike Richards 4 months ago
Fix destructuring kv tables inside values

When symmeta is added in destructure-values, we have to check that the
value is in fact a sym (not a table). Any names declared in the table
destructure have their symmeta added in the recursive call to

This manifests as a compiler error:

    (let [({:x 10}) {:x 10}] x) => Error: table index is nil

... from setting a table key to (utils.deref {:x 10}), which is nil.

Though note that sequential table destructuring accidentally worked,
since utils.deref is just (. sym 1), or in this case, `x`:

    (let [([x]) [10]] x) => 10

This appears to be a regression from b43fe48.
Merge pull request #350 from glinesbdev/lua-typo-fix

Lua Primer typo fixes and LFS link
Remove changelog update
Lua Primer typo fixes and LFS link
Rearrange some docs.
Add fennel.syntax table describing built-in forms.
Bump version back up to dev.
Release 0.9.2.
Extra checks in each to make sure we have all needed args.


    $ fennel scratch.fnl
    Compile error in scratch.fnl:1
      expected binding and iterator

    (each [table] [1 2] (print 3))
    * Try making sure you haven't omitted a local name or iterator.