From 3ff0ba49f86506cd5ad6d5d259fa85a40d83fcb2 Mon Sep 17 00:00:00 2001 From: Rudi Schlatte Date: Tue, 6 Apr 2004 12:31:33 +0000 Subject: [PATCH] 0.8.9.22 Some documentation tweaks: - Added doc/manual/Makefile (no docstring extraction yet) - compiler.texinfo: Moved "compiler limitations" section backwards: Better describe the cool features first, only then mention where they don't apply - efficiency.texinfo: remove `makeinfo' style warning --- doc/manual/Makefile | 77 +++++++++++++++++++++++++++++++++++++++++ doc/manual/compiler.texinfo | 76 ++++++++++++++++++++-------------------- doc/manual/efficiency.texinfo | 2 +- doc/manual/sbcl.texinfo | 4 +-- version.lisp-expr | 2 +- 5 files changed, 119 insertions(+), 42 deletions(-) create mode 100644 doc/manual/Makefile diff --git a/doc/manual/Makefile b/doc/manual/Makefile new file mode 100644 index 0000000..f3f5c5a --- /dev/null +++ b/doc/manual/Makefile @@ -0,0 +1,77 @@ + +DOCFILES:=$(shell echo *.texinfo) +ROOTFILE:=sbcl.texinfo +TMPFILES:=sbcl.aux sbcl.cp sbcl.fn sbcl.ky sbcl.log sbcl.pg sbcl.toc sbcl.tp sbcl.vr + +PSFILE=sbcl.ps +PDFFILE=sbcl.pdf +DVIFILE=sbcl.dvi +INFOFILE=sbcl.info +HTMLDIR=sbcl + + +ifeq ($(MAKEINFO),) + MAKEINFO:=makeinfo +endif + +ifeq ($(TEXI2PDF),) + TEXI2PDF:=texi2pdf +endif + +ifeq ($(DVIPS),) + DVIPS:=dvips +endif + +.PHONY: all +all: ps pdf info html + +.PHONY: dist +dist: html pdf + + + + +.PHONY: html +html: html-stamp + +html-stamp: $(DOCFILES) + @rm -rf $(HTMLDIR) + $(MAKEINFO) --html $(ROOTFILE) + touch html-stamp + + +.PHONY: ps +ps: $(PSFILE) + +$(PSFILE): $(DVIFILE) + dvips -o $@ $< + +$(DVIFILE): $(DOCFILES) + texi2dvi $(ROOTFILE) + + +.PHONY: pdf +pdf: $(PDFFILE) + +$(PDFFILE): $(DOCFILES) + texi2pdf $(ROOTFILE) + + +.PHONY: info +info: $(INFOFILE) + +$(INFOFILE): $(DOCFILES) + $(MAKEINFO) $(ROOTFILE) + + + +.PHONY: clean +clean: + rm -f *~ *.bak *.orig \#*\# .\#* texput.log + rm -rf $(HTMLDIR) + rm -f $(PSFILE) $(PDFFILE) $(DVIFILE) html-stamp + rm -f $(TMPFILES) + rm -f sbcl.info sbcl.info-* + +.PHONY: distclean +distclean: clean diff --git a/doc/manual/compiler.texinfo b/doc/manual/compiler.texinfo index cd0c1cf..367f6f6 100644 --- a/doc/manual/compiler.texinfo +++ b/doc/manual/compiler.texinfo @@ -426,50 +426,15 @@ types. @menu -* Implementation Limitations:: * Type Errors at Compile Time:: * Precise Type Checking:: * Weakened Type Checking:: * Getting Existing Programs to Run:: +* Implementation Limitations:: @end menu -@node Implementation Limitations, Type Errors at Compile Time, Handling of Types, Handling of Types -@comment node-name, next, previous, up -@subsection Implementation Limitations - - -Ideally, the compiler would consider @emph{all} type declarations to -be assertions, so that adding type declarations to a program, no -matter how incorrect they might be, would @emph{never} cause undefined -behavior. As of SBCL version 0.8.1, the compiler is known to fall -short of this goal in two areas: - - @itemize - -@item -@code{Proclaim}ed constraints on argument and result types of a -function are supposed to be checked by the function. If the function -type is proclaimed before function definition, type checks are -inserted by the compiler, but the standard allows the reversed order, -in which case the compiler will trust the declaration. - -@item -The compiler cannot check types of an unknown number of values; if the -number of generated values is unknown, but the number of consumed is -known, only consumed values are checked. - -@item -There are a few poorly characterized but apparently very uncommon -situations where a type declaration in an unexpected location will be -trusted and never checked by the compiler. - -@end itemize - -These are important bugs, but are not necessarily easy to fix, so they -may, alas, remain in the system for a while. - -@node Type Errors at Compile Time, Precise Type Checking, Implementation Limitations, Handling of Types +@node Type Errors at Compile Time, Precise Type Checking, Handling of Types, Handling of Types @comment node-name, next, previous, up @subsection Type Errors at Compile Time @cindex Compile time type errors @@ -593,7 +558,7 @@ option believe any or all type declarations with either partial or nonexistent runtime checking. -@node Getting Existing Programs to Run, , Weakened Type Checking, Handling of Types +@node Getting Existing Programs to Run, Implementation Limitations, Weakened Type Checking, Handling of Types @comment node-name, next, previous, up @subsection Getting Existing Programs to Run @cindex Existing programs, to run @@ -739,6 +704,41 @@ variable in the loop body. @c +@node Implementation Limitations, , Getting Existing Programs to Run, Handling of Types +@comment node-name, next, previous, up +@subsection Implementation Limitations + + +Ideally, the compiler would consider @emph{all} type declarations to +be assertions, so that adding type declarations to a program, no +matter how incorrect they might be, would @emph{never} cause undefined +behavior. As of SBCL version 0.8.1, the compiler is known to fall +short of this goal in two areas: + + @itemize + +@item +@code{Proclaim}ed constraints on argument and result types of a +function are supposed to be checked by the function. If the function +type is proclaimed before function definition, type checks are +inserted by the compiler, but the standard allows the reversed order, +in which case the compiler will trust the declaration. + +@item +The compiler cannot check types of an unknown number of values; if the +number of generated values is unknown, but the number of consumed is +known, only consumed values are checked. + +@item +There are a few poorly characterized but apparently very uncommon +situations where a type declaration in an unexpected location will be +trusted and never checked by the compiler. + +@end itemize + +These are important bugs, but are not necessarily easy to fix, so they +may, alas, remain in the system for a while. + @node Compiler Policy, Open Coding and Inline Expansion, Handling of Types, The Compiler @comment node-name, next, previous, up diff --git a/doc/manual/efficiency.texinfo b/doc/manual/efficiency.texinfo index 8cb408b..7559abf 100644 --- a/doc/manual/efficiency.texinfo +++ b/doc/manual/efficiency.texinfo @@ -63,7 +63,7 @@ important are @item There is only limited support for the ANSI @code{dynamic-extent} -declaration. @xref{Dynamic-extent allocation} +declaration. @xref{Dynamic-extent allocation}. @item The garbage collector is not particularly efficient, at least on diff --git a/doc/manual/sbcl.texinfo b/doc/manual/sbcl.texinfo index 15582b3..10e9736 100644 --- a/doc/manual/sbcl.texinfo +++ b/doc/manual/sbcl.texinfo @@ -7,8 +7,8 @@ @set EDITION 0.1 @set VERSION 0.8.9 -@set UPDATED 24 March 2004 -@set UPDATE-MONTH March 2004 +@set UPDATED 2 April 2004 +@set UPDATE-MONTH April 2004 @copying diff --git a/version.lisp-expr b/version.lisp-expr index 655722c..86fcfc8 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.9.21" +"0.8.9.22" -- 1.7.10.4