diff options
author | Dan Leslie <dan@ironoxide.ca> | 2015-10-03 12:39:05 -0700 |
---|---|---|
committer | Dan Leslie <dan@ironoxide.ca> | 2015-10-03 12:44:04 -0700 |
commit | 57d6934beb882c6dcd7119f7a2ebe04ab977b9c5 (patch) | |
tree | 7da2cbe82250c6daa5012b47b96883e27fa5d351 /elisp | |
parent | d109d97c262e1e20de62bfdd74f421f911494405 (diff) | |
download | geiser-guile-57d6934beb882c6dcd7119f7a2ebe04ab977b9c5.tar.gz geiser-guile-57d6934beb882c6dcd7119f7a2ebe04ab977b9c5.tar.bz2 |
Converts toplevel methods to prefixed methods
This seems to improve speed; in a large environment I witnessed a
regular 100ms increase in speed for autodoc.
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-chicken.el | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/elisp/geiser-chicken.el b/elisp/geiser-chicken.el index fc28e63..d3e4b4e 100644 --- a/elisp/geiser-chicken.el +++ b/elisp/geiser-chicken.el @@ -141,20 +141,17 @@ This function uses `geiser-chicken-init-file' if it exists." ;;; Evaluation support: (defun geiser-chicken--geiser-procedure (proc &rest args) - (let ((fmt - (case proc - ((eval compile) - (let ((form (mapconcat 'identity (cdr args) " "))) - (format ",geiser-eval %s %s" (or (car args) "#f") form))) - ((load-file compile-file) - (format ",geiser-load-file %s" (car args))) - ((no-values) - ",geiser-no-values") - (t - (let ((form (mapconcat 'identity args " "))) - (format "(geiser-%s %s)" proc form)))))) - ;;(message fmt) - fmt)) + (case proc + ((eval compile) + (let ((form (mapconcat 'identity (cdr args) " "))) + (format "(geiser-eval %s '%s)" (or (car args) "#f") form))) + ((load-file compile-file) + (format "(geiser-load-file %s)" (car args))) + ((no-values) + "(geiser-no-values)") + (t + (let ((form (mapconcat 'identity args " "))) + (format "(geiser-%s %s)" proc form))))) (defconst geiser-chicken--module-re "( *module +\\(([^)]+)\\|[^ ]+\\)\\|( *define-library +\\(([^)]+)\\|[^ ]+\\)") @@ -195,14 +192,11 @@ This function uses `geiser-chicken-init-file' if it exists." (apply 'max (append - (list (save-excursion (beginning-of-line) (point)) - (save-excursion (skip-syntax-backward "^'-()>" - distance-to-beginning-of-line) + (list (save-excursion (skip-syntax-backward "^'(>" distance-to-beginning-of-line) (point))) (mapcar (lambda (match-string) - (save-excursion (skip-chars-backward match-string - distance-to-beginning-of-line) + (save-excursion (skip-chars-backward match-string distance-to-beginning-of-line) (point))) geiser-chicken-prefix-delimiters))))) @@ -297,7 +291,7 @@ This function uses `geiser-chicken-init-file' if it exists." (let ((load-sequence (cond (force-load - (format "(load \"%s\")\n" source)) + (format "(load \"%s\")\n(import geiser)\n" source)) ((file-exists-p target) (format "%s(load \"%s\")(import geiser)%s\n" suppression-prefix target suppression-postfix)) |