Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [PRISM] Compile IndexAndWriteNode | Jemma Issroff | 2023-11-27 | 1 | -224/+246 | |
| | ||||||
* | [PRISM] Compile IndexOrWriteNode | Jemma Issroff | 2023-11-27 | 1 | -0/+69 | |
| | ||||||
* | [PRISM] Fix compilation for SplatNodes within ArrayNodes | Jemma Issroff | 2023-11-27 | 1 | -5/+68 | |
| | | | | | | | | SplatNodes within ArrayNodes (e.g. [*1..2, 3]) need to be special cased in the compiler because they use a combination of concatarray and newarray instructions to treat each sequence of splat or non-splat elements as independent arrays which get concatenated. This commit implements those cases. | |||||
* | [PRISM] Don't pop several args related nodes | Jemma Issroff | 2023-11-27 | 1 | -6/+6 | |
| | ||||||
* | [PRISM] Insert Tracepoint line events on line change | Matt Valentine-House | 2023-11-24 | 1 | -0/+11 | |
| | ||||||
* | [PRISM] Rename flag to CONTAINS_KEYWORD_SPLAT | Jemma Issroff | 2023-11-21 | 1 | -1/+1 | |
| | | | | | We need to do this change first on ruby/ruby before merging to ruby/prism to avoid breaking ruby/ruby CI | |||||
* | Remove string concat node in prism | Kevin Newton | 2023-11-21 | 1 | -9/+0 | |
| | ||||||
* | Use new match write targets | Kevin Newton | 2023-11-20 | 1 | -34/+51 | |
| | ||||||
* | [PRISM] Updated LocalVariableTargetNodes too | Jemma Issroff | 2023-11-20 | 1 | -2/+1 | |
| | ||||||
* | [PRISM] Fix LocalVariableWriteNodes within blocks | Jemma Issroff | 2023-11-20 | 1 | -3/+23 | |
| | | | | | | Prior to this commit, we weren't recursing up scopes to look for the local definition. With this commit, we do so, fixing local writes within blocks | |||||
* | [PRISM] Implement once node for interpolated regex | eileencodes | 2023-11-20 | 1 | -1/+45 | |
| | | | | | | | | This PR implements the once node on interpolated regexes. There is a bug in Prism where the interpolated regex with the once flag only works when there is not a local variable so the test uses a "1". We'll need to fix that. | |||||
* | [PRISM] Don't pop args to YieldNode | Jemma Issroff | 2023-11-20 | 1 | -1/+1 | |
| | ||||||
* | Switching first argument in pm_interpolated_node_compile | eileencodes | 2023-11-20 | 1 | -8/+9 | |
| | | | | | This changes the first argument in `pm_interpolated_node_compile` to use a pointer. | |||||
* | [PRISM] Initialize keyword to silence warning | Jemma Issroff | 2023-11-13 | 1 | -1/+1 | |
| | ||||||
* | [PRISM] Implement compilation for ForwardingArgumentssNode | Jemma Issroff | 2023-11-09 | 1 | -0/+12 | |
| | ||||||
* | Range check in pm_constant_id_lookup | Nobuyoshi Nakada | 2023-11-09 | 1 | -0/+3 | |
| | ||||||
* | Remove useless casts | Nobuyoshi Nakada | 2023-11-09 | 1 | -2/+2 | |
| | ||||||
* | [PRISM] Always lookup idERROR_INFO consistently. | Matt Valentine-House | 2023-11-08 | 1 | -9/+1 | |
| | | | | | | | | We know where it is in the iseq local table, because we forced it using `iseq_set_exception_local_table` when compiling the BEGIN_NODE, so we can always look it up from the same place. Co-Authored-By Peter Zhu <peter@peterzhu.ca> | |||||
* | [PRISM] Add tests for OptionalKeywordParameterNode | Jemma Issroff | 2023-11-08 | 1 | -0/+19 | |
| | | | | | | This commit adds tests for the compilation of the OptionalKeywordParameterNode, and fixes cases on the RequiredKeywordParameterNode | |||||
* | [PRISM] Added tests for ForwardingParameterNode, KeywordRestParameterNode | Jemma Issroff | 2023-11-08 | 1 | -2/+8 | |
| | ||||||
* | [PRISM] Add tests for several parameters nodes | Jemma Issroff | 2023-11-08 | 1 | -12/+5 | |
| | | | | | This commit adds tests for BlockParameterNode, RequiredParameterNode, RequiredKeywordParameterNode and RestParameterNode | |||||
* | [PRISM] Implement compilation for different parameters | Jemma Issroff | 2023-11-07 | 1 | -28/+127 | |
| | | | | | | This commit compiles most parameter types, setting appropriate values on the ISEQ_BODY. It also adds tests for callers and callees of methods, using many versions of tests from bootstraptest | |||||
* | [PRISM] Move Local table setup into EnsureNode compilation | Matt Valentine-House | 2023-11-07 | 1 | -8/+5 | |
| | ||||||
* | [PRISM] Don't generate leave insns for Ensure nodes | Matt Valentine-House | 2023-11-07 | 1 | -1/+1 | |
| | ||||||
* | [PRISM] CompileEnsureNode | Matt Valentine-House | 2023-11-07 | 1 | -43/+117 | |
| | ||||||
* | [PRISM] PM_COMPILE into a specified LINK_ANCHOR | Matt Valentine-House | 2023-11-07 | 1 | -43/+43 | |
| | ||||||
* | [PRISM] Implement compilation for MultiWriteNodes, fix MultiTargetNodes | Jemma Issroff | 2023-11-06 | 1 | -20/+48 | |
| | | | | | | Compilation now works for MultiWriteNodes and MultiTargetNodes, with nesting on MultiWrites. See the tests added in this commit for example behavior. | |||||
* | [PRISM] Fix stack consistency with Popped begin | Matt Valentine-House | 2023-11-03 | 1 | -1/+1 | |
| | | | | | When a begin node is popped it only needs to putnil if that nil is going to be the return value, otherwise it can successfully be optimised out. | |||||
* | [PRISM] Fix CallNode with arguments when popped | Matt Valentine-House | 2023-11-03 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | | | | Previously emitting a call node with an argument followed by another node would cause the argument to be mistakenly omitted from the argument list causing a stack underflow. ``` PRISM: ************************************************** -- raw disasm-------- 0000 putself ( 0) 0001 send <calldata:puts, 1>, nil ( 0) * 0004 pop ( 0) 0005 putobject 1 ( 0) 0007 leave ( 0) --------------------- ``` | |||||
* | [PRISM] Fix popped for ForNode | Jemma Issroff | 2023-11-02 | 1 | -5/+4 | |
| | ||||||
* | [PRISM] Fix popped for CallOperatorWriteNode | Jemma Issroff | 2023-11-02 | 1 | -2/+2 | |
| | ||||||
* | [PRISM] Fix popped for Call{And,Or}WriteNode | Jemma Issroff | 2023-11-02 | 1 | -2/+2 | |
| | ||||||
* | [PRISM] Fix popped for SingletonClassNode | Jemma Issroff | 2023-11-02 | 1 | -1/+2 | |
| | ||||||
* | [PRISM] Fix popped for CaseNode | Jemma Issroff | 2023-11-02 | 1 | -1/+1 | |
| | ||||||
* | [PRISM] Fix popped for AssocSplatNode | Jemma Issroff | 2023-11-02 | 1 | -1/+4 | |
| | ||||||
* | [PRISM] Fix popped for MatchWriteNode | Jemma Issroff | 2023-11-02 | 1 | -2/+4 | |
| | ||||||
* | [PRISM] Fix popped for ConstantPathOperatorWriteNode | Jemma Issroff | 2023-11-02 | 1 | -2/+2 | |
| | ||||||
* | [PRISM] Fix popped for ConstantPathOrWriteNode | Jemma Issroff | 2023-11-02 | 1 | -2/+2 | |
| | ||||||
* | [PRISM] Fix popped on DefinedNode | Jemma Issroff | 2023-11-02 | 1 | -1/+3 | |
| | ||||||
* | [PRISM] Fixed popped for ConstantPathAndWriteNode | Jemma Issroff | 2023-11-02 | 1 | -2/+2 | |
| | ||||||
* | [prism] Use a pointer for optional node list | Kevin Newton | 2023-11-01 | 1 | -15/+15 | |
| | ||||||
* | [PRISM] Remove unnecessary variable | Jemma Issroff | 2023-10-31 | 1 | -1/+0 | |
| | ||||||
* | [PRISM] Implement compilation for SuperNode | Jemma Issroff | 2023-10-31 | 1 | -147/+198 | |
| | ||||||
* | [PRISM] Compile forwarding super node | Jemma Issroff | 2023-10-31 | 1 | -4/+24 | |
| | ||||||
* | [PRISM] Implement compilation for PostExecutionNode | Jemma Issroff | 2023-10-31 | 1 | -3/+46 | |
| | | | | | This commit implements compilation for the PostExeuctionNode by using the ScopeNode to create child iseqs where appropriate. | |||||
* | Add defined array node | HParker | 2023-10-31 | 1 | -0/+10 | |
| | ||||||
* | compile defined with nested constants and stovetop | HParker | 2023-10-31 | 1 | -10/+46 | |
| | ||||||
* | Fix warning in Prism compile For Node | Matt Valentine-House | 2023-10-31 | 1 | -1/+1 | |
| | ||||||
* | [PRISM] Implement all argument types for CallNodes | Jemma Issroff | 2023-10-30 | 1 | -13/+149 | |
| | ||||||
* | Document TEMP_CONSTANT_IDENTIFIER | Matt Valentine-House | 2023-10-30 | 1 | -1/+12 | |
| |