VLISP project files: .prj and .prv

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

VLISP project files: .prj and .prv

No official specification exists. What follows is derived from four real samples plus the Make Application wizard's GUI mapping, and is recorded here because DEScoder consumes these files (above). The full reference lives in alpm's documentation/vlisp-project-files.org.

.prj — project definition

A VLISP-PROJECT-LIST property list.

  • Key case is unstable across writers: the same product wrote :NAME in 2024 and :name in 2025. Readers must fold case.
  • :OWN-LIST entries appear both with and without the .lsp extension.
  • :PROJECT-KEYS :BUILD is (:standard) or (:OPTIMIZE :LOCALIZE :link), mapping to the GUI's Standard versus Optimize and Link, and thus to vlisp-compile mode st versus lsm / lsa.

.prv — application (VLX) definition

An association list under PRV-DEF — a different shape from .prj, not a variant of it. Observed keys: :target, :active-x, :separate-namespace, :protected, :load-file-list (tagged by the wizard's Program File Types; :prj observed), :require-file-list (:DCL observed, :DVB expected), :ob-directory, :tmp-directory, :optimization (st / lsm / lsa).

Two traps worth normative text:

  • An empty (:separate-namespace) means OFF, not "unset". Two independent proofs: the schms VLXs' functions are visible to runtime-loaded files, and the schms sources contain no vl-doc-export at all.
  • (:active-x . T) is stored even when the GUI gates that checkbox behind Separate Namespace. Do not infer namespace mode from it.