CHANGELOG
master
1.4.0 (2021-08-19)
This release includes feature enhancements including recursive type definition validation, improved compatibility of global variable names, and various method type updates.
Signature updates
- openssl (#743)
Array,Enumerator,Enumerable,Hash,FalseClass,Float,Hash,Integer,Object,Range,TrueClass(#728)Array#[](#732)Exception#set_backtrace(#738)Kernel#Array(#733)Kernel#spawn(#748)Kernel#String(#745, #751)URI::Generic#fragment(#752)URI::Generic#merge(#746)
Language updates
- Add global variables signature (#749)
Library changes
- Add Recursiive type alias defnition validation (#719)
- Generate included modules with complete name (#731)
- Fix
rbs-prototype-rberror when multi assign with const (#740)
1.3.3 (2021-07-28)
This release includes a minor update of resolv library RBS and a fix of test for ruby/ruby CI.
Signature updates
- resolv (#726)
1.3.2 (2021-07-23)
This release is to fix a bug introduced by parser update in 1.3.0.
- Fix parser to accept alias names starting with
_(#723)
1.3.1 (2021-07-21)
This release is to fix a bug introduced by parser update in 1.3.0.
- Fix parser to accept param names starting with
_(#721)
1.3.0 (2021-07-20)
Summary
RBS 1.3.0 includes bug fixees of the parser and class/module definition validations.
Signature updates
- dbm (#718)
- net-http (#686)
- optparse (#693)
- resolv (#697)
- socket (#699)
IO(#698)Marshal(#684)Mutex(#683)Array#shift(#707)BasicObject#method_missing(#707, #710)Kernel#caller(#705)
Library changes
- Interface names starting with lower case characters are now syntax error (#678, #720)
- Mixins of classes are rejected (#681)
- Generate prototype of
initializemethod with return typevoid(#685) - Let
prototype runtimegenerate class/module declarations in nested syntax (#700) - Fix race condition for multi-thread support (#702)
Miscellaneous
- Add new doc
docs/rbs_by_example.md(#694)
1.2.1 (2021-05-27)
This release includes the following minor changes:
- Fix test to run the tests in ruby repository. (#679)
- Remove unnecessary files from the gem package. (#675)
- Suppress unused variable warning (#674)
- Update documents (#672)
1.2.0 (2021-04-21)
Summary
RBS 1.2 ships with better support for AST/token locations and Locator utility class. The AST objects now keep the locations of tokens. The Locator class is to translate the text position (line and column) to semantic object at the location. The class allows to find if a text position is on the class name of a class declaration.
Signature updates
- Hash (#631, #632, #637, #638, #639, )
Module(#645)- Enumerable (#647)
- Array (#648)
Proc(#649)- Struct (#650, #668)
- Thread (#651)
- Random (#669)
- Shellwords (#665)
- IO (#659)
Language updates
Library changes
Miscellaneous
1.1.1 (2021-03-12)
Signature updates
- rubygem (#630)
1.1.0 (2021-03-08)
Summary
Errors are now organized by RBS::BaseError, ::RBS::ParsingError, ::RBS::LoadingError, and ::RBS::DefinitionError.
The library users can rescue RBS related errors with RBS::BaseError, parsing errors with ::RBS::ParsingError, and other errors with ::RBS::LoadingError and RBS::DefinitionErrors.
Updating a part of environments are supported. Library users can remove declarations read from a set of files, adding new declarations, running name resolution related to the new decls, and deleting DefinitionBuilder caches related to the changes.
See RBS::Environment#reject, RBS::Environment#resolve_type_names, ::RBS::AncestorGraph, and RBS::DefinitionBuilder#update.
RBS::DefinitionBuilder#build_singleton now returns definitions containing instance type, which had returned resolved class instance types. This is a breaking change, but we consider it a bug fix because RBS::DefinitionBuilder#build_instance has returned instance types and #build_singleton has returned class type.
Signature updates
Language updates
- Allow trailing comma for Record and Tuple types (#606)
Library changes
- Allow partial update of
RBSdeclarations (#608, #621) - Let errors have
TypeName(#611) - Add
Parser::LexerError(#615) - Performance improvement (#617, #620)
- No substitute
instancetypes on#build_singleton(#619)
Miscellaneous
- Make racc name customizable by
RACCenvironment variable (#602) - Suppress warnings (#624)
- Remove needless
Gem::Versionpolyfill (#622)
1.0.6 (2021-02-17)
1.0.5 (2021-02-13)
- Signature Updates
- Rename generic class parameters on re-open (#594)
- Make
refute_send_typecheck that method call doesn't match with types inRBS(#588)
1.0.4 (2021-01-31)
- Unbundle
rrto run test inruby/rubyrepo (#585)
1.0.3 (2021-01-28)
- Set up
#ancestorsand#locationofRecursiveAncestorError(#583)
1.0.2 (2021-01-28)
- Signature Updates
- Kernel(#582)
1.0.1 (2021-01-27)
- Signature Updates
- Renew test sample code (#581)
- Add description to
generate:stdlib_testRake task (#578) - Declare supported ruby version >= 2.6 (#548)
- Fix module self-type override (#577)
- Fix parser to support all operator symbols (#550)
- Migrate from Minitest to Test::Unit (#556)
- Fix type alias parsing (#565)
- Support end-less method definition in
prototype rb(#561) - Support method argument forwarding in
prototype rb(#560)
1.0.0 (2020-12-24)
- Signature updates for
URI,IO,File,Pathname,Module, andTime(#529, #521, #520, #511, #517, #542, #546, #540, #538) rbs prototype runtimegeneratesextends (#535)rbs prototype runtimestability improvements (#533, #526)rbs prototype rbcompatibility improvements (#545)- Implement method names escape in
::RBS::Writer(#537) - Improve runtime type checker compatibility (#532, #528, #547)
- Fix
ruby2_keywordsforProcinRuby<2.7 (#513) - Better compatibility for record type attribute names (#525, #524)
- Let module self-types be classes (#523)
- Delete
extensionsyntax (#543) - Method resolution improvements about
aliasand.new(#522, #519, #516) - Better message for
DuplicatedMethodDefinitionError(#539)
0.20.1 (2020-12-06)
0.20.0 (2020-12-06)
- Signature updates for
TSort,DBM,Time, andHash(#496, #497, #499, #507) - Add singleton attribute syntax (#502, #506, #505)
Proctypes with blocks (#503)- Add support for escape sequences in string literal types (#501)
- Fix runtime type checking of blocks with keyword args (#500)
0.19.0 (2020-12-02)
0.18.1 (2020-12-01)
- Fix
EnvironmentWalker#each_type_name(#494)
0.18.0 (2020-12-01)
- Signature updates for
YAML,ObjectSpace, andSingleton(#408, #477, #482) prototype rbimprovements (#492, #487, #486, #481)- Runtime type checker improvements (#488, #489, #490)
- Update
DependencyWalkerAPI to receive Node objects instead ofTypeName(#484) - Assume encoding of
RBSfiles to be UTF-8 (#493)
0.17.0 (2020-11-14)
- Signature updates for
Enumerable,Hash, andTSort(#462, #468, #471, #472, #473, #474) - Parser error handling improvement (#463, #475)
- Hash spread syntax handling improvement with
prototype rb(#465)
0.16.0 (2020-11-05)
0.15.0 (2020-11-02)
- Signature updates for
Kernel,PStore,Enumerable, andArray(#450, #443, #438, #437, #433, #432) - Add helper interfaces (#434, #428)
- Change
booltype semantics (#456) - Support alias in
rbs prototype rb(#457) - Runtime testing improvements (#455, #447, #444, #431)
- Fix proc type parsing (#451)
- Fix type variable parsing (#442)
0.14.0 (2020-10-17)
0.13.1 (2020-10-09)
- Fix test for CI of ruby/ruby (#412)
0.13.0 (2020-10-09)
0.12.2 (2020-09-17)
- Minor signature update for
pty - Fix
PTYstdlib test
0.12.1 (2020-09-16)
This version is to improve Ruby 3 testing compatibility. Nothing changed for users.
0.12.0 (2020-09-15)
- Signature updates for
forwardable,struct,set,URI::Generic,URI::File, andBigDecimal. - Define
.newmethods frominitializeincluded from modules #390
0.11.0 (2020-08-31)
- Signature update for
date/datetime#367 - Add test double support for runtime type checker #380
- Add
rbs testcommand for runtime type checking #366 - Fix runtime type checking for record types #365
- Improve EnvironmentLoader API #370
- Allow overloading from super methods #364
0.10.0 (2020-08-10)
- Signature update for
Zlib - Make "no type checker installed" message a debug print #363
- Print
...for overloading method definitions #362 - Allow missing method implementation in
Rubycode #359 - Runtime testing improvements #356
0.9.1 (2020-08-04)
0.9.0 (2020-08-03)
0.8.0 (2020-08-01)
- Signature updates for
EnumeratorandPTY - Fix prototype rb/rbi error handling #349
- Runtime test improvements #344, #343
- Add
...syntax #342
0.7.0 (2020-07-20)
- Add
DefinitionBuilder#one_instance_ancestorsandDefinitionBuilder#one_singleton_ancestors#341 - Bug fix in ConstantTable #340
- Make
rbs validatefaster #338 - Dedup methods generated by
rbs prototype rb#334
0.6.0 (2020-07-12)
- Signature update for
Logger. - Clean
Environment#inspect. #331 Moduleself type syntax update. #329- Better validation. #328
- Parser performance improvement. #327
- Runtime type checking performance improvements with sampling #323
0.5.0 (2020-07-04)
- Signature updates for
Mutex_m,IO, andEnumerable. - Syntax update. #307
- AST command prints absolute type names with file name filtering. #312
- Improve CLI message. #309
0.4.0 (2020-06-15)
- Signature update for
Fiber,Encoding, andEnumerator. - Fix syntax error for underscore and
!?#304 - Improved return type inference in
rbs prototype rb#303 - Skip anonymous modules/classes in
rbs prototype runtime#302 - Fix
--require-relativeoption inrbs prototype runtime#299 - Add JSON schema for
rbs ast#295
0.3.1 (2020-05-22)
- Fix constant resolution again #289
0.3.0 (2020-05-20)
- Fix constant resolution #288
0.2.0
- The first release of
RBSgem.
0.1.0
- Version 0.1.0 is the original
rbsgem and it is different software fromRBS.