Hi Folks -
I finally found the time to break in Jabberwocky by doing a sync of the Homebase repository with the Qwaq internal code base. All of these changes have been in use inside Qwaq for quite a while and improve various aspects of the system (detailed change log below). The changes shouldn't affect anything negatively (they are mostly conservative fixes) but if you find any problems, please let me know. To use those changes, you need to point Monticello at the Jabberwocky server: http://jabberwocky.croquetproject.org:8889/Homebase and load the updated packages from there. Note that there is a load-order dependency which requires the System package to be loaded *before* the Morphic package, so make sure you get the changes in the right order or you'll run into problems. I have found that (starting with the 1.0 release) a good way to load these changes is to start with "System" and then load (or merge) everything else in alphabetical order. It might also be good if we could provide a preloaded Jabberwocky image for such purposes. Mark, any chance you could give this a shot? Special thanks to Bert Freudenberg, Goran Krampe, John McIntosh, Tim Rowledge and Scott Wallace who contributed to these fixes. And of course, all of this work was sponsored and brought to you by Qwaq, provider of secure collaboration spaces for enterprises. Enjoy, - Andreas CHANGE LOG: Collections: =========== * ReadStream>>nextFloat is a new method for fast reading of floating point numbers (it outperforms Float>>readFrom: by a factor of ten) * SharedQueue>>includes: allows to safely test a shared queue for inclusion of objects * Transcripts now have their own text styles since TTFs can be very slow for heavy transcript usage * WeakCache provides a simple and easy way to weakly cache objects * A fix for PositionableStream>>nextWordsInto: * A fix for Stream>>printOn: * ifEmpty: and cousins now return self if not empty instead of nil CollectionTests: =============== * New tests for the expected behavior of ReadStream>>nextFloat Compiler: ========= * Added Scott's workaround to avoid logging the entirety of a workspace when evaluating a doIt * We now accredit Undeclared variables in the same way we accredit shadowed variables, e.g., by listing Class>>method for the undeclared variable Exceptions: ========== * A new exception, OutOfMemory, has been added. It will be signaled when an allocation fails due to insufficient memory (like "Array new: SmallInteger maxVal") * AssertionFailure (a runtime condition) has been changed into a subclass of Error, not Halt so that it can be caught by the runtime machinery Files: ====== * DosFileDirectoryTests have been fixed. Graphics: ======== * We now have chromatically symmetric versions of #darker and #muchDarker which makes for perceptually more consistent gradients like in system windows * Bullet-proofing of strike fonts to make the font selection menu work again * Fix WarpBlt for 16->32bit conversions with smoothing enabled GraphicsTest: ============= * Removed two failing tests which weren't obviously fixable. Kernel: ======= * Signal OutOfMemory upon allocation failure to allow clients to handle this exceptional situation if they want to * Added a process token which allows explicit transfer of mutex ownership to other processes if needed * Included Tim's fix for extra-long delays which would otherwise lock up the image completely * Added a small safeguard for condenseChanges to avoid filing out the same methods multiple times * Added protection against setting the comment of a metaclass * Added fix for Process>>signalException: which would not work for subclasses of Process * Added a class comment for WeakMessageSend KernelTests: ============ * Removed a number of non-working and fixed a number of broken tests Monticello: ========== * Make the repository inspector just a tad larger so that users can read most of the change log of a submission and not just the first line * Reverted some changes done last year since they broke the tests and the tests were obviously correct * Fixed or removed non-working tests MonticelloConfigurations: ========================= * Disable MCC diffs by default but add a preference for re-enabling them Morphic: ======== * SystemWindow improvements: Unobtrusive coloring, no pixellated outlines in buttons and better button alignment * Change the Morphic progress to be visually consistent with the Tweak progress bar * Make it possible for Morphs to deny the meta menu if they need to handle control clicks directly * Use a nice, happy green for progress * Use system control font for progress bar MorphicTests: ============= * Fixed or removed non-working tests * Fixed TransformMorphTest not to leave remnants on the screen Multilingual: ============ * Dodge an infinite recursion when a TTCFont has a fallbackFont whose baseFont is that same TTCFont * Fixed or removed non-working tests Network: ======= * Update for SocketStream to use Goran's FastSocketStream for added speed and robustness * Fix HTTPUrl not to use a non-existent method to ask for password * Add a guard for an intermittent low-level I/O problem by having the (blocking) Socket>>waitForData: call wait in chunks of 500ms NetworkTests: ============= * Removed non-working tests SMBase: ====== * Fix an erroneous use of on: Exception do: which will cause all MC packages to fail to load from SM since they use notifications for progress indicators * Fixed or removed non-working tests * Removed SMDependencyTest since it required user interactions Sound: ===== * Added a variety of missing methods to RepeatingSound ST80: ===== * Fixed or removed non-working tests * Clipboard now uses preference #usePrimitiveClipboard to decide whether to use the OS clipboard, or just cut'n'paste within Squeak System: ====== * Support for getting and setting the VM's window label * Fix condenseChanges to use the known classes and not blindly all behaviors (this can lead to filing out methods multiple times if obsolete classes exist) * Have condenseChanges imply a saveAs to preserve the previous image * Moved some methods from SmalltalkImage back to SystemDictionary (where they belong anyway) * Added Smalltalk>>verifySaneSources to make sure the sources are okay * speed up browsing by not showing the number of implementors of each method in the annotation panes - it takes an immense amount of time * Reduce duplicate code in SystemDictionary and SmalltalkImage by moving most methods from SmalltalkImage back to where they really belong * Added class comments for EventManager and MethodReference * Introduced standardControlFont for pushbuttons and labels in Tweak widgets. * Add 'usePrimitiveClipboard' preference so that we don't crash when using the clipboard on unix (we can't cut'n'paste between Squeak and other unix apps, but at least we don't crash). * Expose gcBiasToGrow and gcBiasToGrowLimit for tuning GC parameters Tests: ====== * Removed some non-working tests; fixed one test ToolBuilder: ============ * Removed non-working tests Tools: ====== * Dramatically speed up PackagePaneBrowser by caching the currently selected package * Another major speedup for browsers by caching the message list VMMaker: ======== * Added VM callback support * Added support for external GC roots * Added primitives for getting/setting the VM's window label * Added a triangle/box intersection primitive to CroquetPlugin * Fix or remove non-working tests * Added John McIntosh's QuickTime plugin (JMMMacQuicktimePlugin.3.cs). * Fix the typo in biasToGrow which John pointed out |
Thanks Andreas,
And everyone else that helped get this out the door. It is a terrific - and essential - foundation for the next big steps. David Andreas Raab wrote: > Hi Folks - > > I finally found the time to break in Jabberwocky by doing a sync of > the Homebase repository with the Qwaq internal code base. All of these > changes have been in use inside Qwaq for quite a while and improve > various aspects of the system (detailed change log below). The changes > shouldn't affect anything negatively (they are mostly conservative > fixes) but if you find any problems, please let me know. > > To use those changes, you need to point Monticello at the Jabberwocky > server: > > http://jabberwocky.croquetproject.org:8889/Homebase > > and load the updated packages from there. Note that there is a > load-order dependency which requires the System package to be loaded > *before* the Morphic package, so make sure you get the changes in the > right order or you'll run into problems. I have found that (starting > with the 1.0 release) a good way to load these changes is to start > with "System" and then load (or merge) everything else in alphabetical > order. > > It might also be good if we could provide a preloaded Jabberwocky > image for such purposes. Mark, any chance you could give this a shot? > > Special thanks to Bert Freudenberg, Goran Krampe, John McIntosh, Tim > Rowledge and Scott Wallace who contributed to these fixes. > > And of course, all of this work was sponsored and brought to you by > Qwaq, provider of secure collaboration spaces for enterprises. > > Enjoy, > - Andreas > > CHANGE LOG: > > Collections: > =========== > * ReadStream>>nextFloat is a new method for fast reading of floating > point numbers (it outperforms Float>>readFrom: by a factor of ten) > * SharedQueue>>includes: allows to safely test a shared queue for > inclusion of objects > * Transcripts now have their own text styles since TTFs can be very > slow for heavy transcript usage > * WeakCache provides a simple and easy way to weakly cache objects > * A fix for PositionableStream>>nextWordsInto: > * A fix for Stream>>printOn: > * ifEmpty: and cousins now return self if not empty instead of nil > > CollectionTests: > =============== > * New tests for the expected behavior of ReadStream>>nextFloat > > Compiler: > ========= > * Added Scott's workaround to avoid logging the entirety of a > workspace when evaluating a doIt > * We now accredit Undeclared variables in the same way we accredit > shadowed variables, e.g., by listing Class>>method for the undeclared > variable > > Exceptions: > ========== > * A new exception, OutOfMemory, has been added. It will be signaled > when an allocation fails due to insufficient memory (like "Array new: > SmallInteger maxVal") > * AssertionFailure (a runtime condition) has been changed into a > subclass of Error, not Halt so that it can be caught by the runtime > machinery > > Files: > ====== > * DosFileDirectoryTests have been fixed. > > Graphics: > ======== > * We now have chromatically symmetric versions of #darker and > #muchDarker which makes for perceptually more consistent gradients > like in system windows > * Bullet-proofing of strike fonts to make the font selection menu work > again > * Fix WarpBlt for 16->32bit conversions with smoothing enabled > > GraphicsTest: > ============= > * Removed two failing tests which weren't obviously fixable. > > Kernel: > ======= > * Signal OutOfMemory upon allocation failure to allow clients to > handle this exceptional situation if they want to > * Added a process token which allows explicit transfer of mutex > ownership to other processes if needed > * Included Tim's fix for extra-long delays which would otherwise lock > up the image completely > * Added a small safeguard for condenseChanges to avoid filing out the > same methods multiple times > * Added protection against setting the comment of a metaclass > * Added fix for Process>>signalException: which would not work for > subclasses of Process > * Added a class comment for WeakMessageSend > > KernelTests: > ============ > * Removed a number of non-working and fixed a number of broken tests > > Monticello: > ========== > * Make the repository inspector just a tad larger so that users can > read most of the change log of a submission and not just the first line > * Reverted some changes done last year since they broke the tests and > the tests were obviously correct > * Fixed or removed non-working tests > > MonticelloConfigurations: > ========================= > * Disable MCC diffs by default but add a preference for re-enabling them > > Morphic: > ======== > * SystemWindow improvements: Unobtrusive coloring, no pixellated > outlines in buttons and better button alignment > * Change the Morphic progress to be visually consistent with the Tweak > progress bar > * Make it possible for Morphs to deny the meta menu if they need to > handle control clicks directly > * Use a nice, happy green for progress > * Use system control font for progress bar > > MorphicTests: > ============= > * Fixed or removed non-working tests > * Fixed TransformMorphTest not to leave remnants on the screen > > Multilingual: > ============ > * Dodge an infinite recursion when a TTCFont has a fallbackFont whose > baseFont is that same TTCFont > * Fixed or removed non-working tests > > Network: > ======= > * Update for SocketStream to use Goran's FastSocketStream for added > speed and robustness > * Fix HTTPUrl not to use a non-existent method to ask for password > * Add a guard for an intermittent low-level I/O problem by having the > (blocking) Socket>>waitForData: call wait in chunks of 500ms > > NetworkTests: > ============= > * Removed non-working tests > > SMBase: > ====== > * Fix an erroneous use of on: Exception do: which will cause all MC > packages to fail to load from SM since they use notifications for > progress indicators > * Fixed or removed non-working tests > * Removed SMDependencyTest since it required user interactions > > Sound: > ===== > * Added a variety of missing methods to RepeatingSound > > ST80: > ===== > * Fixed or removed non-working tests > * Clipboard now uses preference #usePrimitiveClipboard to decide > whether to use the OS clipboard, or just cut'n'paste within Squeak > > System: > ====== > * Support for getting and setting the VM's window label > * Fix condenseChanges to use the known classes and not blindly all > behaviors (this can lead to filing out methods multiple times if > obsolete classes exist) > * Have condenseChanges imply a saveAs to preserve the previous image > * Moved some methods from SmalltalkImage back to SystemDictionary > (where they belong anyway) > * Added Smalltalk>>verifySaneSources to make sure the sources are okay > * speed up browsing by not showing the number of implementors of each > method in the annotation panes - it takes an immense amount of time > * Reduce duplicate code in SystemDictionary and SmalltalkImage by > moving most methods from SmalltalkImage back to where they really belong > * Added class comments for EventManager and MethodReference > * Introduced standardControlFont for pushbuttons and labels in Tweak > widgets. > * Add 'usePrimitiveClipboard' preference so that we don't crash when > using the clipboard on unix (we can't cut'n'paste between Squeak and > other unix apps, but at least we don't crash). > * Expose gcBiasToGrow and gcBiasToGrowLimit for tuning GC parameters > > Tests: > ====== > * Removed some non-working tests; fixed one test > > ToolBuilder: > ============ > * Removed non-working tests > > Tools: > ====== > * Dramatically speed up PackagePaneBrowser by caching the currently > selected package > * Another major speedup for browsers by caching the message list > > VMMaker: > ======== > * Added VM callback support > * Added support for external GC roots > * Added primitives for getting/setting the VM's window label > * Added a triangle/box intersection primitive to CroquetPlugin > * Fix or remove non-working tests > * Added John McIntosh's QuickTime plugin (JMMMacQuicktimePlugin.3.cs). > * Fix the typo in biasToGrow which John pointed out > |
Free forum by Nabble | Edit this page |