Releases: uujava/mirah
Releases · uujava/mirah
Type hints support
The release of mirah with type hint support and a bunch of minor fixes not included in mainstream https://github.com/mirah/mirah/releases.
Changes to name a few:
- Type hints replaces casting via as! macros or functional cast style
x:Integer = 1
def x(o:Object)
o.kind_of? String ? o:String.toLowerCase : "#{o}"
end
- Support for Object#synchronize
- Fix abstract method validation
- Closure over self (will be reimplemented
- Unary minus without for parenthesis
puts -1
- Better do blocks vs braces block handling (no need to use parenthesis for Call arguments for do block)
A.call 1 do
end
- Java doc support reimplemented as statements
- Verify all abstract methods implemented
- Parameter annotation support could be used for writing jaxrs services:
import javax.ws.rs.Path
import javax.ws.rs.Get
import javax.ws.rs.QueryParam
import javax.ws.rs.DefaultValue
$Path['root']
class Resource
$Path['rest_call']
$GET
def rest_call(
$DefaultValue[2] $QueryParam['step'] step:int,
$DefaultValue[true] $QueryParam['min-m'] hasMin:boolean,
$DefaultValue[true] $QueryParam['max-m'] hasMax:boolean,
$DefaultValue[true] $QueryParam['last-m'] hasLast:boolean
):String
System.out.println("step = " + @step);
return "#{step}:#{hasMin}:#{hasMax}:#{hasLast}"
end
- Better support for numeric autoboxing. So one could write:
x:Integer = 1
y = 2
z = x + y
x = x + y > 3 ? 4 : 5
- Fix package support for dashE scripts
- Priority for macros: ability to override system macros
- Java stub generation preserving java doc comments to be processed by javadoc tool
- Java stub generation with preserved line number for debugging mirah code in IDE
- Different namespace for org.objectweb.asm (jarjar to mirah.objectweb.asm)
Usage:
java -jar mirac.jar -e "puts 'Hello world!'" && java DashETopLevel
java -jar mirac.jar test.mirah
java -jar mirac.jar -h
It will also be used as a default javalib/mirah-prev.jar for a build system with integrated mirah-parser source code