[ANN] Mirah 0.2.0 Released!

79 views
Skip to first unread message

Nick Howard

unread,
Aug 11, 2016, 1:57:37 AM8/11/16
to mi...@googlegroups.com

This is a large release, relatively speaking. It's been a long time since the last release (Mar 2015!), but Mirah's had a lot of improvements since then. I decided to bump the minor release to 0.2 because it felt right. This release has a lot of code in it from a number of contributors.


Here's a list of highlights for this release. If I miss anything cool, it's my fault not the authors of the features or fixes. If you've got something to call out, please add it to the thread.


## Semantics


Now == != tests for value equality and === / !== tests for identity. I'd talked about this before [link].


In Java, == and != are value equality for primitives, but reference equality for references--ie identity. In Ruby, they don't test identity. Now Mirah acts more like Ruby in this way. When using == on an object, it will return the results of calling `equals`.


## New Build-in Macros


* Cast macro!

Casts were ambiguous, as they looked like calls. They also could make code trickier to follow. Mirah now has a new cast macro built in.


   # Instead of this:

   int(a_float)

   # Do this

   a_float.as!(int)


* Synchronization


   my_object.synchronize { thing_that_needs(a.lock) }



* Access control flags as modifiers


   private def my_method; end


And more! Look at the changes in src/org/mirah/builtins!


## Lots of bug fixes


* Better error messages on parse failures.

* The code generator won't generate a message for every class anymore.

* The warning about matching scope sizes is gone.

* String literals can be used as hash literal keys


## Internals / Build

* Parser moved to mirah repo, and hooked into build. Now running rake test will build the parser directly and then use that version of the parser when running tests. It’s not part of the meta-circular tests yet though.

* Update asm to 5.

* Logging in the compiler is now macro-ified which makes the compiler noticeably faster when debugging is off.

* Macros as service providers: Macros are now registered as service providers. This should make it easier for libraries to create jars that export their macros. I've got some ideas to build on this that should make it easier.



## CLI

--new-closures is gone as there's only one closure implementation now.



The full list of changes can be found in History.txt.


Thanks to all our contributors for this release!



--

Matthew Ong

unread,
Mar 14, 2017, 1:34:29 AM3/14/17
to mi...@googlegroups.com
Consider making Mirah the assembly language of mobile Clouds and IoT.

Build it to support Async model like nodejs or go. 

Have other languages compile into json.

Have json compiled into mirah.
Make mirah Flys. 

--
You received this message because you are subscribed to the Google Groups "The Mirah Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mirah+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

J Scott Kasten

unread,
Mar 15, 2017, 9:30:29 AM3/15/17
to Mirah Mailing List
Well I for one am looking forward to moving my 0.1.2 code forward and dumping a few of the workarounds I put in and cleaning things up.

Great news!

Nick Howard

unread,
Mar 15, 2017, 11:02:21 AM3/15/17
to mi...@googlegroups.com
That's great!

Matthew Ong

unread,
Mar 15, 2017, 10:00:05 PM3/15/17
to mi...@googlegroups.com
I am merely suggesting a core direction of tech trend. IoT and Mobile cloud is a next future trend. Plenty of big players pushing the wave. Mirah can ride that wave. I like to see mirah ride that waves too.
Reply all
Reply to author
Forward
0 new messages