From XeroOl to ~technomancy/fennel
We've found a couple of bugs involving string constants being incorrectly serialized to Lua code. This change adds a new fuzz test to test.fuzz-string to find that category of bugs. The test asserts that randomly generated strings evaluate to themselves. It will run on all versions of Lua, unlike the other string fuzz test, which only works on Lua 5.3+ (for unicode escapes). --- test/fuzz-string.fnl | 88 +++++++++++++++++++++++++++++++------------- test/fuzz.fnl | 2 +- 2 files changed, 64 insertions(+), 26 deletions(-) diff --git a/test/fuzz-string.fnl b/test/fuzz-string.fnl index ab7678c..c652666 100644 --- a/test/fuzz-string.fnl [message trimmed]
From XeroOl to ~technomancy/fennel
Warnings have line numbers, but not column numbers. This adds line numbers. --- src/fennel/parser.fnl | 4 ++-- src/fennel/utils.fnl | 10 +++++----- test/failures.fnl | 12 +++++++++++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/fennel/parser.fnl b/src/fennel/parser.fnl index cb7a757..bce3487 100644 --- a/src/fennel/parser.fnl +++ b/src/fennel/parser.fnl @@ -332,7 +332,7 @@ Also returns a second function to clear the buffer in the byte stream." [message trimmed]
From XeroOl to ~technomancy/fennel
Hey everyone, I've been maintaining fennel-ls (the language server for Fennel) for a while now. While it's been wonderful to that people are using it, I've been feeling burnt out as the primary maintainer. I think the project would benefit from broader community involvement. I'd like to propose that we consider making fennel-ls an official Fennel project, by migrating the repository from ~xerool/fennel-ls to ~technomancy/fennel-ls. This would give it a more "official" status, similar to where `fnlfmt` is today. I've already given technomancy access to the ~xerool/fennel-ls repository, so it will still be possible to keep fennel-ls maintained
From XeroOl to ~xerool/fennel-ls
Dear Mattly, Thank you for the contribution! I've applied it! Sincerely, XeroOl
From XeroOl to ~xerool/fennel-ls
Phil, I'm merging/applying(?) your lints now. Not sure the terminology, but you know what I mean. Thank you very much for your patches! Sincerely, XeroOl
From XeroOl to ~xerool/fennel-ls
I've added a lot since the last release of fennel-ls. So far I've been making fennel-ls releases to respond to fennel releases, and this one is for Fennel 1.5.0. However, the latest fennel release isn't yet out on LuaRocks, so if you get fennel-ls from luarocks, it will still be using fennel 1.4.2. Here's what's changed: ### Features * Updated to fennel 1.5.0 * Better results when syntax errors are present * Docs for each Lua version: 5.1 through 5.4 * Docs for TIC-80 ### Changes * --check is now --lint
From XeroOl to ~xerool/fennel-ls
Thank you very much! I've applied both of these. XeroOl
From XeroOl to ~technomancy/fennel
I think this may mean that we never need things to defensively wrap
themselves in IIFE for side-effects ever again. We'll still need some
IIFE to deal with multival, though.
---
Before, an expression like
```fnl
(or (foo) (bar) (baz)
(if true 1 2) ;; this one needs a statement
(quux)
(do 100) ;; this one needs a statement
a b c)
```
would compile to
[message trimmed]
From XeroOl to ~xerool/public-inbox
I applied it, and pushed a v0.1.1 to LuaRocks. Thank you very much!
From XeroOl to ~technomancy/fennel
My previous patch messed up the -?> macro. Although -?> and -?>> don't
handle intermediate multivals, their final step can be a multival, and
shouldn't be stored in a variable.
The (doto) macro also was changed in the previous patch, but doesn't
need to be fixed; it still works as intended.
There's a careful balance between making `-?>` a recursive function, and
making `-?>` emit a call to `-?>` that needs to go through another
macroexpand step. A recursive call will run much faster, but it will also
skip the autogensym step, so all of the `tmp#` identifiers would receive
the same symbol. Because of this, the `tmp#` branch emits a `-?>` call in
the output to force autogensym, but the other call is native recursion
for speed.
[message trimmed]