Download Cuis 2.7
    (Compatible with the Cog and the Stack VMs, supports BlockClosures)
    updated Sep 3, 2010
    lastUpdate: #0600

 Download Cuis 1.0
    (for older VMs)
    updated Nov 28, 2009
    lastUpdate: #0337


 For users of previous  Cuis releases or other  Squeak variants...

  Download changesets 


 

September 2010


Cuis Smalltalk


Cuis is a free Smalltalk-80 environment derived from Squeak (www.squeak.org). Main project web is at www.jvuletich.org/Cuis/Index.html . Its main features are being simple and powerful. It is also completely portable, fast and efficient, meaning it can be a great tool for running smart phones and pdas, even on a CEO's business phone. Scroll down for more information on Cuis, along with its release notes.


Funding

Cuis is free software, and receives no funding. You can help me keep developing it with your donation.

 

Release notes

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.
  • 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 here.
  • 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

  • Cuis is now closure-enabled. Cuis is ready to run on the Cog VM (when available). Cuis 2.0 requires a closures-enabled VM to run.


The Cuis Project

Our passion is about finding the essence of ideas. In this regard we feel close to Alan Kay's "Fundamentals of new Computing" ideas. But Cuis is not a research project. We want a working system now, and we are distilling the essence of Smalltalk-80 in Squeak drop by drop.

The main objective of Cuis is to avoid unneeded complexity. Why? Because complexity puts a limit to the level of understanding of the system a person might reach, and therefore limits the things that can be done. Dan Ingalls says all this in "Design Principles Behind Smalltalk". If you want to understand what is Smalltalk all about, read it: http://www.soe.ucsc.edu/classes/cmps112/Spring03/readings/Ingalls81.html .

Some of the main ideas and objectives for Cuis are:

  • Close to the ideas in Smalltalk-80 and "Design Principles Behind Smalltalk".

  • Include only kernel functionality.

  • Included stuff should be in very good shape.

  • Include a greatly simplified version of Morphic as the main UI.

  • Easy to fix and extend.

  • Cuis is yours to extend it to suit your needs.

  • Stable. Smalltalk kernel should not change much.

  • Compatible to a reasonable degree with packages intended for other Squeak distributions.

  • Lead by Juan Vuletich (jmv) after these principles.


What is the audience? Cuis should be the Smalltalk of choice to:

  • Smalltalkers who want a simpler system.

  • Teachers teaching Smalltalk.

  • People learning Smalltalk.

  • Developers working for devices with little memory or CPU power.

  • People wanting to experiment with new directions in language design, UI frameworks, etc.

  • People wanting a reasonable kernel on which to build optional packages.

  • People wanting a nice looking, portable ide.


What Cuis does includes and what it does not.

Cuis includes a basic Smalltalk-80 system, updated for the capabilities of contemporary hardware. The User Interface is a derivative of the Morphic framework in Squeak, with a strong emphasis on simplification and performance.

Cuis does not include features that are either:

a) Optional in nature (i.e. application specific)

b) Too complex (i.e. their complexity outweighs their usefulness)

c) Not stable

For instance, Cuis does not include a package manager.  The usual way of managing code in Cuis is with the ChangeSorter and ChangeSets. This is because the standard package manager in the Squeak world, Monticello falls in b (too complex) and c (not stable).

Cuis also doesn't include Unicode support. The handling of Unicode characters and strings in Squeak falls in b (too complex), as the whole system is affected and c (not stable), as bugs are still arising, even after being used for many years. Besides, as the basic Character and String were not modified, but new classes for WideCharacter and WideString were introduced, we can also consider it falls under a (optional in nature).


Optional packages and Modularity

Cuis is meant to be consistent, well designed and understandable.

As dependences and complexity grow exponentially with the size of a system, Cuis needs to be small. Being small and easy to understand means you can do more with it.

There is a lot to do with a Smalltalk system, as Squeak and the packages available for it show us. Too much to be understood by a single person. Therefore, it is better not to try to control all of it. Optional packages for Cuis will form an ecosystem not driven as a whole by anybody. This is the way we believe that Alan's Biology metaphor applies to modularity in Smalltalk.

There will be optional packages available for Cuis, if people start building or using them. We don't want to control that process.


Compatibility

We believe that back compatibility goes against progress. We choose progress. We also believe that compatibility requires extra complexity, of the non-essential kind. We choose simplicity. This means that there are no guarantees of compatibility between Cuis and anything else, including the various releases and derivatives of Squeak, or even other releases of Cuis itself.

If you do a significant amount of work on some Cuis release, and later you want to update, you can use the separate changesets provided for every Cuis release. You need to check carefully each one as you load them, and learn how it affects your own code.


Community

We want to share fixes, enhancements, packages, and discussion with Squeak and other Squeak distributions. We are part of the Squeak community. We believe that the Squeak community is the natural place for people using the various Squeak distributions and derivatives.


License

Cuis is distributed subject to the MIT License, as in http://www.opensource.org/licenses/mit-license.php . Any contribution submitted for incorporation into or for distribution with Cuis shall be presumed subject to the same license.

Portions of Cuis are:
Copyright (c) Xerox Corp. 1981, 1982
Copyright (c) Apple Computer, Inc. 1985-1996
Copyright (c) Contributors to Squeak and Cuis projects. 1997-2010




 
 
  © 2006-2010 Juan M. Vuletich