[squeak-dev] [Ann] Cuis 4.0 is released!

juanlists at jvuletich.org juanlists at jvuletich.org
Sat Apr 21 18:14:38 UTC 2012


Hi Folks,

Cuis 4.0 is available at http://www.jvuletich.org/Cuis/Index.html .  
This is a very important release. It's been over 10 months since Cuis  
3.3, but all this time means that there are a lot of big news now.

The biggest one is the public release of the Styled Text Editor, by  
Bernhard Pieber. Bernhard will do the announcement of this project  
himself, all I want to say is that Styled Text Editor is the driving  
force behind most of the new stuff in this release. I also want to add  
that I'm delighted to be able to work with Bernhard on his project,  
and that I'm more than happy with the wonderful effect this is having  
on Cuis itself.

Check http://www.jvuletich.org/Cuis/CuisReleaseNotes.html .

So, the main new features of this release of Cuis are the required  
support for External Packages. This is a very lightweight  
implementation of Packages, based on PackageInfo, but not on  
Monticello. Versioning is done with GitHub. Take a look at  
http://www.jvuletich.org/Cuis/CodeManagementInCuis4.html and  
http://www.jvuletich.org/Cuis/CuisAndGitHub.html .

Full list of features (from the release notes):
-----------------------------------------------------

     - Package Support. Cuis 4.0 has a package implementation based on  
PackageInfo. Can be used with a Git repository (like GitHub) for  
package versioning. More info at "CodeManagementInCuis4" and  
"CuisAndGitHub". This infrastructure and process is used for the  
StyledTextEditor project, developed by Bernhard Pieber and Software  
Generation.

     - New handling of ChangeSets. The idea is to have only one "live"  
change set that automatically captures all changes done to the Cuis  
Core image. Changes to Packages go to separate ChangeSets.

     - UCompletion. A new implementation of Autocompletion for  
Smalltalk code. Activates with ctrl-space. Usually gives the selector  
desired as the first option. Some features are:

         = Sorts by last definition of selector (Methods recently  
saved go first),
         = Sorts appropriately all selectors matching entered prefix  
(no hardcoded limits, like 40 selectors matching 2 letters).
         = Restricts suggestions if receiver is Global, a Constant or  
a pseudo-variable.
         = Doesn't have an "expanded mode". Always shows relevant suggestions.
         = Not restricted to a set of previously selected packages.  
All the methods in the system are accounted for.
         = Very fast, thanks to an optimized Trie implementation.
         = Compact code. Relies on services by Trie (for storing and  
querying selectors) and Shout (for parsing incomplete methods).
         = Helps make Shout faster, by providing super fast queries of  
selector prefixes.
         = Can be used for other applications besides Smalltalk code.  
Currently used for an English glossary for StyledTextEditor.

     - Trie. Cuis 4.- includes a very optimized implementation of a  
Trie. Tries are dictionaries where keys are Strings. Lookups are  
extremely fast. Search for entries matching a prefix are extremely  
fast (O(1) regardless of the size of the collection). Addition and  
removals are quite fast too. Used for UCompletion, holding 11,000  
selectors. Also used for an English spell checker (in the  
StyledTextEditor project) holding 166,000 words. In both cases use of  
memory is quite reasonable (3 and 5.4 bytes per character in average)  
and query speed is extremely fast.

     - Multiple level undo / redo in all text and code editors.

     - ClickNHalf+Drag to select words. TripleClick or  
DoubleClickNHalf+Drag to select paragraphs. Like most modern text  
editors and wordprocessors do.

     - Multiple text selection (with control+mouse). Like most modern  
text editors and wordprocessors do.

     - Lf. The newline character is no longer Character cr (ASCII code  
13), but Character lf (ASCII code 10). This is the standard in Mac and  
Unix platforms, and the required convention for GitHub. All the code  
in the image has been converted.

     - cmd-w closes window below mouse pointer. cmd-< y cmd-> cycle  
through windows.

     - New "PostIt" like HoverHelp morphs.

     - Simplification / Redesign: Scrolling in Morphic (TransformMorph  
gone, etc).

     - Deep cleanup in Paragraph and paragraph display services in  
Canvas and DisplayScanner (now MorphicScanner).

     - MouseClickState refactor, to ease new gestures  
(ClickNHalf+Drag, DoubleClickNHalf+Drag, TripleClick).

     - Killed AbstractEvent hierarchy. Unified event subscribing,  
triggering and handling everywhere in Cuis.

     - More TextMorph cleanup.

     - Numeric enhancements done by nice and jmv, both on Squeak and Cuis.

     - Many minor enhancements, cleanups and bugfixes.

     - Updates to Squeak: Numerics, Network, and many others.

I hope you enjoy this release of Cuis as much as Bernhard and I  
enjoyed working on it. As usual, comments, discussion, bug reports,  
kudos and donations are all
welcome!

Cheers,
Juan Vuletich




More information about the Squeak-dev mailing list