Cuis Release notes

Only the most relevant Cuis specific changes are detailed here. To see all of them, browse the numbered changes themselves, that are part of this release. Cuis official site is http://www.jvuletich.org/Cuis/Index.html .


New in Cuis 3.3
-------------------
	* New nice Icon set from Tango (Casey)
		- Most menu options have now a nice icon

	* ContentPack - A clean solution for a problem Squeak had for over a decade! (Casey)
		- Manages internal/external resources
		- Allows import / export to enable use of use existing stuff and external tools
		- Does not depend on external files for image update
		- Updates done with code (enabling change sets of Monticello packages)
		- Avoids cruft accumulation, code for resources is removed after update

	* Taskbar for better access to minimized windows (Casey)

	* Multiple selection on text morphs (Thanks Bernhard Pieber and Software Generation!)
		- Use ctrl + mouse for multiple selection
		- Do 'Preferences disable: #commandClickOpensHalo' to enable the standard Mac gesture for multi-selection
		- Enhanced senders view: all occurrences of sent message are highlighted

	* Cosmetic tweaks in menus and Themes

	* NewTranscript fixes and enhancements (right click menu)

	* Morphic Windows hierarchy, builds and handles UI and menus; handles keystrokes
		- Big step for View / Model separation
		- Models are now GUI agnostic: they have 25% less methods and no references to Morphs
		- Eases having alternate GUI frameworks such as Morphic 3

	* Object level events cleanup
		- Gone is Model and the DependentsFields classVar in Object
		- Only object event system mechanism is #when:send:to:

	* Deep Models cleanup

	* Big cleanup of copy and friends.
		- #deepCopy eliminated
		- #veryDeepCopy, DeepCopier, #veryDeepInner:, #veryDeepFixupWith: eliminated.
		- Use of ReferenceStream for copying object graphs such as Morphs

	* Editor tweaks and enhancements. Code simplification, removed several ivars

	* New image shrinking tools: #reduceCuis for building reduced images

	* Support for gigabyte changes and sources files

	* Many minor Morphic fixes

	* BlockClosure>>#isClean, BlockClosure serialization (for clean blocks), enabling use of ReferenceStream for copying objects

	* Morphic cleanup. Morph selectors size reduced by 17%, several ivars removed, code simplified.

	* Cleanup in Object and other basic classes. Object selectos size reduced by 10%

	* FileList refactor


New in Cuis 3.2
-------------------
    * Enhanced look for menus and several other widgets

    * TIFFReader (100% Smalltalk code)

    * Many fixes and code enhancements and cleanup, especially in Morphic (World, Canvas, DamageRecorder, etc)

    * Text / TextAttribute cleanup


