Giter Site home page Giter Site logo

hpi-swa / trufflesqueak Goto Github PK

View Code? Open in Web Editor NEW
275.0 26.0 15.0 15.94 MB

A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.

License: MIT License

Python 0.85% Java 97.82% Shell 0.37% C 0.85% Smalltalk 0.10% Starlark 0.01%
squeak smalltalk virtual-machine graalvm truffle bytecode-interpreter polyglot-programming research-project

trufflesqueak's Introduction

TruffleSqueak

Latest Release Slack Twitter Build Status Codacy Coverage License

A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.

Getting Started

  1. Download and extract the latest TruffleSqueak standalone for your platform.

  2. Run the following in a terminal to start TruffleSqueak:

    bin/trufflesqueak [<option>...] [<imageName> [<argument>...]]

Demos

TruffleSqueak: Polyglot Notebooks (Demo)
TruffleSqueak: Polyglot Notebooks
TruffleSqueak: Workspace, Inspector, and Explorer (Demo)
TruffleSqueak: Workspace, Inspector, and Explorer
TruffleSqueak: Live Plots with ggplot2 (Demo)
TruffleSqueak: Live Plots with ggplot2
TruffleSqueak: Polyglot User Interfaces (Demo)
TruffleSqueak: Polyglot User Interfaces
TruffleSqueak: Polyglot Code Editor (Demo)
TruffleSqueak: Polyglot Code Editor
TruffleSqueak: Polyglot Code Finder (Demo)
TruffleSqueak: Polyglot Code Finder
TruffleSqueak vs. OpenSmalltalkVM: Bouncing Atoms
TruffleSqueak vs. OpenSmalltalkVM: Bouncing Atoms
TruffleSqueak: CallTargetBrowser (Demo)
TruffleSqueak: CallTargetBrowser
TruffleSqueak: Polyglot Workspace (Demo)
TruffleSqueak: Polyglot Workspace

Talks

Some Smalltalk with Fabio Niephaus and Thomas Würthinger (~1h10min, GraalVM Stream on Twitch, 2021)
Some Smalltalk with Fabio Niephaus and Thomas Würthinger
(~1h10min, GraalVM Stream on Twitch, 2021)
Exploiting Dynamic Run-time Data with TruffleSqueak (~30min, Virtual Machine Meetup, 2021)
Exploiting Dynamic Run-time Data with TruffleSqueak
(~30min, Virtual Machine Meetup, 2021)
Polyglot Programming with TruffleSqueak and GraalVM (~21min, HPI Symposium at SAP, 2021)
Polyglot Programming with TruffleSqueak and GraalVM
(~21min, HPI Symposium at SAP, 2021)
Polyglot Notebooks with Squeak/Smalltalk on the GraalVM (~28min, ESUG 2019)
Polyglot Notebooks with Squeak/Smalltalk on the GraalVM
(~28min, ESUG 2019)

Community Support

If you have a question, need some help, or want to discuss a new feature, feel free to open an issue or join the #trufflesqueak channel on the GraalVM Slack.

Documentation

Documentation is available in docs/.

Development

Active development is done in the main branch. Please feel free to open a pull request if you'd like to contribute a bug-fix, documentation, or a new feature. For more information, for example on how to build TruffleSqueak from source or set up a development environment, please refer to the development.md.

Contributing

Please report any issues here on GitHub and open pull requests if you'd like to contribute code or documentation.

Publications

To cite this work, please use the GraalSqueak paper presented at MPLR'19.

2020

  • Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya Opahle, Nico Scordialo, and Robert Hirschfeld. Example-based Live Programming for Everyone: Building Language-agnostic Tools for Live Programming With LSP and GraalVM. In Proceedings of the ACM Symposium for New Ideas, New Paradigms, and Reflections on Everything to do with Programming and Software (Onward!) 2020, co-located with the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 108-124, Chicago, United States, November 17-18, 2020, ACM DL.
    doi Preprint
  • Jan Ehmueller, Alexander Riese, Hendrik Tjabben, Fabio Niephaus, and Robert Hirschfeld. Polyglot Code Finder. In Proceedings of the Programming Experience 2020 (PX/20) Workshop, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›), co-located with the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), 6 pages, Genova, Italy, April 1, 2019, ACM DL.
    doi Preprint
  • Alexander Riese, Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. User-defined Interface Mappings for the GraalVM. In Proceedings of the Interconnecting Code Workshop (ICW) 2020, companion volume to the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), co-located with the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), pages 19-22, Porto, Portugal, March 23, 2020, ACM DL.
    doi Preprint

2019

  • Fabio Niephaus. Smalltalk with the GraalVM. In the JVM Programming Advent Calendar, December 7, 2019.
  • Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. GraalSqueak: Toward a Smalltalk-based Tooling Platform for Polyglot Programming. In Proceedings of the International Conference on Managed Programming Languages and Runtimes (MPLR) 2019, co-located with the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA), 12 pages, Athens, Greece, October 21, 2019, ACM DL.
    doi Preprint
  • Daniel Stolpe, Tim Felgentreff, Christian Humer, Fabio Niephaus, and Robert Hirschfeld. Language-independent Development Environment Support for Dynamic Runtimes. In Proceedings of the Dynamic Languages Symposium (DLS) 2019, co-located with the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA), 11 pages, Athens, Greece, October 20, 2019, ACM DL.
    doi Preprint
  • Fabio Niephaus. HPI Polyglot Programming Seminar. In the GraalVM Blog, October 11, 2019.
  • Fabio Niephaus, Tim Felgentreff, Tobias Pape, and Robert Hirschfeld. Efficient Implementation of Smalltalk Activation Records in Language Implementation Frameworks. In Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs (MoreVMs) 2019, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›), co-located with the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), 3 pages, Genova, Italy, April 1, 2019, ACM DL.
    doi Preprint
  • Tobias Pape, Tim Felgentreff, Fabio Niephaus, and Robert Hirschfeld. Let them fail: towards VM built-in behavior that falls back to the program. In Proceedings of the Salon des Refusés (SDR) 2019 Workshop, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›), co-located with the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), 7 pages, Genova, Italy, April 1, 2019, ACM DL.
    doi Preprint
  • Fabio Niephaus, Eva Krebs, Christian Flach, Jens Lincke, and Robert Hirschfeld. PolyJuS: A Squeak/Smalltalk-based Polyglot Notebook System for the GraalVM. In Proceedings of the Programming Experience 2019 (PX/19) Workshop, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›), co-located with the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), 6 pages, Genova, Italy, April 1, 2019, ACM DL.
    doi Preprint

2018

License

TruffleSqueak is released under the MIT license.

trufflesqueak's People

Contributors

blubl avatar cmfcmf avatar corinnaj avatar f4lco avatar fmateoc avatar fniephaus avatar janehmueller avatar linqlover avatar michelou avatar numberpi avatar psvensson avatar timfel avatar tom95 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trufflesqueak's Issues

Add an API that returns icons for available languages

Similar to Polyglot languageNameOf: 'python' a function Polyglot languageIconOf: 'python' that returns the icon as a form would be very convenient.

Currently the PNBCodeCellLabel has an instance function iconFor: aLanguageID that does exactly that, but that method should in a more general class as a class method.

PolyglotNotebook crashes when trying to display very long string containing non-US-ASCII character 226 in bindings view

We store the contents of a csv file (188 MB) in a ruby Hash (pointing from filename to file contents). When this Hash is exported via the Polyglot API, it is displayed in the bindings view of the notebook. When clicking on the expand button for the Hash ForeignObject, the Graalsqueak image crashes with the stacktrace at the bottom of this issue.

When I try to convert this string to a python string (in a notebook), the same error appears as a normal error in Squeak (without crashing the image):

error

