It’s been a while since we did a proper release of Self – too long in fact.
The last duck themed release was “Mallard” a couple of years (!) back – we’re overdue for more ducks so here is a new release of Self brought to you by this beauty:
Self 2017.1 is downloadable for Linux x86 (.zip) and MacOS (.dmg), or you can build it yourself from the GitHub source tree.
There is also a handbook included and available to read online.
A brief change log is:
New features:
- Changed to new versioning system for key subsystems (vm, core, morphic, outliners) and for release as a whole.
- New `about` object accessible from main menu with system info.
- New `preferences` object allows easy access to system preferences.
- ew themeing system for outliners and a new look.
- Extensive reorganisation of object categories in `globals` to make global objects more easily discoverable and understandable.
- New option on `worldbuilder.self` script to allow for fully automated building of Self worlds by setting subsystem options on command line.
- New string helper methods: `splitOn:`, `joinUsing:` and `slice:`.
- The `transporter` is now aware of code being in multiple independent trees, not only one single Self tree, allowing for separate projects to be kept in separate version control repositories.
- A system-wide logger has been included to standardise logging practices within Self.
Updates:
- Self Control.app on macOS updated to work with El Capitan.
Fixes:
- Fix on macOS to reduce CPU usage when idle.
- VM build will now explicitly show which macOS SDK it is using.
- ^D (EOF) handled correctly at prompt
- Fix to bug preventing compilation on recent GCC
- Many other misc fixes.
Documentation:
- General improvements to Self handbook.
- Self website moved out of main repository.
Other:
- Webserver moved to separate repository: github.com/russellallen/self-webserver
- travis-ci.org integration for VM building
Congrats! Sounds like some good improvements.
– David
>
[…] Self “Mandarin” 2017.1 […]
Awesome project, I’d love to see this language go mainstream. I’ll be following Self forever.
This is probably the wrong place to vent about this, but so far, Self has the highest fascination-to-piss poor documentation ratio of any language I’ve studied.
Why is it that this fails:
(| slot1. slot2| ‘here is some code’ printLine )
with the message:
^ inner methods are no longer supported, slot-list within a sub expression is not legal.
This is the first line of code that appears in the Self Handbook, and it’s apparently no longer supported by the language!
I had to root around on the website to figure out that I must run ‘worldBuilder.self’ _RunScript just to set the VM up properly, because that doesn’t just happen out of the box, kinda unlike, I dunno, almost every other language I’ve used. My first impressions of the language are not off to a good start. Can you point me to any other source on Self, preferably not written by you?
relationship Intact
Self
The Self language looks died, but maybe somebody knows enough on VM internals can write a tutorial on implementing very light Self-like system from scratch and step by step (in Python or Java)?
The problem is not the lack of reference implementation support (which need a huge amount a work factically), but promote the language model ideas among programmers in mainstream languages. They can be interested in very easy to understand and implement a very light VM to be used in other commercial and hobby applications as an embeddable script engine.