"Fast-COM" Implementation Technology


When BricsCAD was ported to Linux, we were faced with the problem to provide the COM-based LISP functions (the vla, vlax, vlr function sets) under Linux as well - as there is no COM available with Linux (and same for Mac platform as well).

The implementation of "Fast-COM" mode is based on an internal descriptor table, which describes the BricsCAD-built-in objects and entities with their properties and methods, very similar to Microsoft COM TypeLibraries (.tlb and .idl files).

Property functions can be called in usual way - as dedicated functions (vla-get-<property> ...) or using generic (vlax-get-property '<property> ...), the "Fast-COM" mode covers both.

Method functions can be called in usual way - as dedicated functions (vla-<method> ...) or using generic (vlax-invoke-method '<method> ...), the "Fast-COM" mode covers both.

Primarily intended to provide the vla, vlax, vlr function sets for BricsCAD Linux/Mac, the "Fast-COM" mode has also been enabled under Windows, providing significant performance improvements over standard Windows COM - usually by 50% up to 1000% (factor 10) and more, and also reduces memory load for both Windows and Lisp engine memory.
Reduced Lisp memory load causes indirect performance improvements, by less GarbageCollections.

Some implementation background :

Implementing the "Fast-COM" mode is ongoing work - with each BricsCAD version, more properties and methods will support this mode, and will get available for BricsCAD Linux then as well.
Just for interest, here is a principle scheme about "Fast-COM" implementation mechanism and code + data flow.

This "Fast-COM" implementation can be activates and deactivated at runtime by Lisp code - for details please see Enable + Disable "Fast-COM.

The summaries below lists all properties and methods, which currently support "Fast-COM" mode; therefore, they are already available on Linux/Mac platforms.



©  Bricsys NV. All rights reserved.