mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-15 18:20:42 +02:00
use #:keywords in module/*.scm, not :keywords
* module/system/base/syntax.scm (keywords): Don't enable :keywords, it breaks code that may assume that ':foo is a symbol, like boot-9. * module/*.scm: Don't use :keywords, use #:keywords. The user can decide if she wants #:keywords in their .guile, and :keywords might make us compile modules differently.
This commit is contained in:
parent
13906f976e
commit
1a1a10d3a5
29 changed files with 191 additions and 193 deletions
|
@ -2752,6 +2752,11 @@ module '(ice-9 q) '(make-q q-length))}."
|
|||
;; Return a list of expressions that evaluate to the appropriate
|
||||
;; arguments for resolve-interface according to SPEC.
|
||||
|
||||
(eval-case
|
||||
((compile-toplevel)
|
||||
(if (memq 'prefix (read-options))
|
||||
(error "boot-9 must be compiled with #:kw, not :kw"))))
|
||||
|
||||
(define (compile-interface-spec spec)
|
||||
(define (make-keyarg sym key quote?)
|
||||
(cond ((or (memq sym spec)
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (lang elisp spec)
|
||||
:use-module (system lang language)
|
||||
:export (elisp))
|
||||
#:use-module (system lang language)
|
||||
#:export (elisp))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
|
@ -20,13 +20,13 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (language ghil spec)
|
||||
:use-module (system base language)
|
||||
:export (ghil))
|
||||
#:use-module (system base language)
|
||||
#:export (ghil))
|
||||
|
||||
(define-language ghil
|
||||
:title "Guile High Intermediate Language (GHIL)"
|
||||
:version "0.3"
|
||||
:reader read
|
||||
:printer write
|
||||
;; :environment (make-vmodule)
|
||||
#:title "Guile High Intermediate Language (GHIL)"
|
||||
#:version "0.3"
|
||||
#:reader read
|
||||
#:printer write
|
||||
;; #:environment (make-vmodule)
|
||||
)
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (language r5rs expand)
|
||||
:export (expand void
|
||||
#:export (expand void
|
||||
identifier? free-identifier=? bound-identifier=?
|
||||
generate-temporaries datum->syntax-object syntax-object->datum))
|
||||
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (language r5rs spec)
|
||||
:use-module (system base language)
|
||||
:use-module (language r5rs expand)
|
||||
:use-module (language r5rs translate)
|
||||
:export (r5rs))
|
||||
#:use-module (system base language)
|
||||
#:use-module (language r5rs expand)
|
||||
#:use-module (language r5rs translate)
|
||||
#:export (r5rs))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -54,11 +54,11 @@
|
|||
;;;
|
||||
|
||||
(define-language r5rs
|
||||
:title "Standard Scheme (R5RS + syntax-case)"
|
||||
:version "0.3"
|
||||
:reader read
|
||||
:expander expand
|
||||
:translator translate
|
||||
:printer write
|
||||
;; :environment (global-ref 'Language::R5RS::core)
|
||||
#:title "Standard Scheme (R5RS + syntax-case)"
|
||||
#:version "0.3"
|
||||
#:reader read
|
||||
#:expander expand
|
||||
#:translator translate
|
||||
#:printer write
|
||||
;; #:environment (global-ref 'Language::R5RS::core)
|
||||
)
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (language scheme spec)
|
||||
:use-module (language scheme translate)
|
||||
:use-module (system base language)
|
||||
:export (scheme))
|
||||
#:use-module (language scheme translate)
|
||||
#:use-module (system base language)
|
||||
#:export (scheme))
|
||||
|
||||
;;;
|
||||
;;; Reader
|
||||
|
@ -41,10 +41,10 @@
|
|||
;;;
|
||||
|
||||
(define-language scheme
|
||||
:title "Guile Scheme"
|
||||
:version "0.5"
|
||||
:reader read
|
||||
:read-file read-file
|
||||
:translator translate
|
||||
:printer write
|
||||
#:title "Guile Scheme"
|
||||
#:version "0.5"
|
||||
#:reader read
|
||||
#:read-file read-file
|
||||
#:translator translate
|
||||
#:printer write
|
||||
)
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (language scheme translate)
|
||||
:use-module (system base pmatch)
|
||||
:use-module (system base language)
|
||||
:use-module (system il ghil)
|
||||
:use-module (system il inline)
|
||||
:use-module (ice-9 receive)
|
||||
:use-module (srfi srfi-39)
|
||||
:use-module ((system base compile) :select (syntax-error))
|
||||
:export (translate))
|
||||
#:use-module (system base pmatch)
|
||||
#:use-module (system base language)
|
||||
#:use-module (system il ghil)
|
||||
#:use-module (system il inline)
|
||||
#:use-module (ice-9 receive)
|
||||
#:use-module (srfi srfi-39)
|
||||
#:use-module ((system base compile) #:select (syntax-error))
|
||||
#:export (translate))
|
||||
|
||||
|
||||
(define (translate x e)
|
||||
|
|
|
@ -20,15 +20,15 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system base compile)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system base language)
|
||||
:use-module (system il compile)
|
||||
:use-module (system il glil)
|
||||
:use-module (system vm objcode)
|
||||
:use-module (system vm vm) ;; for compile-time evaluation
|
||||
:use-module (system vm assemble)
|
||||
:use-module (ice-9 regex)
|
||||
:export (syntax-error compile-file load-source-file load-file
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system base language)
|
||||
#:use-module (system il compile)
|
||||
#:use-module (system il glil)
|
||||
#:use-module (system vm objcode)
|
||||
#:use-module (system vm vm) ;; for compile-time evaluation
|
||||
#:use-module (system vm assemble)
|
||||
#:use-module (ice-9 regex)
|
||||
#:export (syntax-error compile-file load-source-file load-file
|
||||
compiled-file-name
|
||||
scheme-eval read-file-in compile-in
|
||||
load/compile))
|
||||
|
@ -82,7 +82,7 @@
|
|||
(let* ((source (read-file-in file scheme))
|
||||
(objcode (apply compile-in source (current-module)
|
||||
scheme opts)))
|
||||
(if (memq :c opts)
|
||||
(if (memq #:c opts)
|
||||
(pprint-glil objcode port)
|
||||
(uniform-vector-write (objcode->u8vector objcode) port)))))
|
||||
(format #t "wrote `~A'\n" comp))))
|
||||
|
@ -136,13 +136,13 @@
|
|||
(lambda ()
|
||||
;; expand
|
||||
(set! x ((language-expander lang) x e))
|
||||
(if (memq :e opts) (throw 'result x))
|
||||
(if (memq #:e opts) (throw 'result x))
|
||||
;; translate
|
||||
(set! x ((language-translator lang) x e))
|
||||
(if (memq :t opts) (throw 'result x))
|
||||
(if (memq #:t opts) (throw 'result x))
|
||||
;; compile
|
||||
(set! x (apply compile x e opts))
|
||||
(if (memq :c opts) (throw 'result x))
|
||||
(if (memq #:c opts) (throw 'result x))
|
||||
;; assemble
|
||||
(apply assemble x e opts))
|
||||
(lambda (key val) val)))))
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system base language)
|
||||
:use-syntax (system base syntax)
|
||||
:export (define-language lookup-language make-language
|
||||
#:use-syntax (system base syntax)
|
||||
#:export (define-language lookup-language make-language
|
||||
language-name language-title language-version language-reader
|
||||
language-printer language-read-file language-expander
|
||||
language-translator language-evaluator language-environment))
|
||||
|
@ -39,7 +39,7 @@
|
|||
))
|
||||
|
||||
(define-macro (define-language name . spec)
|
||||
`(define ,name (make-language :name ',name ,@spec)))
|
||||
`(define ,name (make-language #:name ',name ,@spec)))
|
||||
|
||||
(define (lookup-language name)
|
||||
(let ((m (resolve-module `(language ,name spec))))
|
||||
|
|
|
@ -20,17 +20,10 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system base syntax)
|
||||
:export (%compute-initargs)
|
||||
:export-syntax (define-type define-record record-case))
|
||||
#:export (%compute-initargs)
|
||||
#:export-syntax (define-type define-record record-case))
|
||||
(export-syntax |) ;; emacs doesn't like the |
|
||||
|
||||
|
||||
;;;
|
||||
;;; Keywords by `:KEYWORD
|
||||
;;;
|
||||
|
||||
(read-set! keywords 'prefix)
|
||||
|
||||
|
||||
;;;
|
||||
;;; Type
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system il compile)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system il glil)
|
||||
:use-module (system il ghil)
|
||||
:use-module (ice-9 common-list)
|
||||
:export (compile))
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system il glil)
|
||||
#:use-module (system il ghil)
|
||||
#:use-module (ice-9 common-list)
|
||||
#:export (compile))
|
||||
|
||||
(define (compile x e . opts)
|
||||
(if (memq :O opts) (set! x (optimize x)))
|
||||
(if (memq #:O opts) (set! x (optimize x)))
|
||||
(codegen x))
|
||||
|
||||
|
||||
|
@ -330,10 +330,10 @@
|
|||
;; compile body
|
||||
(comp body #t #f)
|
||||
;; create GLIL
|
||||
(let ((vars (make-glil-vars :nargs (length vars)
|
||||
:nrest (if rest 1 0)
|
||||
:nlocs (length locs)
|
||||
:nexts (length exts))))
|
||||
(let ((vars (make-glil-vars #:nargs (length vars)
|
||||
#:nrest (if rest 1 0)
|
||||
#:nlocs (length locs)
|
||||
#:nexts (length exts))))
|
||||
(make-glil-asm vars meta (reverse! stack))))))))
|
||||
|
||||
(define (finalize-index! list)
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system il ghil)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (ice-9 regex)
|
||||
:export
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (ice-9 regex)
|
||||
#:export
|
||||
(<ghil-void> make-ghil-void ghil-void?
|
||||
ghil-void-env ghil-void-loc
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system il glil)
|
||||
:use-syntax (system base syntax)
|
||||
:export
|
||||
#:use-syntax (system base syntax)
|
||||
#:export
|
||||
(pprint-glil
|
||||
<glil-vars> make-glil-vars
|
||||
glil-vars-nargs glil-vars-nrest glil-vars-nlocs glil-vars-nexts
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system il inline)
|
||||
:use-module (system base syntax)
|
||||
:use-module (system il ghil)
|
||||
:use-module (srfi srfi-16)
|
||||
:export (*inline-table* define-inline try-inline try-inline-with-env))
|
||||
#:use-module (system base syntax)
|
||||
#:use-module (system il ghil)
|
||||
#:use-module (srfi srfi-16)
|
||||
#:export (*inline-table* define-inline try-inline try-inline-with-env))
|
||||
|
||||
(define *inline-table* '())
|
||||
|
||||
|
|
|
@ -20,24 +20,24 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system repl command)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system base pmatch)
|
||||
:use-module (system base compile)
|
||||
:use-module (system repl common)
|
||||
:use-module (system vm objcode)
|
||||
:use-module (system vm program)
|
||||
:use-module (system vm vm)
|
||||
:autoload (system base language) (lookup-language)
|
||||
:autoload (system il glil) (pprint-glil)
|
||||
:autoload (system vm disasm) (disassemble-program disassemble-objcode)
|
||||
:autoload (system vm debug) (vm-debugger vm-backtrace)
|
||||
:autoload (system vm trace) (vm-trace vm-trace-on vm-trace-off)
|
||||
:autoload (system vm profile) (vm-profile)
|
||||
:use-module (ice-9 format)
|
||||
:use-module (ice-9 session)
|
||||
:use-module (ice-9 documentation)
|
||||
:use-module (ice-9 and-let-star)
|
||||
:export (meta-command))
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system base pmatch)
|
||||
#:use-module (system base compile)
|
||||
#:use-module (system repl common)
|
||||
#:use-module (system vm objcode)
|
||||
#:use-module (system vm program)
|
||||
#:use-module (system vm vm)
|
||||
#:autoload (system base language) (lookup-language)
|
||||
#:autoload (system il glil) (pprint-glil)
|
||||
#:autoload (system vm disasm) (disassemble-program disassemble-objcode)
|
||||
#:autoload (system vm debug) (vm-debugger vm-backtrace)
|
||||
#:autoload (system vm trace) (vm-trace vm-trace-on vm-trace-off)
|
||||
#:autoload (system vm profile) (vm-profile)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 session)
|
||||
#:use-module (ice-9 documentation)
|
||||
#:use-module (ice-9 and-let-star)
|
||||
#:export (meta-command))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -122,7 +122,7 @@
|
|||
(not (eq? (string-ref (symbol->string (car args)) 0) #\-)))
|
||||
(let ((c (lookup-command key)))
|
||||
(if c
|
||||
(cond ((memq :h opts) (display-command c))
|
||||
(cond ((memq #:h opts) (display-command c))
|
||||
(else (apply (command-procedure c)
|
||||
repl (append! args (reverse! opts)))))
|
||||
(user-error "Unknown meta command: ~A" key))))))))
|
||||
|
@ -229,7 +229,7 @@ Load a file in the current module.
|
|||
|
||||
-f Load source file (see `compile')"
|
||||
(let* ((file (->string file))
|
||||
(objcode (if (memq :f opts)
|
||||
(objcode (if (memq #:f opts)
|
||||
(apply load-source-file file opts)
|
||||
(apply load-file file opts))))
|
||||
(vm-load (repl-vm repl) objcode)))
|
||||
|
@ -267,8 +267,8 @@ Generate compiled code.
|
|||
-O Enable optimization
|
||||
-D Add debug information"
|
||||
(let ((x (apply repl-compile repl form opts)))
|
||||
(cond ((or (memq :e opts) (memq :t opts)) (puts x))
|
||||
((memq :c opts) (pprint-glil x))
|
||||
(cond ((or (memq #:e opts) (memq #:t opts)) (puts x))
|
||||
((memq #:c opts) (pprint-glil x))
|
||||
(else (disassemble-objcode x)))))
|
||||
|
||||
(define guile:compile-file compile-file)
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system repl common)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system base compile)
|
||||
:use-module (system base language)
|
||||
:use-module (system vm vm)
|
||||
:export (<repl> make-repl repl-vm repl-language repl-options
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system base compile)
|
||||
#:use-module (system base language)
|
||||
#:use-module (system vm vm)
|
||||
#:export (<repl> make-repl repl-vm repl-language repl-options
|
||||
repl-tm-stats repl-gc-stats repl-vm-stats
|
||||
repl-welcome repl-prompt repl-read repl-compile repl-eval
|
||||
repl-print repl-option-ref repl-option-set!
|
||||
|
@ -42,12 +42,12 @@
|
|||
|
||||
(define %make-repl make-repl)
|
||||
(define (make-repl lang)
|
||||
(%make-repl :vm (the-vm)
|
||||
:language (lookup-language lang)
|
||||
:options repl-default-options
|
||||
:tm-stats (times)
|
||||
:gc-stats (gc-stats)
|
||||
:vm-stats (vm-stats (the-vm))))
|
||||
(%make-repl #:vm (the-vm)
|
||||
#:language (lookup-language lang)
|
||||
#:options repl-default-options
|
||||
#:tm-stats (times)
|
||||
#:gc-stats (gc-stats)
|
||||
#:vm-stats (vm-stats (the-vm))))
|
||||
|
||||
(define (repl-welcome repl)
|
||||
(let ((language (repl-language repl)))
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system repl describe)
|
||||
:use-module (oop goops)
|
||||
:use-module (ice-9 regex)
|
||||
:use-module (ice-9 format)
|
||||
:use-module (ice-9 and-let-star)
|
||||
:export (describe))
|
||||
#:use-module (oop goops)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 and-let-star)
|
||||
#:export (describe))
|
||||
|
||||
(define-method (describe (symbol <symbol>))
|
||||
(format #t "`~s' is " symbol)
|
||||
|
|
|
@ -20,16 +20,16 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system repl repl)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system base pmatch)
|
||||
:use-module (system base compile)
|
||||
:use-module (system base language)
|
||||
:use-module (system repl common)
|
||||
:use-module (system repl command)
|
||||
:use-module (system vm vm)
|
||||
:use-module (system vm debug)
|
||||
:use-module (ice-9 rdelim)
|
||||
:export (start-repl call-with-backtrace))
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system base pmatch)
|
||||
#:use-module (system base compile)
|
||||
#:use-module (system base language)
|
||||
#:use-module (system repl common)
|
||||
#:use-module (system repl command)
|
||||
#:use-module (system vm vm)
|
||||
#:use-module (system vm debug)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:export (start-repl call-with-backtrace))
|
||||
|
||||
(define meta-command-token (cons 'meta 'command))
|
||||
|
||||
|
|
|
@ -20,17 +20,17 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm assemble)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system il glil)
|
||||
:use-module (system vm instruction)
|
||||
:use-module (system vm objcode)
|
||||
:use-module ((system vm program) :select (make-binding))
|
||||
:use-module (system vm conv)
|
||||
:use-module (ice-9 regex)
|
||||
:use-module (ice-9 common-list)
|
||||
:use-module (srfi srfi-4)
|
||||
:use-module ((srfi srfi-1) :select (append-map))
|
||||
:export (preprocess codegen assemble))
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system il glil)
|
||||
#:use-module (system vm instruction)
|
||||
#:use-module (system vm objcode)
|
||||
#:use-module ((system vm program) #:select (make-binding))
|
||||
#:use-module (system vm conv)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (ice-9 common-list)
|
||||
#:use-module (srfi srfi-4)
|
||||
#:use-module ((srfi srfi-1) #:select (append-map))
|
||||
#:export (preprocess codegen assemble))
|
||||
|
||||
(define (assemble glil env . opts)
|
||||
(codegen (preprocess glil #f) #t))
|
||||
|
@ -55,9 +55,9 @@
|
|||
(define (preprocess x e)
|
||||
(record-case x
|
||||
((<glil-asm> vars meta body)
|
||||
(let* ((venv (make-venv :parent e :nexts (glil-vars-nexts vars) :closure? #f))
|
||||
(let* ((venv (make-venv #:parent e #:nexts (glil-vars-nexts vars) #:closure? #f))
|
||||
(body (map (lambda (x) (preprocess x venv)) body)))
|
||||
(make-vm-asm :venv venv :glil x :body body)))
|
||||
(make-vm-asm #:venv venv #:glil x #:body body)))
|
||||
((<glil-external> op depth index)
|
||||
(do ((d depth (- d 1))
|
||||
(e e (venv-parent e)))
|
||||
|
@ -86,9 +86,9 @@
|
|||
(push (code->bytes code) stack))
|
||||
(dump-object! push-code! `(,bindings ,sources ,@tail))
|
||||
(push-code! '(return))
|
||||
(make-bytespec :vars (make-glil-vars 0 0 0 0)
|
||||
:bytes (stack->bytes (reverse! stack) '())
|
||||
:meta #f :objs #f :closure? #f))))
|
||||
(make-bytespec #:vars (make-glil-vars 0 0 0 0)
|
||||
#:bytes (stack->bytes (reverse! stack) '())
|
||||
#:meta #f #:objs #f #:closure? #f))))
|
||||
|
||||
(define (codegen glil toplevel)
|
||||
(record-case glil
|
||||
|
@ -171,12 +171,12 @@
|
|||
((ref set)
|
||||
(cond
|
||||
(toplevel
|
||||
(push-object! (make-vlink-now :name name))
|
||||
(push-object! (make-vlink-now #:name name))
|
||||
(push-code! (case op
|
||||
((ref) '(variable-ref))
|
||||
((set) '(variable-set)))))
|
||||
(else
|
||||
(let* ((var (make-vlink-later :module module :name name))
|
||||
(let* ((var (make-vlink-later #:module module #:name name))
|
||||
(i (cond ((object-assoc var object-alist) => cdr)
|
||||
(else
|
||||
(let ((i (length object-alist)))
|
||||
|
@ -186,7 +186,7 @@
|
|||
((ref) `(late-variable-ref ,i))
|
||||
((set) `(late-variable-set ,i))))))))
|
||||
((define)
|
||||
(push-object! (make-vdefine :module module :name name))
|
||||
(push-object! (make-vdefine #:module module #:name name))
|
||||
(push-code! '(variable-set)))
|
||||
(else
|
||||
(error "unknown toplevel var kind" op name))))
|
||||
|
@ -214,13 +214,13 @@
|
|||
(let ((bytes (stack->bytes (reverse! stack) label-alist)))
|
||||
(if toplevel
|
||||
(bytecode->objcode bytes (glil-vars-nlocs vars) (glil-vars-nexts vars))
|
||||
(make-bytespec :vars vars :bytes bytes
|
||||
:meta (make-meta (reverse! binding-alist)
|
||||
(make-bytespec #:vars vars #:bytes bytes
|
||||
#:meta (make-meta (reverse! binding-alist)
|
||||
(reverse! source-alist)
|
||||
meta)
|
||||
:objs (let ((objs (map car (reverse! object-alist))))
|
||||
#:objs (let ((objs (map car (reverse! object-alist))))
|
||||
(if (null? objs) #f (list->vector objs)))
|
||||
:closure? (venv-closure? venv))))))))))
|
||||
#:closure? (venv-closure? venv))))))))))
|
||||
|
||||
(define (object-assoc x alist)
|
||||
(record-case x
|
||||
|
|
|
@ -20,12 +20,12 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm conv)
|
||||
:use-module (system vm instruction)
|
||||
:use-module (system base pmatch)
|
||||
:use-module (ice-9 regex)
|
||||
:use-module (srfi srfi-4)
|
||||
:use-module (srfi srfi-1)
|
||||
:export (code-pack code-unpack object->code code->object code->bytes
|
||||
#:use-module (system vm instruction)
|
||||
#:use-module (system base pmatch)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (srfi srfi-4)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (code-pack code-unpack object->code code->object code->bytes
|
||||
make-byte-decoder))
|
||||
|
||||
;;;
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm debug)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system vm vm)
|
||||
:use-module (system vm frame)
|
||||
:use-module (ice-9 format)
|
||||
:export (vm-debugger vm-backtrace))
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system vm vm)
|
||||
#:use-module (system vm frame)
|
||||
#:use-module (ice-9 format)
|
||||
#:export (vm-debugger vm-backtrace))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -38,7 +38,7 @@
|
|||
(if (null? chain)
|
||||
(display "Nothing to debug\n")
|
||||
(debugger-repl (make-debugger
|
||||
:vm vm :chain chain :index (length chain))))))
|
||||
#:vm vm #:chain chain #:index (length chain))))))
|
||||
|
||||
(define (debugger-repl db)
|
||||
(let loop ()
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm disasm)
|
||||
:use-module (system base pmatch)
|
||||
:use-module (system vm objcode)
|
||||
:use-module (system vm program)
|
||||
:use-module (system vm conv)
|
||||
:use-module (ice-9 regex)
|
||||
:use-module (ice-9 format)
|
||||
:use-module (ice-9 receive)
|
||||
:export (disassemble-objcode disassemble-program disassemble-bytecode))
|
||||
#:use-module (system base pmatch)
|
||||
#:use-module (system vm objcode)
|
||||
#:use-module (system vm program)
|
||||
#:use-module (system vm conv)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 receive)
|
||||
#:export (disassemble-objcode disassemble-program disassemble-bytecode))
|
||||
|
||||
(define (disassemble-objcode objcode . opts)
|
||||
(let* ((prog (objcode->program objcode))
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm frame)
|
||||
:use-module (system vm program)
|
||||
:use-module (system vm instruction)
|
||||
:use-module ((srfi srfi-1) :select (fold))
|
||||
:export (frame-number frame-address
|
||||
#:use-module (system vm program)
|
||||
#:use-module (system vm instruction)
|
||||
#:use-module ((srfi srfi-1) #:select (fold))
|
||||
#:export (frame-number frame-address
|
||||
make-frame-chain
|
||||
print-frame print-frame-chain-as-backtrace
|
||||
frame-arguments frame-local-variables frame-external-variables
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm instruction)
|
||||
:export (instruction-list
|
||||
#:export (instruction-list
|
||||
instruction? instruction-length
|
||||
instruction-pops instruction-pushes
|
||||
instruction->opcode opcode->instruction))
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm objcode)
|
||||
:export (objcode->u8vector objcode? objcode->program bytecode->objcode
|
||||
#:export (objcode->u8vector objcode? objcode->program bytecode->objcode
|
||||
load-objcode))
|
||||
|
||||
(dynamic-call "scm_init_objcodes" (dynamic-link "libguile"))
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm profile)
|
||||
:use-module (system vm vm)
|
||||
:use-module (ice-9 format)
|
||||
:export (vm-profile))
|
||||
#:use-module (system vm vm)
|
||||
#:use-module (ice-9 format)
|
||||
#:export (vm-profile))
|
||||
|
||||
(define (vm-profile vm objcode . opts)
|
||||
(let ((flag (vm-option vm 'debug)))
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm program)
|
||||
:export (arity:nargs arity:nrest arity:nlocs arity:nexts
|
||||
#:export (arity:nargs arity:nrest arity:nlocs arity:nexts
|
||||
make-binding binding:name binding:extp binding:index
|
||||
source:addr source:line source:column source:file
|
||||
program-bindings program-sources
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm trace)
|
||||
:use-syntax (system base syntax)
|
||||
:use-module (system vm vm)
|
||||
:use-module (system vm frame)
|
||||
:use-module (ice-9 format)
|
||||
:export (vm-trace vm-trace-on vm-trace-off))
|
||||
#:use-syntax (system base syntax)
|
||||
#:use-module (system vm vm)
|
||||
#:use-module (system vm frame)
|
||||
#:use-module (ice-9 format)
|
||||
#:export (vm-trace vm-trace-on vm-trace-off))
|
||||
|
||||
(define (vm-trace vm objcode . opts)
|
||||
(dynamic-wind
|
||||
|
@ -34,13 +34,13 @@
|
|||
|
||||
(define (vm-trace-on vm . opts)
|
||||
(set-vm-option! vm 'trace-first #t)
|
||||
(if (memq :b opts) (add-hook! (vm-next-hook vm) trace-next))
|
||||
(if (memq #:b opts) (add-hook! (vm-next-hook vm) trace-next))
|
||||
(set-vm-option! vm 'trace-options opts)
|
||||
(add-hook! (vm-apply-hook vm) trace-apply)
|
||||
(add-hook! (vm-return-hook vm) trace-return))
|
||||
|
||||
(define (vm-trace-off vm . opts)
|
||||
(if (memq :b opts) (remove-hook! (vm-next-hook vm) trace-next))
|
||||
(if (memq #:b opts) (remove-hook! (vm-next-hook vm) trace-next))
|
||||
(remove-hook! (vm-apply-hook vm) trace-apply)
|
||||
(remove-hook! (vm-return-hook vm) trace-return))
|
||||
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
;;; Code:
|
||||
|
||||
(define-module (system vm vm)
|
||||
:use-module (system vm frame)
|
||||
:use-module (system vm objcode)
|
||||
:export (vm? the-vm make-vm vm-version
|
||||
#:use-module (system vm frame)
|
||||
#:use-module (system vm objcode)
|
||||
#:export (vm? the-vm make-vm vm-version
|
||||
vm:ip vm:sp vm:fp vm:last-ip
|
||||
|
||||
vm-load vm-return-value
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue