VisualWorks 5i.3 Features White Paper
Cincom is pleased to announce the release of VisualWorks 5i.3. There are a number of new features in this 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. Here's what's new:
Bugs Fixed in this release
5i.3 Release Notes
Migration from 5i.2
Cincom has moved the toolset for VisualWorks forward in this release. The following list details the new work that has gone on. You can see for yourself by downloading the beta at VisualWorks 5i.3 beta. Note that some of the features listed here did not make it into the beta that is on the website. You should check this link for the non-commercial version of VisualWorks. Within two months of the commercial ship of VisualWorks 5i.3, we expect to have the non-commercial version ready for download.
- Base VisualWorks
- New Launcher Toolbar
- The launcher has been updated with a new toolbar with improved icons.
- New Workspace
- The workspace has the ability to import namespaces, allowing for easier script writing. It also has workspace local variables, allowing for persistent test scripts. A workspace contents can be saved as a file, and later opened from a file. It supports accelerator keys for evaluating, as well as single-line evaluation with no selection. The workspace has also been given a toolbar.
- ToolTip help
- ToolTip help has been modified so as to be better integrated than it was in the 5i.2 release
- Native File Selection Dialogs on Windows
- On Windows, file selection is now accomplished with a standard file selection dialog, rather than the old input field method
- All code views have a fourth evaluation command, Debug It, which takes the selected text places and brings up a debugger (with no notifier) stopped on the first message send in the expression, allowing to step further through code execution.
- Socket Upgrade
- The VisualWorks sockets framework has been upgraded to take better account of two things
- Platform specific issues
- Socket options
- Teminology change
- By popular demand, "static variables" are renamed to "shared variables".
- Internet Connectivity Framework
- VisualWorks now has an extensive library of internet connectivity tools. We plan on extending this support further in the 5i.4 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
- StORE
- StORE is the the version control system of choice for VisualWorks. It has been improved in many ways since the 5i.2 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.
- 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
- Object Engine/Virtual Machine
- Polymorphic Inline Cache
- 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
- 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.