News
Sapphire: Redmine upgrade, new redirects
The sapphire-lang.org site has been upgraded from 0.8.3 to 0.8.7, the last of the 0.8.x branches, which includes some XSS fixes among other things. I've also switched the session storage mechanism behind this site, so if you were logged in and were suddenly logged out, you know why.
I've also added 3 new subdomains:
Redirect to the wiki
http://wiki.sapphire-lang.org
Redirect to the main issues page
http://issues.sapphire-lang.org
Redirect to the forums
http://forums.sapphire-lang.org
Sapphire: Source now on Github
The source code for Sapphire will henceforth be maintained on Github. You can find it at http://github.com/djberg96/Sapphire.
I'm starting over with Ruby 1.8.6-p383 as the baseline, and refactoring the tests as I go to use a more declarative style.
Sapphire: Redmine Upgrade
The sapphire-lang.org site has been upgraded from Redmine 0.7.3 to 0.8.3. It has also been switched from FastCGI to Phusion Passenger. That will make future upgrades much easier. It's as simple as "svn update; touch tmp/restart.txt".
Sapphire: Wiki Updates
Several planned features has been wikified:
http://www.sapphire-lang.org/wiki/sapphire/Fine_grained_mixins
http://www.sapphire-lang.org/wiki/sapphire/Structured_warnings
http://www.sapphire-lang.org/wiki/sapphire/Method_annotations
http://www.sapphire-lang.org/wiki/sapphire/Named_parameters
http://www.sapphire-lang.org/wiki/sapphire/AOP_support
http://www.sapphire-lang.org/wiki/sapphire/Selector_namespaces
Sapphire: Redmine upgrade
The redmine framework has been updated from 0.6.3 to 0.7.3. Please report any Redmine specific issues at http://www.redmine.org.
Sapphire: Hash Slicing
The Hash#[] and Hash#[]= methods have been refactored to support hash slicing out of the box.
hash = {'a', 1, 'b', 2}
hash['a', 'b'] => [1, 2]
hash['a', 'b'] = 7, 8
hash['a'] => 7
hash['b'] => 8
Sapphire: Test::Unit Improvements
The Test::Unit library has undergone some nice improvements recently.
The Test::Unit::TestCase library now supports startup and shutdown methods. Unlike setup and teardown, which run once per test, the startup and shutdown methods only run once per test case. Useful for socket connections and the like where you only want to connect once per test case.
The assert_raise_kind_of assertion was added to better deal with cross platform systems testing. This typically means checking for SystemCallError, since different platforms raise different errors, depending on the situation.
The skip assertion was added as a handy way to skip a test based on certain conditions. Any assertions following the skip declaration will not be run and the test will be tallied as a skipped test in the final output.
Take a look at the CHANGES wiki link, and follow the test-unit link for more information.
Enjoy!
Dan
Sapphire: Dir.tmpdir integrated
I've integrated Dir.tmpdir directly into dir.c. However, the semantics are different than Ruby's version. First, I don't validate that the path exists or is writable. That's the user's job. Second, I don't check TMPDIR, only TMP, TEMP and USERPROFILE. No one uses TMPDIR. Last, I don't alter the result based on $SAFE levels, in part because it feels arbitrary, and in part because I eventually plan on scrapping the $SAFE system completely anyway.
Dan
Sapphire: Now with AdSense
I've added AdSense to the Sapphire project. I've chosen a small ad size, in the right hand side of the screen, so hopefully it won't annoy you to any degree.
Any money generated from AdSense (which I don't expect to be much) will go towards code bounties.
Regards,
Dan
Sapphire: Sapphire!
Today marks the first day of Sapphire, a fork of the Ruby programming language.
Also available in: Atom