Skip to content

Commit

Permalink
merge with devel
Browse files Browse the repository at this point in the history
  • Loading branch information
jcubic committed Nov 15, 2021
2 parents d220ef5 + b166879 commit 3dd32fc
Show file tree
Hide file tree
Showing 21 changed files with 1,737 additions and 659 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ package-lock.json binary
assets/classDiagram.svg binary
tests/snapshots/* binary
*.xcm binary
*.xcb binary
21 changes: 20 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
## 1.0.0-beta.16
### Breaking
* replace `get-script` with `get-resource` that work in Node and in browser and allows to load CSS
### Features
* add `object->alist`, `command-line`, and `symbol-append` procedures
* add SRFI: 193
* add `get-environment-variable` and `get-environment-variables`
* improve bootstrapping by using same URL of the script if possible
* add `set-global!` macro
* add `current-second`, `current-jiffy`, and `jiffies-per-second` procedures
* improve error message in `-->` macro when function not found
### Bugfix
* fix async script execution in browser [#190](https://github.com/jcubic/lips/issues/190)
* fix type of `process.env`
* fix module load path when load scripts from Node.js
* fix bug in `quasiquote` and `unquote-splicing` [#194](https://github.com/jcubic/lips/issues/194)
* fix `inexact->exact` on integers [#199](https://github.com/jcubic/lips/issues/199)
* throw error on missing parentheses [#198](https://github.com/jcubic/lips/issues/198)

## 1.0.0-beta.15
### Breaking
* bootstrap URL now require full url to the file with standard library
* 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` and `string-split`
Expand Down
45 changes: 39 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
![LIPS - Scheme Based Powerful Lisp Language](https://github.com/jcubic/lips/blob/master/assets/lips.svg?raw=true)
<h1 align="center">
<img src="https://github.com/jcubic/lips/blob/devel/assets/lips.svg?raw=true"
alt="LIPS - Scheme Based Powerful Lisp Language" />
</h1>

[![npm](https://img.shields.io/badge/npm-1.0.0%E2%80%93beta.15-blue.svg)](https://www.npmjs.com/package/@jcubic/lips)
![1.0.0 Complete](https://img.shields.io/github/milestones/progress-percent/jcubic/lips/1?label=1.0.0%20Complete)
[![travis](https://travis-ci.com/jcubic/lips.svg?branch=master&f8e33173a30fd819c17afedf5700b1c78019b3c8)](https://travis-ci.com/github/jcubic/lips)
[![Coverage Status](https://coveralls.io/repos/github/jcubic/lips/badge.svg?branch=master&8c3211ada49521a8f2c41c9cc2095a91)](https://coveralls.io/github/jcubic/lips?branch=master)
[![travis](https://travis-ci.com/jcubic/lips.svg?branch=devel&1eec8b962e54e4acd16206ac4e5cf9609e281fbd)](https://travis-ci.com/github/jcubic/lips)
[![Coverage Status](https://coveralls.io/repos/github/jcubic/lips/badge.svg?branch=devel&17423cfd6c8eebb2ada372b7a12083bd)](https://coveralls.io/github/jcubic/lips?branch=devel)
[![Join Gitter Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/jcubic/lips)
![NPM Download Count](https://img.shields.io/npm/dm/@jcubic/lips)
![JSDelivr Download count](https://img.shields.io/jsdelivr/npm/hm/@jcubic/lips)
Expand Down Expand Up @@ -156,7 +159,7 @@ npm install -g @jcubic/lips@beta

you can run the interpreter from the terminal:

![LIPS: Scheme interactive terminal](https://github.com/jcubic/lips/blob/master/assets/screencast.gif?raw=true)
![LIPS: Scheme interactive terminal](https://github.com/jcubic/lips/blob/devel/assets/screencast.gif?raw=true)


You can also run code in a string with:
Expand Down Expand Up @@ -198,7 +201,7 @@ Because LIPS is tree walking interpreter sometimes it may be slow. Especially if
process long arrays and use callback function. If the array is quite large each pice of code
inside the callback may slow down the processing. For example see:

script [reference.scm](https://github.com/jcubic/lips/blob/master/scripts/reference.scm)
script [reference.scm](https://github.com/jcubic/lips/blob/devel/scripts/reference.scm)

That generates reference documentation for all builtin functions and macros.
The slow part is `(names.sort name-compare)` (`Array::sort`) that take quite time to calculate,
Expand All @@ -214,8 +217,38 @@ something like this:
(arr.sort fn))
```

## Supported SRFI

### built-in

| description | spec |
| :--- | ---: |
| Feature-based conditional expansion construct | [SRFI-0](https://srfi.schemers.org/srfi-0/) |
| Homogeneous numeric vector datatypes | [SRFI-4](https://srfi.schemers.org/srfi-4/) |
| Basic String Ports | [SRFI-6](https://srfi.schemers.org/srfi-6/) |
| Running Scheme Scripts on Unix | [SRFI-22](https://srfi.schemers.org/srfi-22/) |
| Error reporting mechanism | [SRFI-23](https://srfi.schemers.org/srfi-23/) |
| Basic Syntax-rules Extensions | [SRFI-46](https://srfi.schemers.org/srfi-46/) |
| Version flag | [SRFI-176](https://srfi.schemers.org/srfi-176/) |

### require `(load "./lib/srfi/<number>.scm")`

They should be loaded as R7RS libraries in final 1.0.0 version

| description | spec |
| :--- | ---: |
| List Library | [SRFI-1](https://srfi.schemers.org/srfi-1/) |
| `AND-LET*`: an AND with local bindings, a guarded `LET*` special form | [SRFI-2](https://srfi.schemers.org/srfi-2/) |
| receive: Binding to multiple values | [SRFI-8](https://srfi.schemers.org/srfi-8/) |
| `#,` external form | [SRFI-10](https://srfi.schemers.org/srfi-10/) |
| Notation for Specializing Parameters without Currying | [SRFI-26](https://srfi.schemers.org/srfi-26/) |
| Basic hash tables | [SRFI-69](https://srfi.schemers.org/srfi-69/) |
| An interface to access environment variables | [SRFI-98](https://srfi.schemers.org/srfi-98/) |
| Boxes | [SRFI-111](https://srfi.schemers.org/srfi-111/) |
| Syntactic combiners for binary predicates | [SRFI-156](https://srfi.schemers.org/srfi-156/) |

## Links
* [Gitter Chat](https://gitter.im/jcubic/lips)
* [Gitter Chat for discussions](https://gitter.im/jcubic/lips)
* [LISP: Scheme in JavaScript Git Repository](https://github.com/jcubic/lips)
* [Official Website](https://lips.js.org/)

Expand Down
Loading

0 comments on commit 3dd32fc

Please sign in to comment.