12
I Use This!
Very Low Activity

News

Analyzed 1 day ago. based on code collected 2 days ago.
Posted almost 11 years ago by Holger Hans Peter Freyther
GNU Smalltalk has the concept of packages for a long time. By default the gst-package application will read an XML file and then create a ZIP archive. This package format is called a Star archive in GNU Smalltalk. When developing it is easier to ... [More] just load the package from the filesystem and this is why we now have the above PackageLoader>>#loadPackageFromFile:. [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
I am using Iliad for the configuration of my GSM Basestation (another blog entry will follow) and the response time has not been that great when showing a lightbox (e.g. the one from todolist example). I wanted to see where Iliad is spending the time ... [More] and potentially improve the performance of either GNU Smalltalk or Iliad. The GNU Smalltalk interpreter is keeping a counter on the executed bytecodes and is exposing this profiling information to the Profiler package. This package will create a file that can be opened with the excellent kcachegrind viewer. This aligns nicely with the Unix philosophy of having one tool per task. The gst-profile application will load the default image, run a script and then write the profile information to a file. This means the first thing I need to do is to load the Iliad package and create a snapshot of the image. Then I can use gst-profile to evaluate a function, render webpages and exit gst. This will create a file called gst-profile.PID (where PID is the value of the GST process) and this file can be opened using kcachegrind. # Load iliad and save the default image $ gst st> PackageLoader fileInPackage: 'Iliad'. st> ObjectMemory snapshot # Start Iliad and run until a line feed. $ gst-profile -e 'Iliad.SwazooIliad startOn: 8082. stdin next' Press enter/return to exit $ ls gst-profile.* $ kcachegrind gst-profile.* [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
I am using Iliad for the configuration of my GSM Basestation (another blog entry will follow) and the response time has not been that great when showing a lightbox (e.g. the one from todolist example). I wanted to see where Iliad is spending the time ... [More] and potentially improve the performance of either GNU Smalltalk or Iliad. The GNU Smalltalk interpreter is keeping a counter on the executed bytecodes and is exposing this profiling information to the Profiler package. This package will create a file that can be opened with the excellent kcachegrind viewer. This aligns nicely with the Unix philosophy of having one tool per task. The gst-profile application will load the default image, run a script and then write the profile information to a file. This means the first thing I need to do is to load the Iliad package and create a snapshot of the image. Then I can use gst-profile to evaluate a function, render webpages and exit gst. This will create a file called gst-profile.PID (where PID is the value of the GST process) and this file can be opened using kcachegrind. # Load iliad and save the default image $ gst st> PackageLoader fileInPackage: 'Iliad'. st> ObjectMemory snapshot # Start Iliad and run until a line feed. $ gst-profile -e 'Iliad.SwazooIliad startOn: 8082. stdin next' Press enter/return to exit $ ls gst-profile.* $ kcachegrind gst-profile.* [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
I am happy to announce the first alpha release on the way to GNU Smalltalk 3.3. ftp://alpha.gnu.org/gnu/smalltalk/smalltalk-3.2.90.tar.gzSHA1 checksum: dd8bba5702591f0d5e2676878e1b3ee48f0ff37f This is the list of changes in this release: ... [More] The Smalltalk parser written in C is now re-entrant The Smalltalk VM provides a new function pointer that helps integrating with the event loop of another framework. This is used by the Glib/GTK code and the end result is that applications like GTK+ are a lot more snappy. [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
I am happy to announce the first alpha release on the way to GNU Smalltalk 3.3. ftp://alpha.gnu.org/gnu/smalltalk/smalltalk-3.2.90.tar.gzSHA1 checksum: dd8bba5702591f0d5e2676878e1b3ee48f0ff37f This is the list of changes in this release: ... [More] The Smalltalk parser written in C is now re-entrant The Smalltalk VM provides a new function pointer that helps integrating with the event loop of another framework. This is used by the Glib/GTK code and the end result is that applications like GTK+ are a lot more snappy. [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
GNU Smalltalk 3.2.5 has been released at ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.5.tar.gzSHA1 checksum: 4dd77b769131527add276ded01666e089da3b8b1 ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.5.tar.xzSHA1 checksum: ... [More] 0eb5895b9b5bebe4f75308efbe34f8721fc2fd6b 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. [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
GNU Smalltalk 3.2.5 has been released at ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.5.tar.gzSHA1 checksum: 4dd77b769131527add276ded01666e089da3b8b1 ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.5.tar.xzSHA1 checksum: ... [More] 0eb5895b9b5bebe4f75308efbe34f8721fc2fd6b 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. [Less]
Posted almost 11 years ago by Holger Hans Peter Freyther
GNU Smalltalk 3.2.5 has been released at ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.5.tar.gzSHA1 checksum: 6b164e145c1118ad74770bb15614478d47f55523 ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.5.tar.xzSHA1 checksum: ... [More] 75b7077a02abb2ec01c5975e22d6138b541db38e 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. [Less]
Posted about 11 years ago by Holger Hans Peter Freyther
In the last two years I have developed some Smalltalk packages that help me with (mobile) communication related tasks and I began making them available for Pharo as well. I'm using the gst-convert utility to do the conversion and the goal is to have ... [More] this work as automatically as possible. OsmoLogging is another logging framework modeled after the framework we developed for C. Besides having multiple backends (Transcript, syslog) and log levels there are some unique features. One can attach log context to the current process. E.g. the data that is parsed, or the end-user that initiated this process. This can be used in the exception logger to provide more context, dump the raw message that might have caused the exception. But it can also be used by log filters, e.g. only show log messages that are related to a specific user. The other feature is the concept of log categories. Each log message is tagged with a category and the category and backend can be decide if that category is enabled and what the default log level should be. OsmoCore is a collection of utility classes. Currently there is a class to schedule a callback in a couple of seconds. This is done to avoid to have thousands of processes that do [(Delay forSeconds: 1) wait. self cancel] fork. The other class allows me to dispatch a block from a central context. This is done to avoid dealing with deadlocks. I have opted for this solution as having lock hierarchies between different stacks (MGCP, SIP) is very difficult. I am considering building a mailbox like system for these stacks. That means each subsystem would have its own dispatcher. OsmoNetwork is a collection of network related utility classes. They help me working with sockets and provide some encoding/decoding classes for SCCP, ISUP, M2UA. This code is the oldest and some parts could make better use of Streams. OsmoSIP contains most of the SIP grammar described using PetitParser and code to create SIP Dialogs, deal with re-transmission. OsmoMGCP contains most of the MGCP grammar described using PetitParser and code to create MGCP Transactions, deal with the re-transmission. OsmoGSM contains classes related to the GSM specification 04.08 and 08.08. I can easily create and parse the wire messages for this specification. This code is complete enough to run mobile communication applications 24/7. It is my first work in Smalltalk though, this means there are various things that can be done better and cleaning up and re-factoring is a continuous process. The OsmoCore and OsmoLogging package is now available for Pharo and I am in the process of porting the OsmoNetwork package. [Less]
Posted about 11 years ago by Holger Hans Peter Freyther
In the last two years I have developed some Smalltalk packages that help me with (mobile) communication related tasks and I began making them available for Pharo as well. I'm using the gst-convert utility to do the conversion and the goal is to have ... [More] this work as automatically as possible. OsmoLogging is another logging framework modeled after the framework we developed for C. Besides having multiple backends (Transcript, syslog) and log levels there are some unique features. One can attach log context to the current process. E.g. the data that is parsed, or the end-user that initiated this process. This can be used in the exception logger to provide more context, dump the raw message that might have caused the exception. But it can also be used by log filters, e.g. only show log messages that are related to a specific user. The other feature is the concept of log categories. Each log message is tagged with a category and the category and backend can be decide if that category is enabled and what the default log level should be. OsmoCore is a collection of utility classes. Currently there is a class to schedule a callback in a couple of seconds. This is done to avoid to have thousands of processes that do [(Delay forSeconds: 1) wait. self cancel] fork. The other class allows me to dispatch a block from a central context. This is done to avoid dealing with deadlocks. I have opted for this solution as having lock hierarchies between different stacks (MGCP, SIP) is very difficult. I am considering building a mailbox like system for these stacks. That means each subsystem would have its own dispatcher. OsmoNetwork is a collection of network related utility classes. They help me working with sockets and provide some encoding/decoding classes for SCCP, ISUP, M2UA. This code is the oldest and some parts could make better use of Streams. OsmoSIP contains most of the SIP grammar described using PetitParser and code to create SIP Dialogs, deal with re-transmission. OsmoMGCP contains most of the MGCP grammar described using PetitParser and code to create MGCP Transactions, deal with the re-transmission. OsmoGSM contains classes related to the GSM specification 04.08 and 08.08. I can easily create and parse the wire messages for this specification. This code is complete enough to run mobile communication applications 24/7. It is my first work in Smalltalk though, this means there are various things that can be done better and cleaning up and re-factoring is a continuous process. The OsmoCore and OsmoLogging package is now available for Pharo and I am in the process of porting the OsmoNetwork package. [Less]