ERROR: org.truffleruby.core.rope.CannotConvertBinaryRubyStringToJavaString: Cannot convert a Ruby String with BINARY encoding containing non-US-ASCII character 226 to a Java String
org.graalvm.polyglot.PolyglotException: org.truffleruby.core.rope.CannotConvertBinaryRubyStringToJavaString: Cannot convert a Ruby String with BINARY encoding containing non-US-ASCII character 226 to a Java String
        at org.truffleruby.core.rope.RopeOperations.decodeNonAscii(RopeOperations.java:167)
        at org.truffleruby.core.rope.RopeOperations.decodeRopeSegment(RopeOperations.java:223)
        at org.truffleruby.core.rope.RopeOperations.decodeRopeSegment(RopeOperations.java:216)
        at org.truffleruby.core.rope.RopeOperations.decodeRope(RopeOperations.java:212)
        at org.truffleruby.core.string.StringOperations.getString(StringOperations.java:60)
        at org.truffleruby.interop.ToJavaStringNodeGen.executeAndSpecialize(ToJavaStringNodeGen.java:186)
        at org.truffleruby.interop.ToJavaStringNodeGen.executeToJavaString(ToJavaStringNodeGen.java:96)
        at org.truffleruby.interop.RubyObjectType$UnboxNode.access(RubyObjectType.java:150)
        at org.truffleruby.interop.RubyObjectTypeForeign$UnboxSubNode.accessWithTarget(RubyObjectTypeForeign.java:464)
        at org.truffleruby.interop.RubyObjectTypeForeignFactory$UnboxSubNodeGen.executeAndSpecialize(RubyObjectTypeForeignFactory.java:444)
        at org.truffleruby.interop.RubyObjectTypeForeignFactory$UnboxSubNodeGen.executeWithTarget(RubyObjectTypeForeignFactory.java:436)
        at org.truffleruby.interop.RubyObjectTypeForeign$UnboxSubNode$UNBOXRootNode.execute(RubyObjectTypeForeign.java:481)
        at <squeaksmalltalk> TruffleObject>>printOnTitle(TruffleObject>>printOnTitle:1:0-10)
        at <squeaksmalltalk> TruffleObject>>printOn:(TruffleObject>>printOn::1:0-17)
        at <squeaksmalltalk> Object>>printStringLimitedTo:(Object>>printStringLimitedTo::1:0-10)
        at <squeaksmalltalk> Metaclass (SequenceableCollection)>>streamContents:limitedTo:(Metaclass (SequenceableCollection)>>streamContents:limitedTo::1:0-16)
        at <squeaksmalltalk> Object>>printStringLimitedTo:(Object>>printStringLimitedTo::1:0-16)
        at <squeaksmalltalk> Object>>printString(Object>>printString:1:0-10)
        at <squeaksmalltalk> Object>>asExplorerString(Object>>asExplorerString:1:0-10)
        at <squeaksmalltalk> ObjectExplorerWrapper>>asString(ObjectExplorerWrapper>>asString:1:0-10)
        at <squeaksmalltalk> BlockClosure>>on:do:(BlockClosure>>on:do::1:0-30)
        at <squeaksmalltalk> ObjectExplorerWrapper>>asString(ObjectExplorerWrapper>>asString:1:0-58)
        at <squeaksmalltalk> IndentingListItemMorph>>getLabelFor:(IndentingListItemMorph>>getLabelFor::1:0-17)
        at <squeaksmalltalk> IndentingListItemMorph>>getLabel(IndentingListItemMorph>>getLabel:1:0-10)
        at <squeaksmalltalk> IndentingListItemMorph>>initWithContents:prior:forList:indentLevel:(IndentingListItemMorph>>initWithContents:prior:forList:indentLevel::1:0-17)
        at <squeaksmalltalk> SimpleHierarchicalListMorph>>addSubmorphsAfter:fromCollection:allowSorting:(SimpleHierarchicalListMorph>>addSubmorphsAfter:fromCollection:allowSorting::1:0-10)
        at <squeaksmalltalk> OrderedCollection>>do:(OrderedCollection>>do::1:0-17)
        at <squeaksmalltalk> SimpleHierarchicalListMorph>>addSubmorphsAfter:fromCollection:allowSorting:(SimpleHierarchicalListMorph>>addSubmorphsAfter:fromCollection:allowSorting::1:0-29)
        at <squeaksmalltalk> IndentingListItemMorph>>expand(IndentingListItemMorph>>expand:1:0-10)
        at <squeaksmalltalk> IndentingListItemMorph>>toggleExpandedState(IndentingListItemMorph>>toggleExpandedState:1:0-10)
        at <squeaksmalltalk> SimpleHierarchicalListMorph>>toggleExpandedState:event:(SimpleHierarchicalListMorph>>toggleExpandedState:event::1:0-17)
        at <squeaksmalltalk> PluggableTreeMorph>>mouseDown:(PluggableTreeMorph>>mouseDown::1:0-10)
        at <squeaksmalltalk> Morph>>handleMouseDown:(Morph>>handleMouseDown::1:0-17)
        at <squeaksmalltalk> MouseButtonEvent>>sentTo:(MouseButtonEvent>>sentTo::1:0-17)
        at <squeaksmalltalk> Morph>>handleEvent:(Morph>>handleEvent::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:(MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-10)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:with:(MorphicEventDispatcher>>dispatchEvent:with::1:0-17)
        at <squeaksmalltalk> Morph>>processEvent:using:(Morph>>processEvent:using::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:(MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf::1:0-17)
        at <squeaksmalltalk> SequenceableCollection>>do:(SequenceableCollection>>do::1:0-21)
        at <squeaksmalltalk> Morph>>submorphsDo:(Morph>>submorphsDo::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:(MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf::1:0-29)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:(MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-10)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:with:(MorphicEventDispatcher>>dispatchEvent:with::1:0-17)
        at <squeaksmalltalk> Morph>>processEvent:using:(Morph>>processEvent:using::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:(MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf::1:0-17)
        at <squeaksmalltalk> SequenceableCollection>>do:(SequenceableCollection>>do::1:0-21)
        at <squeaksmalltalk> Morph>>submorphsDo:(Morph>>submorphsDo::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:(MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf::1:0-29)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:(MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-10)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:with:(MorphicEventDispatcher>>dispatchEvent:with::1:0-17)
        at <squeaksmalltalk> Morph>>processEvent:using:(Morph>>processEvent:using::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:(MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf::1:0-17)
        at <squeaksmalltalk> SequenceableCollection>>do:(SequenceableCollection>>do::1:0-21)
        at <squeaksmalltalk> Morph>>submorphsDo:(Morph>>submorphsDo::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:(MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf::1:0-29)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:(MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph::1:0-10)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-10)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchMouseDown:with:(MorphicEventDispatcher>>dispatchMouseDown:with::1:0-17)
        at <squeaksmalltalk> MorphicEventDispatcher>>dispatchEvent:with:(MorphicEventDispatcher>>dispatchEvent:with::1:0-17)
        at <squeaksmalltalk> Morph>>processEvent:using:(Morph>>processEvent:using::1:0-10)
        at <squeaksmalltalk> PasteUpMorph>>processEvent:using:(PasteUpMorph>>processEvent:using::1:0-10)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> PasteUpMorph>>processEvent:using:(PasteUpMorph>>processEvent:using::1:0-29)
        at <squeaksmalltalk> Morph>>processEvent:(Morph>>processEvent::1:0-10)
        at <squeaksmalltalk> HandMorph>>sendEvent:focus:clear:(HandMorph>>sendEvent:focus:clear::1:0-17)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> MorphicEvent>>becomeActiveDuring:(MorphicEvent>>becomeActiveDuring::1:0-16)
        at <squeaksmalltalk> HandMorph>>sendEvent:focus:clear:(HandMorph>>sendEvent:focus:clear::1:0-17)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> HandMorph>>becomeActiveDuring:(HandMorph>>becomeActiveDuring::1:0-16)
        at <squeaksmalltalk> HandMorph>>sendEvent:focus:clear:(HandMorph>>sendEvent:focus:clear::1:0-10)
        at <squeaksmalltalk> BlockClosure>>ensure:(BlockClosure>>ensure::1:0-30)
        at <squeaksmalltalk> PasteUpMorph>>becomeActiveDuring:(PasteUpMorph>>becomeActiveDuring::1:0-16)
        at <squeaksmalltalk> HandMorph>>sendEvent:focus:clear:(HandMorph>>sendEvent:focus:clear::1:0-29)
        at <squeaksmalltalk> HandMorph>>sendMouseEvent:(HandMorph>>sendMouseEvent::1:0-10)
        at <squeaksmalltalk> HandMorph>>handleEvent:(HandMorph>>handleEvent::1:0-17)
        at <squeaksmalltalk> HandMorph>>processEvents(HandMorph>>processEvents:1:0-16)
        at <squeaksmalltalk> WorldState>>doOneCycleNowFor:(WorldState>>doOneCycleNowFor::1:0-17)
        at <squeaksmalltalk> SequenceableCollection>>do:(SequenceableCollection>>do::1:0-21)
        at <squeaksmalltalk> WorldState>>handsDo:(WorldState>>handsDo::1:0-17)
        at <squeaksmalltalk> WorldState>>doOneCycleNowFor:(WorldState>>doOneCycleNowFor::1:0-29)
        at <squeaksmalltalk> ExecuteTopLevelContextNode(WorldState>>doOneCycleFor::1:0-10)
Original Internal Error:
org.truffleruby.core.rope.CannotConvertBinaryRubyStringToJavaString: Cannot convert a Ruby String with BINARY encoding containing non-US-ASCII character 226 to a Java String
        at org.truffleruby.core.rope.RopeOperations.decodeNonAscii(RopeOperations.java:167)
        at org.truffleruby.core.rope.RopeOperations.decodeRopeSegment(RopeOperations.java:223)
        at org.truffleruby.core.rope.RopeOperations.decodeRopeSegment(RopeOperations.java:216)
        at org.truffleruby.core.rope.RopeOperations.decodeRope(RopeOperations.java:212)
        at org.truffleruby.core.string.StringOperations.getString(StringOperations.java:60)
        at org.truffleruby.interop.ToJavaStringNodeGen.executeAndSpecialize(ToJavaStringNodeGen.java:186)
        at org.truffleruby.interop.ToJavaStringNodeGen.executeToJavaString(ToJavaStringNodeGen.java:96)
        at org.truffleruby.interop.RubyObjectType$UnboxNode.access(RubyObjectType.java:150)
        at org.truffleruby.interop.RubyObjectTypeForeign$UnboxSubNode.accessWithTarget(RubyObjectTypeForeign.java:464)
        at org.truffleruby.interop.RubyObjectTypeForeignFactory$UnboxSubNodeGen.executeAndSpecialize(RubyObjectTypeForeignFactory.java:444)
        at org.truffleruby.interop.RubyObjectTypeForeignFactory$UnboxSubNodeGen.executeWithTarget(RubyObjectTypeForeignFactory.java:436)
        at org.truffleruby.interop.RubyObjectTypeForeign$UnboxSubNode$UNBOXRootNode.execute(RubyObjectTypeForeign.java:481)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:227)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call(OptimizedCallTarget.java:214)
        at com.oracle.truffle.api.interop.InteropAccessNode$Uncached.executeImpl(InteropAccessNode.java:258)
        at com.oracle.truffle.api.interop.InteropAccessNode.execute(InteropAccessNode.java:71)
        at com.oracle.truffle.api.interop.LibraryToLegacy.sendUnbox(LibraryToLegacy.java:113)
        at com.oracle.truffle.api.interop.DefaultTruffleObjectExports.isString(DefaultTruffleObjectExports.java:88)
        at com.oracle.truffle.api.interop.DefaultTruffleObjectExportsGen$InteropLibraryExports$Uncached.isString(DefaultTruffleObjectExportsGen.java:1799)
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedToUncachedDispatch.isString(InteropLibraryGen.java:1677)
        at com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.isString(InteropLibraryGen.java:2677)
        at de.hpi.swa.graal.squeak.nodes.plugins.PolyglotPlugin$PrimIsStringNode.doIsString(PolyglotPlugin.java:573)
        at de.hpi.swa.graal.squeak.nodes.plugins.PolyglotPluginFactory$PrimIsStringNodeFactory$PrimIsStringNodeGen.executeWithArguments(PolyglotPluginFactory.java:3900)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:227)
        at org.graalvm.compiler.truffle.runtime.OptimizedIndirectCallNode.call(OptimizedIndirectCallNode.java:48)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doIndirect(DispatchEagerlyNode.java:62)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:70)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValue1Node.doValue(BlockClosurePrimitives.java:57)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValue1NodeFactory$PrimClosureValue1NodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:259)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:227)
        at org.graalvm.compiler.truffle.runtime.OptimizedIndirectCallNode.call(OptimizedIndirectCallNode.java:48)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doIndirect(BlockActivationNode.java:35)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValue0Node.doClosure(BlockClosurePrimitives.java:42)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValue0NodeFactory$PrimClosureValue0NodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:103)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:227)
        at org.graalvm.compiler.truffle.runtime.OptimizedIndirectCallNode.call(OptimizedIndirectCallNode.java:48)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doIndirect(BlockActivationNode.java:35)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValue1Node.doValue(BlockClosurePrimitives.java:57)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValue1NodeFactory$PrimClosureValue1NodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:259)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeAndSpecialize(DispatchEagerlyNodeGen.java:169)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:74)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeAndSpecialize(DispatchSendNodeGen.java:85)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:69)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeAndSpecialize(ExecuteContextNodeGen.java:57)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:42)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.executeAndSpecialize(EnterCodeNodeGen.java:59)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:47)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeAndSpecialize(DispatchEagerlyNodeGen.java:169)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:74)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeAndSpecialize(DispatchSendNodeGen.java:85)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:69)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:227)
        at org.graalvm.compiler.truffle.runtime.OptimizedIndirectCallNode.call(OptimizedIndirectCallNode.java:48)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doIndirect(DispatchEagerlyNode.java:62)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:70)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValueNoContextSwitchNode.doValue(BlockClosurePrimitives.java:144)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValueNoContextSwitchNodeFactory$PrimClosureValueNoContextSwitchNodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:1152)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$AbstractPerformPrimitiveNode.dispatch(ControlPrimitives.java:133)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$AbstractPerformPrimitiveNode.dispatch(ControlPrimitives.java:127)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$PrimPerformNode.perform(ControlPrimitives.java:179)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitivesFactory$PrimPerformNodeFactory$PrimPerformNodeGen.executeWithArguments(ControlPrimitivesFactory.java:179)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValue1Node.doValue(BlockClosurePrimitives.java:57)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValue1NodeFactory$PrimClosureValue1NodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:259)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValueNoContextSwitchNode.doValue(BlockClosurePrimitives.java:144)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValueNoContextSwitchNodeFactory$PrimClosureValueNoContextSwitchNodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:1152)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$AbstractPerformPrimitiveNode.dispatch(ControlPrimitives.java:133)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$AbstractPerformPrimitiveNode.dispatch(ControlPrimitives.java:127)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$PrimPerformNode.perform(ControlPrimitives.java:179)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitivesFactory$PrimPerformNodeFactory$PrimPerformNodeGen.executeWithArguments(ControlPrimitivesFactory.java:179)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValue1Node.doValue(BlockClosurePrimitives.java:57)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValue1NodeFactory$PrimClosureValue1NodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:259)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValueNoContextSwitchNode.doValue(BlockClosurePrimitives.java:144)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValueNoContextSwitchNodeFactory$PrimClosureValueNoContextSwitchNodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:1152)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$AbstractPerformPrimitiveNode.dispatch(ControlPrimitives.java:133)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$AbstractPerformPrimitiveNode.dispatch(ControlPrimitives.java:127)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitives$PrimPerformNode.perform(ControlPrimitives.java:179)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.ControlPrimitivesFactory$PrimPerformNodeFactory$PrimPerformNodeGen.executeWithArguments(ControlPrimitivesFactory.java:179)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNodeGen.executeBlock(BlockActivationNodeGen.java:44)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitives$PrimClosureValue1Node.doValue(BlockClosurePrimitives.java:57)
        at de.hpi.swa.graal.squeak.nodes.primitives.impl.BlockClosurePrimitivesFactory$PrimClosureValue1NodeFactory$PrimClosureValue1NodeGen.executeWithArguments(BlockClosurePrimitivesFactory.java:259)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doPrimitiveEagerly(DispatchEagerlyNode.java:43)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:50)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNode.doDirect(DispatchEagerlyNode.java:56)
        at de.hpi.swa.graal.squeak.nodes.DispatchEagerlyNodeGen.executeDispatch(DispatchEagerlyNodeGen.java:64)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNode.doDispatch(DispatchSendNode.java:41)
        at de.hpi.swa.graal.squeak.nodes.DispatchSendNodeGen.executeSend(DispatchSendNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.bytecodes.SendBytecodes$AbstractSendNode.executeVoid(SendBytecodes.java:67)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.startBytecode(ExecuteContextNode.java:213)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNode.doVirtualized(ExecuteContextNode.java:86)
        at de.hpi.swa.graal.squeak.nodes.ExecuteContextNodeGen.executeContext(ExecuteContextNodeGen.java:32)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode.enterVirtualized(EnterCodeNode.java:91)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeGen.execute(EnterCodeNodeGen.java:39)
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:302)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:284)
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:239)
        at org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:63)
        at de.hpi.swa.graal.squeak.nodes.BlockActivationNode.doDirect(BlockActivationNode.java:29)
