Blogs

:use for GNU Smalltalk

Tagged:

Commonly, when importing a namespace using shared pool dictionaries, you wonder "why can't I just import this once for my entire namespace?" Well, in the upcoming 3.1, you can.

Eval [PackageLoader fileInPackages: #('Parser' 'NetClients')]

Namespace current: Test [
    <import: STInST>

    Object subclass: MyTest [
        test [^RBParser]
    ]

    <import: NetClients>

    MyTest extend [
        test2 [^URIResolver]
    ]
]

Fun with Cairo and libsdl

Tagged:  •    •    •  

Travis Griggs has been having fun with Cairo and, thanks to the contribution of Tony Garnock-Jones, so am I...

The Cairo and libsdl bindings (Cairo is drawing on a libsdl surface) is not yet in the FSF repository. I'm planning to put up a new git repository with my experiments as soon as possible!

Changing the variable search order

Tagged:  •  

GST, and Smalltalk in general, has many more places in which to search for variables than most programming systems. Besides instance variables, in-class and inherited, the compiler has to search a number of pools:

  • All inherited namespaces and their superspaces
  • All inherited class pools
  • All inherited shared pools

Traditionally, GST's search order has been somewhat idiosyncratic. This isn't a problem, of course, until you start making name clashes.

Seaside development with GNU Smalltalk

Tagged:  •    •    •    •    •  

The next release of GNU Smalltalk will include support for Seaside. This blog post is a short tutorial, which will show how to make your first Seaside component.

To follow this tutorial you need GNU Smalltalk 3.0a (which will be available from ftp://alpha.gnu.org/gnu/smalltalk/smalltalk-3.0a.tar.gz later today) or a later version.

One of the new features in 3.0a and later is the ability to run an image in the background and control it from the shell. For example, you can try these commands:

$ gst-remote --daemon
$ gst-remote --eval '100 factorial'
$ gst-remote --kill

Sake = Rake for Smalltalk

Tagged:  •    •    •  

A while ago I tried looking at how an object model for a Rake-tool would look like in Smalltalk. Here are the somewhat polished results of that experiment.

One area where Ruby fares definitely better than Smalltalk is in creating DSLs. This is mostly because of the "implied self" of Ruby's syntax, which however is also a major source of complication in parsing Ruby. Therefore, the Sake object model is also an experiment in using class extensions creatively to implement Smalltalk DSLs.

Syndicate content

User login