Features

Can GNU Smalltalk programs access databases?

Tagged:

Yes, versions starting with 3.0 have a DBI-like library supporting PostgreSQL, MySQL and SQLite. In addition, you can use Glorp to map objects and relational databases.

Does GNU Smalltalk support Unicode and MBCS?

Tagged:

Yes. Strings however are processed (e.g. read from a file) byte-per-byte. If you need per-character processing, you should load the Iconv package and convert strings to UnicodeString, using the #asUnicodeString method.

Regular expression matching cannot operate directly on UnicodeString objects. This means that regular expression matching will not work with most multi-byte character encodings (it will work with UTF-8).

What is VFS?

Tagged:

VFS is GNU Smalltalk's Virtual FileSystem layer. VFS allows GNU Smalltalk programs to use archive files (.gz, .tar, .zip, etc.) and URLs transparently. The first implementation of VFS was inspired by the homonymous feature of the Midnight Commander, later incorporated in GNOME and now called GVFS.

VFS is a fundamental part of the implementation of .star packages.

What are .star packages?

Tagged:

Starting from version 3.0, GNU Smalltalk supports grouping multiple files for a single package into a single archive. These are just .zip files, but they are rebranded .star (Smalltalk archive) for this purpose.

A valid .star file must include an XML description of the package in the top directory, in a file that must be called package.xml.

What is a generator?

Tagged:

A generator is a quick way to create a Stream. As you might have seen in an earlier question, streams are a powerful iteration tool that Smalltalk offers. A generator is a kind of pluggable stream, in that a user-supplied blocks defines which values are in a stream.

For example, here is an empty generator and two infinite generators:

Generator on: [ :gen | ]
Generator on: [ :gen | [ gen yield: 1 ] repeat ]
Generator inject: 1 into: [ :value | value + 1 ]

As a more concrete example, these lines process a file and create Person objects out of the file:

Syndicate content

User login