Skip to content

Releases: pilisp/pilisp

Release v1.0.0-alpha.11

28 Apr 15:18
accde0c
Compare
Choose a tag to compare
Pre-release
  • 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 and dart-assoc-string-string for working with Dart Map<String, String> values
  • Auto-completion at CLI via

Release v1.0.0-alpha.8

14 Apr 03:24
5c2a601
Compare
Choose a tag to compare
Pre-release
  • Adds initial multimethod support via defmulti and defmethod, for dispatch by type 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 strict true or false
  • 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

14 Apr 03:16
25eb106
Compare
Choose a tag to compare
Pre-release
  • Adds PLAwait value that signals to Dart code evaluating PiLisp programs that the final value should be awaited.
    • This will be leveraged in pilisp-cli for both repl and loadFile use-cases.

Release v1.0.0-alpha.6

30 Mar 07:40
2f87a5e
Compare
Choose a tag to compare
Pre-release

Release v1.0.0-alpha.5

30 Mar 06:58
7bfe6a3
Compare
Choose a tag to compare
Pre-release
  • Extended cd to allow traversing nested structures
  • Nascent Future support (see pilisp-native for more)
  • Makes defmacro accept metadata like defn
  • Adds apropos-full which searches by full symbol name
  • Fixes bugs where reduce could return a PLReduced
  • Reimplements butlast using reduce

Release v1.0.0-alpha.4

28 Mar 18:22
2e7489c
Compare
Choose a tag to compare
Pre-release
  • Exposed functions for read-string, load-string, and eval
  • 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 via dart/Uri.parse and dart/Uri.parse-full
  • Ported clojure.template forms
  • cd with no args now works in first position of pl> (and hence, at the REPL)
  • Varargs are now bound as a list, rather than a vector

Release v1.0.0-alpha.3

22 Mar 21:26
62a8065
Compare
Choose a tag to compare
Pre-release
  • Impl. resolve in Dart for performance
  • Support def in pl>
  • 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

02 Mar 06:51
cd25533
Compare
Choose a tag to compare
Release 1.0.0-alpha.2 Pre-release
Pre-release

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 more nil-tolerant
    • get 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 to rename-keys) set/rename set/index set/join set/subset? set/superset?
    • reverse ported, but vectors return vectors (not seq)
    • resolve, doc implemented
    • arglists function returns arglists of functions, terms/keywords, vectors, maps
    • repl/load-file which is available only at the REPL, since the core PiLisp package does not support dart:io usage.
  • 💔 Notable Breaking Changes
    • piped renamed to pl>, but also fixed behavior.
    • values renamed to vals to match Clojure name
    • Empty invocations now return the empty list, rather than nil

Release 1.0.0-alpha.1

06 Feb 11:53
9428e78
Compare
Choose a tag to compare
Release 1.0.0-alpha.1 Pre-release
Pre-release
v1.0.0-alpha.1

Mark 1.0.0-alpha.1