Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:languages:ruby:extensions
rubygem-prism
rubygem-prism.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File rubygem-prism.changes of Package rubygem-prism
------------------------------------------------------------------- Mon Nov 4 17:15:26 UTC 2024 - Dan Čermák <dan.cermak@posteo.net> - 1.2.0: ## Added - Introduce `Prism::CodeUnitsCache`. ## Changed - Properly handle lexing global variables that begin with `$-`. - Properly reject invalid multi writes within parentheses. - Fix unary `*` binding power. - Set `contains_keywords` flag for implicit `gets` calls when `-p` is used. - Properly reject invalid non-associative operator patterns. - Do not warn about unused variables declared on negative lines. 1.1.0: ## Added - Explicitly type each child node field in the Ruby API. - Add the `main_script` option to the parse APIs, which controls whether or not shebangs are considered. - Add the `partial_script` options to the parse APIs, which controls whether or not jumps that would otherwise be considered invalid are allowed. This is useful for parsing things like ERB sources, where you know it will be evaluated in a different context. Note that this functionality is replacing the previous idiom of passing in a list of scopes to indicate an `eval` context, because that behavior has changed upstream in `ruby/ruby`. - Add `ArgumentsNode#contains_multiple_splats?`. - Add `ArgumentsNode#contains_forwarding?`. - Accept all valid Ruby versions for the `version` option on parse APIs. - Accept version shorthands like `"3.3"` and `"3.4"` for the `version` option on parse APIs. - Support a max depth to protect against malicious payloads without hitting the stack limit. ## Changed - Fix some token incompatibilities in the `parser` translation. - Fix up parsing tempfiles on Windows. - Fix up handling UTF-8 characters in file paths on Windows. - Do not warn for a `` at the end of a shebang on Windows. - Properly handle erroring for parsing a directory on Windows. - When a numbered reference is out of range, warn instead of raise. - Allow returns in default parameter values. - Reject many more invalid syntax patterns. 1.0.0: ## Added - Add `Node#breadth_first_search`. - Add `Node#node_id`. - Add `ArgumentsNode#contains_splat?`. - Passing the special value `false` for the `encoding` option tells Prism to ignore magic encoding comments. - Expose flags on every node type (allows checking static literal and newline). - Implement mismatched indentation warning. - Add C API for receiving a callback when parsing shebangs with additional flags. ## Changed - **BREAKING**: Some fields are renamed that had illogical names. The previous names all now emit deprecation warnings. - `CaseMatchNode#consequent` was renamed to `CaseMatchNode#else_clause` - `CaseNode#consequent` was renamed to `CaseNode#else_clause` - `IfNode#consequent` was renamed to `IfNode#subsequent` - `RescueNode#consequent` was renamed to `RescueNode#subsequent` - `UnlessNode#consequent` was renamed to `UnlessNode#else_clause` - Block exits are now allowed in loop predicates (e.g., `while _ && break do end`). - Multi-writes are now disallowed when not at the statement level. - Ensure that range operators are non-associative. - (JavaScript) Correctly deserialize encoded strings. - Properly support parsing regular expressions in extended mode. - Use gmake on FreeBSD. - Parsing streams now handles NUL bytes in the middle of the stream. - Properly detect invalid returns. ------------------------------------------------------------------- Fri Jun 21 10:24:40 UTC 2024 - Dan Čermák <dan.cermak@posteo.net> - 0.30.0: ## Added - More correctly raise mixed encoding errors. - Implement ambiguous binary operator warning. - Fix up regexp escapes with control and meta characters. - Fix up support for the `it` implicit local variable. - Heredoc identifiers now properly disallow CLRF. - Errors added for void value expressions in begin clauses. - Many updates to more closely match the `parser` gem in parser translation. - Many errors added for invalid regular expressions. ## Changed - Handle parser translation missing the `parser` gem. - Handle ruby_parser translation missing the `ruby_parser` gem. - Various error messages have been updated to more closely match CRuby. - `RationalNode` now has a `numerator` and `denominator` field instead of a `numeric` field. For the Ruby API we provide a `RationalNode#numeric` method for backwards-compatibility. 0.29.0: ## Added - Added `Prism::CallNode#full_message_loc`, which gives the location including the `=` if there is one. - A warning for when `# shareable_constant_value` is not used on its own line. - An error for invalid implicit local variable writes. - Implicit hash patterns in array patterns are disallowed. - We now validate that Unicode escape sequences are not surrogates. ## Changed - All fields named `operator` have been renamed to `binary_operator` for `*OperatorWriteNode` nodes. This is to make it easier to provide C++ support. In the Ruby API, the old fields are aliased to the new fields with a deprecation warning. - Many updated error messages to more closely match CRuby. - We ensure keyword parameters do not end in `!` or `?`. - Fixed some escaping in string literals with control sequences and hex escapes. - Fix a bug with RBS types when used outside the `ruby/prism` codebase. 0.28.0: ## Added - Nested hashes will now warn for duplicated keys, as in: `{ foo: 1, **{ foo: 2 } }`. - `Prism::ReturnNode` now has a flag on it to indicate if it is redundant. - `Prism::Location#slice_lines` and `Prism::Node#slice_lines` are now provided to slice the source code of a node including the content before the node on the same line that it starts on and the content after the node on the same line that it ends on. - Symbols with invalid byte sequences now give errors. - You can now pass `"3.3.1"` to the `version:` parameter on all `Prism.*` APIs. - `Prism::Source#lines`, `Prism::Location#source_lines`, `Prism::Node#source_lines`, and `Prism::Node#script_lines` are now provided, which will all return the source code of the source as an array of strings. - `Prism::ASCIISource` is now provided, which is a subclass of `Prism::Source` but specialized to increase performance when the source is entirely ASCII. - Prism now provides errors when parsing Ruby 3.4+ syntax for index expressions with keywords or blocks. - Prism now provides an error when `**nil` is used after other keyword parameters. - Prism now provides errors when safe navigation is used in call target expressions, e.g., `foo&.bar, = 1`. - `Prism::Node#tunnel` is now provided, which returns an array of nodes starting at the current node that contain a given line and column. ## Changed - All translation layers now assume an eval context, which means they will not return errors for invalid jumps like `yield`. - `Prism::Node#inspect` now uses a queue instead of recursion to avoid stack overflows. - Prism now more closely mirrors CRuby interpolation semantics, which means you could potentially have a static literal string that directly interpolates another static literal string. - The shipped RBI sorbet types no longer use generics. - `Prism::ConstantPathNode#child` and `Prism::ConstantTargetNode#child` are now deprecated, replaced by two new fields on these nodes: `name` and `name_loc`. 0.27.0: ## Added - Implemented `===` for each of the nodes, which will check if equality but ignore the specific ranges of locations. ## Changed - Fix translation of `ItParametersNode` for parser translation. - Fix translation of `dstr` for ruby_parser translation. - Do not allow omitted hash values whose keys end with `!` or `?`. - Split up `Prism::ParseResult` into `Prism::Result` with subclasses `Prism::ParseResult`, `Prism::LexResult`, `Prism::ParseLexResult`, and `Prism::LexCompat::Result`. - Change reflection classes to have only a single `IntegerField` class and rename `DoubleField` to `FloatField`. - Fall back to default `AR` and `CC` in `Makefile`. - Use GC-able symbols for the syntax tree to avoid adding to the global symbol table. - Fix a bug with karatsuba_multiply that would result in a stack overflow. - Fix parser translation when looking for tokens with `srange_find`. 0.26.0: ## Added - Add `Prism::Node::fields`, which returns a list of `Prism::Reflection::Field` objects representing the fields of the node class. This is useful in metaprogramming contexts. - `Prism::Location#chop`, for removing the last byte from a location. - The void statement warning is now implemented. - The unreachable statement warning is now implemented. - A syntax error has been added for block arguments on yields, e.g., `yield(&foo)`. ## Changed - Better fidelity to `parser` when translating heredocs with interpolation. - Fixed `RBI` and `RBS` types for `Prism::parse_*` signatures. - Remove some incorrect warnings about unused local variables. - More closely match CRuby error messages for global variables. - Fix an issue with `parser` translation when line continuations are found in string literals. 0.25.0: ## Added - `Prism::Translation::Ripper` is now able to mirror all of the Ripper APIs. - `Prism::Location#leading_comments` and `Prism::Location#trailing_comments` is added. - `Prism::Comment#slice` is added. - Warn for writing literal values in conditional predicates. - Check for `_POSIX_MAPPED_FILES` before using `mmap`. - `Prism::ItParametersNode` is added, to support `-> { it }`. - Parse integer and float literal values onto the tree. - Warn on duplicated hash keys and duplicated when clauses. - Ship much improved `RBI` and `RBS` types. - Support for the `-p`, `-n`, `-a`, and `-l` command line switches. - Warn on integer literals in flip-flops. - Support BSD make. - Add `Prism::WhenNode#then_keyword_loc`. - Support custom allocation functions through the `PRISM_XALLOCATOR` define. - Warn for certain keywrods at the end of the line. - Provide `pm_visit_node`, a C visitor API. - `Prism::parse_stream` is added, which works for any Ruby `IO` object. - Provide flags for regular expression literals for their derived encoding. - Provide flags for whether or not an interpolated string literal is frozen. - Add `Prism::StringNode.mutable?` for when a string is explicitly mutable, to support delineating chilled strings. - Warn for incorrect character literal syntax. - Warn for chained comparison operators. - Warn for `**` interpreted as an argument prefix. - Warn for `&` interpreted as an argument prefix. - `Prism::ShareableConstantNode` added to support ractors. - Warn for frozen string literals found after tokens. - Support `PRISM_BUILD_MINIMAL` to provide only the minimal necessary functionality to reduce the binary size. - Handle CLRF inside heredocs, strings, and regular expressions. - Mark inner strings in interpolated strings as frozen. - Support the `-x` command line switch. - Error messages now much more closely mirror CRuby. - Provide syntax errors for invalid block exits (`break`, `next`, `retry`, and `yield`). - Warn on unused local variables. - Do not syntax error on default parameter values that only write to the parameter. ## Changed - Many improvements to the compatibility with the `whitequark/parser` translation. - Accept newlines before pattern terminators `)` or `]`. - `Prism::Node#start_offset` and `Prism::Node#end_offset` are now much more efficient. - Read files using `fread` instead of `mmap` when we're going to keep around the source through the Ruby API. - Fix `Sexp#line_max` setting in the `seattlerb/ruby_parser` translation layer. - Allow spaces before the encoding comment. ------------------------------------------------------------------- Thu Mar 21 17:00:12 UTC 2024 - Andreas Schneider <asn@cryptomilk.org> - initial package
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor