Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding supernodes #185

Open
wants to merge 38 commits into
base: master
Choose a base branch
from
Open

Adding supernodes #185

wants to merge 38 commits into from

Commits on Apr 23, 2023

  1. Add specialized n-ary send nodes that send to an argument

    The most common version of this is sending to self.
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    f7fbb14 View commit details
    Browse the repository at this point in the history
  2. Implement IntIncrementNode and needed field access/storage support

    This also adds the support in the bytecode interpreter (this is mostly incidental, since I had to remove it completely, too)
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    741fc3c View commit details
    Browse the repository at this point in the history
  3. Generalize the IncOperationNode to arbitary values

    - also supports `-` as operator in parser
    - add tests
    - add fallback support
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    9377f1d View commit details
    Browse the repository at this point in the history
  4. Rename field to more consistent and explicit incValue

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    51e9a6a View commit details
    Browse the repository at this point in the history
  5. Added LocalVariableIncNode and NonLocalVariableIncNode

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    9a2483c View commit details
    Browse the repository at this point in the history
  6. Add AssignLocalSquareToLocalNode

    Cherry-picked from supernodes branch
    OctaveLarose authored and smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    9931e1a View commit details
    Browse the repository at this point in the history
  7. Added initial tests, the todo list

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    6526cc6 View commit details
    Browse the repository at this point in the history
  8. Added [Non]LocalVariableSquareNode

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    89377b2 View commit details
    Browse the repository at this point in the history
  9. Add [Non]LocalVariableReadSquareWriteNode

    - do specialization in the parser to do it as early as possible
    - remove AssignLocalSquareToLocalNode which is the run-time specialization version
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    e72ba5b View commit details
    Browse the repository at this point in the history
  10. Add StringEqualsNode, which is used for expr = 'str', i.e. literal …

    …string comparions.
    
    For the nil case in the string comparison, we store `nil` in a local static field to avoid type restrictions of the DSL.
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    bd3d369 View commit details
    Browse the repository at this point in the history
  11. Add [Non]LocalFieldStringEqualsNode

    This node inlines the argument and field reading and does the string equal.
    There's theoretical an early abort for non-object fields.
    Though, we don't have those in our benchmarks.
    Well, perhaps uninitialized fields.
    Though, the structure of the lookup, and caching makes that tricky. Not sure it's worth optimizing that.
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    107c989 View commit details
    Browse the repository at this point in the history
  12. Adapt to use createGenericBinary

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    57b868f View commit details
    Browse the repository at this point in the history
  13. Move all supernodes to same package

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    e9a6922 View commit details
    Browse the repository at this point in the history
  14. Restructure the Increment super nodes to support field increment with…

    … some other expression
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    348f90a View commit details
    Browse the repository at this point in the history
  15. Add fallback code for UninitIncFieldNode, SomSom needs it...

    SomSom's parser also has `text := text + self currentChar.` where `text` is a field in the lexer.
    
    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    e004bea View commit details
    Browse the repository at this point in the history
  16. Rename increment nodes for variables that use an int constant

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    19bb759 View commit details
    Browse the repository at this point in the history
  17. Add Inc[Non]LocalVariableNode

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    f15d40b View commit details
    Browse the repository at this point in the history
  18. Fix test regression after Invokable changes being merged in

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    87d590c View commit details
    Browse the repository at this point in the history
  19. Adapt to use of frame slot index instead of FrameSlot

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    8192c97 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    d95dde2 View commit details
    Browse the repository at this point in the history
  21. Add super node for local := local foo

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    9215df5 View commit details
    Browse the repository at this point in the history
  22. Add supernode for isNil ifTrue: sequence

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    00f29ba View commit details
    Browse the repository at this point in the history
  23. Add LocalArgGreaterThanInt

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    a55017a View commit details
    Browse the repository at this point in the history
  24. Add GreaterThanIntNode, LessThanIntNode, and LocalArgLessThanInt

    Signed-off-by: Stefan Marr <[email protected]>
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    e532691 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    92f450f View commit details
    Browse the repository at this point in the history
  26. Adapt to changes in send nodes

    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    72626a1 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    3223c68 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    a7d9b2f View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    2186057 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    450fcf7 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    d96d677 View commit details
    Browse the repository at this point in the history
  32. The read+write square nodes may access locals in different lexical co…

    …ntexts…
    
    Make sure we track the context correctly for each variable.
    
    Add a specialization that fetches the context only once if possible.
    smarr committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    853f0c9 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2023

  1. Initialize separte test context for each test class

    This avoids issues in Eclipse with the SomTests interferring with the context of TruffleTestSetup
    smarr committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    c10025b View commit details
    Browse the repository at this point in the history
  2. Remove redundant transferToInterpreterAndInvalidate()

    Should be ensured in the caller.
    smarr committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    87ca852 View commit details
    Browse the repository at this point in the history
  3. Whitespace

    smarr committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    fecb6b1 View commit details
    Browse the repository at this point in the history
  4. Keep child nodes only in AST interpreter

    The BC interpreter doesn’t need them.
    smarr committed Apr 24, 2023
    Configuration menu
    Copy the full SHA
    5d3dbf6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4e2df51 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    274c0e6 View commit details
    Browse the repository at this point in the history