Hallo *,
beim Versuch, den Code
ContextPart tallyInstructions: [MacroBenchmarks run]
auszuführen, erhalte ich den Fehler "context not in process". Einen Report zu ähnlichen Aufrufen habe ich bereits unter http://bugs.squeak.org/view.php?id=5716 gefunden. Meine Fragen dazu:
Woran liegt das?
Kennt jemand komplexere Benchmarks als Integer>>#benchmark und Integer>>#benchFib, die im Simulator funktionieren?
Gibt es andere Möglichkeiten als den Simulator, um die ausgeführten Instruktionen zu analysieren?
Grüße, André
Hallo André,
Ich habe mal versucht, das Problem nachzuvollziehen und mir sind dabei mehrere Dinge aufgefallen. 1. Im aktuellen Squeak-dev-Image (3.9) konnte ich die MakroBenchmarks nicht finden, ich habe sie von SqueakMap nachgeladen (für 3.7) - a) diese Version musste ich leicht anpassen, damit sie überhaupt läuft und dabei musste ich den benchmark3 auskommentieren, weil dieser intern auch wieder simuliert, was schiefgeht 2. Alle Fehler während der Simulation werden vom mit der selben aussagearmen Fehlermeldung an den User zurückgegeben. a) die eigentliche Fehlermeldung findet sich dann im 7. Eintrag des Stacks, wenn man in die lokale Variable arguments schaut. In meinem Fall bin ich dort auf ein Message not understood: quo: gestossen. Dann habe ich mich durch die Sender-chain nach oben gehangelt (wie es sonst auch der Debugger machen würde) und bin beim Aufruf von Smalltalk timeStamp: gelandet. Irgendwo in dieser Kette wird das aktuelle Datum in Nanosekunden ausgerechnet und dann als argument an Duration>>nanoSeconds: übergeben. Wie man sich leicht vorstellen kann, handelt es sich dabei um einen Large Integer, der irgendwie bei dieser Übergabe in ein Array umgewandelt wird (frag nicht wie, soweit bin ich noch nicht, aber es orientiert sich am printString (der LargeInt ist in meinem Beispiel 212058345600 und das Array ist #(212 58345600) )), das dann natürlich kein quo: versteht.
Scheint mir im Moment noch ziemlich verworren. Man sollte einen Debugger extra für den Simulator schreiben (oder den jetzigen anpassen).
Gruss, Torge
André Wendt schrieb:
Hallo *,
beim Versuch, den Code
ContextPart tallyInstructions: [MacroBenchmarks run]
auszuführen, erhalte ich den Fehler "context not in process". Einen Report zu ähnlichen Aufrufen habe ich bereits unter http://bugs.squeak.org/view.php?id=5716 gefunden. Meine Fragen dazu:
Woran liegt das?
Kennt jemand komplexere Benchmarks als Integer>>#benchmark und Integer>>#benchFib, die im Simulator funktionieren?
Gibt es andere Möglichkeiten als den Simulator, um die ausgeführten Instruktionen zu analysieren?
Grüße, André
squeak-ev@lists.squeakfoundation.org