From b34e25359aad4a08e15de8c5a150ebcff55ff7c1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sun, 27 Jan 2013 10:10:21 -0500 Subject: [PATCH] Add 'for-humans?' flag to specifications. * module/system/base/language.scm (): Add 'for-humans?' field, and export new 'language-for-humans?' predicate. * doc/ref/compiler.texi (Compiler Tower): Document. * module/language/assembly/spec.scm, module/language/bytecode/spec.scm, module/language/glil/spec.scm, module/language/objcode/spec.scm, module/language/tree-il/spec.scm, module/language/value/spec.scm: Mark these languages as 'for-humans?'. --- doc/ref/compiler.texi | 3 ++- module/language/assembly/spec.scm | 3 ++- module/language/bytecode/spec.scm | 3 ++- module/language/glil/spec.scm | 6 ++++-- module/language/objcode/spec.scm | 3 ++- module/language/tree-il/spec.scm | 3 ++- module/language/value/spec.scm | 3 ++- module/system/base/language.scm | 4 +++- 8 files changed, 19 insertions(+), 9 deletions(-) diff --git a/doc/ref/compiler.texi b/doc/ref/compiler.texi index a88942d02..0fe75e3e3 100644 --- a/doc/ref/compiler.texi +++ b/doc/ref/compiler.texi @@ -55,7 +55,8 @@ They are registered with the @code{define-language} form. @deffn {Scheme Syntax} define-language @ name title reader printer @ [parser=#f] [compilers='()] [decompilers='()] [evaluator=#f] @ -[joiner=#f] [make-default-environment=make-fresh-user-module] +[joiner=#f] [for-humans?=#t] @ +[make-default-environment=make-fresh-user-module] Define a language. This syntax defines a @code{#} object, bound to @var{name} diff --git a/module/language/assembly/spec.scm b/module/language/assembly/spec.scm index 01a55c4e1..0a497e4cf 100644 --- a/module/language/assembly/spec.scm +++ b/module/language/assembly/spec.scm @@ -1,6 +1,6 @@ ;;; Guile Virtual Machine Assembly -;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2009, 2010, 2013 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -31,4 +31,5 @@ #:parser read ;; fixme: make a verifier? #:compilers `((bytecode . ,compile-bytecode)) #:decompilers `((bytecode . ,decompile-bytecode)) + #:for-humans? #f ) diff --git a/module/language/bytecode/spec.scm b/module/language/bytecode/spec.scm index 57ccd7185..1d7e79b57 100644 --- a/module/language/bytecode/spec.scm +++ b/module/language/bytecode/spec.scm @@ -1,6 +1,6 @@ ;;; Guile Lowlevel Intermediate Language -;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2009, 2010, 2013 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -35,4 +35,5 @@ #:printer write #:compilers `((objcode . ,compile-objcode)) #:decompilers `((objcode . ,decompile-objcode)) + #:for-humans? #f ) diff --git a/module/language/glil/spec.scm b/module/language/glil/spec.scm index a8164e5e4..3679e2166 100644 --- a/module/language/glil/spec.scm +++ b/module/language/glil/spec.scm @@ -1,6 +1,6 @@ ;;; Guile Lowlevel Intermediate Language -;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2009, 2010, 2013 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -37,4 +37,6 @@ #:printer write-glil #:parser parse-glil #:compilers `((assembly . ,compile-asm)) - #:decompilers `((assembly . ,decompile-assembly))) + #:decompilers `((assembly . ,decompile-assembly)) + #:for-humans? #f + ) diff --git a/module/language/objcode/spec.scm b/module/language/objcode/spec.scm index 7cc85b7f6..bf0649a54 100644 --- a/module/language/objcode/spec.scm +++ b/module/language/objcode/spec.scm @@ -1,6 +1,6 @@ ;;; Guile Lowlevel Intermediate Language -;; Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2009, 2010, 2011, 2013 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -79,4 +79,5 @@ #:printer write-objcode #:compilers `((value . ,objcode->value)) #:decompilers `((value . ,decompile-value)) + #:for-humans? #f ) diff --git a/module/language/tree-il/spec.scm b/module/language/tree-il/spec.scm index 38e6d311c..bb7a200b7 100644 --- a/module/language/tree-il/spec.scm +++ b/module/language/tree-il/spec.scm @@ -1,6 +1,6 @@ ;;; Tree Intermediate Language -;; Copyright (C) 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2009, 2010, 2013 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -42,4 +42,5 @@ #:parser parse-tree-il #:joiner join #:compilers `((glil . ,compile-glil)) + #:for-humans? #f ) diff --git a/module/language/value/spec.scm b/module/language/value/spec.scm index 6c6cff93f..506b07333 100644 --- a/module/language/value/spec.scm +++ b/module/language/value/spec.scm @@ -1,6 +1,6 @@ ;;; Guile Lowlevel Intermediate Language -;; Copyright (C) 2001, 2010 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2010, 2013 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -26,4 +26,5 @@ #:title "Values" #:reader #f #:printer write + #:for-humans? #f ) diff --git a/module/system/base/language.scm b/module/system/base/language.scm index 81b43b70d..5d927e061 100644 --- a/module/system/base/language.scm +++ b/module/system/base/language.scm @@ -25,7 +25,8 @@ language-name language-title language-reader language-printer language-parser language-compilers language-decompilers language-evaluator - language-joiner language-make-default-environment + language-joiner language-for-humans? + language-make-default-environment lookup-compilation-order lookup-decompilation-order invalidate-compilation-cache! default-environment @@ -49,6 +50,7 @@ (decompilers '()) (evaluator #f) (joiner #f) + (for-humans? #t) (make-default-environment make-fresh-user-module)) (define-macro (define-language name . spec)