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é > |
In reply to this post by André Wendt-3
Hallo Torge,
danke für die umfassenden Erkenntnisse, ich werde das mal versuchen nachzuvollziehen. Mittlerweile habe ich die allgemeine Frage nach Benchmarking im Simulator an die vm-dev-Liste weitergeleitet. Viele Grüße, André Torge Husfeldt schrieb: > 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é >> > > |
Ähm, wieso gerade die vm-dev-Liste? Das ist *nicht* der Interpreter-
Simulator aus dem VMMaker-Paket, hat also mit der VM nicht direkt zu tun. Oder vermutest du einen VM-Bug? - Bert - On Oct 8, 2007, at 22:03 , André Wendt wrote: > Hallo Torge, > > danke für die umfassenden Erkenntnisse, ich werde das mal versuchen > nachzuvollziehen. > > Mittlerweile habe ich die allgemeine Frage nach Benchmarking im > Simulator an die vm-dev-Liste weitergeleitet. > > Viele Grüße, > André > > Torge Husfeldt schrieb: >> 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é >>> >> >> > |
In reply to this post by André Wendt-3
Hmm, ich hatte gehofft, ich hätte mich nur vertippt, hab's aber
tatsächlich an die vm-dev- statt an die squeak-dev-Liste geschickt. Ich hoffe, ich kann den Zorn der Götter nochmal abwenden... Wünscht mir Glück! ;-) André Bert Freudenberg schrieb: > Ähm, wieso gerade die vm-dev-Liste? Das ist *nicht* der Interpreter- > Simulator aus dem VMMaker-Paket, hat also mit der VM nicht direkt zu > tun. Oder vermutest du einen VM-Bug? > > - Bert - > > On Oct 8, 2007, at 22:03 , André Wendt wrote: > >> Hallo Torge, >> >> danke für die umfassenden Erkenntnisse, ich werde das mal versuchen >> nachzuvollziehen. >> >> Mittlerweile habe ich die allgemeine Frage nach Benchmarking im >> Simulator an die vm-dev-Liste weitergeleitet. >> >> Viele Grüße, >> André >> >> Torge Husfeldt schrieb: >>> 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é >>>> >>> |
Free forum by Nabble | Edit this page |