New in Cuis 3.1
-------------------
    * Super fast Morphic world display.
          o     About ten times faster when many windows are open.
          o     Makes the whole UI feel much more responsive.
          o     Simpler code.

    * New Layout engine.
          o     New layout adjusters and window resizers.
          o     Allows adding / removing morphs without leaving "holes".
          o     Orders of magnitude simpler. Can be understood by humans. Removed all traces of the old code.

    * Cleaner look for Default theme. Nicer buttons, menus and halos. Faster world redraw allows for full-window resize.

    * Morphic buttons simplification: reduced 5 morphic button classes into just one.

    * New Transcript
          o     Fast (Calls return quickly)
          o     Fast (Updates are immediate)
          o     Thread safe
          o     Can log to file in addition to Display
          o     Display output is optional (for headless images)
          o     Can work on a bare bones image (Doesn't need UI, dependency, events, processes)
          o     Optional morphic window for seamless integration in Morphic
          o     UI framework agnostic. Can be used to debug Morphic, even with the morphic window open, without crashing the image!
          o     No longer a text editor. Display is read only.

    * Support for .mcz files (they are treated as .cs and .st files)

    * Removed the colored mouse button naming from all over the system. Now they are #mouseButton1, #mouseButton2 and #mouseButton3.

    * Cleaner Clipboard design & api, to enable extended clipboard

    * Fixes to transparent pixels in 32bpp Forms

    * Lots of code simplifications all over the system: Text, Menus, Tools layout construction, SystemWindow. Killed FakeClassPool.

    * Utilities: #printStack:, better comment at Object>>#is:

    * Many updates from Squeak, including cascading of optimized sends


New in Cuis 3.0
-------------------

    * New Look!
          o     Themes. Several themes included, plus, you can add your own.
          o     A nice default theme, using gradientes, rounded corners, anti-aliasing, nicer buttons, embossed labels, desktop background.
          o     Anti-aliased halos
          o     Window icons (taken from Squeak)
          o     New, friendlier Shout color specs

    * New TextMorphs
          o     Real view - model separation
          o     Removed StringHolder
          o     Text model holds current text + optional text provider (for accept / cancel)
          o     Simpler code, easier to extend.

    * Enhancements to:
          o     Color
          o     Layouts
          o     Misc minor tweaks and fixes


New in Cuis 2.9
-------------------
- Fixes keyboard navigation in Windows and Linux (alt + arrow keys) and Mac (control + command + arrows keys)
- Shout: fix line breaks in comments in styled code

New in Cuis 2.8
-------------------
- Fixes to Character sorting and testing methods, to honor ISO-8859-15 encoding
- Better conversion to/from UTF-8
- Faster startup (forked DateAndTime class>>startup)
- Honor quit signals from the OS (from Squeak)
- #findBinary:do:ifNone: and #findBinaryIndex:do:ifNone: in SequenceableCollection
- PointerTracingTools by Matthew Fulmer
- Many recent tweaks from Squeak
- Tweaks to blinking cursors
- Tweaks to LayoutSpecs and PluggableMorphs
- Tweaks to Editors

New in Cuis 2.7
-------------------
- Morphic. New LayoutSpec mechanism. Simpler and nicer.
- Morphic Simplification: Layout, Extensions, etc
- Various fixes to the Text subsystem (Empty lines, Clipboard, Blinking Cursor)
- Compiler / Decompiler / Debugger update to Squeak's
- Numerics update to Squeak's (thanks Nicolas!), including tests. Misc additional tweaks and enh
- Various fixes and enh to FileList (ascending/descending sort, formatting of columns, hiding hidden files)
- Enhancements to PrettyPrint. PrettyPrinted code looks much better now.
- Fixes to MessageNames, senders of specialSelectors (#ifNil, etc)
- Style enh. Cleaning of 'asSortedCollection sort', etc.
- Updates and Enhancements from Squeak (Inspectors, SocketStream, Socket, Zip, Rectangle, Duration, Time)
- Minor tweaks from Squeak
- Better handling of EndiannessCache (could be great for Squeak too)

New in Cuis 2.6
-------------------
- Loaded BlockContext code again. Still needed for debugging.
- Tweaks to decompiler, to avoid test failures.
- Tests updates from Squeak
- FFT now uses the fast primitive by default
- A few updates from Squeak
- Several minor fixes and enhancements

New in Cuis 2.5
-------------------
- Compatibility with the Cog VM
- Fix the sequence of click - wait - double click in text editors (old Squeak bug)
- Fix formatting bugs in a trailing empty line in text editors (old Squeak bug)
- A few updates from Squeak
- Several minor fixes and enhancements

New in Cuis 2.4
-------------------
- Adaptive Morphic CPU usage. Saves a lot of CPU on servers running many images on the same machine (great for servers).
- Compiler update with Eliot's fixes
- Configurable underscore meaning (from Squeak)
- Enable / disable Shout in Workspaces
- Big speedup of BW PNG
- Many minor fixes and cleanup

New in Cuis 2.3
-------------------
- Fixes for internalized sources
- Decompiler fixes by nice
- Various code cosmetics fixes
- Enhancements to prettyPrint by cmm
- A fix to WeakRegistry by ul
- Added BitBltTests to allow knowing if the VM is updated
- A serious simplification of Morphic geometry, removing DisplayTransform
- InteractiveErrorCorrection fixes by cao and jmv
- Lots of minor fixes

New in Cuis 2.2
-------------------
- Better default and min annotationPaneHeight
- A fix for ScannerTest
- Simplification of MessageTally
- Removal of MethodFinder, ImageSegment, OldSocket, GIFReadWriter, LimitingLineStreamWrapper
- Memory and code size savings in MenuIcon and MenuMorph
- Minor fixes and enhancements to DifferenceFinder, Shout, Streams, #isXXX methods, CodeHolder, ByteArray, Semaphore
- Removal of unused methods and forms

New in Cuis 2.1
-------------------
- Support for the Unary numeral system, as suggested by Dan Ingalls at http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-March/013368.html
- A new code differ that shows differences in words and not lines, by Leandro Caniglia
- Closure measurements (based on work by Eliot Miranda) are shown in the annotation pane for any method
- Removal of 43 isXXX methods, replaced by the general #is: method
- Misc. fixes and enhancements from Squeak and/or Pharo

New in Cuis 2.0
-------------------
Full Closure Support. With full closure support, you can finally use recursive blocks like here:
	fac := [ :n | n > 1 ifTrue:  n * (fac value: n-1)] ifFalse: [1]].
	fac value: 5. "120"
and close over temps correctly, such as here:
	(1 to: 10) do: [ :i | WorldState addDeferredUIMessage: [ Transcript cr; show: i ]].
This is nother closures example
	fib := [ :n | n < 2 ifTrue: [1] ifFalse: [(fib value: n-1) + (fib value: n-2)]].
	fib value: 10. "89"
Cuis 2.0 is ready to run on the Cog VM (when available) and it requires a closures-enabled VM. 
