Function Entry: VL-CATCH-ALL-APPLY

← Prev | ↑ Chapter | Next → | Index | Symbols

Function Entry: VL-CATCH-ALL-APPLY

Name

vl-catch-all-apply

Class

Visual LISP Function

Syntax

(vl-catch-all-apply function arg-list)

Arguments and Values

  • function: function designator
  • arg-list: list of arguments

The argument list is optional in practice

Autodesk's documentation gives arg-list as required. Both engines accept it omitted, and treat the missing list as an empty one. This is a documentation error, not a vendor divergence.

Measured, not inferred:

  • BricsCAD V26 — the vle-extension.lsp that ships inside the application and is loaded by the engine at startup calls (vl-catch-all-apply 'vl-load-com). An engine that rejected the form could not load its own file.
  • AutoCAD 2022 — probe run 20260817T070448Z, a real accoreconsole.exe on MS-Windows: (vl-catch-all-apply (lambda () 42)) returned 42, while the same call on a function that requires an argument produced the engine's own arity error ("nombre d'arguments insuffisants"), which is what an EMPTY argument list produces.

The probe is probes/sources/probe-vl-catch-all-apply.lsp; it carries a two-argument control case, so a future answer cannot be read as evidence unless the control also passes.

Writing (vl-catch-all-apply 'f nil) remains clearer, and is what this specification's own examples use — but the one-argument form is not a portability hazard.

clautolisp

Accepts the one-argument form in every dialect, treating the missing list as empty.

Under –strict it emits [vl-catch-all-apply-arity]. Not because the engines disagree — they do not — but because neither documents the tolerance, and –strict means the documented portable subset. Two engines accepting a form today is not a promise that a future version will. –autocad and –bricscad ask for a specific engine's measured behaviour and stay silent; –clautolisp and –lax silence it as they do every diagnostic of this kind.

Description

Calls function with arg-list, trapping errors and returning a catch-all error object instead of unwinding directly into the caller.

Return Values

  • normal function result on success
  • catch-all error object on failure

Side Effects

Side effects are those of the invoked function up to the point of failure or success.

Compatibility

Part of the Visual LISP error-handling layer.

Availability

  • AutoCAD 2026: documented (per Autodesk reference page).
  • BricsCAD V26: presumed compatible (no contradicting page found).
  • Status: AutoCAD documented; BricsCAD presumed-both pending Phase 4 verification.