I really want Cuis on a RiscV64 with compile-to-native.
I have been looking at Pinocchio, OpenSmalltalk, and Bee runtimes but want something less complex.
The thought is to do "the simplest thing that will work" in Cuis to generate a metacircular Smalltalk native runtime, then add OS native support for UI, events, files, sockets .. working toward a full Cuis IDE (a.k.a. Cuis Userland)
- Full IDE: Refactoring Tools, Syntax Hilighting, Code Completion
- Minimalist -- all code must carry its own weight (Base < 700 Classes)
- Composition/Modularity -- Features Provided by versioned Packages
- Morphic 3: Antialiased Scalable Vector Graphics & TT Fonts
- Unified Unicode
- Compiletime constant literals (backquote, e.g
1@2
). - and of course: ANSI Smalltalk Standard (such as it is..)
Pole Star Goal: Load any Cuis Package and use it without change.
VM Support Makes Problems:
- LiveTyping
- FFI
- Plugins
Both Pinocchio and Bee made changes to separate Class shape from behavior. What changes to Cuis Class Hierarchy might be required to minimize differences between Cuis Userland and Vanilla (current) Cuis?
UserlandClasses.txt -- Critical Classes to understand
PrimCallers.tst -- methods that call PrimOps -- note: #Parser>>primitivePragmaSelectors.
BeeBootstrapClasses.txt
- http://scg.unibe.ch/archive/projects/Flue11a.pdf
- https://playingwithobjects.wordpress.com/2013/05/06/bootstrap-revival-the-basics/
- https://github.com/guillep/PharoCandle
- https://github.com/powerlang/bee-dmr
- http://esug.org/data/ESUG2014/IWST/Papers/iwst2014_Design%20and%20implementation%20of%20Bee%20Smalltalk%20Runtime.pdf
- http://www.smalltalksystems.com/publications/avmarch.pdf
- https://github.com/KenDickey/Crosstalk/tree/master/SmalltalkKernel
- https://github.com/dvmason/Zag-Smalltalk