Archive for squeak
Smalltalk Reflections episode three is up
Posted in Appsterdam, consulting, Context, music, Smalltalk, Spoon with tags context, debugging, gemstone, livecoding, minimalism, modules, naiad, objects, pharo, release, remote messaging, smalltalk, spoon, squeak, virtual machine on 16 December 2014 by Craig Lattadebugging remote exceptions works
Posted in consulting, Context, Smalltalk, Spoon with tags context, debugging, livecoding, remote messaging, smalltalk, spoon, squeak on 20 November 2014 by Craig LattaI have debugging working for remote unhandled exceptions. My motivating use case was debugging messages not understood by the Context console’s embedded web server. The console is a headless app. In development, I run it with a remote-messaging connection to a headful system. Now, when there is an unhandled exception (like a message not understood), the exception requests that the headful system open a debugger (as its default action).
Before opening the debugger, the headful system replaces the sender of the first relevant context on the headless system with the last relevant context on the headful system, hiding all the remote-messaging-related contexts in between. The picture above shows an example of this. On the headful system, I sent “zork” to an object on the headless system. The debugger shows a continuous context stack which spans the two systems. This all works with little special handling in the debugger because of the complete transparency of remote messaging. It doesn’t matter that the contexts and methods that the debugger is manipulating happen to be remote.
Context 3 beta 5 released
Posted in Context, Uncategorized with tags 3 beta 5, context, modules, naiad, release, smalltalk, spoon, squeak on 4 March 2014 by Craig LattaHi, Context 3 beta 5 is released. I’ve still got a bunch of changes pending, for a 3b6 release to follow shortly. This release is just to fix some startup problems on Windows, Linux, and Mac OS. You can also find the Spoon VM changes separated out, in the second “Resources” folder.
What I’d like is for you to just start the app and tell me the results, along with your host platform. Thanks!
current design for Context’s virtual filesystem
Posted in consulting, Context, Naiad, Smalltalk, Spoon with tags context, favorite text editor, smalltalk, spoon, squeak, virtual filesystem on 13 January 2014 by Craig LattaI’m writing Context’s virtual filesystem support now. The directory structure looks like this:
--
root
classes
<each class>
methods
all
<each method>
literals
<literal objects>
source
version
inherited
<inherited methods>
local
<locally-defined methods>
slots
all
<each slot>
<instances ordered by slot>
references
<referring objects>
slots
<etc>
inherited
<etc>
local
<etc>
processes
<each process' suspended context>
method
instructions
literals
<literal objects>
sender
<etc>
README.html
--
What do you think?
the initial Context webpage
Posted in consulting, Context, Naiad, Smalltalk, Spoon with tags context, modules, naiad, smalltalk, spoon, squeak, web browser, welcome on 10 January 2014 by Craig LattaA Spoonful of Raspberry Pi
Posted in consulting, Naiad, Smalltalk, Spoon with tags Flow, Morphic, MVC, naiad, Raspberry Pi, remote messaging, smalltalk, spoon, squeak, virtual machine on 3 January 2014 by Craig LattaSpoon is up on the Raspberry Pi and exchanging remote messages with Spoon on my laptop. Morphic works, but it’s pretty slow, so I’ll be sticking with MVC for now (the Raspberry Pi is a 700MHz machine… I’m looking forward to Tim’s profiling work!). I’m writing a talk for FOSDEM in February called “A Spoonful of Raspberry Pi”. What should the Pi do? I’m eager to hear your suggestions!
Another VM debugging trick: halting
Posted in consulting, Smalltalk, Spoon with tags debugging, smalltalk, spoon, squeak, virtual machine on 31 December 2013 by Craig LattaJust another little VM debugging trick I use… In one of my VM plugins I include a little C function called “breakHere”, which Smalltalk can call as a primitive. I put a breakpoint on it in the C debugger, and then have a convenient way to break in the C debugger from Smalltalk.
What services should the initial Context filesystem provide?
Posted in Context, Naiad, Smalltalk, Spoon with tags context, minimal, modules, remote browsing, smalltalk, spoon, squeak, virtual filesystem, webdav on 19 December 2013 by Craig LattaThe Context app is now mountable as a virtual (WebDAV) filesystem. What should it do? It has a file at the top level called “README.html”, which is obvious enough. What should the README describe? What would you want a newcomer to be able to do from their favorite text editor (or their favorite file-aware programming language)? Browse classes and methods? Resume and suspend object memories? Add and remove code modules? Please share your thoughts, keeping in mind that this is meant to be a minimal system (one can always add code modules to it later).
VM debugging trick: browsing object memory snapshots made from the C debugger in the simulator
Posted in Smalltalk, Spoon with tags C debugger, debugging, smalltalk, snapshot, spoon, squeak, virtual machine on 17 December 2013 by Craig LattaRecently I made use of a virtual machine debugging trick that I don’t think I’ve written about here. The virtual machine simulator is a great way to browse around the state of object memory at the point of a VM crash, but it’s relatively slow (I measured it at about 3,000 instructions per second in my sonification work). The time it takes to get to that point might be prohibitively long.
Instead, you can run to that point in the C debugger (I use lldb on Mac OS), and make a snapshot by invoking primitiveSnapshot() manually. Then, open a simulator on that snapshot and browse the objects to your heart’s content. Depending on the error, you might even be able to modify the objects such that the active process may proceed, and you can snapshot a repaired object memory from the simulator.
virtual machine sonification
Posted in Smalltalk, Spoon with tags object memory, profiling, smalltalk, sonification, sound, spoon, squeak, virtual machine on 9 December 2013 by Craig LattaA while back I instrumented the Smalltalk virtual machine to generate visualizations of object memories. Now I’m designing instrumentations for sonification, so that the virtual machine will generate sound as it runs. This could be especially interesting for insights into the virtual machine’s operation, since I think it will run usefully in real time. It might be a useful profiling tool, for example. If you have any ideas for how to map messages and executed instructions to sound, please let me know!




