StS

Ambrai Smalltalk for Mac OS X

July 16, 2003 18:17:00.364

Dorin Sandu and Mark Suska

VM - the basics

  • Interpreter
  • mark and sweep gc
  • direct pointers
  • non-moving objects
  • weak reference

It's small, it's portable. The VM is 68k compiled, the image (with all source) is 3MB. The VM is implemented in C++ and has been run on other platforms than Mac OS X. Minimal set of primitives, reclaims circular weak by key refs. Given the small number of primitives, platform ports are possible and not too hard. Have run it on Windows and older versions of Mac OS.

Native Framwork

  • interfaces to shared libs
  • automatic interface generation from C headers
  • C code translated one to one to ST equivalent
  • functions and callbacks
  • type checking
  • bounds checking

Native calls can call back into Smalltalk. The VM is single threaded from an OS perspective.

Now a look at the system - the browsere looks like a VW browser without Store loaded. Some of the 'system' level code (Behavior, Blocks, etc) is a bit sparse, but it is a new implementation.

Smalltalk Environment

  • no development time state or behavior in kernel classes
  • "SmalltalkEnvironment current" - gets current state info
  • Modular design of the entire system - tools, app, GUI, environment, kernel, native ifc, VM and libs - cleanly separated. For instance, GUI can be cleanly removed

Generating a standalone image - scripts to remove unneeded classes (is there wizard type support for that? Not clear).

Now Dorin is talking about the UI framework. The goal - provide a consistent, intuitive API over the Mac API (which is confusing and hard to use, in his opinion. I wouldn't know :) ). The GUI framework is using the kind of composition pattern you would expect - doesn't look that different from what I've seen in VW (at the 30,000 foot level, mind you). Resource management was critical as well - need to manage the lifecycle of the widgets, since it's all native. Heh - the demo ended with the screen saver coming up after he didn't touch the kbd for awhile :)

Questions

Why did you do it?
To learn, interested in the problem. We were just interested in the problem

Is it downloadable?
Alpha available within a month. Probably free for personal use, will probably follow the Dolphin model of sales

Plan to make commercial then?
yes

GUI Builder?
I have one for Dolphin, will port it to this

How long have you been working on this?
Started in 1998, 2 years. Broke for 2 years, then started again. Mostly nights/weekends, started pushing once the talk for StS got accepted.

Any decent sized apps done?
have ODBC, probably will port GLORP. Have an app they use to manage tasks for this project

With non-moving objects, is the allocator more complex? - some fragmentation issues, but have had image running for weeks. Compact memory on image save.
What is your commercial model? - Dorin was mostly a Windows guy - other dev environments for Mac are expensive, and/or limited. Taragetting the hobbyists and smaller developers who do not want to spend the "big bucks".

Cooperating with other ST vendors (small) like Dolphin? - possible, but needs exploration.
Eliot - suggests that they partner with Dolphin

 Share Tweet This
-->