Caused by: Attached Guest Language Frames (83)

Fix support for large call stacks and avoid StackOverflowErrors

The first attempt to enable large call stacks by catching StackOverflowErrors and throwing process switches does not work in some cases. Maybe we could use https://openjdk.java.net/jeps/270 to ensure a bytecode can be executed until the end (vs. being interrupted in the middle of execution by a StackOverflowError). Otherwise, we probably want to something similar to RSqueak and count stack frames in the interpreter. We can then trigger a process switch after a certain threshold is reached.
AWFY's CD benchmark is highly recursive and currently fails because of StackOverflowErrors, but we will be able to use it to measure the performance of our implementation.

#addToClassPath: always returns true

#addToClassPath: always returns true even if the JAR file does not exist. I tested with 1.0.0-rc2 on macOs.

Use the following reproducer:

Java addToClassPath: 'a.jar'.

FileChooser does not work

The FileChooser dialog does nothing when pressing on the ok button (no error, no nothing):
grafik
It works fine in normal Squeak. You can reproduce this behaviour with PolyJuS. Open a notebook and click Load -> From Disk.

Retrying exceptions does not work like in normal Squeak

This code returns 42 in normal Squeak, but Object in GraalSqueak:

Object class>>graalTest

	| raiseError |
	raiseError := true.
	[raiseError ifTrue: [self signal: Error new] ifFalse: [^ 42]] 
		on: Error 
		do: [:ex | 
			raiseError := false.
			ex retry]

