vcswatch reports that
this package seems to have new commits in its VCS but has
not yet updated debian/changelog. You should consider updating
the Debian changelog and uploading this new version into the archive.
Here are the relevant commit logs:
commit 8ecb9c6c4ff3108852314cfc57ee5e593cdc376f
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Feb 26 17:05:49 2025 -0800
Disable tests on platforms that don't have working LuaJIT.
See comments in debian/tests/control for details.
commit ec36e4a4e73cc0c62696c8f92fc377fc1eaa3283
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Feb 16 15:34:43 2025 -0800
New upstream release: 1.5.3.
The patch fixing it for running on systems where git is missing has
been merged upstream and can be removed from debian/patches.
Update copyright dates as per lintian.
Remove "Testsuite: autopkgtest" field as per lintian; this is implied
by the presence of the debian/tests/control file.
Add a temporary extra rm call in the clean target that was missing in
the upstream makefile.
commit f3c43b86bb055f23886246b358ea0ef069c9f372
Merge: ce043ae df2a382
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Feb 16 15:14:44 2025 -0800
Merge branch 'upstream/latest+dfsg' into debian/latest
commit df2a38212f04f7cfb39b577ed69a76385b58f480
Merge: 30a9e22 11e0e04
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Feb 16 15:14:32 2025 -0800
Merge tag '1.5.3' into upstream/latest+dfsg
1.5.3
commit 11e0e04dec9343d938b67da8a49ff079672f4691
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Feb 16 14:48:32 2025 -0800
Release 1.5.3
commit 047a2fb597f79286bcd77571ed11e7f16ec24583
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Feb 16 14:34:01 2025 -0800
Release 1.5.2
commit 329c5ea2d8cca27bc6d0bf9037c838dc671dbb50
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Feb 16 10:03:13 2025 -0800
Precompile macros to disk using aot.lua instead of in-process.
It would be cleaner to do this in-process like we used to, and it
works fine for normal use. But when it's used to make fennel-bin, the
precompiled-macros build of regular fennel tries to precompile the macros
again and use those precompiled macros to build other parts of the compiler,
and that fails with a nonsense error:
lua/src/lua: src/fennel/binary.fnl:165:?: Compile error: unknown identifier: fennel
The filename and line number are wrong, (and not by just a few lines)
so it's nearly impossible to find out what's actually going on here.
Rather than try and untangle this, we can bypass the whole mess by
using the bootstrap compiler to precompile the macros, and putting
them in build/macros.lua and build/match.lua. I thought this would
just be a first step that would help me understand where the problem
was coming from, but instead it make the problem go away!
commit 66ed2c92783e2b8eba01307571395153f0de4c6a
Author: Andrey Listopadov <andreyorst@gmail.com>
Date: Sun Feb 16 16:59:22 2025 +0300
update from-clojure CljLib notices, and add deps.fnl and deps.edn to the mix
I'd like to propose a 'one-line-per-sentence' approach for handling shuch documents.
Because it is way easier to deal with them when viewing pathces, than when paragraphs are formatted.
Additionally, it helps to see way too long sentences easily and structure text better.
https://rhodesmill.org/brandon/2012/one-sentence-per-line/
I've been employing this for years, and as you can see I'm also using it in this commit message.
For real, works amazingly for text diffs.
commit e71b75b6f7bc683b4295d24d1d75c0bd31d5e213
Author: Andrey Listopadov <andreyorst@gmail.com>
Date: Sat Feb 15 14:11:47 2025 +0300
simplify __fennelrest invocation to produce less lua code in compiled output
commit 8187f449e59f3261ecc0743564bd7571f874406a
Author: jaawerth <jaawerth@gmail.com>
Date: Fri Feb 14 20:31:39 2025 -0500
Add `pack` to macro environment
The `unpack` helper on its own lacks symmetry; `pack` in particular is
frequently useful in tandem with `unpack` when storing varargs or the
results of a function with multiple returns for later unpacking, and
I've often found myself quickly implementing it in macro modules.
Also adding `unpack` to the utils module caused a net drop in LOC due to
all of the modules with the `(local unpack (or _G.unpack table.unpack))`
boilerplate.
I also considered adding `maxn`, but this comes up less frequently, and
is really only needed for defensive coding against tables from unknown
sources, such as when writing a library/api. Since macros receive `nil`
as a symbol when invoked, it's less likely to come up when writing
macros, so left it out for now.
commit 2d4631d5b569d8be3ce584ec912af6a10ba52119
Author: jaawerth <jaawerth@gmail.com>
Date: Thu Feb 13 00:47:43 2025 -0500
changelog: add view-opts clobbering bugfix
commit 02fdaef2fa768301b2c5a4374b95f741564a5aaf
Author: jaawerth <jaawerth@gmail.com>
Date: Sat Feb 8 17:34:38 2025 -0500
merge passed repl view-opts with custom defaults
The REPL defaults/overrides are merged using `copy`, but the way it was
prevoiusly implemented meant that in the following code:
(set fennel.repl.view-opts {:max-sparse-gap 5})
(fennel.repl {:view-opts {}})
any defaults set on the REPL would be wiped out by the presence of an
empty :view-opts table.
It may be more maintainable in the long run to simply implement a
standard utils.merge-with instead of playing games with `copy`, but this
gets the job done in the meantime.
commit e83e81d705c0f95e54efc3d9220a813b315d7593
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Feb 10 08:50:24 2025 -0800
Can't use old style guards in case.
commit c8e5f05aab1bfbaa099d607a020a304c87278198
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Feb 8 13:39:20 2025 -0800
Fix package searcher to not claim false positives with dot filenames.
commit eb41460a72843c3c3c782e30054558d193d66a30
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Feb 8 13:21:19 2025 -0800
Remove checkUnusedLocals flag which did nothing.
commit e9b3b359baa4a994c36fcb3cc3745f5ddaf5457e
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Jan 29 08:19:40 2025 -0800
Let's revisit macros reading from disk later. Needs to bake more.
commit 1a9d9c985fd73091a5a77276d3a4b6ebb7bb9c81
Author: jaawerth <jaawerth@gmail.com>
Date: Sat Feb 8 06:24:37 2025 -0500
bugfix: non-integer view-opts.max-sparse-gap
`fennel.view` was allowing arbitrary values (integers, strings, etc) for
`max-sparse-gap`. There's no real reason to allow this - all it does is
break table serialization.
commit ebb4651658cbdf6976ebdc7855751a00d2966ab1
Author: jaawerth <jaawerth@gmail.com>
Date: Sat Feb 8 06:20:25 2025 -0500
bugfix: broken view output on decimal table keys
fennel.view failed to account for decimal keys in tables so long as the
`max-sparse-gap` is satisfied.
For example,
(fennel.view {1.2 :b 1 :a 1.3 :c}) ;=> ["a" "b" "c"]
However, the following is correct
{1.1 :a 2.1 :b 3.1 :c} ;=> {1.1 "a" 2.1 "b" 3.1 "c"}
is correct with max-sparse-gap of 1, due to the (1.1 - 0) > 1, but
changing max-sparse-gap to 2, or even 1.1 (which fennel.view allowed)
would make it serialize to
(fennel.view {1.1 :a 2.1 :b 3.1 :c} {:max-sparse-gap 1.1})
;=> [nil "a" "b" "c"]
commit c057f58216c47a968709c08d4907685d2cff77c3
Author: jaawerth <jaawerth@gmail.com>
Date: Fri Jan 24 20:03:39 2025 -0500
bugfix: make --plugin correctly load lua plugins
When support for Lua plugins (likely AOT-compiled) was added to the
--plugin flag, it was added in such a way that it loaded the plugin in
_G, without generating the compiler env.
As a result, plugins loaded this way would have more restricted
capabilities, such as not being able to inject macros or use helpers
like `in-scope?` or `macroexpand`, which aren't in fennel's module API.
This is addressed by invoking make-compiler-env first and loading the
plugin with that environment.
commit 55c870f15231d21574d6942b6bb0336553906fc0
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Jan 24 08:11:59 2025 -0800
Don't print sparse tables as sequences by default.
This causes a lot of confusion among people who don't already
understand the behavior of nils in sequences, because it implies that
a table that has gaps in it will still be treated like a
sequence. Once they go to use it with ipairs, they will be confused as
to why certain elements are ignored.
It would be better to print these as curly-bracket tables, because it
better reflects their true nature. The option to set :max-sparse-gap
if you want non-sequences to look sequency is still there.
commit 895e69e7b76deeae69e211294ce7ddeb86933a0e
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Jan 20 18:05:13 2025 -0800
Rearrange fennelview tests; they were really messy.
commit ef28e62dfefa36355e30e0db85cf108bcdfd7ada
Author: jaawerth <jaawerth@gmail.com>
Date: Fri Jan 17 19:53:40 2025 -0500
remove unnecessary string.find's in lambda
Just a small optimization: no need to pattern match twice when only
checking the first character. Also reorganized the sym comparisons for
slightly better readability.
commit 5fe5153f109e89669bca89cc176d04f8172fd51e
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Jan 5 12:52:12 2025 -0800
Don't assume traceback data is a string in dosafely.
commit 21943071eb7ec7d10901718833b10a0bdb6cbacd
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Jan 4 21:41:49 2025 -0800
Include parent in hook args for pre-fn and fn.
commit 2de9efb263cafee82cb3c15d025546479e0429e0
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Jan 3 10:20:03 2025 -0800
Fix runtime quoting of sequences.
There really isn't a good reason to do this, but the current failure
mode is super tacky (runtime instead of compile time error):
runtime error: attempt to call a nil value (field 'sequence')
commit d9e01f63eb7244e317c44f63971a304f5671c1fc
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Jan 1 14:02:57 2025 -0800
Use case instead of match when there's no pinning.
commit e46a64f3d6eccbb6b1f340c84e1144ef3c1e63ae
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Jan 1 13:55:39 2025 -0800
Clarify docs for fennel.parser.
commit 45f7581a80db0f28a41c1a482d0617f8e0f44f12
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Jan 1 13:55:24 2025 -0800
Explain the behavior of multi-values like unpack in quoted forms.
commit 1518c45c7f32671a033a84e17e8e4e4f172b2080
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Nov 20 17:48:38 2024 -0800
Address a few linting suggestions.
commit 73819e7927e923e88c52a85d5c3eb7a13cb93d9e
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Nov 20 17:48:20 2024 -0800
Improve error when trying to destructure a literal value.
commit ce043aeccb36cb00342616422490edc1d0883a8c
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Oct 12 12:00:37 2024 -0700
Add instructions for running CI locally and ignore stderr.
See comments in tests/control for rationale.
commit ac0271339e125e51b424f830da67ed1f35c9f80b
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Oct 12 09:27:25 2024 -0700
Temporarily depend on git in CI to avoid stderr output.
commit 0ab2472dd4aa66c63a5f097afac14667677b6668
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Oct 12 09:17:32 2024 -0700
Suppress stderr when git is missing during test runs.
Also don't exit with success immediately when this happens!
commit 9f7a92d955b2924d6acdae650d4bf8bdfd518220
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Oct 12 08:52:28 2024 -0700
Add autopkgtest config.
commit cb338481d1a2fb984642d8d8e0e9fe5408e0222d
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Oct 11 08:46:45 2024 -0700
Lock the Lua version to 5.4 for now.
We would prefer for it to work with any version of Lua, but we don't
yet have a way to make that work since there is no package.path
location that's available for all versions.
We could symlink it into all versions during the post-install script,
but that doesn't really solve the problem because someone could
install and switch to lua5.3 after fennel has been installed, which
would be missing the symlink.
commit 06b73c02aab17bfb79da26b2527e6b6ff9a7fbf9
Author: Blair Noctis <n@sail.ng>
Date: Thu Oct 10 16:43:07 2024 +0000
d/changelog: prepare -2 for buildd
commit 1cf3b73333bdff2a2e108041da90e340d9903e71
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Oct 10 08:32:32 2024 -0700
Add readline to the recommends in debian/control.
commit acaedf0b13f5fe952cf49c64590d94ba73b9746c
Merge: b7119d3 4ef3b1b
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Oct 9 08:57:03 2024 -0700
Merge branch 'main' into precompile-macros
# Conflicts:
# changelog.md
# src/fennel.fnl
# test/core.fnl
commit 4ef3b1b168a62bba323d79cf7681de47b5b0b0e8
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Oct 8 08:48:07 2024 -0700
Allow macro sandbox to read but not write from the filesystem.
commit 0711e302433344cab0b4b29db3c208cbe57dbedc
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Oct 3 08:59:28 2024 -0700
Suggestions from Blair's review.
Add the repack suffix to the watch file, and export PREFIX in rules to
apply to all targets, not just install.
The advice about removing the clean override does not work, and
lintian doesn't like it when you close RFS bugs with the changelog.
commit c9392aae2f539772229419a9e8d69a6a8d313694
Author: Phil Hagelberg <phil@hagelb.org>
Date: Wed Oct 2 13:03:19 2024 -0700
Improve documentation of repl options.
commit b804194a2a7c33af3c4be0b6b37d2019295a98ed
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Sep 29 11:26:54 2024 -0700
Improve tests for repl readChunk newline behavior.
The fundamental problem here is that readChunk is a bad abstraction
for cases where you're not taking input from a stream. In most
non-shell cases, you don't really want to send partial chunks of input
one at a time; you know you have a complete form, and you want to send
it to the parser.
In this case if you use readChunk, you have to remember every time to
append whitespace to the end of the input you're sending; otherwise
the parser can't tell that the difference between "I've typed 15 and I
want you to evaluate it" vs "I've started to type 1500 but the
chunking just happened to break right in the middle".
I suspect we would be best off adding a new field to the options
table; read-form or something instead of framing it in terms of chunks.
commit 76f98bcbd21cb8bc73fbca93d9780b252b794b24
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Sep 28 19:14:48 2024 -0700
Fix repl tests to put assertion args in the right order.
commit f69efe13a94d97e644f4108f349123c534eef6dd
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Sep 28 18:42:10 2024 -0700
Fix view of math.maxinteger.
Don't go up to "%.308e"; it only supports a max of 2 digits.
commit 7b5f91aa71c60a52d74dcb166c2bd2fff96c9951
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Sep 23 20:51:48 2024 -0700
Add a hint for setting CC when --compile-binary fails.
commit c3df31a71a909b188bd409d885efb568442ed6dd
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Sep 23 20:44:46 2024 -0700
Remove need for $PWD in build.
commit f98ca8dbbc610f830c6b6a02d879ef15002ca701
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Sep 22 13:48:14 2024 -0700
Invoke cross-compilation specially during release.
Invoke a sub-make instead of doing it as a target so we can override
CC just for the single duration of fennel.exe and not the whole build.
commit 51c332164072dbd4279e30776ee0e5ec91a5bdef
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Sep 22 12:19:58 2024 -0700
Expand parser test tolerance of weird exponents.
https://circleci.com/gh/bakpakin/Fennel/2210
commit 3c42aba5c3da764bdff6c5bb65ad7e525fddc660
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Sep 12 18:52:30 2024 -0700
Work around bug in fengari by avoiding number format shorthand.
commit 94072c12f875957a4b31b443c0e3e04685ab4825
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Sep 21 09:46:42 2024 -0700
Be more tolerant in test of leading 0 in exponent of large numbers
Apparently Windows does some wacky things here:
https://app.circleci.com/pipelines/github/bakpakin/Fennel/1356/workflows/cfb535fd-79d3-46d4-9102-b32551daebcc/jobs/2206/steps
commit 09eda57740ca4e376e18aa386f1c8923c07f8479
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Sep 21 09:38:50 2024 -0700
Fix makefile target for luajit submodule init.
commit 429042f3dd91efd8145a89c27928220371697874
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Sep 20 21:10:05 2024 -0700
Fix makefile targets to initialize submodules when necessary.
commit 2401735c0a0cbd58f35f16dd7744e2bbd16ac6a6
Author: XeroOl <xerool@protonmail.com>
Date: Sun Sep 8 12:22:01 2024 -0500
fix kv-rest destructure codegen
If you use the "rest" syntax to destructure a key-value table, it's
supposed to work regardless of which pattern you put. We had a bug where
fennel would try to evaluate the existing value unhygenically.
(local {& a} {}) ; emitted code accesses the global `a`
(local {& my-value} {}) ;; emitted code subtracts globals `my - value`
(local {& []} {}) ;; emitted code tries to evaluate `table: 0x5555df80`
This patch replaces the bad code output with `nil`.
commit 869e75b4327de4345a00613443f7e6a559c86e58
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Sep 8 09:46:20 2024 -0700
Tidy up compile-time detection in quote.
Also remove external references to documentation in the man page since
they're already available as man pages.
commit d9be3b8cd2550e5f418c0cf4eb769a7260d7a298
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Sep 8 09:35:15 2024 -0700
Ensure newlines get compiled as expected.
Lua messes up \r when formatting it as %q and emits it as \13
unfortunately; we don't ever want numeric escapes for things that have
better options.
See https://todo.sr.ht/~technomancy/fennel/230
commit bd1c17e70bcbb2d9c81a060908e577e752f8354c
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Sep 7 09:42:43 2024 -0700
Fix parser test.
commit cf75dcaa4fdfe48356632541912f624b36f7539b
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Sep 7 09:34:45 2024 -0700
Fix parser warnings to use options.warn if given.
commit 3b32b49d4d206b734e176e7aaf03b4ecc62b75a4
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 27 21:30:36 2024 -0700
Add allow-missing-git.patch.
commit f2f0c26fb92b9288b52c3355c9c3ec2e98e509f2
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 27 21:20:38 2024 -0700
Update README.source to mention pbuilder.
commit b191d07b88aa49da9b489e2f4dd69beaaf5b8780
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 27 08:27:07 2024 -0700
Add exclusion reference and configure watch for version mangle.
commit e2f4472e3462414abb3cc3ad985f40baf01f7399
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Aug 25 14:20:18 2024 -0700
Looks like the +dfsg marker goes in the middle of the version.
commit 221b8c9090f8ac4c5daaf583946693ffbb1a189f
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Aug 25 11:52:23 2024 -0700
Add explicit build-dep on git because of IRC announce script.
I figured if the package is built using gbp, then git is implied, but
... I guess it's not?
This script is meant for when we're running in CI; it's supposed to
have no effect outside CI, but no one has ever actually tried running
the tests on a computer that doesn't have git installed, because every
computer in the world has git installed.
commit ad09e4f87122410f678c67dfc5a5bd553368b23d
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 21:53:38 2024 -0700
Update changelog, fix vcs links.
commit 776b40fb2821a1f6f514371c4bc18cf3f1c7b583
Merge: 70a05d2 30a9e22
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 21:50:18 2024 -0700
Merge branch 'upstream/latest+dfsg' into debian/latest
commit 30a9e22e8357c551622632ae05aa158e56fdb318
Merge: a96d662 ae60a38
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 21:50:05 2024 -0700
Merge tag '1.5.1' into upstream/latest+dfsg
1.5.1
commit ae60a38029a570b8d37fe3d7cc6b2476646e10f5
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 18:34:54 2024 -0700
Release 1.5.1
commit 9fd0f98c1552e5a4ea17f303ba702b3e252311df
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 17:37:36 2024 -0700
Document .inf and .nan in the reference.
commit 70a05d242cda593a3b7fef499dff704677ccbb91
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 17:03:49 2024 -0700
Update debian changelog for 1.5.0.
commit 7210b1dd202e254746b3f48d79dc5a192da75ae0
Merge: 4cf885b a96d662
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 24 17:01:48 2024 -0700
Merge branch 'upstream/latest+dfsg' into debian/latest
commit abde8957f965bfec6d2fa5a038e32098befd35aa
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Aug 23 17:59:42 2024 -0700
Add missing submodule dependency to fennel-bin makefile target.
Fixes https://todo.sr.ht/~technomancy/fennel/238
commit 3faf72bd70b234eea4308d616edc03ccb8094af3
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 20 18:31:58 2024 -0700
Backport special nan handling to bootstrap compiler.
commit ad650db10bb4c560dbbe6b2ce82897bee298d4fe
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 20 18:25:09 2024 -0700
Ensure that "nan" parses as a symbol (not a number) on 5.1.
commit b777eabc30063d34900dcef8bfce01401e6aef33
Author: Andrey Listopadov <andreyorst@gmail.com>
Date: Sun Aug 18 23:25:28 2024 +0300
add syntax for infinity and NaN
.inf and -.inf were added to represent positive and negative infinity.
.nan and -.nan were added to represent positive and negative NaN (not
a number) values. For some reason, on x86 in PUC Lua 0/0 gives -nan,
but nan on ARM, so to generate positive NaN portably across most Lua
implementations, the nan is first converted to a string and is checked
to contain a minus sign. LuaJIT and many other implementations do not
differentiate between NaN and negative NaN, so the tests only check
for positive NaN
commit ab53b9e713f5ed2bbd8ea65448e4b06f0256e55f
Author: Andrey Listopadov <andreyorst@gmail.com>
Date: Wed Aug 14 00:25:49 2024 +0300
Fix huge numbers NPE, make best effort at keeping original integer format
In Lua, numbers bigger than 1e+308 compile to inf. Prior to this
patch, Fennel compiled such numbers to inf too. However, inf is not
a number in Lua, neither it is a reserved symbol, so the expression
(+ 1e+309 1) would compile to (inf + 1) resulting in attempt to add
nil with a number, because Lua treats inf as a regular, unbound,
variable.
This patch also tries to keep the number format of big numbers, bigger
than 1e+13 and less than 1e+309 in the e-notation. Numbers less than
1e+14 are formatted as integers, as done in PUC Lua. Starting from
1e+14 the e-notation is used.
If the number is big enough to be considered inf by Lua, it is
compiled to (1/0), a portable way to express infinity, without relying
on the existence of the math table. -inf is compiled to (-1/0).
commit be85d6d7e324a899e6816bc889edbc37f19d0032
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 13 21:33:08 2024 -0700
Skip runtime check for table in matching when given a table literal.
Just a nice lil optimization.
commit cdb222c78e100a9150aeea0cefa0e48a8f867655
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 13 21:32:41 2024 -0700
Allow warn function to be provided in options table.
Fixes https://todo.sr.ht/~technomancy/fennel/225.
commit b7119d36e17eb308fab0b56d54ab11ee1bfd26e0
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Aug 12 17:47:18 2024 -0700
Allow disabling global mangling and using _G['what-ever'] instead.
Use this when bootstrapping the built-in macros to avoid issues with
double-loading the compiler.
It's unclear why, but when you load the compiler with itself, the
second load uses a scopes.compiler table that's unaware of built-ins
like `list?' and so mangles that into something that will definitely
not resolve to anything sensible.
commit 289f9d5a420062cac7119ed0cefed070edbae421
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 10 18:07:05 2024 -0700
Explain how to verify signatures.
commit 9f03d3ab892c7ed314dd54bafc611a5607fc8f9d
Author: Andrey Listopadov <andreyorst@gmail.com>
Date: Sat Aug 10 23:17:33 2024 +0300
don't modify non-string and non-nil values in compiler.traceback
Lua's debug.traceback entry from the manual:
If message is present but is neither a string nor nil, this function
returns message without further processing. Otherwise, it returns a
string with a traceback of the call stack. The optional message string
is appended at the beginning of the traceback. An optional level
number tells at which level to start the traceback (default is 1, the
function calling traceback).
commit 215672715a719f768abc6fdfee2692f817b923dd
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sat Aug 10 13:30:15 2024 -0700
Re-enable metadata when precompiling macros.
Still fails when loading a nested copy of the compiler.
commit 7acc0b107012cb7653e29be10d79ab214914c8fb
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Aug 9 19:36:27 2024 -0700
Clarify that --correlate is best-effort, not always reliable.
commit 923205411a075f4aa720a33f95b196c949a3bc44
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Aug 9 19:36:14 2024 -0700
Fix repl tests on luajit.
commit 08d25cb53b243f083babbf3b9a13cd8eaaf2d39c
Author: Phil Hagelberg <phil@hagelb.org>
Date: Fri Aug 9 19:36:06 2024 -0700
Compile integers and floats differently.
On old versions of Lua we can't trust tostring to give reasonable
results for larger numbers.
commit 72890ff8806486b0595aca6c222cbf13fdae428c
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Aug 8 08:54:37 2024 -0700
Remove ineffective script-as-library warning.
Turns out there is no way to do this reliably. =(
commit f80b947afbc9d7bde7fe521efffec5708593d148
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Aug 8 08:54:15 2024 -0700
Fix column number for mismatched delimiter error.
commit f83dd129a3100d53f5e3545ca45da14ba340a6d7
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 6 17:48:07 2024 -0700
Add workaround for pandoc bug.
Older versions of pandoc try to set the font to a font that doesn't
actually exist. Older versions of groff don't care, but newer ones
will catch the mistake.
This has been fixed in pandoc 3 but we're not ready to declare a
dependency on a newer version since installing the whole haskell
toolchain is a lot for something that can be fixed with a trivial
sed.
https://github.com/jgm/pandoc/issues/9020
commit 4cf885bc74a8c60d01f036b6782c7f4c98570abe
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Aug 5 21:33:52 2024 -0700
Address suggestions from review.
* Target "unstable" distribution instead of UNRELEASED.
* Update standards version
* Vcs-git/browser point to packaging repo, not upstream
* Workaround for dh_auto_clean not detecting makefile
* Point gbp at upstream/latest+dfsg branch
* Rename README.debian to README.source
commit e4dd6573aac89445955a20dfe3249d2efa6690ff
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Aug 6 08:19:29 2024 -0700
Precompile macros when bootstrapping the compiler.
Going all the way to Lua code with the macros requires a few tweaks.
Currently we accept :_COMPILER in the :env field of the options table
to evaluate code in compiler scope. However, we also need a similar
option for scope in order to compile macros in eval-compiler. This has
to be added to both the bootstrap compiler and the mainline compiler.
This is an undocumented internal feature only.
We also disable global mangling in the bootstrap compiler and replace
it with _G lookups, because global mangling is dumb, and we don't have
backwards-compatibility concerns in the bootstrap compiler.
Currently we're disabling metadata for built-in macros because loading
metadata under 5.4 (but not 5.1 or luajit!!!) causes performance to
tank when we try to load the module to find a place to set the metadata.
We also need to avoid having `assert-repl' emit a call to `collect'
because the sequence metatables for the arglist definition vs the
check on the emitted code don't match. It's easy enough to replace it
with an `each' but this will probably trip us up in the future.
The tests are still failing because of metatable mismatches when
loading the compiler from the compiler. The `test-nest' test has been
disabled for now.
commit a96d6629e9de16921db69dc2c0991585c1cba77f
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Aug 5 20:44:12 2024 -0700
Remove CC-NC-licensed style guide.
commit 6fc86f89dc6c39458e78a470520aab2880ef9c33
Author: Phil Hagelberg <phil@hagelb.org>
Date: Mon Jul 29 21:52:43 2024 -0700
Check for setting globals in the test suite.
commit 26b716516bcb0806bb3403a3e88f9ca7d86d4c84
Author: Phil Hagelberg <phil@hagelb.org>
Date: Sun Jul 28 10:28:34 2024 -0700
Fix setReset in bootstrap compiler to set the actual root, not global.
commit 4fd1ce57282c6c104a8828ee9befe410960d9aa8
Author: jaawerth <jaawerth@gmail.com>
Date: Sat Jul 20 18:54:45 2024 -0400
test/irc.lua: `git remote get-url` to check origin
When checking that the CI job is running in the official git.sr.ht
repository, use `git remote get-url origin` instead of of
`git remote show origin` so it only provides the URL, and ':read('*l')`
to restrict the output to the first line.
Switching to `:read('*l')` when getting the branch as well, rather than
stripping the newline with gsub.
commit b7075cbd8fa7cde1173c370f149ddff83fd79a48
Author: jaawerth <jaawerth@gmail.com>
Date: Sat Jul 20 18:29:46 2024 -0400
editorconfig: Comment markdown trailing whitespace
In markdown, two trailing spaces at EOL guarantees a line break in the
output.
For now, leaving a comment explaining the setting, but this is a
somewhat obscure markdown feature, and we may want to consider leaving
it turned off since, even if we exlpicitly allow it in editorconfig, a
contributor seeing trailing whitespace in the wild is most likely to
simply assume it was in error.
commit 95c0752141bdc6a5aa11905a23a070d66190e5de
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Jul 18 21:07:30 2024 -0700
Use git remote to determine whether to notify failures on IRC.
commit 348039b2cd718f20e91d41f729f335937ebbd8ce
Author: Phil Hagelberg <phil@hagelb.org>
Date: Thu Jul 18 20:46:02 2024 -0700
Fix IRC build failure notifications.
commit 1d8385286156f7a68dccf07e850cb2a567d1acc6
Author: jaawerth <jaawerth@gmail.com>
Date: Wed Jul 3 21:30:05 2024 -0400
prevent "sym" in macros from breaking quoting
Missed `sym` on the previous fix. Added a comprehensive test that
shadows the entire macro env (minus `comment`, which itself shadows a
special form) to prevent any new bugs of this kind from cropping up.
commit 7bec5273695852a971dd6996d1796cee6badc995
Author: jaawerth <jaawerth@gmail.com>
Date: Wed Jul 3 17:44:24 2024 -0400
fix macro quote `list`/`sequence` shadowing bug
Shadowing "list" or "sequence" syms in a macro was breaking `(do ...)
and `[...] respectively.
commit dd8d4cff8419187971ff8f41e363ef41df94aa5c
Author: jaawerth <jaawerth@gmail.com>
Date: Wed Jul 3 16:26:21 2024 -0400
fix dynamic set support for globals + hashfn args
* Fixes `(set (_G :x :y) 1)`, `#(set $ :x $2)`, etc
* Improves error message when invoking dynamic set without keys
In the case of globals and hashfn args, a custom assertion on `(.
scope.manglings (tostring target))` was causing a compiler error. These
are already accounted for in symbol-to-expression, which
dynamic-set-target invokes, so we can simply omit the assertion. This
will help avoid bugs resulting from maintaining the same logic in more
than one place.
commit 22efcaf6d15184d409a3a4e44d2fcd59e1bf6827
Author: Phil Hagelberg <phil@hagelb.org>
Date: Tue Jun 25 20:07:41 2024 -0700
Move allowed-globals to root options instead of top-level var.
commit 6cc338849e9b68789ab1bd67f3f8f2a95d029891
Author: jaawerth <jaawerth@gmail.com>
Date: Tue Jun 25 21:53:12 2024 -0400
add test case for `,doc <non-callable-tbl>`
https://salsa.debian.org/api/v4/projects/technomancy-guest%2Ffennel2%2F API request failed: 404 Not Found at /srv/qa.debian.org/data/vcswatch/vcswatch line 408.