Many changes and some new things.

Port tarball supplied. It's still diffable, but ...
I don't think the port was well structured for Squeak nor
do I think that what I have currently is either but at least
all the pieces are together and we can work with them.
I started trying to make the diffs as small as possible but
after a while it didn't make sense.
Everything still needs work and could be more consistent.
Assorted info can be be found in Makefile comments, patches and other ports 
files.

Smalltalk:
I'm sure you all know this but it's good for me to make a note
and might help explain the decisions taken:
To do things in Smalltalk one needs at least a vm and an image file.
A vm is a bytecode interpreter, an image is an object memory snapshot.
A changes file normally accompanies an image file but is optional.
A sources file contains all the source code that was used to generate the 
image, initially.
A changes file contains all the source code and change info since the end of 
(time of) the sources file.
Sources files are expected to be found in the same dir as the image file or
the same dir as the vm and are considered read-only.
An image has an internal reference to (wants) a particular sources file.
One sources file can be used by many images.
It is possible to use an image without a sources file: Squeak can reconstruct 
source
code but variable names, comments, etc. will be missing. Likewise with a 
changes file.
In order to do any work, an image and changes files are required.
Images and corresponding changes files are expected to be in the same directory 
and writeable.
Summary: vm's don't need anything, images need sources and changes, and a vm to 
run on.

Ports:
There are many images now, a few sources files and one vm.
The vm is the latest that can be easily obtained and of fairly recent vintage.
Versioning from Squeak doesn't make sense: we have 3.10 and 4.5.
Distfiles now go in simply distfiles/squeak.
Lots of port var changes with corresponding better(?) PLISTs.
Dependencies are changed: Images depend on sources, sources depend on vm.
The directory names for the various images and sources ports are probably wrong.
Categories?
All sources and vm files are installed in the vm dir (lib/squeak/squeakvm).
All image and changes files are installed in the Squeak dir (lib/squeak).

Vm:
The Squeak vm now uses cmake.
Almost all the old patches are no longer relevant.
New patches!
I did up a MIDI driver and a Sndio driver.
The MIDI driver is untested (how to test?).
The Sndio driver is simple and plays sound but iiuc needs to work 
asynchronously.
UUIDPlugin is disable becaused it needs work and I wanted to test how to 
disable a plugin.
port-lib-depends check is ok but I don't think the dependencies are right.
The vm dir is overridden so the sources ports know where to put the sources 
files.
Vm docs needs work.

I've found it easy to work by installing everything then copying everything
from the vm dir and all the images and changes files to one dir, making the
images and changes writeable.

There are some scripts in the st/ dir that do things with sound.
$ squeak <imagename> [scriptname]
Or run squeakvm directly.
$ ./squeakvm <imagename> bachFugue.st
If asked at any point, choose aDefaultSoundSystem.
The Score Player can output to MIDI, check the menu.

In the vm build dir, doing:
$ make DESTDIR=plop install
will yield all the needed vm files in one place for easy copying.

Along with the above mess of verbiage, you get:
Vm*: 4.10.2.2614
Sources: V2, V3.9*, V4.1
Smalltalk images: Squeak 3.10*, Squeak 4.5, Cuis, Pharo

But wait, there's more images!
funsqueak* - old variety image
muo - musical objects
sbe - squeak by example (image and book)
seaside - web server framework

*already in the existing Squeak port

It would be nice to have a newer version of Pharo but that requires
a Cog vm and we only have an "Interpreter" vm.
A trial build of the Cog vm revealed that we don't have ucontext.h which it 
seems to want,
looks deprecated and will probaly never show up in OpenBSD so I stopped there 
for now.
I think that the Cog vm is important. More things will need it.

Muo wants CSound (which we don't have), and other audio/music stuff.


I probably forgot something,


Stu

Attachment: nsqueak7.tar.gz
Description: application/gzip

Reply via email to