GNU Smalltalk 3.2.5

Tagged:

GNU Smalltalk 3.2.5 has been released at

This is a minor release, mostly consisting of bug fixes.

This is the list of changes in this release:

  • Add Delay>>#value:onTimeoutDo: as an easy way to timeout an operation.
  • Improve Delay and millisecondClock behavior across image save and restore. millisecondClockValue is guaranteed to be monotonic across image save, and delays are restarted when the image is restored.
  • DateTime>>#today will return midnight of the current timezone.
  • DateTime has a new method #asLocal.
  • DateTime>>#readFrom: can read more time formats.
  • Time resolution is now based on nanoseconds.
  • Absolute-time delays (Delay>>#untilMilliseconds:) are precise and not anymore converted to relative-time delays.
  • package.xml files support a tag, like . It can be used to make package.xml clearer for large packages.
  • MethodDictionary is now thread-safe.
  • String>>#% supports string keys, like %(string). They can be used when the argument of #% is a Dictionary or LookupTable. Note that the keys of the dictionary must be Strings, not Symbols.
  • Socket fixes including reporting of EndOfStream on broken pipes and connection resets.
  • Fix the FileDescriptor finalization code to close open descriptors.
  • The system file descriptor of FileDescriptor is set to nil on image restore.
  • The asynchronous event notification has been rewritten. The old version could fail when many file descriptors became available at the same time.
  • DBD-Postgres gained support to bind parameters on queries and various fixes to allow to resume images that use Postgres.
  • Images created with gst-remote can now be resumed.
  • Add #system:withArguments: to avoid using #system: with #% to add arguments.
  • Added Integer>>#printPaddedWith:to:.
  • Added CharacterArray>>#withShellEscapes
  • Added Collection>>#includesAllOf:
  • Stream>>#fold: works correctly.
  • 64-bit integer types are available using CLongLong and CULongLong.
  • gst-blox and gst-browser understand the -i/--rebuild-image option.
  • GObject errors show backtraces.
  • Improvements to multiarch support.
  • CType objects implement #= and #hash, so they can now be used as keys in a dictionary.
  • Floating-point numbers are printed more accurately in some rare cases.
  • Some optimization of OrderedCollection and SortedCollection
  • Selectors starting with an underscore are treated as keyword messages.
  • A new function gst_uint_to_oop is in libgst, and uintToOOP is also provided by the VMProxy.
  • Growing the heap is working again.
  • Various bugfixes.
  • GNU Smalltalk does not run anymore on i386 hardware, an i486 is needed.
  • Slightly faster garbage collection.

There seems to be a problem with stdin nextLine when it comes to input redirection.

When taking input directly from the keyboard, stdin nextLine works the way it should. However, if you redirect the input so that it comes from a file instead then it doesn't seem to parse correctly and the program fails.

I often do programming challenges on Hackerrank.com and I can't find a single answer written in Smalltalk so this must be a problem that has existed for many years.

Do you have a full example where it fails?

  e.g. cat /etc/passwd | gst... failing but using FIleStream to open '/etc/passwd' working correctly?

The SHA1 checksums are the same than those of gst 3.2.4

Sorry. I have updated the checksum. As all other gnu.org upload the release is signed with my gpg key.

User login