Preface

Overview

Preface:

Overview

Disclaimer

Purpose

Open Points to be discussed before release

Sources

Naming Schemes: Prefixes, ...

File Layout

Installation

Notational Conventions

Version History

Acknowledgments

References

Keyfeatures:

Special Features:

The Standard AutoLISP Library is an exhaustive AutoLISP programmers library, not comparable to similar but not-exhausting approaches, as doslib or ELF or similar free or commercial code libraries. They work together not against each other. Cooperate Or Die! (the ADGE motto)

The Standard AutoLISP Library should be backwards compatible as far as it is possible and useful. So far at least back to AutoCAD Release 9 if the functions don't rely on external functions, and for ADS dependent functions back to R12. More in the next chapter "Purpose".

In the actual implementation I tried to paid attention to the following guidelines:

Stability over Compatibility over Performance over Readability.

Follow all those four guidelines plus Extendability.

Keep compatibility in both directions: backwards and forwards

Why should you read this?
Why did I write this document?
Why is it named "Standard Library" and not just "Reini Urban Lisp Library"?

Over the years myself as a lot of others developed a big library of lisp functions. Because of the increasing number of functions I put a lot of effort in the documentation and meaningful names. This is my attempt to share some of my functions. Why?

I became tired seeing the whole world reinvented again when user send their solutions to usenet and the acad magazines. If we could set up a commonly accepted subset of lisp functions we could write shorter code, we could better understand our and others code if functions from a commonly accepted library are used.

This is why I'll give them for free and put a lot of effort in the names and documentation. I'm also writing an AutoLISP book with parts for the AutoLISP beginner, for the advanced and with the library, a lot of extensions and samples not covered here.

I prefer working on user programs than on library functions. This way I can assure that the functions I use do work under all platforms that I want to support (virtually all available) and are bugfree.

Functions widely used are much more likely to be defectfree (aka "bugfree") than private functions.

The name "Standard" does not imply an official standard as one could see the core AutoLISP® language. Only the vendor implicitly creates the standard. The Standard Library is an extension to the standards defined in the recent AutoLISP® versions, but providing full backwards and forwards compatibility, a point which is not provided by the vendor. New introduced functions didn't work in older versions and platforms, and some functions specific to older versions or platforms were not upgraded in newer releases or there are no guidelines how to use old functionality in new versions.

Great efforts were and will be made to remain full backwards and forwards compatibility, such as defining AutoLISP versions for most of the new VL- extensions which also work in earlier releases.

The name "Standard Library" does imply only a standardized definition of a function library. This is what this project is for. The implementation of the definitions is just a suggestion. The "Standard" is the definition of the functions, not the implementation.

Time is ready for an AutoLISP library

We could focus on the basic problems and algorithms and not fiddling with cumbersome entity accessing and modification methods. This is why Autodesk redesigned it's whole internal structure and the API, the Visual Basic interface and the ObjectARX API which totally different from the old ADS and AutoLISP model. The new API defines a clean and easier to understand object model with methods and properties to access and modify AutoCAD objects.

The Standard AutoLISP Library cannot solve all problems, especially it's not that clean as the new internal object model but it's a snapshot of the current state of the art in AutoLISP programming.

The Future

New paradigms of AutoLISP programming will need a better language implementation, esp. DEFMACRO with SETF expanders and maybe a simple object model close to C++.

SETF would simplify the different methods to access and modify object properties, you only have to remember the accessor function, the modifying is done with (setf (accessor object) new-value)

An object model would greatly simplify dialog handling.

Such a model was implemented commercially as SageCLOS by Ralph Gimenez <Ralph.Gimenez@perceptual-eng.com>.

A new AutoLISP, called "Visual Lisp", with technology acquired from the state of the art AutoLISP development product "Vital Lisp" is available from Autodesk and replaced the old AutoLISP kernel with the latest AutoCAD 2000 Release. This will attract a lot of professional developers again because it offers security and a much better development platform.