- Setup
- Upgrade to llvm-16 (#507)
- Syntax
- feat: Allow omitting type arguments on .new and method-wise type arguments (#491, #492, #493)
- fix:
if
andwhile
now makes a local variable scope (#388 - Thank you @EruEri!)
- Library
- new:
Object#sleep
,Shiika::Internal::Memory.force_gc
(#498) - new:
File.open
,Readable
(#496)
- new:
- Breaking changes
- Require
let
for variable declaration (#418)
- Require
- Syntax
- feat: Method call with keyword arguments (#464)
- feat: Default value for method arguments (#469)
- feat: Add syntax to call a function stored in ivar (#420)
- Library
- new:
Object#gets
(#457),Random
(#456),File.read
,File.write
(#450)
- new:
- Other
- feat: Windows support (#449)
- feat:
SHIIKA_ROOT
to specify builtin path (#461) - bug fixes
- Syntax
- feat: Method type parameter inference (#415)
- feat: Block parameter type inference (#389)
- feat: Class-level initialize (#392)
- feat: Allow bool/float/string literal in pattern match (#383)
- Library
- feat:
Time
class (#413) - feat: String#chars supports emojis (#375, #377)
- feat:
- Other
- feat: Show backtrace on panic if
RUST_BACKTRACE=1
is set (#386) - feat: Support stable Rust (#370)
- feat: Show source location on some errors (#367, etc.)
- bug fixes
- feat: Show backtrace on panic if
- feat: Modules (#346)
- feat: require (#366)
- Breaking change: Renamed
build_corelib
subcommand tobuild-corelib
- Breaking change: Replace
!
withnot
(#351) - Breaking change: Remove conditional operator (
? :
) (#357) - feat: Object#unsafe_cast (#363)
- feat: Added many core methods
- Breaking change:
Int#/
now returns Float (#331)
- feat: Basic pattern matching (#306)
- feat: Class alias (#296)
- misc: Added class Metaclass (#301)
- internal: Split the compiler into several crates under lib/* (#316)
- feat:
Object#class
(#299),Float#to_s
(#320), etc. - Breaking change: Renamed
is_empty
toempty?
, etc. (#315) - Breaking change: Renamed
Hash
toDict
(#321) - Breaking change: Renamed
Int#&
toInt#and
, etc. (#329)
- Breaking change: Changed build process (see README) (#280, #284)
- feat: Enums (#142)
- feat: Inheritance from generic class (#287)
- feat: Relative reference of constants (#285) and type names (#291)
- Breaking change: Moved repository to shiika-lang/shiika. Also renamed
branch
master
tomain
- Breaking change: Removed
Fn#call
. Usef()
instead (#269) - Breaking change: Removed
&&/||
. Useand/or
instead (#278) - feat: Generic methods like
Array<T>#map<U>
(#237) - feat:
return
(#263) - feat:
Array#[]
,[]=
now accepts negative index (f3898fa) - feat:
Class#inspect
now works (#247) - feat: When
if
branches has different type, the type ofif
is the nearest common ancestor of them (#274) - feat: Added more methods
- feat: Added many methods
- feat: Impl.
Array<T>.new
(#222) - feat: if/unless modifier (#61)
- feat: String interpolation (#218)
- feat: Support
initialize(@a: Int)
like Crystal (#211) - feat: class Hash (#232)
- feat: Refine backtrace (f56eabe)
- misc: Upgrade to LLVM 9 (#219)
- fixes: #179, b00ce1c, #226, #230, #234
- Breaking change: Rename
Array#nth
toArray#[]
(#155) - feat: Added many methods
- feat:
\n
, etc. (#190) - feat: Int is now 64bit (#198)
- feat: Better parse error (1262091)
- feat: elsif (#201)
- fixes: #183, #184, #194, #196, #197, #199, #200, #214
- feat: Block syntax (#173)
- feat:
-=
, etc. (#165) - fixes: #176 #175
- feat: Virtual methods (#166)
- feat:
p
andinspect
(#168) - feat:
+=
(#163) - feat:
panic
,exit
(#162)
- feat: Anonymous function
- feat: Now you don't need Ruby to build shiika (#148)
- fixes: #130 #138
- feat: Array literal (#84)
- feat: Basic generics like Array#first (#101)
- fixes: #113 #114 #118
- feat: Automatically define getters/setters for instance variables (#44)
- feat: Specify superclass (#70)
- Inherit superclass ivars (#73)
- feat: Inner class definition (#69)
- feat:
unless
(#66) - fixes: #68 #62 #55
- chore: Update inkwell (#65)
- New example: ray
- feat: Mutable ivar (#45)
- feat: Class#name (#33)
- feat: Logical operators (#16)
- Bug fixes, add some methods
- New examples: mandel, hello
- feat: String literal and
puts
(#9) - feat: Support
if
with multiple stmts (#4) - fix: Parse abc (#5)
- feat: shiika compile, shiika run
- feat: while expression
- New example: fib
- feat: One-line comment
- feat: Add some operators
- feat: Constant
- Started reimplementation with Rust
-> Void
is now optional- Type checker: supports inheritance
- Array literal
- varargs
- Array class
- Basic generics
- ivar reference
- instance creation
- initial commit