VisualWorks 5i.4 Features White Paper
Cincom has released VisualWorks 5i.4 as part of the Cincom Smalltalk product suite. There are a number of new features in the release. Cincom has addressed the growing usage of VisualWorks in internet development, and has upgraded the base development environment as well. If you have any questions about the white paper or about Cincom Smalltalk, please contact James Robertson, the Product Manager. Particularly of interest will be our support for Web Services.
Here's what's new:
Cincom has moved the toolset for VisualWorks forward in this release. The following list details the new work that has gone on.
- Base VisualWorks
- New Inspector
- The inspector has been updated to support better object introspection and browsing.
- Updated Painter Tools
- The UI painting tools have started a much needed face lift and improvement. Polling has been deprecated, and the tools made easier to use
- Internet Connectivity Framework
- VisualWorks now has an extensive library of internet connectivity tools. We plan on extending this support further in the next release cycle.
- MIME Framework
- Parsing of HTTP and mail messages
- FTP Client Framework
- Standard FTP client services
- URI handling Framework
- Handle remote resources for FTP, HTTP, etc. as files
- IMAP Client Framework
- Standard IMAP mail client access
- IMAP Mailbox Framework
- Standard IMAP mailbox framework
- POP3 Framework
- SMTP Framework
- Standard SMTP mail server access, allowing mail transmission programmatically
- SNMP Framework
- Standard access to SNMP services on a platform neutral basis
- SOAP
- Complete support for the Simple Object Access Protocol through XML and HTTP
- UDDI Framework
- Complete support for this new directory service
- WSDL
- Complete support for this web integration service
- StORE
- StORE is the the version control system of choice for VisualWorks. It has been improved in many ways since the 5i.3 release. Get the StORE White Paper here.
- StORE allows developers to work whether the repository is available or not. Work can proceed separately from the repository, and be synched up once the repository is available again
- StORE allows for complex versioning of Smalltalk artifacts. Methods, class definitions, shared variable definitions, and Namespaces definitions may all be overridden and versioned separately from their owning package. Unlike ENVY, this allows developers to version their own code without re-baselining the core system.
- StORE allows for incremental versioning (source) or full (binary) versioning. Incremental versioning is much faster than binary, allowing StORE developers to version as frequently as they like
- StORE enables distributed development with the merge tool. As projects fork, developers can easily resyncronize with the merging tool.
- StORE enables developers to connect to multiple repositories (using different database back ends) and keep work syncronized amongst them. Developers can use a variety of best-of-breed RDBMS back ends. The StORE API is extensible, allowing for ports to other systems easily. PostgreSQL and DB/2 ports have been done by the VisualWorks Non-Commercial community already!
- StORE has a solution for every client operating system supported by VisualWorks. Unlike ENVY, developers can work from any desired operating system.
- The StORE development environment is not different from the standard VisualWorks environment. Packages are versioned parcels, so developers can easily move from development to deployment without mentally switching gears.
- Performance enhancements. All queries, publishing, and loading have optimized in this release
- Wider database support
- StORE fully supports Oracle 7.x and Oracle 8i as repository back ends
- StORE fully supports MS SQL Server 7.x as a repository back end
- PostgreSQL is now supported as a beta back end for StORE. The PostgreSQL interface uses sockets rather than C libraries. This allows client usage of PostgreSQL from any supported VisualWorks platform.
- Supra SQL support for StORE and VisualWorks is being released as a goodie in this release. Supra SQL is a mature, scalable Cincom database.
- DB2/UDB has community StORE support. See DB2/UDB StORE at UIUC for details
- Distributed Smalltalk
- Interoperability updates
- Distributed Smalltalk has been updated to allow for clean interoperation with the latest Iona and Visigenic Orb products
- Opentalk
- Opentalk is the new Smalltalk to Smalltalk distribution framework. In this release, the Opentalk core (the base distribution tools) have moved into product status. The Opentalk tools (browsers, etc.) are still beta.
- Opentalk Base
- abstract frameworks and components used to implement communication protocols
- concrete implementations of protocols for smalltalk-to-smalltalk unicast, multicast and broiadcast
- base services immediately required to make those protocols usable, namely simple unicast and multicast event multiplexing services and a lightweight naming service
- Service Layer
- The Opentalk Service Layer in intended to consist of service implementations, useful to constructing applications, and usable with one or several protocols.
- Support for UDDI and SOAP built in
- VisualWave
- Caching of WindowSpecs to improve performance
- VisualWave now has caching behavior for windowspecs. This makes loading of previously accessed web GUIs significantly faster
- Dynamic Page Generation and Responder framework
- Templated HTML pages can have tags for dyamnically generated pieces.
- Smalltalk Server Page Support
- Cincom is adding major functionality to VisualWave in order to support ASP style Smalltalk Server pages and Smalltalk Servlets. This will be in a beta state for this release, as development is pointing towards a July 2001 ship.
- ASP style Smalltalk Server Pages
- Smalltalk Servlets
- Support for both stateful and stateless dynamic page serving
- More Web Server Integration choices
- ISAPI (support for IIS)
- NSAPI (support for iPlanet)
- CGI (generic support)
- FastCGI (support for Apache)
- Object Engine/Virtual Machine
- Improved Garbage Collection
- The incremental collector is much improved. It now no longer flushes the VM's execution caches (the stack and nmethod zones) at the end of each inctemental mark phase. The VM and current MemoryPolicy now communicate to allow the mark rate to depend on processor performance rather than far too low hard coded limits, allowing the incremental collector to actually work on large heaps.
- The full GC's marking algorithm now handles mark stack overflow, meaning that full GCs no longer fail.
- The scavenger now restricts remembered table growth meaning that crashes due to remembered table overflow have been eliminated.
- The allocator now has multiple free lists for different sized free chunks so freeing large quantities of small objects no longer brings the system to its knees.
- Polymorphic Inline Cache (introduced in 5i.3)
- The engine now uses Polymorphic Inline Caches at polymorphic send sites. This implementation of PICs also supports much improved doesNotUnderstand: performance, eliminating message lookups in the common case. Because PICs reduce the number of send site relinks by over an order of magnitude the engine has been able to afford to use "dirty sends", which are actually direct machine code calls, rather than "clean sends" (indirect calls) previously used on platforms with high instruction cache flush costs such as those using PowerPC and AXP processors. The result is a substantial increase in Smalltalk compute performance. The subset of the standard macro benchmarks that do not do I/O are sped up by about 25% across all processors. The Richards benchmark, which has a particularly high number of polymorphic sends, speeds up by about 50%.
- Deployment Packaging (introduced in 5i.3)
- The Windows engine now supports packaging the system as a single .exe file. The Virtual Image and Splash Screen Bitmap can be added to the engine executable as resources. The image can be compressed to save space. Building the single .exe is done using a freeware resource editor ResHacker by Angus Johnson. You'll need the 3.1 release of ResHacker.