This repository has been archived by the owner on Jul 7, 2024. It is now read-only.
Releases: SquidDev/urn
Releases · SquidDev/urn
0.4.2
Libraries
- [@CrazedProgrammer] Add
list/split
. - [@Lignum] Add
list/take-while
. - [@Lignum] Add
math/atan2
.
Compiler
- [@SquidDev] Port the resolver loop to Urn
Codegen
- [@SquidDev] Make variable mangling to be aware of scope
- [@SquidDev] Allow symbols to provide a "display name" for use in emitted code.
- [@SquidDev] Detect
letrec
loops as tail-recursive. - [@SquidDev] Inline
letrec
loops which are only used once. - [@SquidDev] Pattern match against common recursion patterns.
0.4.1
0.4.0
Libraries
- [@demhydraz] Add
even?
andodd?
- [@demhydraz] Add pattern matching for structures.
- [@demhydraz] Add some set-like operators for lists.
- [@demhydraz] Add
if-match
- acase
with a default_
branch. - [@demhydraz] Add
extend
for associated lists. This inserts at the beginning of the key rather than the end. - [@SquidDev] Allow
assert-type!
to work on any expression. - [@demhydraz] Add implication operator.
- [@CrazedProgrammer] Add
bit32
bindings and a software fallback. - [@demhydraz] Make
#
work for non-lists. - [@demhydraz] Make pattern qualifiers infix.
- [@demhydraz] Rename
#
ton
. - [@demhydraz] Add
eql?
-eq?
with a more strict type comparison. - [@incinirate] Improve
nub
implementation. - [@CrazedProgrammer] Add
extra/bignum
implementation.
Compiler
- [@SquidDev] Add a system for rewrite rules.
- [@SquidDev] Change hexadecimal and binary literals to use
#
instead of0
as their prefix.
Codegen
0.3.1
Libraries
- [@demhydraz] Ensure pattern metavars are only seen once.
- [@demhydraz] Add
flat-map
. - [@demhydraz] Add a general recursion helper (
loop
). - [@demhydraz] Deprecate
traverse
. - [@demhydraz] Remove
assert
.
Compiler
0.3.0
Libraries
- [@demhydraz] Remove
const-struct
andempty-struct
. - [@demhydraz] Add
active-module
andscope-vars
. - [@demhydraz] Add
apply
. - [@demhydraz] Make
map
have a variable number of arguments. - [@demhydraz] Rename
nil?
toempty?
, and usenil?
to check for nil-ness.
CLI
- [@SquidDev] Improve REPL's mulit-line support.
Compiler
- [@SquidDev] Add
struct-literal
builtin, allowing defining tables. - [@SquidDev] Suggest similar names variables when a symbol cannot be resolved.
- [@SquidDev] Minor lexer fixes.
Codegen
- [@SquidDev] Fix
and
andor
including statements.
0.2.9
Libraries
- [@demhydraz] Add pattern matching lambdas
- [@SquidDev] Add the ability to query the current compiler state/scope
- [@demhydraz] Add
reify
. - [@demhydraz] Add
sym..
.
Optimiser / Codegen
0.2.8
0.2.7
Libraries
CLI
- [@demhydraz] Add
--exec
task, which reads in a program from stdin and executes it. - [@SquidDev] Escape illegal identifiers in the
gen-native
task.
Optimiser / Codegen
- [@SquidDev] Include line numbers when dumping invalid sources
- [@SquidDev] Remove
set!
when its definition is destroyed. - [@SquidDev] Simplify lambdas which are designed to avoid multiple-return values
- [@SquidDev] Inline directly called lambdas where execution order will not be modified
- [@SquidDev] Don't emit empty else blocks.
- [@SquidDev] Simplify conditionals where the result is only a boolean.
0.2.6
Libraries
- [@demhydraz] Add
handler-case
, a pattern matching error handler. - [@demhydraz] Add
use
for variables with finalisers - [@demhydraz] Make
debug
print the input expression and value, returning the input value. - [@demhydraz] Add
pretty
support for structs. - [@demhydraz] Make
nil?
work on empty strings. - [@SquidDev] Add
setf!
andover!
.
CLI
- [@demhydraz] Add theming to the REPL. This can be done by setting the argument variable
URN_COLOURS
to something of the form(text 0) (bold 1)
, etc... - [@SquidDev] Add
:module
command to display information about the given module.
0.2.5
Libraries
- [@demhydraz] Add a
matches?
to test if a pattern matches. - [@demhydraz] Allow using arbitrary predicates in pattern matching.
- [@demhydraz] Add mutating version of
insert
. - [@demhydraz] Allow any number of optional values to be missing in pattern matching.
CLI
- [@SquidDev] Add stack sampling profiler, with flamegraph support.
Optimiser
- [@SquidDev] Optimise usage analysis, shaving 0.3 seconds off compilation.