| 
  Key Features
 
      
      Sample
    Executable sizes
  Extra libraries
 
      
     
 
      Smalltalk MT uses an optimizing compiler
        that generates truly compiled, efficient code. Still, code is compiled interactively, so
        that it appears like an interpreted system to the developer. True native compilation means
        optimal performance, even if code is executed for the first time.  State-of-the-art memory management:  Smalltalk MT
        uses an efficient multithreaded runtime model that uses extensively virtual memory
        management and exception handling. This translates into reduced memory consumption and
        increased performance.  Smalltalk MT is fully multithreaded and
        all primitives are reentrant. Threads are very lightweight and share a common address
        space, which is consistent with the way threads are used on Win32. The system is scalable
        and can benefit from multiprocessor architectures.  The minimum runtime image is very small (in the 100K range for a
        Windows application). This means that applications can be easily distributed. It
        enables an organization to package and deploy applications as independent executables
        rather than one large monolithic image, thus improving robustness and performance.
       Large programs scale even better: a moderately complex Smalltalk application will
        be smaller than its C or C++ counterpart. This is because Smalltalk reuses more code than
        other systems. For example, the entire development system takes only 800 K, of which less
        than 500 K is code.Native Unicode: the Unicode edition runs natively in Unicode, meaning that all
        API calls, literal strings and Windows messages use Unicode. The Unicode edition is
        compatible with ANSI editions at the source level, meaning that an application just needs
        recompilation to run in Unicode or ANSI.  DLL support: new programming paradigms require modular components rather than
        monolithic applications. Smalltalk MT lets you write ActiveX components, shell extensions,
        Netscape plug-ins, ISAPI server extensions and so forth.  Headless support: writing headless or non-GUI applications is easy, and the
        generated executables are very small. Console mode is also supported. Back to Top 
 
      Native PE (portable executable) format: this format ensures that the executable
        is handled efficiently by the operating system.  Robust multithreaded implementation:
       Smalltalk MT
        is multithreaded from the ground up, with garbage collection running in a separate thread.
        A process can have any number of threads. This enables the development of scalable
        applications on Windows, and simplifies considerably the design and
        implementation of applications that use blocking I/O. There are no restrictions on sharing
        data between threads (other than application-specific synchronization issues). In
        addition, all Win32 synchronization mechanisms can be used, which enables a non-Smalltalk
        thread or process to synchronize with a Smalltalk thread. Starting with
        version 2.5, fibers and asynchronous procedure calls (APC) are also
        supported.  Scalable: a threaded architecture is more responsive on mono-processor machines,
        and takes advantage of multi-processor architectures. Garbage collection occurs in a
        background thread.  Native exception handling:
       Smalltalk MT
        implements Win32 exception handling. This lets you trap system exception as well as raise
        your own software exceptions.  Ability to generate DLLs:
       Smalltalk MT
        lets you package applications as DLLs that expose standard API interfaces. Any C program
        can bind to such a DLL, either dynamically or statically, without particular rules or
        restrictions. Smalltalk MT DLLs are small in size and load very fast -
        you won't notice a difference with C++ code.  Standard import section:
       Smalltalk MT
        uses an import section that is initialized by the OS loader. This design is the most
        efficient in terms of performance and lets you use SDK tools such as the BIND utility to
        further optimize your executable. Optionally, imported libraries can be
        declared as load-on-demand in a manner that is transparent to the
        application. Load-on-demand reduces the initial working set and is
        useful for components that may not be required at runtime.   Back to Top 
 
      Thread local variables:
       Smalltalk MT
        supports thread local variables, which are instantiated per thread, and visible from any
        code executed by the thread.  Callback Blocks: Smalltalk blocks can be called by external non-Smalltalk code as
        well. To a C program, a block looks like a pointer to a function.  Exports: Class methods can be exported, and instance methods can be called as C++
        member functions (using the this pointer as the first parameter).
        Both WINAPI and cdecl calling conventions are
        supported.  Inline API calls: Our API implementation lets you use external APIs just as would
        use them in C. This means that using an external DLL is both very easy and efficient.
        Back to Top 
 
      Win32 common controls, property sheets (wizards), common dialogs
       MDI  SplitPane (splitter windows)
       Efficient resizing implementation  Memory Mapped Files  Memory Mapped Object Files (map a collection of objects into the address space of
        the process)  COM object support  OLE automation, containers, ActiveX container support.
        Back to Top 
 
        Back to Top 
 The table below lists the section sizes for different images. These values have been
    obtained with PEDump, a PE file dump utility. 
      
        | Image | Code Section | Class Section | Data Section | Import Section | Resource Section |  
        | Sample Setup | 64 kB | 5 kB | 31 kB | 4 kB | 46 kB |  
        | Generic | 53 kB | 5 kB | 26 kB | 4 kB | 4 kB |  
        | Console | 31 kB | 4 kB | 19 kB | 2 kB | - |  
        | Development | 544 kB | 11 kB | 268 kB | 19 kB | 19 kB(**) |  
        | Development(*) | 687 kB | 15 kB | 340 kB | 39 kB | 19 kB(**) |  (*) Development image with all extra libraries and samples loaded.(**) Additional resources in stdev.dll, 293 kB.
 The figures show that there is only a very moderate increase in code
    size. Back to Top Copyright © 1996-2001 Object Connect
 |