CompactiLISP is a software that enable the kelvination of a set of AutoLISP/VLISP source codes, compact them, and compile them into a single LISP file easy to encrypt and to load into an AutoLISP engine.
There is two main versions: a simple one and a professional one. (Other tongues or AUTOCAD version on demand.)
Whatever the release used, CompactiLISP give an exhaustive repport on the use of the symbols inside the source codes. This enable the development of more secure and more tuned programs.
As soon as the compiled file is recorded, it is then much more easy to encrypt it. (One can also use the VLISP compilator of Autocad to encode in the FAS format).
List of the functionalities
- Conditional compilation.
- Optional protection against the TRACE function.
- Optional integration of a module that manage the installation of a program.
- Optional integration of a module that manage activation codes and trial period.
- Compilation trans-CAD system.
- Compilation into library
- Grouping of a set of LISP files into a single LISP file:
- Deletion of the comments.
- Deletion of the indentations, of new lines, and useless spaces.
- Identification of AutoLISP and VLISP symbols, and of the symbols used by a CAD software.
- Encoding of the symbols excepted:
- those intended to be used as a command name;
- those declared as protected;
- those used as a function and which are not defined by a DEFUN expression;
- those which are quoted ou used inside quoted expression.
- Three ways to kelvinate the symbols: numbered, random characters from A to Z and random with invisible characters.
- Prefix of the encoded symbols specified with a custom string or by default, by the project name.
- Optional conversion of the strings into octal codes.
- Compression and integration of the DCL source codes.
- Integration of text files.
- Display of a complete compilation repport, recorded as well into a log file:
- repport of local/global, variables or functions, used inside each AutoLISP expression.
- warning when a symbol is used both as local and global.
- warning when a function is undefined.
- warning when a function is defined more than once.
- warning when a local symbol is useless.
- arning when an AutoLISP (or VLISP) symbol is redefined.
- List of all defined functions, and especialy the main one, which enable to detect useless function.
- List of all the globals variables, which enable to detect forgoten local declaration.
- List of all the locals variables.
- List of all the used lisp symbols.
- Table of encoding of the symbols in order to eventually debug the compilation.
- Optimization of the source codes:
- remove of the useless PROGN:
- inside FOREACH, WHILE, and REPEAT loop;
- inside the arguments of a COND expression;
- inside the body of a DEFUN expression;
- inside the body of a LAMBDA expression;
- which have a single or none expression as argument ( the last one is replaced by NIL);
- comparison of the kind =, EQ, ou EQUAL of a symbol, or an expression, with NIL, remplaced by (NULL ...).
Trial period of CompactiLISP
During trial period the software have limited functionalities, finite time of use and maximum number of use. Here is the list of the limitations:
- The global size of the source codes is limited to 6400 evaluations (which is about 64ko).
- Lack of the activation module.
Initiation to AutoLISP programming
Book about AutoLISP
A book in french about AutoLISP programmation.
Opinions of cybernauts