From c7d035ae1a729232579a0fe41ed5affa131d3623 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:27 -0800 Subject: Import Upstream version 5d9 --- hobbit.texi | 53 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 21 deletions(-) (limited to 'hobbit.texi') diff --git a/hobbit.texi b/hobbit.texi index 3b448fb..f87c1b0 100644 --- a/hobbit.texi +++ b/hobbit.texi @@ -6,8 +6,6 @@ @setchapternewpage on @c Choices for setchapternewpage are {on,off,odd}. @paragraphindent 0 -@defcodeindex ft -@syncodeindex ft cp @c %**end of header @dircategory The Algorithmic Language Scheme @@ -68,6 +66,7 @@ Tammet. * Performance of Compiled Code:: * Principles of Compilation:: * About Hobbit:: +* Index:: @end menu Copyright (C) 1990-1999, 2002 Free Software Foundation @@ -124,7 +123,7 @@ Hobbit (derived from hobbit5x) is now part of the SCM Scheme implementation. The most recent information about SCM can be found on SCM's @dfn{WWW} home page: -@center @url{http://swissnet.ai.mit.edu/~jaffer/SCM.html} +@center @url{http://swissnet.ai.mit.edu/~jaffer/SCM} Hobbit4d has also been ported to the Guile Scheme implementation: @@ -159,6 +158,10 @@ Compiles the HOBBIT translation of @var{name1}.scm, @var{name2}.scm, suffix for your computer (for instance, @file{.so}). @var{name1}.scm must be in the current directory; @var{name2}.scm, @dots{} may be in other directories. + +If a file named @file{@var{name1}.opt} exists, then its options are +passed to the @code{build} invocation which compiles the @code{c} +files. @end defun @example @@ -212,6 +215,10 @@ Compiles and links the HOBBIT translation of @var{name1}.scm, @var{name2}.scm, @dots{} to a SCM executable named @var{exename}. @var{name1}.scm must be in the current directory; @var{name2}.scm, @dots{} may be in other directories. + +If a file named @file{@var{exename}.opt} exists, then its options are +passed to the @code{build} invocation which compiles the @code{c} +files. @end defun @example @@ -663,13 +670,11 @@ The following alternative names @t{logical:logand}, @t{logical:logior}, generic case, not immediate-integers-only and are thus much slower. Notice that the procedures @t{logsleft}, @t{logsright} are @b{NOT} in -the the library file @file{logical.scm:} the universal procedure @t{ash} -is instead. Procedures @t{ash}, @t{logcount}, @t{integer-length}, -@t{integer-expt}, @t{bit-extract}, @t{ipow-by-squaring}, -@t{logical:ash}, @t{logical:logcount}, @t{logical:integer-length}, -@t{logical:integer-expt}, @t{logical:bit-extract}, -@t{logical:ipow-by-squaring}, in @file{logical.scm} are not primtives -and they are all compiled into calls to interpreted code. +the the library file @file{logical.scm:} the universal procedure +@t{ash} is instead. Procedures @t{ash}, @t{logcount}, +@t{integer-length}, @t{integer-expt}, @t{bit-extract}, +@t{ipow-by-squaring}, in @file{logical.scm} are not primtives and they +are all compiled into calls to interpreted code. @t{logsleft} and @t{logsright} are defined for non-compiled use in the file @file{scmhob.scm} included in the SCM distribution. @@ -1514,14 +1519,15 @@ passed variables. Wherever possible, @t{letrec}-s are replaced by @item Normalization is performed. This converts a majority of scheme -control procedures like cond, case, or, and into equivalent -terms using a small set of primitives. New variables may be -introduced in this phase. +control procedures like @code{cond}, @code{case}, @code{or}, +@code{and} into equivalent terms using a small set of primitives. New +variables may be introduced in this phase. -In case a procedure like or or and occurs in the place where its value -is treated as a boolean (eg. first argument of if), it is converted -into an analogous boolean-returning procedure, which will finally -be represented by an analogous C procedure (eg. || or &&). +In case a procedure like @code{or} or @code{and} occurs in the place +where its value is treated as a boolean (eg. first argument of +@code{if}), it is converted into an analogous boolean-returning +procedure, which will finally be represented by an analogous C +procedure (eg. || or &&). Associative procedures are converted into structures of corresponding nonassociative procedures. List is converted to a structure of cons-s. @@ -1928,7 +1934,7 @@ instead of the default: @end example -@node About Hobbit, , Principles of Compilation, Top +@node About Hobbit, Index, Principles of Compilation, Top @chapter About Hobbit @menu @@ -1988,7 +1994,7 @@ University of Go"teborg@* S-41296 Go"teborg Sweden @end quotation -A. Jaffer (jaffer @@ alum.mit.edu), the author of SCM, has been of major +A. Jaffer (agj @@ alum.mit.edu), the author of SCM, has been of major help with a number of suggestions and hacks, especially concerning the interface between compiled code and the SCM interpreter. @@ -2083,10 +2089,10 @@ The following bugs have been fixed: @itemize @bullet @item Erroneous treatment of [ and ] inside symbols, -reported by A. Jaffer (jaffer @@ alum.mit.edu). +reported by A. Jaffer (agj @@ alum.mit.edu). @item A bug in the liftability analysis, -reported by A. Jaffer (jaffer @@ alum.mit.edu). +reported by A. Jaffer (agj @@ alum.mit.edu). @item A bug occurring in case arguments are evaluated right-to-left, which happens with Hobbit compiled by gcc on Linux. @@ -2269,5 +2275,10 @@ the first release @end table +@node Index, , About Hobbit, Top +@unnumbered Index + +@printindex fn + @contents @bye -- cgit v1.2.3