Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsloop42/dreamlisp
DreamLisp Programming Language Interpreter
https://github.com/jsloop42/dreamlisp
clojure dreamlisp lfe objective-c
Last synced: 17 days ago
JSON representation
DreamLisp Programming Language Interpreter
- Host: GitHub
- URL: https://github.com/jsloop42/dreamlisp
- Owner: jsloop42
- License: mit
- Created: 2020-12-02T18:10:58.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-02-14T17:53:14.000Z (5 months ago)
- Last Synced: 2024-03-03T07:35:41.616Z (4 months ago)
- Topics: clojure, dreamlisp, lfe, objective-c
- Language: Objective-C
- Homepage:
- Size: 2.3 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: License.txt
Lists
- awesome-lisp-languages - DreamLisp - B] Clojure-inspired, originally based on MAL, added modules, lazy collections (Languages / Objective-C)
- awesome-lisp-family - DreamLisp - commit](https://img.shields.io/github/last-commit/jsloop42/dreamlisp.svg)](https://github.com/jsloop42/dreamlisp) | B | | (Languages / Objective-C)
README
## DreamLisp Programming Language Interpreter
![Github CI/CD Status](https://github.com/jsloop42/dreamlisp/actions/workflows/main.yml/badge.svg)
DreamLisp is a Lisp dialect with modules, lazy collections and is a Lisp-2 with an unhygienic macro system. DreamLisp interpreter is implemented in Objective-C and as such can run on macOS and iOS. It is tail recursive, uses ARC instead of garbage collection, has asynchronous communication using notifications taking advantage of the underlying Objective-C runtime and Foundation library. In the experimental version [objc-rt-1 branch](https://github.com/jsloop42/dreamlisp/tree/objc-rt-1), we can define classes and create objects at runtime from the REPL. At present, the language runs in interpreted mode.
#### Version
```
DreamLisp v3.4 (12) [Objective-C 2.0]
Shell v1.1 (4)
```
## Language Guide[DreamLisp Programming Language Guide](Language%20Guide.md)
## Xcode Configurations
Use the `DreamLispAll` scheme to build all the targets which includes the framework, shell and test cases. This scheme is used for making release builds.
Use the `DreamLispAll-Debug` scheme for development. Since the shell uses readline library the Xcode console won't work properly. Instead this scheme opens the shell in Terminal app. Make sure to enable `DevToolsSecurity` so that the debugger can attach to the running process.
```
% sudo DevToolsSecurity -enable
```## References
[Clojure](https://clojure.org)
[MAL (Make a Lisp)](https://github.com/kanaka/mal/)
[Lisp Flavoured Erlang (LFE)](https://github.com/rvirding/lfe)