I found this issue because ExternalWebBrowserUnix class>>isCLibAvailable unexpectedly returned self instead of a boolean:

isCLibAvailable
	| moduleNames index |
	moduleNames := #('c' 'libc.so.6'). "standard, debian"
	index := 1.
	[^(self new system: nil) ~= 0] on: Error do: [:ex |
		index <= moduleNames size ifTrue: [
			((ExternalWebBrowserUnix compiledMethodAt: #system:) literalAt: 1)
				setModule: (moduleNames at: index).
			index := index + 1.
			ex retry].
		^false]

Missing primitives

Integer Primitives (0-19)

  • 1: primitiveAdd
  • 2: primitiveSubtract
  • 3: primitiveLessThan
  • 4: primitiveGreaterThan
  • 5: primitiveLessOrEqual
  • 6: primitiveGreaterOrEqual
  • 7: primitiveEqual
  • 8: primitiveNotEqual
  • 9: primitiveMultiply
  • 10: primitiveDivide
  • 11: primitiveMod
  • 12: primitiveDiv
  • 13: primitiveQuo
  • 14: primitiveBitAnd
  • 15: primitiveBitOr
  • 16: primitiveBitXor
  • 17: primitiveBitShift
  • 18: primitiveMakePoint
  • 19: primitiveFail "Guard primitive for simulation -- must fail"

LargeInteger Primitives (20-37)

  • 20: primitiveRemLargeIntegers
  • 21: primitiveAddLargeIntegers
  • 22: primitiveSubtractLargeIntegers
  • 23: primitiveLessThanLargeIntegers
  • 24: primitiveGreaterThanLargeIntegers
  • 25: primitiveLessOrEqualLargeIntegers
  • 26: primitiveGreaterOrEqualLargeIntegers
  • 27: primitiveEqualLargeIntegers
  • 28: primitiveNotEqualLargeIntegers
  • 29: primitiveMultiplyLargeIntegers
  • 30: primitiveDivideLargeIntegers
  • 31: primitiveModLargeIntegers
  • 32: primitiveDivLargeIntegers
  • 33: primitiveQuoLargeIntegers
  • 34: primitiveBitAndLargeIntegers
  • 35: primitiveBitOrLargeIntegers
  • 36: primitiveBitXorLargeIntegers
  • 37: primitiveBitShiftLargeIntegers

Float Primitives (38-59)

  • 38: primitiveFloatAt
  • 39: primitiveFloatAtPut
  • 40: primitiveAsFloat
  • 41: primitiveFloatAdd
  • 42: primitiveFloatSubtract
  • 43: primitiveFloatLessThan
  • 44: primitiveFloatGreaterThan
  • 45: primitiveFloatLessOrEqual
  • 46: primitiveFloatGreaterOrEqual
  • 47: primitiveFloatEqual
  • 48: primitiveFloatNotEqual
  • 49: primitiveFloatMultiply
  • 50: primitiveFloatDivide
  • 51: primitiveTruncated
  • 52: primitiveFractionalPart
  • 53: primitiveExponent
  • 54: primitiveTimesTwoPower
  • 55: primitiveSquareRoot
  • 56: primitiveSine
  • 57: primitiveArctan
  • 58: primitiveLogN
  • 59: primitiveExp

Subscript and Stream Primitives (60-67)

  • 60: primitiveAt
  • 61: primitiveAtPut
  • 62: primitiveSize
  • 63: primitiveStringAt
  • 64: primitiveStringAtPut
  • 65: 0 "a.k.a. primitiveFail" "was primitiveNext"
  • 66: 0 "a.k.a. primitiveFail" "was primitiveNextPut"
  • 67: 0 "a.k.a. primitiveFail" "was primitiveAtEnd"

StorageManagement Primitives (68-79)

  • 68: primitiveObjectAt
  • 69: primitiveObjectAtPut
  • 70: primitiveNew
  • 71: primitiveNewWithArg
  • 72: primitiveArrayBecomeOneWay "Blue Book: primitiveBecome"
  • 73: primitiveInstVarAt
  • 74: primitiveInstVarAtPut
  • 75: primitiveIdentityHash
  • 76: primitiveStoreStackp "Blue Book: primitiveAsObject"
  • 77: primitiveSomeInstance
  • 78: primitiveNextInstance
  • 79: primitiveNewMethod

Control Primitives (80-89)

  • 80: primitiveFail "Blue Book: primitiveBlockCopy"
  • 81: primitiveFail "Blue Book: primitiveValue"
  • 82: primitiveFail "Blue Book: primitiveValueWithArgs"
  • 83: primitivePerform
  • 84: primitivePerformWithArgs
  • 85: primitiveSignal
  • 86: primitiveWait
  • 87: primitiveResume
  • 88: primitiveSuspend
  • 89: primitiveFlushCache

Input/Output Primitives (90-109)

  • 90: primitiveMousePoint
  • 91: primitiveTestDisplayDepth "Blue Book: primitiveCursorLocPut"
  • 92: primitiveSetDisplayMode "Blue Book: primitiveCursorLink"
  • 93: primitiveInputSemaphore
  • 94: primitiveGetNextEvent "Blue Book: primitiveSampleInterval"
  • 95: primitiveInputWord
  • 96: primitiveFail "primitiveCopyBits"
  • 97: primitiveSnapshot
  • 98: primitiveStoreImageSegment
  • 99: primitiveLoadImageSegment
  • 100: primitivePerformInSuperclass "Blue Book: primitiveSignalAtTick"
  • 101: primitiveBeCursor
  • 102: primitiveBeDisplay
  • 103: primitiveScanCharacters
  • 104: primitiveFail "primitiveDrawLoop"
  • 105: primitiveStringReplace
  • 106: primitiveScreenSize
  • 107: primitiveMouseButtons
  • 108: primitiveKbdNext
  • 109: primitiveKbdPeek

System Primitives (110-119)

  • 110: primitiveIdentical
  • 111: primitiveClass
  • 112: primitiveBytesLeft
  • 113: primitiveQuit
  • 114: primitiveExitToDebugger
  • 115: primitiveChangeClass "Blue Book: primitiveOopsLeft"
  • 116: primitiveFlushCacheByMethod
  • 117: primitiveExternalCall
  • 118: primitiveDoPrimitiveWithArgs
  • 119: primitiveFlushCacheBySelector

Miscellaneous Primitives (120-127)

  • 120: primitiveCalloutToFFI (in progress)
  • 121: primitiveImageName
  • 122: primitiveNoop "Blue Book: primitiveImageVolume"
  • 123: primitiveFail "was primitiveValueUninterruptably"
  • 124: primitiveLowSpaceSemaphore
  • 125: primitiveSignalAtBytesLeft

Squeak Miscellaneous Primitives (128-149)

  • 126: primitiveDeferDisplayUpdates
  • 127: primitiveShowDisplayRect
  • 128: primitiveArrayBecome
  • 129: primitiveSpecialObjectsOop
  • 130: primitiveFullGC
  • 131: primitiveIncrementalGC
  • 132: primitiveObjectPointsTo
  • 133: primitiveSetInterruptKey
  • 134: primitiveInterruptSemaphore
  • 135: primitiveMillisecondClock
  • 136: primitiveSignalAtMilliseconds
  • 137: primitiveSecondsClock
  • 138: primitiveSomeObject
  • 139: primitiveNextObject
  • 140: primitiveBeep
  • 141: primitiveClipboardText
  • 142: primitiveVMPath
  • 143: primitiveShortAt
  • 144: primitiveShortAtPut
  • 145: primitiveConstantFill
  • 146: primitiveFail "primitiveReadJoystick"
  • 147: primitiveFail "primitiveWarpBits"
  • 148: primitiveClone
  • 149: primitiveGetAttribute
  • 150-159: primitiveFail "File Primitives (150-169 - NO LONGER INDEXED)"
  • 160: primitiveAdoptInstance
  • 161: primitiveSetOrHasIdentityHash
  • 162: primitiveFail "reserved for immutablity primitives"
  • 163: primitiveGetImmutability
  • 164: primitiveSetImmutability
  • 165: primitiveIntegerAt "hacked in here for now"
  • 166: primitiveIntegerAtPut
  • 167: primitiveYield
  • 168: primitiveCopyObject
  • 169: primitiveNotIdentical
  • 170: primitiveAsCharacter "SpurMemoryManager primitives"
  • 171: primitiveImmediateAsInteger
  • 172: primitiveFetchNextMourner
  • 173: primitiveSlotAt "c.f. (73) primitiveInstVarAt"
  • 174: primitiveSlotAtPut "c.f. (74) primitiveInstVarAtPut"
  • 175: primitiveBehaviorHash
  • 176: primitiveMaxIdentityHash
  • 177: primitiveAllInstances
  • 178: primitiveAllObjects
  • 179: primitiveFail "reserved for primitiveAllInstancesOfAny"
  • 180: primitiveGrowMemoryByAtLeast
  • 181: primitiveSizeInBytesOfInstance
  • 182: primitiveSizeInBytes (no senders)
  • 183: primitiveIsPinned
  • 184: primitivePin
  • 185: primitiveExitCriticalSection
  • 186: primitiveEnterCriticalSection
  • 187: primitiveTestAndSetOwnershipOfCriticalSection
  • 188: primitiveExecuteMethodArgsArray "Perform method directly"
  • 189: primitiveExecuteMethod
  • 190-194: primitiveFail "Sound Primitives (continued-NO LONGER INDEXED)"
  • 195: `primitiveFindNextUnwindContext1 "Unwind primitives"
  • 196: primitiveTerminateTo
  • 197: primitiveFindHandlerContext
  • 198: 0 "a.k.a. primitiveMarkUnwindMethod"
  • 199: 0 "a.k.a. primitiveMarkHandlerMethod"

New closure primitives (were Networking primitives)

  • 200: primitiveClosureCopyWithCopiedValues
  • 201: primitiveClosureValue "value"
  • 202: primitiveClosureValue "value:"
  • 203: primitiveClosureValue "value:value:"
  • 204: primitiveClosureValue "value:value:value:"
  • 205: primitiveClosureValue "value:value:value:value:"
  • 206: primitiveClosureValueWithArgs "valueWithArguments:"
  • 207: primitiveFullClosureValue "value[:value:value:value:] et al"
  • 208: primitiveFullClosureValueWithArgs "valueWithArguments:"
  • 209: primitiveFullClosureValueNoContextSwitch
  • 210: primitiveContextAt
  • 211: primitiveContextAtPut
  • 212: primitiveContextSize
  • 213: primitiveContextXray
  • 214: primitiveVoidVMState
  • 215: primitiveFlushCacheByMethod "primitiveVoidVMStateForMethod in Cog"
  • 216-217: primitiveFail "reserved for Cog primitives"
  • 218: primitiveDoNamedPrimitiveWithArgs
  • 219: primitiveFail "reserved for Cog primitives"
  • 220: primitiveFail "reserved for Cog primitives"
  • 221: primitiveClosureValueNoContextSwitch "valueNoContextSwitch"
  • 222: primitiveClosureValueNoContextSwitch "valueNoContextSwitch:"
  • 223-229: primitiveFail "reserved (see 228 & 229 in CoInterpreterMT)"
  • 230: primitiveRelinquishProcessor
  • 231: primitiveForceDisplayUpdate
  • 232: primitiveFormPrint
  • 233: primitiveSetFullScreen
  • 234: primitiveFail "primBitmapdecompressfromByteArrayat"
  • 235: primitiveFail "primStringcomparewithcollated"
  • 236: primitiveFail "primSampledSoundconvert8bitSignedFromto16Bit"
  • 237: primitiveFail "primBitmapcompresstoByteArray"
  • 238-239: primitiveFail "serial port primitives"
  • 240: primitiveUTCMicrosecondClock "was serial port primitive"
  • 241: primitiveLocalMicrosecondClock "was serial port primitive"
  • 242: primitiveSignalAtUTCMicroseconds
  • 243: primitiveUpdateTimezone "primStringtranslatefromtotable"
  • 244: primitiveUtcAndTimezoneOffset
  • 245: primitiveFail "primStringindexOfAsciiinStringstartingAt"
  • 246: primitiveFail "primStringfindSubstringinstartingAtmatchTable"
  • 247: primitiveSnapshotEmbedded
  • 248: primitiveFail "primitiveInvokeObjectAsMethod"
  • 249: primitiveArrayBecomeOneWayCopyHash
  • 250: primitiveClearVMProfile "VM Implementor Primitives (250-255)"
  • 251: primitiveControlVMProfiling "primitiveStartVMProfiling"
  • 252: primitiveVMProfileSamplesInto "primitiveStopVMProfiling"
  • 253: primitiveFail "N.B. primitiveCollectCogCodeConstituents in Cog"
  • 254: primitiveVMParameter
  • 255: primFail "primitiveInstVarsPutFromStack. Used in Disney tests"
  • 256: nil "primitivePushSelf" "Quick Push Const Methods"
  • 257: nil "primitivePushTrue"
  • 258: nil "primitivePushFalse"
  • 259: nil "primitivePushNil"
  • 260: nil "primitivePushMinusOne"
  • 261: nil "primitivePushZero"
  • 262: nil "primitivePushOne"
  • 263: nil "primitivePushTwo"

Quick Push Inst Var Methods

  • 264-519: nil "primitiveLoadInstVar"

Reserved for Spur primitives

  • 520: primitiveFail
  • 521-529: primitiveFail
  • 530-539: primitiveFail

SmallFloat

  • 540: primitiveFail
  • 541: primitiveSmallFloatAdd
  • 542: primitiveSmallFloatSubtract
  • 543: primitiveSmallFloatLessThan
  • 544: primitiveSmallFloatGreaterThan
  • 545: primitiveSmallFloatLessOrEqual
  • 546: primitiveSmallFloatGreaterOrEqual
  • 547: primitiveSmallFloatEqual
  • 548: primitiveSmallFloatNotEqual
  • 549: primitiveSmallFloatMultiply
  • 550: primitiveSmallFloatDivide
  • 551: primitiveSmallFloatTruncated
  • 552: primitiveSmallFloatFractionalPart
  • 553: primitiveSmallFloatExponent
  • 554: primitiveSmallFloatTimesTwoPower
  • 555: primitiveSmallFloatSquareRoot
  • 556: primitiveSmallFloatSine
  • 557: primitiveSmallFloatArctan
  • 558: primitiveSmallFloatLogN
  • 559: primitiveSmallFloatExp

Other

  • 560-569: primitiveFail

External primitive support primitives

  • 570: primitiveFlushExternalPrimitives
  • 571: primitiveUnloadModule
  • 572: primitiveListBuiltinModule
  • 573: primitiveListExternalModule
  • 574: primitiveFail "reserved for addl. external support prims"

Unassigned Primitives

  • 575: primitiveFail

Add support for image segments

...which means we need to implement primitiveStoreImageSegment (primitive 98) and primitiveLoadImageSegment (primitive 99).

For the image segment loading part, we should reuse existing infrastructure from the image reader (e.g. image chunks).

Similarly, the image segment storing part will probably share code with the image writer (once implemented, see #37).

BlockClosure>>bench no working correctly

For some reason, [ something ] bench results in an endless loop.

@johenning has put together the following test for repro:

testMultiProcessWaitOnVariable
    | delay p1 running elapsedTime startTime |
    delay := Delay forSeconds: 1.
    running := true.
    p1 := [delay wait. running:= false] forkAt: Processor timingPriority - 1.
    startTime := Time millisecondClockValue.
    [running] whileTrue: [
        1+1
    ].
      elapsedTime := Time millisecondsSince: startTime.
    self assert: (elapsedTime - delay delayDuration) < 100. "should return after Delay has passed, 100msec grace period"

MorphicUIManagerTest>>testShowAllBinParts fails

When the Thumbnail is not cached in PartsBin, EventRecordingSpace>>initialize is called, which eventually calls GSMCodec>>primNewState, which throws 'The SoundCodecPrims plugin is not available'

Some keys do not work

On Windows:

  • @ typed via german keyboard layout (Alt-Gr + q)
  • ' typed with us international with dead keys

(Graal)Squeak image freezes on startup

For some reason, Squeak images freeze on startup on @shingarov MacBook due to timing interrupts not firing. I have not found a way to reproduce this on my machine yet. Cuis images, however, seem to work fine.

Reduce memory consumption

For a 50MB Squeak image, GraalSqueak currently needs around 2.5-3.2GB of memory on my machine. GraalSqueak compiled with SVM uses around 700-900MB. Using VisualVM, I already identified a few things that can be improved in order to reduce memory usage:

  • Only allocate FrameSlots that are actually needed (instances seem to be quite large)
  • Ensure image loading code is completely GCed (and removed from any GraalVM caches)
  • Return directly rather than using LocalReturn exceptions (which are allocated a lot)
  • Reduce size of bytecodeNodes array
  • Explore more VM options to fine-tune GC, ...

BufferOverflowException in SqueakSSL plugin

Repro do-It

WebClient httpGet: 'https://upload.wikimedia.org/wikipedia/en/e/ef/Commander_Keen_cover_art.jpeg'.

Stack trace

java.nio.BufferOverflowException
	at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:206)
	at de.hpi.swa.graal.squeak.nodes.plugins.SqueakSSL$PrimDecryptNode.doDecrypt(SqueakSSL.java:688)
	at de.hpi.swa.graal.squeak.nodes.plugins.SqueakSSLFactory$PrimDecryptNodeFactory$PrimDecryptNodeGen.executeWithArguments(SqueakSSLFactory.java:489)
...

Tested with GraalSqueak 1.0.0-rc6 (fb5f87b) and GraalVM CE 19.3.

Manually built component is not recognized when running in eclipse

I am trying to debug graalsqueak in eclipse, when I run make_component.sh and install it then try to run GraalSqueakLauncher I get the error "A language with id 'smalltalk' is not installed". When I install the component from the release it works fine, what is strange is that running "mx squeak" works with the custom component but not in eclipse. There seems to be some difference between the release graalsqueak.jar and the graalsqueak.jar being compiled but I don't know what it is, I have tried compiling with different jdk versions including 1.8 and still no luck.

Can not call overloaded array methods

java.util.Arrays#oString is overloaded for every array type, I would like to call java.util.Arrays#oString(byte[]) but this fails with

'com.oracle.truffle.api.interop.UnsupportedTypeException: Multiple applicable overloads found for method name toString (candidates: [Method[public static java.lang.String java.util.Arrays.toString(boolean[])], Method[public static java.lang.String java.util.Arrays.toString(byte[])], Method[public static java.lang.String java.util.Arrays.toString(float[])], Method[public static java.lang.String java.util.Arrays.toString(double[])], Method[public static java.lang.String java.util.Arrays.toString(long[])], Method[public static java.lang.String java.util.Arrays.toString(int[])], Method[public static java.lang.String java.util.Arrays.toString(short[])], Method[public static java.lang.String java.util.Arrays.toString(char[])], Method[public static java.lang.String java.util.Arrays.toString(java.lang.Object[])]], arguments: [byte[4] (NativeObject)])'

reproducer

self assert: ((Java type: 'java.util.Arrays') toString: #[127 0 0 1]) = '[127, 0, 0, 1]'

That is with 1.0.0-rc2, I did not check with 1.0.0-rc3

Missing MiscPrimitivePlugin primitives

  • primitiveCompareString
  • primitiveCompressToByteArray
  • primitiveDecompressFromByteArray
  • primitiveFindFirstInString
  • primitiveFindSubstring
  • primitiveIndexOfAsciiInString
  • primitiveStringHash
  • primitiveTranslateStringWithTable

Missing plugins

  • FloatArrayPlugin (progress see #5)
  • LocalePlugin (in-complete, see #40)
  • MiscPrimitivePlugin (progress see #4)
  • OSProcess (in-complete, see #39)
  • SocketPlugin
  • SqueakSSL
  • HostWindowPlugin
  • Matrix2x3Plugin (in-complete, see #41)
    ...

"Trufflefy" BitBlt, B2D, and possibly other plugin ports

Currently, BitBlt.java and B2D.java as well as other plugin ports are not prepared for partial evaluation. This means that all reachable code will always be part of a compilation unit which consequently results in large code sizes and possibly poor warmup. Using profiles (e.g. BranchProfile), we could hide certain code paths (e.g. bit depth dependent code for 1/8/16/32bit forms) from compilation and thus reduce the code sizes significantly. These profiles, however, need to be attached to the corresponding primitive node and probably need to be passed in as arguments.

Debugging graalsqueak via --inspect causes lots of error messages

When starting graalsqueak with the flag --inspect and then using the Chrome debugger, lots of the following error messages appear. The function at the beginning (Heap>>downHeapSingle in this case) changes, but the error messages is always the same. This happens on graalsqueak 0.8 as well as 0.8.4

[truffle] opt fail         Heap>>downHeapSingle: <split-463685c6>                      |Reason org.graalvm.compiler.code.SourceStackTraceBailoutException$1: Object of type Lorg/graalvm/compiler/truffle/runtime/FrameWithoutBoxing; shoul
d not be materialized:                                                                                                                                                                                                                     
org.graalvm.compiler.code.SourceStackTraceBailoutException$1: Object of type Lorg/graalvm/compiler/truffle/runtime/FrameWithoutBoxing; should not be materialized:                                                                         
        at com.oracle.truffle.api.debug.DebuggerSession$SteppingNode.onEnter(DebuggerSession.java:1286)                                                                                                                                    
        at com.oracle.truffle.api.debug.DebuggerSession$RootSteppingDepthNode.onEnter(DebuggerSession.java:1378)                                                                                                                           
        at com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.innerOnEnter(ProbeNode.java:1449)                                                                                                                       
        at com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onEnter(ProbeNode.java:898)                                                                                                                                     
        at com.oracle.truffle.api.instrumentation.ProbeNode.onEnter(ProbeNode.java:156)                                                                                                                                                    
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNodeWrapper.execute(EnterCodeNodeWrapper.java:44)                                                                                                                                        
        at de.hpi.swa.graal.squeak.nodes.EnterCodeNode$SqueakCodeRootNode.execute(EnterCodeNode.java:61)                                                                                                                                   
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:325)                                                                                                                                
        at org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:315)                                                                                                                                 
Caused by: org.graalvm.compiler.graph.VerificationError: Object of type Lorg/graalvm/compiler/truffle/runtime/FrameWithoutBoxing; should not be materialized:                                                                              
        at org.graalvm.compiler.nodes.virtual.EnsureVirtualizedNode.ensureVirtualFailure(EnsureVirtualizedNode.java:98)                                                                                                                    
        at org.graalvm.compiler.nodes.virtual.EnsureVirtualizedNode.lower(EnsureVirtualizedNode.java:82)                                                                                                                                   
        at org.graalvm.compiler.phases.common.LoweringPhase$Round.process(LoweringPhase.java:476)                                                                                                                                          
        at org.graalvm.compiler.phases.common.LoweringPhase$Round.access$200(LoweringPhase.java:352)                                                                                                                                       
        at org.graalvm.compiler.phases.common.LoweringPhase$Round$ProcessFrame.preprocess(LoweringPhase.java:416)                                                                                                                          
        at org.graalvm.compiler.phases.common.LoweringPhase.processBlock(LoweringPhase.java:575)                                                                                                                                           
        at org.graalvm.compiler.phases.common.LoweringPhase$Round.run(LoweringPhase.java:401)                                                                                                                                              
        at org.graalvm.compiler.phases.Phase.run(Phase.java:49)                                                                                                                                                                            
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)                                                                                                                                                                 
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:139)                                                                                                                                                                 
        at org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:212)                                                                                                                                                                 
        at org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase.run(IncrementalCanonicalizerPhase.java:56)                                                                                                                     
        at org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase.run(IncrementalCanonicalizerPhase.java:38)                                                                                                                     
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)                                                                                                                                                                 
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:139)                                                                                                                                                                 
        at org.graalvm.compiler.phases.common.LoweringPhase.lower(LoweringPhase.java:272)                                                                                                                                                  
        at org.graalvm.compiler.phases.common.LoweringPhase.run(LoweringPhase.java:265)                                                                                                                                                    
        at org.graalvm.compiler.phases.common.LoweringPhase.run(LoweringPhase.java:95)                                                                                                                                                     
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)                                                                                                                                                                 
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:139)                                                                                                                                                                 
        at org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:212)                                                                                                                                                                 
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)                                                                                                                                                                 
        at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:139)                                                                                                                                                                 
        at org.graalvm.compiler.core.GraalCompiler.emitFrontEnd(GraalCompiler.java:220)                                                                                                                                                    
        at org.graalvm.compiler.core.GraalCompiler.compile(GraalCompiler.java:144)                                                                                                                                                         
        at org.graalvm.compiler.core.GraalCompiler.compileGraph(GraalCompiler.java:129)                                                                                                                                                    
        at org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.compilePEGraph(TruffleCompilerImpl.java:518)                                                                                                                          
        at org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.compileAST(TruffleCompilerImpl.java:452)                                                                                                                              
        at org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl$TruffleCompilationWrapper.performCompilation(TruffleCompilerImpl.java:621)                                                                                            
        at org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl$TruffleCompilationWrapper.performCompilation(TruffleCompilerImpl.java:568)                                                                                            
        at org.graalvm.compiler.core.CompilationWrapper.run(CompilationWrapper.java:177)                                                                                                                                                   
        at org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.doCompile(TruffleCompilerImpl.java:280)                                                                                                                               
        at org.graalvm.compiler.truffle.compiler.hotspot.libgraal.HotSpotToSVMEntryPoints.doCompile(HotSpotToSVMEntryPoints.java:251)   

Missing FloatArrayPlugin primitives

  • primitiveAddFloatArray
  • primitiveAddScalar
  • primitiveAt
  • primitiveAtPut
  • primitiveDivFloatArray
  • primitiveDivScalar
  • primitiveDotProduct
  • primitiveEqual
  • primitiveHashArray
  • primitiveLength
  • primitiveMulFloatArray
  • primitiveMulScalar
  • primitiveNormalize
  • primitiveSubFloatArray
  • primitiveSubScalar
  • primitiveSum

Ideas and problems identified by fmateoc

This is a tracking bug for the to-do list that @fmateoc put together in #88 (comment).

  • Setting up a Windows CI (#86)
  • Make timeouts a hard stop in CI testing
  • Separate concerns in AbstractSqueakTestCaseWithImage
  • New PR with testcase and fix for process removal from lists
  • New PR with testcases and fix for cannotReturn (it turns out the handling should not happen in ResumeContextNode but in NonLocalReturn, but it's still not working properly yet - right now it's not working but it never gets invoked, so you might leave it there for now, up to you)
  • New PR for refactoring the bytecode loop in terms of primitive calls
  • A logging infrastructure

Optional primitives

  • 20: LARGE_REM
  • 65: NEXT
  • 66: NEXT_PUT
  • 67: AT_END
  • 80: BLOCK_COPY (deprecated)
  • 81: BLOCK_VALUE (deprecated)
  • 82: BLOCK_VALUE_WITH_ARGS (deprecated)
  • 91: TEST_DISPLAY_DEPTH
  • 92: SET_DISPLAY_MODE
  • 93: INPUT_SEMAPHORE
  • 95: INPUT_WORD
  • 103: SCAN_CHARACTERS
  • 104: DRAW_LOOP
  • 122: REVERSE_DISPLAY
  • 123: VALUE_UNINTERRUPTABLY
  • 133: SET_INTERRUPT_KEY (obsolete)
  • 167: YIELD
  • 243: UPDATE_TIMEZONE
  • 250: VM_CLEAR_PROFILE
  • 251: VM_DUMP_PROFILE
  • 252: VM_START_PROFILING
  • 253: VM_STOP_PROFILING
  • 254: VM_PARAMETERS
  • 573: VM_LOADED_MODULES

Java <-> Squeak byte array conversion issues

I'm struggling with passing byte arrays between Java and Squeak. The issue is that 0xFF is represented as 255 in Squeak and -1 in Java as Java only has signed bytes and bytes in Squeak are unsigned.

The following works:

(Java type: 'java.net.InetAddress')
	getByAddress: #[127 0 0 1]

but this fails

(Java type: 'java.net.InetAddress')
	getByAddress: #[192 168 0 1]

Deopt loop when running `20 timesRepeat: [10000 factorial]`

Commit: 09a55c8

$ mx --dy /compiler squeak -tc --code "20 timesRepeat: [10000 factorial]" images/squeak.image
[graalsqueak] Running Squeak/Smalltalk on OpenJDK 64-Bit GraalVM CE 19.1.1 (Graal-compiled)...
[graalsqueak] Image loaded in 3099ms.
Preparing image for headless execution...
[Use -Dgraal.LogFile=<path> to redirect Graal log output to a file.]
[truffle] opt done         IdentityDictionary>>scanFor: <opt> <split-577d64f5>         |ASTSize     200/  229 |Time   167( 150+17  )ms |DirectCallNodes I    1/D    0 |GraalNodes   674/  787 |CodeSize         2481 |CodeAddress 0x10b211490 |Source            n/a
[graalsqueak] Evaluating '20 timesRepeat: [10000 factorial]'...
[truffle] opt done         Integer>>factorial <opt> <split-6ef1af02>                   |ASTSize      62/  186 |Time    12(  11+1   )ms |DirectCallNodes I    2/D    1 |GraalNodes     5/    5 |CodeSize           88 |CodeAddress 0x10b0a0bd0 |Source            n/a
[truffle] opt done         [] in Metaclass (CommandHistory)>>resetAllHistory <opt>     |ASTSize      20/  427 |Time   663( 221+443 )ms |DirectCallNodes I    6/D    0 |GraalNodes  1868/ 2011 |CodeSize         6684 |CodeAddress 0x10adaba90 |Source            n/a
[truffle] opt done         Integer>>factorial <opt>                                    |ASTSize      62/  186 |Time   143( 131+12  )ms |DirectCallNodes I    2/D    1 |GraalNodes   385/  736 |CodeSize         2517 |CodeAddress 0x10b1c2b50 |Source            n/a
[truffle] opt done         Integer>>factorial <opt> <split-6ef1af02>                   |ASTSize      62/  186 |Time   135( 107+28  )ms |DirectCallNodes I    2/D    1 |GraalNodes   920/ 1873 |CodeSize         8048 |CodeAddress 0x10addce10 |Source            n/a
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/    6 |CallsAndLoop/Thres   27499/ 1003 |Inval#              1
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/    9 |CallsAndLoop/Thres   27499/ 1006 |Inval#              2
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   12 |CallsAndLoop/Thres   27499/ 1009 |Inval#              3
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   15 |CallsAndLoop/Thres   27499/ 1012 |Inval#              4
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   18 |CallsAndLoop/Thres   27499/ 1015 |Inval#              5
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   21 |CallsAndLoop/Thres   27499/ 1018 |Inval#              6
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   24 |CallsAndLoop/Thres   27499/ 1021 |Inval#              7
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   27 |CallsAndLoop/Thres   27499/ 1024 |Inval#              8
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   30 |CallsAndLoop/Thres   27499/ 1027 |Inval#              9
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   33 |CallsAndLoop/Thres   27499/ 1030 |Inval#             10
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   36 |CallsAndLoop/Thres   27499/ 1033 |Inval#             11
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   39 |CallsAndLoop/Thres   27499/ 1036 |Inval#             12
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   42 |CallsAndLoop/Thres   27499/ 1039 |Inval#             13
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   45 |CallsAndLoop/Thres   27499/ 1042 |Inval#             14
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   48 |CallsAndLoop/Thres   27499/ 1045 |Inval#             15
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   51 |CallsAndLoop/Thres   27499/ 1048 |Inval#             16
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   54 |CallsAndLoop/Thres   27499/ 1051 |Inval#             17
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   57 |CallsAndLoop/Thres   27499/ 1054 |Inval#             18
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   60 |CallsAndLoop/Thres   27499/ 1057 |Inval#             19
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   63 |CallsAndLoop/Thres   27499/ 1060 |Inval#             20
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   66 |CallsAndLoop/Thres   27499/ 1063 |Inval#             21
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   69 |CallsAndLoop/Thres   27499/ 1066 |Inval#             22
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   72 |CallsAndLoop/Thres   27499/ 1069 |Inval#             23
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   75 |CallsAndLoop/Thres   27499/ 1072 |Inval#             24
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   78 |CallsAndLoop/Thres   27499/ 1075 |Inval#             25
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   81 |CallsAndLoop/Thres   27499/ 1078 |Inval#             26
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   84 |CallsAndLoop/Thres   27499/ 1081 |Inval#             27
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   87 |CallsAndLoop/Thres   27499/ 1084 |Inval#             28
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   90 |CallsAndLoop/Thres   27499/ 1087 |Inval#             29
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   93 |CallsAndLoop/Thres   27499/ 1090 |Inval#             30
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   96 |CallsAndLoop/Thres   27499/ 1093 |Inval#             31
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/   99 |CallsAndLoop/Thres   27499/ 1096 |Inval#             32
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/  102 |CallsAndLoop/Thres   27499/ 1099 |Inval#             33
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/  105 |CallsAndLoop/Thres   27499/ 1102 |Inval#             34
...
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/ 7497 |CallsAndLoop/Thres   27499/ 8494 |Inval#           2498
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/ 7500 |CallsAndLoop/Thres   27499/ 8497 |Inval#           2499
[truffle] opt deopt        Integer>>factorial <split-6ef1af02>                         |ASTSize      62/   62 |Calls/Thres   27499/ 7503 |CallsAndLoop/Thres   27499/ 8500 |Inval#           2500
[truffle] opt done         Integer>>factorial <opt> <split-6ef1af02>                   |ASTSize      62/  186 |Time   164( 118+46  )ms |DirectCallNodes I    2/D    1 |GraalNodes   958/ 2354 |CodeSize        10354 |CodeAddress 0x10ab08190 |Source            n/a
[graalsqueak] Result: 20

Missing LargeIntegersPlugin primitives

  • primAnyBitFromTo
  • primDigitAdd
  • primDigitBitAnd
  • primDigitBitOr
  • primDigitBitShiftMagnitude
  • primDigitBitXor
  • primDigitCompare
  • primDigitDivNegative
  • primDigitMultiplyNegative
  • primDigitSubtract
  • primMontgomeryDigitLength
  • primMontgomeryTimesModulo
  • primNormalizeNegative
  • primNormalizePositive

ERROR: java.lang.NoClassDefFoundException on Windows

Environment setup:

  1. C:\opt\graalvm-ce-19.2.0.1\ (Github)
  2. Manual installation of graalsqueak-component-1.0.0-rc3-for-GraalVM-19.2.0.1.jar (Github)
  3. Manual addition of Windows script jre\languages\smalltalk\bin\graalsqueak.cmd adapted from jre\languages\smalltalk\bin\graalsqueak (see PR 73).
  4. C:\opt\Squeak-5.2\ (Download Site)

Session with error message:

$ c:\opt\graalvm-ce-19.2.0.1\jre\languages\smalltalk\bin\graalsqueak.cmd c:\Squeak-5.2\Squeak5.2-18229-64bit.image
[graalsqueak] Running Squeak/Smalltalk on OpenJDK 64-Bit GraalVM CE 19.2.0.1 (Graal-compiled)...
ERROR: java.lang.NoClassDefFoundError: com/sun/security/auth/module/UnixSystem
org.graalvm.polyglot.PolyglotException: java.lang.NoClassDefFoundError: com/sun/security/auth/module/UnixSystem
        at de.hpi.swa.graal.squeak.nodes.plugins.UnixOSProcessPlugin.<clinit>(UnixOSProcessPlugin.java:35)
        at de.hpi.swa.graal.squeak.nodes.primitives.PrimitiveNodeFactory.initialize(PrimitiveNodeFactory.java:89)
        at de.hpi.swa.graal.squeak.image.SqueakImageContext.initializePrimitives(SqueakImageContext.java:348)
        at de.hpi.swa.graal.squeak.image.reading.SqueakImageReader.run(SqueakImageReader.java:94)
        [...]
        at de.hpi.swa.graal.squeak.launcher.GraalSqueakLauncher.main(GraalSqueakLauncher.java:55)
Caused by: java.lang.ClassNotFoundException: com.sun.security.auth.module.UnixSystem
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 19 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.