Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samdphillips/onyx-rb
Onyx Smalltalk
https://github.com/samdphillips/onyx-rb
programming-language ruby smalltalk
Last synced: about 1 month ago
JSON representation
Onyx Smalltalk
- Host: GitHub
- URL: https://github.com/samdphillips/onyx-rb
- Owner: samdphillips
- License: bsd-3-clause
- Created: 2012-06-03T20:53:55.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-12-17T23:29:08.000Z (about 1 year ago)
- Last Synced: 2024-10-16T03:03:48.293Z (3 months ago)
- Topics: programming-language, ruby, smalltalk
- Language: Ruby
- Homepage:
- Size: 218 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# onyx #
**Latest iteration of this is at https://github.com/samdphillips/onyx**
onyx has been the name for various Smalltalk implementations that I have
worked on. This version is written in Ruby, and someday will be written
in a lower level language (if I ever get that far.)Currently onyx is implemented as a [trampolining interpreter][tramp]
with [delimited continuations][delim] and a form of [continuation
marks][cmarks]. There is a small "standard library."Eventually onyx will have exceptions, [traits][traits],
and [contracts][contracts].
Additionally some other pragmatics things like FFI, JIT, and all those
other expected bits of runtime infrastructure.## Differences from "Smalltalk" ##
Here are some of the difference from other Smalltalks that are planned
on being added:- currently no IO system
- currently not vm based, no bytecode
- currently no browser or other development toolsHere are some of the differences from other Smalltalks that most like
won't be added:- Sequenced Collections are indexed starting at zero and not one.
- methods do not implicitly return self. Methods return the last
expression evaluated similar to Scheme and Ruby.
- no image file
- probably something that I've forgotten besides the obvious ...## Running Tests ##
A few different test systems are set up.
$ rspec
$ ruby -Ilib -I. t/tests.rb
$ ruby -Ilib -r onyx -e main src/tests/tester.ost \
src/tests/ordered_collection.ost \
src/tests/stream.ost[tramp]: http://www.cs.indiana.edu/hyplan/sganz/publications/icfp99/paper.pdf
[delim]: http://www.ccs.neu.edu/racket/pubs/icfp07-fyff.pdf
[cmarks]: http://www.ccs.neu.edu/racket/pubs/dissertation-clements.pdf
[contracts]: http://www.ccs.neu.edu/racket/pubs/thesis-robby.pdf
[traits]: http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf