summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2006-07-12Noticeable performance improvements (notably in `debug').Ludovic Court`es
* src/guile/skribilo/biblio.scm: Don't use `(ice-9 format)': it is unneeded and very slow compared to `simple-format'. * src/guile/skribilo/debug.scm: Export `debug-item' and `with-debug' as macros. (debug-item): Turned into a macro rather than a procedure. Also, don't take `*margin-level*' into account when deciding whether to do something: only look at `*debug-item?*'. (%do-debug-item): New. (%with-debug): Invoke `parameterize' only in the debugging case. This noticeably improves performance. git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-6
2006-07-11Use SRFI-35 error conditions in `resolve.scm' rather than the `error' ↵Ludovic Court`es
procedures. * src/guile/skribilo/resolve.scm: Don't use `(skribilo runtime)' (unneeded). Use `conditions' and SRFI-3[45]. (&resolution-error): New. (&resolution-orphan-error): New. (handle-resolution-error): New. Register it. (do-resolve!): Raise an invalid-arg condition instead of invoking `error'. (resolve-counter): Raise a `&resolution-orphan-error' condition instead of invoking `skribe-error'. (resolve-ident): Raise an invalid-arg condition rather than invoking `skribe-type-error'. git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-5
2006-07-11By default, use (internally) a reader that does not record positions.Ludovic Court`es
* src/guile/skribilo/utils/syntax.scm (%skribilo-module-reader): If debugging is not required (default), create a reader that does not record positions. * src/skribilo.in: Don't pass `--debug' by default. git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-4
2006-07-03outline: Fixed the regexps of the inline markup for `tt' and `q'.Ludovic Court`es
* src/guile/skribilo/reader/outline.scm (%inline-markup): Fixed the regexps for `tt' and `q' so that these markups can occur multiple times per line. git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-2
2006-06-07eq: Handle operator precedence when parenthesizing.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (equation-markup-name?): New. (equation-markup?): Use it. (equation-markup-name->operator): New. (%operator-precedence): New. (operator-precedence): New. * src/guile/skribilo/package/eq/lout.scm (simple-markup-writer): Take operator precedence into account. git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-1
2006-06-06Fixed exception handling in `output.scm'.Ludovic Court`es
* src/guile/skribilo/output.scm (&output-error): New. (&output-unresolved-error): New. (&output-writer-error): New. (handle-output-error): New. Raise the relevant error condition rather than use `skribe-error'. Don't use `(skribilo lib)' (no longer needed). git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-87
2006-06-06Generalized the error condition handling framework.Ludovic Court`es
* src/guile/skribilo/condition.scm (&too-few-arguments-error): New. (%external-error-condition-alist): New. (register-error-condition-handler!): New. (lookup-error-condition-handler): New. (%call-with-skribilo-error-catch): Handle `too-few-arguments-error?'. Use `lookup-error-condition-handler' when unhandled exceptions are caught. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-86
2006-06-06Cleaned up the `write' method for `markup' and `unresolved' objects.Ludovic Court`es
* src/guile/skribilo/ast.scm (write): New method. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-85
2006-06-06Added `bib-map'.Ludovic Court`es
* src/guile/skribilo/biblio.scm (bib-map): New. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-84
2006-05-10Added biblio helpers (abbrev, author, BibTeX) taken from my `biblib.skr'.Ludovic Court`es
git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-83
2006-05-10Added `bib-for-each'. Fixed binding issues in the evaluator and compat.Ludovic Court`es
* src/guile/skribilo/biblio.scm (bib-for-each): New. * src/guile/skribilo/evaluator.scm: Autoload `engine' also when `*current-engine*' is met. * src/guile/skribilo/utils/compat.scm (skribe-read): Export it. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-82
2006-05-09eq: Fixed the rendering of `*' in the Lout implementation.Ludovic Court`es
* src/guile/skribilo/package/eq/lout.scm (*): Use `times' when issuing a `*' sign. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-81
2006-05-09Added `markup-option-set!'.Ludovic Court`es
* src/guile/skribilo/ast.scm (markup-option-set!): New. * src/guile/skribilo/engine/lout.scm (markup-option-set!): Removed. (lout-start-large-scale-structure): Don't invoke `markup-option-set!' on markups that are not a large-scale structure. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-80
2006-04-14eq: Added the `inline?' keyword; fixed the Lout engine.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (eq): Added the `inline?' keyword. * src/guile/skribilo/package/eq/lout.scm (eq): Support it. (simple-lout-markup-writer): Added a parameter specifying whether parentheses are needed. Fixed `-' with that respect. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-79
2006-04-06Small aesthetic changes in the Lout engine.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm (lout-make-doc-cover-sheet): Added an appropriate `@Break' setting for the title. (lout-engine)[:symbol-table]: Don't produce additional space around `@Eq'. * src/guile/skribilo/package/eq/lout.scm (eq): Don't produce additional space around `@Eq'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-78
2006-03-19Lout engine: small fixes.Ludovic Courtes
* src/guile/skribilo/engine/lout.scm (figure): For `@BypassNumber', make sure NUMBER is not `#f'. * src/guile/skribilo/package/slide/lout.scm: Don't switch automatically DOCUMENT-TYPE to `slides'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-49
2006-03-19Image- and compat-related fixes.Ludovic Courtes
* src/guile/skribilo/utils/images.scm: Autoload `parameters' on `*verbose*' too. * src/guile/skribilo/lib.scm (skribe-read): Moved to... * src/guile/skribilo/utils/compat.scm: ... here. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-48
2006-03-18Moved `convert-image' et al. to `utils/images.scm'.Ludovic Courtes
* src/guile/skribilo/runtime.scm: Moved image-related code to... * src/guile/skribilo/utils/images.scm: ... here (new file). * src/guile/skribilo/utils/Makefile.am (dist_guilemodule_DATA): Updated. * src/guile/skribilo/module.scm (%skribilo-user-autoloads): Added `(skribilo utils images)'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-47
2006-03-18Lout engine: better handling of the `slides' document type.Ludovic Courtes
* src/guile/skribilo/engine/lout.scm (lout-slides-markup-alist): New. (lout-structure-markup): Handle `slides'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-46
2006-03-07Partial rewrite of the debugging facilities (slightly slower).Ludovic Courtes
* src/guile/skribilo.scm (skribilo): Use the new debugging API. * src/guile/skribilo/debug.scm: Use SRFI-39 parameter objects. Moved legacy procedures to `compat.scm'. * src/guile/skribilo/utils/compat.scm (set-skribe-debug!): New. (no-debug-color): New. (skribe-debug): New. (add-skribe-debug-symbol): New. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-44
2006-03-07Slight optimization: allow for non-proc predicated for markup writers.Ludovic Courtes
* src/guile/skribilo/engine.scm (engine-add-writer!): Allow PRED to be `#f'. * src/guile/skribilo/writer.scm (make-writer-predicate): Likewise. (lookup-markup-writer)[matching-writer]: Likewise. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-43
2006-03-02Removed the global engine table.Ludovic Court`es
* src/guile/skribilo/engine.scm (*engines*): Removed. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-68
2006-03-02Fixed `copy-engine' with respect to the writers optimization.Ludovic Court`es
* src/guile/skribilo/engine.scm (copy-engine): Fixed so that the `writers' hash table is actually copied. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-66
2006-03-01Fixed tiny module loading/autoloading mistakes.Ludovic Court`es
* src/guile/skribilo/module.scm (%skribilo-user-imports): Added `(skribilo location)'. * src/guile/skribilo/output.scm: Fixed autoloading of `(skribilo engine)'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-64
2006-03-01Significantly optimized lookup of markup writers.Ludovic Court`es
* src/guile/skribilo/engine.scm (<engine>)[writers]: Became a hash table (instead of a list). [free-writers]: New. (engine-add-writer!): Changed accordingly. * src/guile/skribilo/writer.scm (write-object): Renamed to `write'. (lookup-markup-writer): Rewritten according to the above changes. (markup-writer-get): Likewise. (markup-writer-get*): Likewise. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-63
2006-03-01Lout engine: use `push-default-engine' and `pop-default-engine'.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm: Once `lout-engine' is defined, invoke `push-default-engine'. Invoke `pop-default-engine' at the end. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-62
2006-02-28Slightly optimized the resolution process (added `ast-resolved?').Ludovic Courtes
* src/guile/skribilo/ast.scm (<ast>): Added a `resolved?' slot, with accessor `ast-resolved?'. * src/guile/skribilo/resolve.scm (do-resolve!)[<node>]: Check whether `ast-resolved?' is true and set it once it's resolved. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-37
2006-02-27Changed the way `slide' implementations are loaded. Doc is buildable now.Ludovic Court`es
* src/guile/skribilo/package/slide.scm: Change the initialization method for the engine-specific writers: don't rely on `autoload' which is too non-deterministic, use `resolve-module' instead. * src/guile/skribilo/package/slide/html.scm: Call `%slide-html-initialize!' from here. * src/guile/skribilo/package/slide/latex.scm: Likewise. * src/guile/skribilo/package/slide/lout.scm (%slide-lout-initialize!): Removed. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-58
2006-02-27`eq': Added the `:renderer' option to `eq'. Support `lout'.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (eq): Added a `renderer' option. Modified the `eq' writer for `base'. (!=): Use the appropriate symbol. (~=): Likewise. (>=): Likewise. (<=): Likewise. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-57
2006-02-27`eq': Implemented the text-based markup writers.Ludovic Court`es
* src/guile/skribilo/package/eq.scm: Implemented the text-based markup writers for the `base' engine. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-56
2006-02-25Made `make-string-replace' faster.Ludovic Courtes
* src/guile/skribilo/runtime.scm (%make-general-string-replace): Use a hash table rather than a list. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-35
2006-02-21`eq': added the `apply' markup.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (%operators): Added `apply'. (eq:apply): New markup. * src/guile/skribilo/package/eq/lout.scm (eq:apply): New writer. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-54
2006-02-20`eq': Added `eq:in', `eq:notin' and their Lout writers.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (%symbols): New. (make-fast-member-predicate): New. (known-operator?): New. (known-symbol?): New. (equation-markup?): New. (eq:symbols->strings): When EQUATION is a symbol, check whether it is KNOWN-SYMBOL?. (eq:in): New markup (eq:notin): New markup. * src/guile/skribilo/package/eq/lout.scm (binary-lout-markup-writer): New. (eq:in): New writer. (eq:notin): New writer. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-53
2006-02-20Lout engine: fixed use of `@Sym' so that it works fine within `@Eq'.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm (lout-symbol-table): Take an additional SYM parameter. Use it instead of blindly using `@Sym'. (lout-engine): Use `{ Symbol Base } @Font @Char' instead of `@Sym'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-52
2006-02-17`slide' and `eq': moved engine-specific code in separate modules.Ludovic Court`es
* src/guile/skribilo/package/slide.scm: Moved engine-specific code to `slide/ENGINE.scm'. * src/guile/skribilo/package/eq.scm: Likewise. * configure.ac: Produce the new Makefiles. * src/guile/skribilo/engine/lout.scm: Export more stuff. Moved the slide-related things out of here. * src/guile/skribilo/utils/compat.scm (skribe-load): Removed `call/cc' (not needed). git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-51
2006-02-17Fixes for `when-engine-is-loaded'.Ludovic Court`es
* src/guile/skribilo/engine.scm (consume-load-hook!): New. (when-engine-is-loaded): Call `consume-load-hook!' when `engine-loaded?' returns true. (lookup-engine): Use `consume-load-hook!'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-50
2006-02-17Implemented `when-engine-is-loaded'.Ludovic Court`es
* src/guile/skribilo/engine.scm (engine-id->module-name): New. (engine-loaded?): New. (%engine-load-hook): New. (when-engine-is-loaded): New. (lookup-engine): Run the engine-load hook when available and consume it. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-49
2006-02-17`eq' package: added the `script' markup.Ludovic Court`es
* src/guile/skribilo/package/eq.scm (%operators): Added `script'. (eq:script): New. (eq:expt): Fixed wrong braces. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-48
2006-02-16Added the equation formatting package (unfinished, undocumented).Ludovic Court`es
* src/guile/skribilo/package/eq.scm: New. Taken from `lcourtes@laas.fr--2004-libre/skribe-eq--main--0.1--patch-2' and significantly improved. * src/guile/skribilo/package/Makefile.am (dist_guilemodule_DATA): Added `eq.scm'. * NEWS: Mention this new package. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-47
2006-02-16`skribilo': do not catch all exceptions, let a stack trace be output intead.Ludovic Court`es
* src/skribilo.in: Do not try to catch any exception. Thanks to Neil's `catch' patch, a backtrace now gets nicely printed. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-46
2006-02-15Skribe reader: consider square brackets as delimiters.Ludovic Court`es
* src/guile/skribilo/reader/skribe.scm (%make-skribe-reader): Use the `r6rs-keyword-*' and `r6rs-number' token readers so that square brackets are rightfully considered as delimiters. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-45
2006-02-14Created the `(skribilo utils files)' module.Ludovic Court`es
* src/guile/skribilo/package/slide.scm: Fixed calls to `format'. * src/guile/skribilo/runtime.scm: Use `(skribilo utils files)'. Use `file-suffix' and `file-prefix' instead of `suffix' and `prefix'. Removed local definition of `suffix'. * src/guile/skribilo/utils/compat.scm: Use `(skribilo utils files)'. Moved `file-suffix' and `file-prefix' there. * src/guile/skribilo/utils/files.scm: New. * src/guile/skribilo/utils/Makefile.am (dist_guilemodule_DATA): Added `files.scm'. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-44
2006-02-14Implemented `lout-illustration' for non-Lout engines.Ludovic Court`es
* src/guile/skribilo/engine/lout.scm (lout-illustration): Implemented for Guile and non-Lout engines. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-43
2006-02-14More Skribe compatibility fixes (more exported bindings).Ludovic Court`es
* src/guile/skribilo/color.scm: Use SRFI-60. (skribe-color->rgb): Use `bitwise-and' and `arithmetic-shift'. * src/guile/skribilo/engine/html.scm (html-markup-class): Made public. * src/guile/skribilo/module.scm (%skribilo-user-autoloads): Added `!lout', `!latex', `LaTeX', `TeX', `html-markup-class', `html-class', `html-width' as autoload triggers. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-42
2006-02-10Fixed syntax highlighting thanks to SILex.Ludovic Courtes
* arch-config: New file. * src/guile/skribilo/coloring/c-lex.l.scm: New. * src/guile/skribilo/coloring/lisp-lex.l.scm: New. * src/guile/skribilo/coloring/xml-lex.l.scm: New. * doc/user/user.skb: Include `prgm.skb' (works now). * src/guile/skribilo/ast.scm: Export `node-body'. * src/guile/skribilo/coloring/Makefile.am (dist_guilemodule_DATA): Added the SILex-generated files. (%.l.scm): New rule. * src/guile/skribilo/coloring/lisp-lex.l: Use the SRFI-39 parameters. * src/guile/skribilo/coloring/lisp.scm: Use SRFI-39 parameters instead of fluids. Load `lisp-lex.l.scm'. * src/guile/skribilo/prog.scm: Autoload `ast' upon `node-body' too. (make-line-mark): Use `hash-set!'. (resolve-line): Use `hash-ref'. * src/guile/skribilo/source.scm (source-read-lines): Use `string-prefix-length' instead of `substring=?'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-33
2006-02-06Outline reader: added support to parse lists.Ludovic Court`es
* src/guile/skribilo/reader/outline.scm (make-markup): New. (make-list-processor): New. (make-node-processor): Take a list of subnode procedures instead of a single procedure. (%list-processors): New. (%node-processors): Updated accordingly. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-40
2006-02-01Added support for subsections and subsubsections in the outline reader.Ludovic Court`es
* src/guile/skribilo/reader/outline.scm (make-node-processor): Consider the END-OF-NODE? case _after_ the SUBNODE case. (%node-processors): Added support for subsections and subsubsections. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-39
2006-01-31First time the user manual is compiled to HTML.Ludovic Courtes
* doc/skr/api.skr (make-engine?): Fixed. (make-engine-custom): Likewise. * doc/skr/manual.skr (the-index): Don't pass `:&skribe-eval-location'. * doc/user/emacs.skb: Fixed typo. * doc/user/htmle.skb: Documented the `file-name-proc' custom. * doc/user/package.skb: Fixed the `prgm' example there. * doc/user/skribe-config.skb: Commented out the `OPTIONS' section. * doc/user/skribec.skb: Likewise. * doc/user/slide.skb: Don't refer to HTML-ENGINE, use `find-engine' instead. * doc/user/src/slides.skb: Don't pass `:slide' to `toc'. * doc/user/toc.skb: Commented the `:subsubsection' argument. * doc/user/user.skb (Index): Set `:indent' to "Index". * src/guile/skribilo.scm (skribilo-options): Added `--image-path'. (skribilo): Handle it. * src/guile/skribilo/ast.scm (ast->file-location): Exported. * src/guile/skribilo/engine/base.scm (the-index): Don't pass `:&skribe-eval-location'. * src/guile/skribilo/engine/html.scm: Export `html-width' and `html-title-authors'. * src/guile/skribilo/engine/lout.scm (lout-width): Don't use `flonum?'. * src/guile/skribilo/evaluator.scm (load-document): Added `:allow-other-keys' so that the optional parameters may contain keywords, too. * src/guile/skribilo/package/slide.scm: Use `(skribilo engine html)'. * src/guile/skribilo/skribe/api.scm (toc): Added `subsubsection'. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-31
2006-01-25More progress towards a working user manual.Ludovic Courtes
* doc/skr/api.skr (define-markup?): Support `define*' and `define*-public'. * doc/user/bib.skb: Commented out problematic `skribebibtex'-related things. * doc/user/lib.skb (skribe-load): Replaced by `load-document'. (skribe-load-options): Replaced by `*load-options*'. (skribe-path): Replaced by `*document-path*'. * src/guile/skribilo/coloring/lisp.scm (definition-search): Removed debugging statement. * src/guile/skribilo/engine.scm (find-engine): For documentation purposes, explicitly list all keyword parameters. * src/guile/skribilo/source.scm (source-read-lines): Start line numbers from 0. * src/guile/skribilo/utils/compat.scm (skribe-path-set!): New. (skribe-image-path-set!): New. (skribe-source-path-set!): New. (skribe-bib-path-set!): New. git-archimport-id: lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2--patch-30
2006-01-24Fixed the HTML engine's `favicon' output.Ludovic Court`es
* src/guile/skribilo/engine/html.scm (&html-generic-header): When producing `&html-header-favicon', don't leave its body unspecified. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-36