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 8, 2024
2 parents 7c1fcda + 0edd803 commit ddb4a55
Show file tree
Hide file tree
Showing 36 changed files with 5,837 additions and 1,030 deletions.
2 changes: 1 addition & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
[codespell]
skip = ./node_modules*,./dist/*,./package-lock.json,./lib/srfi/*,./assets/UnicodeData.txt,./assets/CaseFolding.txt,./scripts/numerals.scm
skip = build,coverage,node_modules*,./dist/*,package-lock.json,./lib/srfi/*,./assets/UnicodeData.txt,./assets/CaseFolding.txt,./scripts/numerals.scm
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ tests/snapshots/* binary
*.xcm binary
*.xcb binary
dist/** linguist-generated
docs/reference.json linguist-generated binary
*config.js linguist-vendored
docs/** linguist-documentation
**/*.lips linguist-language=scheme
4 changes: 2 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- name: checkout
uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
Expand All @@ -48,6 +48,6 @@ jobs:
- run: make test
- run: make coverage
- name: Coveralls
uses: coverallsapp/github-action@master
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
## 1.0.0-beta.20
### Feature
* allow to call `load` with `@lips` prefix [#354](https://github.com/jcubic/lips/issues/354)
* add string interpolation [#321](https://github.com/jcubic/lips/issues/321)
* add default repr for R7RS records
* add parenthesis matching in Node.js REPL
### Bugfix
* fix duplicated identifiers in syntax-rules (case of SRFI-239 example implementation)
* fix `load` of absolute path in Node
* fix require of LIPS package from Node
* fix transforming `syntax-rules` ellipsis that expand into #void
* fix improper lists in `syntax-rules` [#360](https://github.com/LIPS-scheme/lips/issues/360)
* fix handling of REPL in Emacs (`run-scheme`)
* fix `promise?` predicate
* fix handling of `|1|1` and `|a|b|c|` symbols
* fix repr of anonymous classes [#361](https://github.com/LIPS-scheme/lips/issues/361)
* fix handling of escape characters in symbols
* fix processing list with nested unquote-splicing [#362](https://github.com/LIPS-scheme/lips/issues/362)
* fix exception during error from eval [#362](https://github.com/LIPS-scheme/lips/issues/362)
* allow to catch exceptions from eval
* fix else keyword as only expression in cond [#366](https://github.com/LIPS-scheme/lips/issues/366)
* fix clash of variable named `list` in named `let` [#398](https://github.com/LIPS-scheme/lips/issues/398)
* fix Node REPL flickering

## 1.0.0-beta.19
### Breaking
* change `get-environment-variables` and `get-environment-variable` returns nil and undefined in the browser
Expand Down
18 changes: 18 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,21 @@ run ESLint execute:
```bash
make lint
```

## Codepell

LIPS use [Codespell](https://github.com/codespell-project/codespell) to catch
grammar mistakes. It runs as GitHub Action. But you can test locally so you can
fix the type before it will give error from Action.

You can install Codespell using PIP (you need to have Python installed):

```bash
pip install codespell
```

The run:

```bash
make codespell
```
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ COMMIT=`git rev-parse HEAD`
URL=`git config --get remote.origin.url`
UNICODE_ALL=https://unicode.org/Public/UNIDATA/UnicodeData.txt
UNICODE_FOLD=https://www.unicode.org/Public/UCD/latest/ucd/CaseFolding.txt
WORK_TREE=`git worktree list | cut -f1 -d' ' | grep -v "\`pwd\`$$" | xargs -I{} basename {} | tr $$'\n' ',' | sed 's/,$$//'`

MAKE=make
GIT=git
Expand Down Expand Up @@ -131,7 +132,7 @@ coverage:
$(NPM) run coverage

codespell:
$(CODESPELL) -S 'package-lock.json,node_modules,build,coverage'
@$(CODESPELL) -S $(WORK_TREE)

lint:
$(ESLINT) src/lips.js lib/js/bookmark.js
$(ESLINT) src/lips.js lib/js/bookmark.js bin/lips.js
30 changes: 20 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<h1 align="center">
<img src="https://github.com/jcubic/lips/blob/master/assets/lips.svg?raw=true"
<img src="https://github.com/jcubic/lips/blob/devel/assets/lips.svg?raw=true"
alt="LIPS - Scheme Based Powerful Lisp Language" />
</h1>

[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/lips_lang)](https://twitter.com/lips_lang)
[![npm](https://img.shields.io/badge/npm-1.0.0%E2%80%93beta.19-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)
[![Build and test](https://github.com/jcubic/lips/actions/workflows/build.yaml/badge.svg?branch=master&event=push)](https://github.com/jcubic/lips/actions/workflows/build.yaml)
[![Coverage Status](https://coveralls.io/repos/github/jcubic/lips/badge.svg?branch=master&80a731f28ad563e153f52942314ee16b)](https://coveralls.io/github/jcubic/lips?branch=master)
[![Build and test](https://github.com/jcubic/lips/actions/workflows/build.yaml/badge.svg?branch=devel&event=push)](https://github.com/jcubic/lips/actions/workflows/build.yaml)
[![Coverage Status](https://coveralls.io/repos/github/jcubic/lips/badge.svg?branch=devel&d99e59bdd4421bb215d5bb781449d63f)](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 @@ -162,7 +162,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 @@ -201,7 +201,7 @@ Executables also return a S-Expression according to SRFI-176 use `lips --version

## FOSDEM'23 Presentation [Video]

[![FOSDEM 2023 - LIPS Scheme: Powerful introspection and extensibility](https://github.com/jcubic/lips/blob/master/assets/fosdem-intro.png?raw=true)](https://fosdem.org/2023/schedule/event/lipsscheme/)
[![FOSDEM 2023 - LIPS Scheme: Powerful introspection and extensibility](https://github.com/jcubic/lips/blob/devel/assets/fosdem-intro.png?raw=true)](https://fosdem.org/2023/schedule/event/lipsscheme/)

## Limitations

Expand All @@ -210,7 +210,7 @@ Because LIPS is tree walking interpreter, sometimes it may be slow. Especially i
process long arrays and use callback function. If the array is quite large each piece 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 Down Expand Up @@ -260,8 +260,16 @@ This can happen with React/Preact and when the component returns a Promise. Some
| Custom macro transformers | [SRFI-147](https://srfi.schemers.org/srfi-147/) |
| Version flag | [SRFI-176](https://srfi.schemers.org/srfi-176/) |
| Command line | [SRFI-193](https://srfi.schemers.org/srfi-193/) |
| Mixing groups of definitions with expressions within bodies | [SRFI-251](https://srfi.schemers.org/srfi-251/) |

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

You can load the SRFI with special syntax that start with `@lips`
which points to root LIPS directory:

```scheme
(load "@lips/lib/srfi/<number>.scm")
```

They should be loaded as R7RS libraries in final 1.0.0 version

Expand All @@ -278,8 +286,9 @@ They should be loaded as R7RS libraries in final 1.0.0 version
| Multiple-value boxes | [SRFI-195](https://srfi.schemers.org/srfi-195) |
| Procedures and Syntax for Multiple Values | [SRFI-210](https://srfi.schemers.org/srfi-210/) |
| Evaluating expressions in an unspecified order | [SRFI-236](https://srfi.schemers.org/srfi-236) |
| Destructuring Lists | [SRFI 239](https://srfi.schemers.org/srfi-239/) |

in Web (e.g. in Web REPL) you can use URL:
in Web (e.g. in Web REPL) you can also use full URL:

```scheme
(load "https://cdn.jsdelivr.net/npm/@jcubic/lips@beta/lib/srfi/<NUMBER>.scm")
Expand All @@ -300,8 +309,7 @@ in Web (e.g. in Web REPL) you can use URL:
* [Brian Lovin](https://brianlovin.com/hn/38819212) (HN clone)

## Projects that use LIPS
* [Conzept](https://conze.pt) - Topic exploration system for the 21st century (see also their [Twitter account](https://twitter.com/conzept__) and [Command API Documentation](https://conze.pt/guide/command_api)).
* [Logoi](https://logoi.website/) - a minimalist "superdialect" of the Prolog and Lisp programming languages.
* [Conzept](https://conze.pt) - Topic exploration system for the 21st century (see also their [Twitter account](https://twitter.com/conzept__) and [Command API Documentation](https://conze.pt/guide/command_api))

## Roadmap
### 1.0
Expand Down Expand Up @@ -365,6 +373,8 @@ I would also love to see if you use the library, I may even share the links of p

Special thanks to [Lassi Kortela](https://github.com/lassik) for helping with Scheme code.

Thanks for [Algolia DocSearch](https://docsearch.algolia.com/) for providing free search on LIPS website.

## License

Released under [MIT](http://opensource.org/licenses/MIT) license<br/>
Expand Down
Loading

0 comments on commit ddb4a55

Please sign in to comment.