Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the file-local-variable Reference Manual, version 0.1, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 13:28:10 2020 GMT+0.
• Introduction | What file-local-variable is all about | |
• Systems | The systems documentation | |
• Modules | The modules documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
* File-Local-Variable - File-local variable independent from ASDF [[https://circleci.com/gh/guicho271828/file-local-variable][https://circleci.com/gh/guicho271828/file-local-variable.svg?style=svg]] Implements a file-local variable using a carefully designed file-reloading scheme. #+BEGIN_SRC lisp (defpackage file-local-variable.example (:use :cl)) (in-package :file-local-variable.example) (defun myhook (macrofn form env) (print form) (funcall macrofn form env)) (flv:file-local-bind *macroexpand-hook* 'myhook *read-default-float-format* 'double-float) (eval-when (:compile-toplevel) (print :compile-toplevel)) (eval-when (:load-toplevel) (print :load-toplevel)) (eval-when (:execute) (print :execute)) (eval-when (:compile-toplevel :load-toplevel :execute) (print '#.*macroexpand-hook*) ; 'myhook (print (type-of 3.0))) ; 'double-float #+END_SRC ** syntax The syntax is the same as =setf=. : (file-local-bind var val &rest more) ** Related work ASDF-FLV, but it depends on ASDF. by Didier Verna. http://www.cliki.net/asdf-flv CDR 9 proposal (File-local variables) by Didier Verna. https://common-lisp.net/project/cdr/document/9/verna.11.cdr2.pdf ** How It Works 1. =flv:file-local-bind= dynamically binds the variable using =progv=, and opens the current =*compile-pathanme*=. Within the dynamic environment of =progv=, reread the file as follows: 1. Skip the forms until the first appearance of =flv:file-local-bind=. 2. Skip the =flv:file-local-bind= form. 3. Read, then macroexpands the rest of the forms. Currently it depends on the implementation-specific =macroexpand-all=. 4. =flv:file-local-bind= expands into a =progn= containing their expansion results. 2. Skips the rest of the forms by assigning =*dumb-readtable*= to =*readtable*= , i.e., a readtable which treats all characters as [[http://www.lispworks.com/documentation/HyperSpec/Body/02_ad.htm][whitespace characters]]. 3. Since =*readtable*= is file-local as specified by ANSI, it is unbound when the file compilation finishes. ** Dependencies This library is at least tested on implementation listed below: + SBCL 1.3.2 on X86-64 Linux 3.19.0-49-generic (author's environment) Also, it depends on the following libraries: + iterate by :: Jonathan Amsterdam's iterator/gatherer/accumulator facility + alexandria by :: Alexandria is a collection of portable public domain utilities. + trivia :: ** Installation ** Author + Masataro Asai (guicho2.71828@gmail.com) * Copyright Copyright (c) 2016 Masataro Asai (guicho2.71828@gmail.com) * License Licensed under the LLGPL License.
Next: Modules, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The file-local-variable system |
Masataro Asai
LLGPL
File-local variable independent from ASDF
0.1
file-local-variable.asd (file)
src (module)
Modules are listed depth-first from the system components tree.
• The file-local-variable/src module |
file-local-variable (system)
src/
package.lisp (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The file-local-variable.asd file | ||
• The file-local-variable/src/package.lisp file |
Next: The file-local-variable/src/package․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
file-local-variable.asd
file-local-variable (system)
Previous: The file-local-variable․asd file, Up: Lisp files [Contents][Index]
src (module)
src/package.lisp
file-local-bind (macro)
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The file-local-variable-asd package | ||
• The file-local-variable package |
Next: The file-local-variable package, Previous: Packages, Up: Packages [Contents][Index]
file-local-variable.asd
Previous: The file-local-variable-asd package, Up: Packages [Contents][Index]
package.lisp (file)
flv
file-local-bind (macro)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported macros |
Previous: Exported definitions, Up: Exported definitions [Contents][Index]
package.lisp (file)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal special variables | ||
• Internal functions |
Next: Internal functions, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
package.lisp (file)
Previous: Internal special variables, Up: Internal definitions [Contents][Index]
package.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | F L M |
---|
Jump to: | F L M |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | F M R |
---|
Index Entry | Section | ||
---|---|---|---|
| |||
F | |||
file-local-bind : | Exported macros | ||
Function, recompile-with-flv : | Internal functions | ||
| |||
M | |||
Macro, file-local-bind : | Exported macros | ||
| |||
R | |||
recompile-with-flv : | Internal functions | ||
|
Jump to: | F M R |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
S |
---|
Index Entry | Section | ||
---|---|---|---|
| |||
* | |||
*dumb-readtable* : | Internal special variables | ||
| |||
S | |||
Special Variable, *dumb-readtable* : | Internal special variables | ||
|
Jump to: | *
S |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | F P S |
---|
Jump to: | F P S |
---|