Releases: pilisp/pilisp
Releases · pilisp/pilisp
Release v1.0.0-alpha.11
- Adds
http/
functions - Upgrades pilisp_cli to latest, including auto-completion and new signature
- Code gen for http package classes and
Encoding
- Adds
to-dart-map-of-string-string
anddart-assoc-string-string
for working with DartMap<String, String>
values - Auto-completion at CLI via
Release v1.0.0-alpha.8
- Adds initial multimethod support via
defmulti
anddefmethod
, for dispatch bytype
only- Does not yet support arbitrary dispatch functions
- Does support
:default
- Adds
boolean
,current-time-millis
- Supports setters in generated Dart code
- More Dart code documentation of public forms
- Adds http package and includes in code gen
- This package is multi-platform, hence its inclusion in the core language.
- Makes
ibool
convert by truthy-ness, not just stricttrue
orfalse
- Adds
PLEnv.completionsFor
to provide completions based on all bindings in scope
Cutting this release in part to allow pilisp_cli
to leverage the new PLEnv.completionsFor
as I work on a more feature-rich REPL there.
Release v1.0.0-alpha.7
- Adds
PLAwait
value that signals to Dart code evaluating PiLisp programs that the final value should beawait
ed.- This will be leveraged in pilisp-cli for both
repl
andloadFile
use-cases.
- This will be leveraged in pilisp-cli for both
Release v1.0.0-alpha.6
- 🎉 First release on pub.dev!
- Renames
corePiLisp
topiLispCore
- Documentation updates
Release v1.0.0-alpha.5
- Extended
cd
to allow traversing nested structures - Nascent
Future
support (see pilisp-native for more) - Makes
defmacro
accept metadata likedefn
- Adds
apropos-full
which searches by full symbol name - Fixes bugs where
reduce
could return aPLReduced
- Reimplements
butlast
usingreduce
Release v1.0.0-alpha.4
- Exposed functions for
read-string
,load-string
, andeval
- Ported
clojure.string
forms - Implemented
zipmap
,min
,max
- Corrected
map
,partition
behavior for lists vs. vectors - Improved exception handling and stack trace printing
assoc
now accepts vectors- Implemented
test/throws
to test functions that throw an exception - Bindings for mathematical constants available via
dart:math
, namely:math/e
math/ln10
math/ln2
math/log10e
math/log2e
math/pi
math/sqrt1-2
math/sqrt2
- Removed
uri
function. That was hand-written before Dart code gen for core classes was introduced, and is now available directly viadart/Uri.parse
anddart/Uri.parse-full
- Ported
clojure.template
forms cd
with no args now works in first position ofpl>
(and hence, at the REPL)- Varargs are now bound as a list, rather than a vector
Release v1.0.0-alpha.3
- Impl. resolve in Dart for performance
- Support
def
inpl>
- Support -l/--load for PiLisp CLI, bind
*command-line-args*
- In
pl>
, support passing(.)
to initial form if fn with no args provided - Rename
bindings
->bindings*
for rebinding in core - Impl. partition-by w/reduce
- Impl. partition w/reduce
- Correct
(conj nil ,,,)
- Add fnil
- Impl. interleave w/reduce, add ibool
- Impl. str/join using reduce w/StringBuffer
- Impl. take-while via reduce
- Impl. reduced for short-circuiting reduce
- Impl. take-while with while
- Impl. take with while
- Impl. iterate with while
- Impl. repeat using while
- Impl. time macro for timing execution
- Alias ! for write-state
- Impl. while special form
- Support @ for deref
- Impl. drop with nthrest
- Impl. nthrest with range and reduce
- Implement range
- Impl. concat with reduce
- Implement map via reduce to avoid stack consumption
- Correct comp implementation for >2 args
- Fix stateful bug for nested, closed-over bindings
- Implement filter via reduce to avoid stack overflow
- Port rest of clojure.walk
Release 1.0.0-alpha.2
Changelog
- ⚡️ Features
- This release is the first compatible with the under-development inf-pilisp Emacs package, for developing in PiLisp using Emacs' "Inferior Lisp" facilities.
conj
now works with maps, e.g.,(conj {.a 1} {.b 2})
and is morenil
-tolerantget
more tolerant (to match Clojure)get-in
ported from Clojure- Implementations from
clojure.set
now ported:set/union
set/intersection
set/difference
set/select
set/project
set/rename-keys
(also bound torename-keys
)set/rename
set/index
set/join
set/subset?
set/superset?
reverse
ported, but vectors return vectors (not seq)resolve
,doc
implementedarglists
function returns arglists of functions, terms/keywords, vectors, mapsrepl/load-file
which is available only at the REPL, since the core PiLisp package does not supportdart:io
usage.
- 💔 Notable Breaking Changes
piped
renamed topl>
, but also fixed behavior.values
renamed tovals
to match Clojure name- Empty invocations now return the empty list, rather than
nil
Release 1.0.0-alpha.1
v1.0.0-alpha.1 Mark 1.0.0-alpha.1