Releases: LIPS-scheme/lips
Releases · LIPS-scheme/lips
1.0.0-beta.19
Breaking
- change
get-environment-variables
andget-environment-variable
returns nil and undefined in the browser true
,false
, andNaN
are no longer parser constants #292- get rid of node polyfills from output files
eval
useinteraction-environment
stead ofcurrent-environment
by default- remove support for string argument to
read
#327 - make
null
falsy value #330 - remove
nil
parser constant #332 - replace
undefined
with#void
, andnull
with#null
- characters are again unboxed into strings by JavaScript code #329
- code that throw exception now return exit code 1
- change order of arguments in
take
(type #void)
(JavaScriptundefined
) is nowvoid
Features
- add
vector-for-each
andvector-copy!
function from R7RS - add
string-for-each
,string-downcase
, andstring-upcase
from R7RS - add
typecheck-number
function - add
char-foldcase
andstring-foldcase
functions - add
list-set!
andnth-pair
functions - add
SRFI-61
,SRFI-139
, andSRFI-210
- add
continuations?
function - add
iterator->array
function - add immutable strings as in R7RS spec #285
- add R7RS
char<...>?
andstring<...>?
functions #298 - improve syntax-rule exception message (appending macro code)
- update
log
to accept two arguments #301 - allow to use
data-bootstrap
attribute on script tags - make
atan
work for complex numbers - save error logs in home dir
- add timestamp to error logs
- make
+inf.0
and-inf.0
parser constants - add
zip
procedure (inspired by Lodash) - add
with-input-from-string
andread-all
#327 - add
#!fold-case
and#!no-fold-case
directives #342 - add
drop
procedure - allow to use unquoted symbols in
-->
to get the function - add
regex
procedure (rename from%r
used in bootstrap.scm) - support unterminated strings in REPL #280
- expose parser and lexer instance from syntax extensions #308
Bugfix
- fix
let-values
to allow binding to list #281 - fix wrong strings in
string-fill!
- fix
string-set!
to mutate the string and work on any expression - fix tokenizing regex that ends with hash
- fix bookmark on SRFI-210 document #287
- fix
syntax-rules
in macrodefine-value
#290 - fix indentation of
let-values
- various fixes to
syntax-rules
- fix
procedure?
to return true for continuations - fix
lips --help
screen - fix
cond-expand
to skip not-matched symbols - fix shadowing
syntax-rules
identifiers with let #291 - fix nested syntax rules with symbols after nested ellipsis
- fix Dark Mode colors and scrolling of the page when using Bookmarklet on English Wikipedia
- remove dependencies on
cond
from-->
macro so you can use use-->
insidecond
- fix handling of recursive
flatten
syntax-rules
macro #304 - fix syntax-rules macro that manipulate code (see tests/syntax.scm and undswap macro)
- fix
(read)
in the Web REPL - fix Node REPL with
npm install
#305 - fix formatting
syntax-rules
- improve floating point representation and parsing
- fix bookmark when hovering over boolean values
- fix quoted cycle in REPL #313
- fix set-repr! on base class #314
- fix
repr
of delay expressions #315 - fix
try..catch
#317 - fix handling
^
and$
syntax extension #318 - fix mixed values in
let*-values
#322 - fix
do
macro #324 - fix
string->number
that leads to NaN #326 - fix unintentional unboxing in
iterator->array
#328 - fix
replace
with asynclambda
#319 - fix
values
without arguments #331 - improve working of REPL in Emacs
- fix
(expt +i +i)
- fix let with duplicated variables #335
- fix escape ellipsis in syntax-rules #334
- fix parsing inexact complex without real part and
inexact->exact
procedure #340 - fix Petrofsky let #341
- fix
repr
of cycles - fix parsing regex that have escaped open bracket
- fix parsing quotation without data
- fix reading syntax-extensions from input ports
- fix parsing syntax-extensions that start with
#f
or#t
#343 - fix repr of curried function (output of
curry
)
1.0.0-beta.18.1
- NPM technical release
1.0.0-beta.18
Breaking
- change undocumented arguments to
lips.exec
into an object - change default export into named exports in ES Module
Features
- add R7RS
guard
macro - add R7RS
parameterize
andmake-parameter
- add
shuffle
function - add support to ES Modules #254
- add support for
(scheme-report-environment 7)
- add a way to compare custom instances with
equal?
#270 - add support for
equal?
on records #273 - expose
lips.set_fs
function #256
Bugfix
- remove evaluating of async list data as first argument
- fix
number->string
for binary numbers - fix macro expand on let with more than one binding
- fix shallow
list->array
- fix resolving promises inside quoted promise realm
- fix undocumented symbol syntax extensions
- fix odd? even? on non integers
- fix object literals with null value #264
- fix version and date in executable #261
- fix error on extra close parenthesis #263
- fix
scheme-report-environment
#268 - fix writing to binary ports
- fix unboxing object literals
- throw error on comparing complex numbers #248
- make
integer?
works for normal native numbers - fix parsing newline character literal
- fix reading local files in browser #276
- fix parsing invalid expression
(1 . 2 3)
#245 - fix invalid error message for not matched
syntax-rules
#243 - fix silent error when class don't have parent #272
- fix
try..catch
#163
1.0.0-beta.17.1
- NPM technical release
1.0.0-beta.17
Breaking
- chars are now not automatically unboxed to strings #233
Features
- make bookmark REPL dockable #205
- make Strings iterators that return characters
- improve object literals #237
- better error message with exception on invalid string literal
- add non-standard
with-input-from-string
function
Bugfix
- fix using performance object for older version of Node
- fixing escaped symbols in CodeMirror
- fix parsing strings #193
- add proper error message to
-->
macro #200 - fix
performance.timeOrigin
on Node 12 #207 - fix string->list to handle longer code points
- fix numerator and denominator #213
- fix Map object repr
- fix parsing regular expressions #238
- fix exception when syntax-rule macro contain undefined
- fix REPL clearing stdin when using read-line #253
- add proper handling of Paste Brackets mode in REPL for NodeJS
1.0.0-beta.16
Breaking
- replace
get-script
withget-resource
that work in Node and in browser and allows to load CSS
Features
- add
object->alist
,command-line
, andsymbol-append
procedures - add SRFI: 193
- add
get-environment-variable
andget-environment-variables
- improve bootstrapping by using same URL of the script if possible
- add
set-global!
macro - add
current-second
,current-jiffy
, andjiffies-per-second
procedures
Bugfix
1.0.0-beta.15
Breaking
- bootstrap URL now require full url to the file with standard library
Features
- improve performance of
**
operator when JS support exponential operator - add alias for
string-join
andstring-split
- lists are now iterators
- add optional
=>
syntax tocond
macro (as per R7RS) - make
undefined
parser constant - compile into binary CBOR format with LZJB compression
- add support for
log
of complex, rational, and negative numbers - allow to define shorthand object literals #185
- add Buffered Output Port and
flush-output
function
Bugfix
- fix scoping issue in nested
syntax-rules
- fix
repr
of object that have space in key - property throw error when name is used without ellipsis
- fix using dot notation inside syntax-rules macros
- typecheck
string->symbol
andsymbol->string
- fix
parent.frame
insideIntepreter
- fix
eval
without env - fix quote as delimiter
- fix comma dot as two tokens
- fix printing symbols that have brackets or quotes
- fix resolving dot notation (e.g.
lips.LComplex.prototype.modulus
) - fix
repr
of native type prototypes (e.g.LComplex
) - fix using prototypes inside objects (e.g.
(object :foo Number.prototype)
) - fix
sqrt
of rational where numerator or denominator is float - fix
sqrt
of negative real that are like integers #175 - fix boxing NaN value
- fix
length
of nil - fix trimming spaces in
Env::set
- fix
repr
of symbols with impossible characters created withstring->symbol
- fix
eqv?
on same pairs - fix
abs
on inexact numbers that can be represented as integers #181 - fix extra newline when calling print in browser #186
1.0.0-beta.14
Breaking
- remove
zip
function that just(map list l1 l2 ...)
raise
now throws object as is (just like JSthrow
keyword)error
now throws LipsError exception as per R7RS
Features
- R7RS datum labels
- allow to use
set-repr!
on records (record type name is now a class) - match function return
#f
instead ofnil
when fail to match (so it work incond
orif
) - new functions
complement
,always
,once
,flip
,unfold
(inspired by Ramda) - add codemirror hits for std lib symbols
- experimental compiler to JSON (not 100% ready)
- add support for
exp
on complex numbers - add R7RS
error-object?
,error-object-message
anderror-object-irritants
- make
NaN
,null
andundefined
parser constants - return proper repr of instances of
define-class
Bugfix
- fix
set-repr!
on classes - fix conflict with jQuery plugns in bookmark
- fix swallowing errors when printing values in Node REPL
- fix mixed quoted and normal promises in let binding #154
- fix problem were await affect quoted promise in macros (e.g.
begin
) #153 - typecheck second argument to
set-obj!
- fix
case
macro (use implementation from R7RS Errata) - fix async constructor in
define-class
- fix methods with improper lists in
define-class
- fix null inside quasiquote
1.0.0-beta.12
Breaking
env
anddir
now returns symbols instead of stringsrepr
andtype
of quoted promises now return#<promise>
andpromise
- numbers and characters properties are immutable
Features
- create minfied std scheme file for faster bootstrap
- add
list-copy
- add
define-record-type
- add
escape-regex
function - make
apropos
accept symbol as argument - add doc strings for
**interaction-environment**
and**internal-env**
- add
letrec*
that in LIPS is exactly the same asletrec
- add
pragma->sxml
macro that definesxml
macro (default ish
) - hide
fs
in internal env - automatic bootstrapping of
fs
with BrowserFS if exists pprint
in both REPLs now print in color #33- add
nan?
,infinite?
andfinite?
functions - add
+nan.0
and-nan.0
(R7RS) - properly handle negative inexact zero
- new
environment?
function - add
current-directory
andset-...
from SRFI-170 - add gensym literals (e.g.
#:foo
) - fix pretty print of different cases of
let
- add binary input/output procedures from R7RS
- update vector functions that in R7RS get start and end arguments
- add state props and better repr to quotedPromise
Bugfix
- fix prism highlighting of names (for new context help)
- fix error when using help in node REPL and there are no doc string
- fix escaping regex operators when using string with
apropos
- fix typechecking of number operators #128
- fix indent of call-with- (input-file, output-file and port)
- fix eq? and type of NaN #130
- fix number predicates
- fix
real-part
function - fix parsing complex with 0 inexact imaginary part
- fix option -t --trace in Node REPL
- fix
eqv?
on exact and inexact numbers according to R7RS spec - fix
exact->inexact
on complex numbers - fix arithmetic with single complex value
- fix parsing regex that have escape slash and parenthesis (
#/( \\/)/g
) - fix parsing regex that have single slash in class brackets (
#/\/[^/]+$/
) - fix division on single argument (now
(/ n)
==(/ 1 n)
) - fix complex operation that result in real (e.g. multiplication over conjugation)
- fix
list-ref
according to R7RS errata - fix formatter (pretty print) on multiline strings and atoms
- fix formatter indent of
let*
- fix repr of vectors (arrays with empty value)
- fix promise quotation of object macro call #139
- fix unquote-splicing inside direct quasiquote vector #140
1.0.0-beta.11
Breaking
- remove repr of HTMLElement (it's now default instance of a class)
- regular expressions are now prefixed with hash like in Gauche e.g.
#/foo/
Features
- add support for quasiquote on objects and vectors
- interning symbols mechanism #106
- new macro
quoted-promise
, syntax'>
#54 - new function
await
that return original promise from QuotedPromise - bytevector functions (R7RS)
- improve detecting and repr of iterators
- add
eof
variable to global env - add
apropos
function - new incremental Lexer that allow to modify parser while it's running
- add SRFI-10 sharp-comma
- new syntax try..catch..finally
- new parallel
list*
macro - new
scheme-report-environment
function (R5RS) - update
**
to work on negative numbers
Bugfix
- fix resolving promises on vectors and objects
- fix context in methods of plain objects #103
- fix
equal?
on typed arrays - fix detecting user repr (when object is subclass)
- fix calling port methods (e.g. calling
get-output-string
function) - fix prism highlighting of multiple regular expression
- fix parsing chars for Unicode outside of BMP
- fix when try..catch is promise that rejects and catch throws
- fix resolving promises when apply function they are not executed in sequentially
- fix
eval
builtin function to evaluate everything