aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtes2006-02-27 00:46:25 +0000
committerLudovic Courtes2006-02-27 00:46:25 +0000
commitb545d9c6e347dfc8c7e3fa0c7cd3c90485644240 (patch)
tree08bc6c0701a8a00cf260928bd719c306b4ed9b67
parent716e3a477583ff7680b5188a60395fd2e4b150c3 (diff)
parenta0d8397787ffcaaec7c885542fb5e7f3de3fdc9a (diff)
downloadskribilo-b545d9c6e347dfc8c7e3fa0c7cd3c90485644240.tar.gz
skribilo-b545d9c6e347dfc8c7e3fa0c7cd3c90485644240.tar.lz
skribilo-b545d9c6e347dfc8c7e3fa0c7cd3c90485644240.zip
Made `make-string-replace' faster.
Patches applied: * skribilo--devel--1.2 (patch 34-35) - Merge from lcourtes@laas.fr--2004-libre - Made `make-string-replace' faster. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-55
-rw-r--r--ChangeLog89
-rw-r--r--src/guile/skribilo/runtime.scm24
2 files changed, 106 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index e410a82..083fff6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,95 @@
# arch-tag: automatic-ChangeLog--lcourtes@laas.fr--2005-mobile/skribilo--devel--1.2
#
+2006-02-25 13:02:20 GMT Ludovic Courtes <ludovic.courtes@laas.fr> patch-35
+
+ Summary:
+ Made `make-string-replace' faster.
+ Revision:
+ skribilo--devel--1.2--patch-35
+
+ * src/guile/skribilo/runtime.scm (%make-general-string-replace): Use a
+ hash table rather than a list.
+
+ modified files:
+ ChangeLog src/guile/skribilo/runtime.scm
+
+
+2006-02-21 20:55:41 GMT Ludovic Courtes <ludovic.courtes@laas.fr> patch-34
+
+ Summary:
+ Merge from lcourtes@laas.fr--2004-libre
+ Revision:
+ skribilo--devel--1.2--patch-34
+
+ Patches applied:
+
+ * lcourtes@laas.fr--2004-libre/skribilo--devel--1.2 (patch 41-54)
+
+ - Merge from lcourtes@laas.fr--2005-mobile
+ - More Skribe compatibility fixes (more exported bindings).
+ - Implemented `lout-illustration' for non-Lout engines.
+ - Created the `(skribilo utils files)' module.
+ - Skribe reader: consider square brackets as delimiters.
+ - `skribilo': do not catch all exceptions, let a stack trace be output
+ intead.
+ - Added the equation formatting package (unfinished, undocumented).
+ - `eq' package: added the `script' markup.
+ - Implemented `when-engine-is-loaded'.
+ - Fixes for `when-engine-is-loaded'.
+ - `slide' and `eq': moved engine-specific code in separate modules.
+ - Lout engine: fixed use of `@Sym' so that it works fine within `@Eq'.
+ - `eq': Added `eq:in', `eq:notin' and their Lout writers.
+ - `eq': added the `apply' markup.
+
+ new files:
+ src/guile/skribilo/package/eq.scm
+ src/guile/skribilo/package/eq/.arch-ids/=id
+ src/guile/skribilo/package/eq/Makefile.am
+ src/guile/skribilo/package/eq/lout.scm
+ src/guile/skribilo/package/slide/.arch-ids/=id
+ src/guile/skribilo/package/slide/Makefile.am
+ src/guile/skribilo/package/slide/html.scm
+ src/guile/skribilo/package/slide/latex.scm
+ src/guile/skribilo/package/slide/lout.scm
+ src/guile/skribilo/utils/files.scm
+
+ modified files:
+ ChangeLog NEWS configure.ac src/guile/skribilo/color.scm
+ src/guile/skribilo/engine.scm
+ src/guile/skribilo/engine/html.scm
+ src/guile/skribilo/engine/lout.scm
+ src/guile/skribilo/module.scm
+ src/guile/skribilo/package/Makefile.am
+ src/guile/skribilo/package/slide.scm
+ src/guile/skribilo/reader/skribe.scm
+ src/guile/skribilo/runtime.scm
+ src/guile/skribilo/utils/Makefile.am
+ src/guile/skribilo/utils/compat.scm src/skribilo.in
+
+ new directories:
+ src/guile/skribilo/package/eq
+ src/guile/skribilo/package/eq/.arch-ids
+ src/guile/skribilo/package/slide
+ src/guile/skribilo/package/slide/.arch-ids
+
+ new patches:
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-41
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-42
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-43
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-44
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-45
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-46
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-47
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-48
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-49
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-50
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-51
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-52
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-53
+ lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--patch-54
+
+
2006-02-10 17:19:34 GMT Ludovic Courtes <ludovic.courtes@laas.fr> patch-33
Summary:
diff --git a/src/guile/skribilo/runtime.scm b/src/guile/skribilo/runtime.scm
index bd8497f..da5c525 100644
--- a/src/guile/skribilo/runtime.scm
+++ b/src/guile/skribilo/runtime.scm
@@ -180,13 +180,23 @@
(define (%make-general-string-replace lst)
;; The general version
- (lambda (str)
- (let ((out (open-output-string)))
- (string-for-each (lambda (ch)
- (let ((res (assq ch lst)))
- (display (if res (cadr res) ch) out)))
- str)
- (get-output-string out))))
+ (let ((chars (make-hash-table)))
+
+ ;; Setup a hash table equivalent to LST.
+ (for-each (lambda (chr)
+ (hashq-set! chars (car chr) (cadr chr)))
+ lst)
+
+ ;; Help the GC.
+ (set! lst #f)
+
+ (lambda (str)
+ (let ((out (open-output-string)))
+ (string-for-each (lambda (ch)
+ (let ((res (hashq-ref chars ch #f)))
+ (display (if res res ch) out)))
+ str)
+ (get-output-string out)))))
(define string->html
(%make-general-string-replace '((#\" "&quot;") (#\& "&amp;") (#\< "&lt;")