diff options
-rw-r--r-- | src/interp/as.boot (renamed from src/interp/as.boot.pamphlet) | 80 | ||||
-rw-r--r-- | src/interp/ax.boot (renamed from src/interp/ax.boot.pamphlet) | 144 | ||||
-rw-r--r-- | src/interp/bc-matrix.boot | 2 | ||||
-rw-r--r-- | src/interp/bc-misc.boot (renamed from src/interp/bc-misc.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/bc-solve.boot (renamed from src/interp/bc-solve.boot.pamphlet) | 36 | ||||
-rw-r--r-- | src/interp/bc-util.boot (renamed from src/interp/bc-util.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/buildom.boot (renamed from src/interp/buildom.boot.pamphlet) | 164 | ||||
-rw-r--r-- | src/interp/c-util.boot (renamed from src/interp/c-util.boot.pamphlet) | 29 | ||||
-rw-r--r-- | src/interp/clam.boot (renamed from src/interp/clam.boot.pamphlet) | 29 | ||||
-rw-r--r-- | src/interp/cparse.boot | 2 | ||||
-rw-r--r-- | src/interp/cstream.boot (renamed from src/interp/cstream.boot.pamphlet) | 38 | ||||
-rw-r--r-- | src/interp/format.boot (renamed from src/interp/format.boot.pamphlet) | 32 | ||||
-rw-r--r-- | src/interp/g-boot.boot (renamed from src/interp/g-boot.boot.pamphlet) | 30 | ||||
-rw-r--r-- | src/interp/g-cndata.boot (renamed from src/interp/g-cndata.boot.pamphlet) | 26 | ||||
-rw-r--r-- | src/interp/g-error.boot (renamed from src/interp/g-error.boot.pamphlet) | 27 | ||||
-rw-r--r-- | src/interp/g-opt.boot (renamed from src/interp/g-opt.boot.pamphlet) | 58 | ||||
-rw-r--r-- | src/interp/g-timer.boot (renamed from src/interp/g-timer.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/g-util.boot (renamed from src/interp/g-util.boot.pamphlet) | 30 | ||||
-rw-r--r-- | src/interp/hashcode.boot (renamed from src/interp/hashcode.boot.pamphlet) | 102 | ||||
-rw-r--r-- | src/interp/ht-root.boot (renamed from src/interp/ht-root.boot.pamphlet) | 44 | ||||
-rw-r--r-- | src/interp/ht-util.boot (renamed from src/interp/ht-util.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/htcheck.boot (renamed from src/interp/htcheck.boot.pamphlet) | 28 | ||||
-rw-r--r-- | src/interp/htsetvar.boot (renamed from src/interp/htsetvar.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/hypertex.boot (renamed from src/interp/hypertex.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/macex.boot (renamed from src/interp/macex.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/nag-c02.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-c05.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-c06.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-d01.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-d02.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-d03.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-e01.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-e02.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-e02b.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-e04.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-f01.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-f02.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-f04.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-f07.boot | 2 | ||||
-rw-r--r-- | src/interp/nag-s.boot | 2 | ||||
-rw-r--r-- | src/interp/osyscmd.boot (renamed from src/interp/osyscmd.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/package.boot (renamed from src/interp/package.boot.pamphlet) | 28 | ||||
-rw-r--r-- | src/interp/packtran.boot (renamed from src/interp/packtran.boot.pamphlet) | 28 | ||||
-rw-r--r-- | src/interp/pathname.boot (renamed from src/interp/pathname.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/pf2sex.boot (renamed from src/interp/pf2sex.boot.pamphlet) | 67 | ||||
-rw-r--r-- | src/interp/pile.boot | 2 | ||||
-rw-r--r-- | src/interp/profile.boot (renamed from src/interp/profile.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/pspad1.boot (renamed from src/interp/pspad1.boot.pamphlet) | 28 | ||||
-rw-r--r-- | src/interp/pspad2.boot (renamed from src/interp/pspad2.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/ptrees.boot (renamed from src/interp/ptrees.boot.pamphlet) | 55 | ||||
-rw-r--r-- | src/interp/redefs.boot.pamphlet | 92 | ||||
-rw-r--r-- | src/interp/rulesets.boot (renamed from src/interp/rulesets.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/server.boot (renamed from src/interp/server.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/showimp.boot | 2 | ||||
-rw-r--r-- | src/interp/simpbool.boot (renamed from src/interp/simpbool.boot.pamphlet) | 24 | ||||
-rw-r--r-- | src/interp/slam.boot (renamed from src/interp/slam.boot.pamphlet) | 26 | ||||
-rw-r--r-- | src/interp/sys-constants.boot | 4 | ||||
-rw-r--r-- | src/interp/sys-driver.boot | 2 | ||||
-rw-r--r-- | src/interp/sys-globals.boot | 2 | ||||
-rw-r--r-- | src/interp/template.boot | 2 | ||||
-rw-r--r-- | src/interp/termrw.boot | 2 | ||||
-rw-r--r-- | src/interp/topics.boot | 2 | ||||
-rw-r--r-- | src/interp/trace.boot | 2 | ||||
-rw-r--r-- | src/interp/varini.boot | 2 | ||||
-rw-r--r-- | src/interp/wi1.boot (renamed from src/interp/wi1.boot.pamphlet) | 228 | ||||
-rw-r--r-- | src/interp/wi2.boot (renamed from src/interp/wi2.boot.pamphlet) | 30 | ||||
-rw-r--r-- | src/interp/xrun.boot | 2 | ||||
-rw-r--r-- | src/interp/xruncomp.boot | 2 |
68 files changed, 464 insertions, 1411 deletions
diff --git a/src/interp/as.boot.pamphlet b/src/interp/as.boot index 1d4849e2..189b5f7d 100644 --- a/src/interp/as.boot.pamphlet +++ b/src/interp/as.boot @@ -1,36 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/as.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{New Aldor compiler changes} - -This mod is used to make the open source version of Axiom work -with the new aldor compiler. -Aldor does not want the [[attributeAlist]]. -This used to read: -\begin{verbatim} - HPUT($opHash,con,[ancestorAlist,attributeAlist,:opalist]) -\end{verbatim} -but was changed to: -<<aldor mod>>= - HPUT($opHash,con,[ancestorAlist,nil,:opalist]) -@ - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -60,9 +31,6 @@ but was changed to: -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -409,7 +377,7 @@ asyMakeOperationAlist(con,proplist, key) == HPUT(ht,id,[entry,:HGET(ht,id)]) opalist := [[op,:REMDUP HGET(ht,op)] for op in HKEYS ht] --HPUT($opHash,con,[ancestorAlist,attributeAlist,:opalist]) -<<aldor mod>> + HPUT($opHash,con,[ancestorAlist,nil,:opalist]) hackToRemoveAnd p == ---remove this as soon as .asy files do not contain forms (And pred) forms @@ -569,7 +537,7 @@ asytranForm1(form,levels,local?) == form is [op,a,b] and MEMQ(a,'(PretendTo RestrictTo)) => asytranForm1(a,levels,local?) form is ['LitInteger,s] => - READ_-FROM_-STRING(s) + READ_-FROM_-STRING(s) form is ['Define,:.] => form is ['Define,['Declare,.,x,:.],rest] => --TTT i don't know about this one but looks ok @@ -762,18 +730,18 @@ asyGetAbbrevFromComments con == NIL asyExtractAbbreviation str == - not (k:= STRPOS('"Abbrev: ",str,0,nil)) => NIL - str := SUBSTRING(str, k+8, nil) - k := STRPOS($stringNewline, str,0,nil) - k => SUBSTRING(str, 0, k) - str + not (k:= STRPOS('"Abbrev: ",str,0,nil)) => NIL + str := SUBSTRING(str, k+8, nil) + k := STRPOS($stringNewline, str,0,nil) + k => SUBSTRING(str, 0, k) + str asyShorten x == y := createAbbreviation x or LASSOC(x, '(("Small" . "SM") ("Single" ."S") ("Half" . "H")("Point" . "PT") ("Floating" . "F") ("System" . "SYS") ("Number" . "N") - ("Inventor" . "IV") + ("Inventor" . "IV") ("Finite" . "F") ("Double" . "D") ("Builtin" . "BI"))) => y UPCASE x @@ -849,7 +817,7 @@ asySig1(u,name?,target?) == fn = 'Apply and r is ['_-_>,:s] => asyMapping(s,name?) fn = '_-_> => asyMapping(r,name?) fn = 'Declare and r is [name,typ,:.] => - asySig1(typ, name?, target?) + asySig1(typ, name?, target?) x is '(_%) => '(_$) [fn,:[asySig(x,name?) for x in r]] --x = 'Type => '(Type) @@ -1158,16 +1126,16 @@ asCategoryParts(kind,conform,category,:options) == main where item is ['SIGNATURE,op,sig,:.] => $oplist := [[opOf op,sig,:pred],:$oplist] --note: opOf is needed!!! Bug in compiler puts in (One) and (Zero) item is ['ATTRIBUTE,attr] => - constructor? opOf attr => - $conslist := [[attr,:pred],:$conslist] - nil - opOf attr = 'nothing => 'skip - $attrlist := [[opOf attr,IFCDR attr,:pred],:$attrlist] + constructor? opOf attr => + $conslist := [[attr,:pred],:$conslist] + nil + opOf attr = 'nothing => 'skip + $attrlist := [[opOf attr,IFCDR attr,:pred],:$attrlist] item is ['TYPE,op,type] => - $oplist := [[op,[type],:pred],:$oplist] + $oplist := [[op,[type],:pred],:$oplist] item is ['IF,pred1,s1,s2] => - build(s1,quickAnd(pred,pred1)) - s2 => build(s2,quickAnd(pred,['NOT,pred1])) + build(s1,quickAnd(pred,pred1)) + s2 => build(s2,quickAnd(pred,['NOT,pred1])) item is ['PROGN,:r] => for x in r repeat build(x,pred) item in '(noBranch) => 'ok null item => 'ok @@ -1175,8 +1143,8 @@ asCategoryParts(kind,conform,category,:options) == main where exportsOf(target) == target is ['CATEGORY,.,:r] => r target is ['Join,:r,f] => - for x in r repeat $conslist := [[x,:true],:$conslist] - exportsOf f + for x in r repeat $conslist := [[x,:true],:$conslist] + exportsOf f $conslist := [[target,:true],:$conslist] nil @@ -1218,9 +1186,3 @@ asyTypeMakePred [p,:u] == -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/ax.boot.pamphlet b/src/interp/ax.boot index 1063d366..950d9307 100644 --- a/src/interp/ax.boot.pamphlet +++ b/src/interp/ax.boot @@ -1,79 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp ax.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{New Aldor compiler changes} -This was changed so the open source version of axiom can work with the new -aldor compiler. -This used to read: -\begin{verbatim} - axForm := ['Sequence, ['Import, [], 'AxiomLib], :axForms] -\end{verbatim} -but was changed to read: -<<aldor mod 1>>= - axForm := ['Sequence, _ - ['Import, [], 'AxiomLib], ['Import, [], 'Boolean], :axForms] -@ -\subsection{makeAxExportForm} -<<makeAxExportForm>>= -makeAxExportForm(filename, constructors) == - $defaultFlag : local := false - $literals := [] - axForms := - [modemapToAx(modemap) for cname in constructors | - (modemap:=GETDATABASE(cname,'CONSTRUCTORMODEMAP)) and - (not cname in '(Tuple Exit Type)) and - not isDefaultPackageName cname] - if $baseForms then - axForms := [:$baseForms, :axForms] - if $defaultFlag then - axForms := - [['Foreign, ['Declare, 'dummyDefault, 'Exit], 'Lisp], :axForms] - axForms := APPEND(axDoLiterals(), axForms) - axForm := ['Sequence, _ - ['Import, [], 'AxiomLib], ['Import, [], 'Boolean], :axForms] - axForm - -@ -\subsection{axFormatPref} -Here we add an else clause. The original code read: -\begin{verbatim} - if name = '$ then name := '% -\end{verbatim} -It appears that Aldor allows a richer syntax for [[has]] -conditions since the call to [[axFormatOp]] appears to allow -nested IF conditions.OQ -<<axFormatPred aldor change>>= -axFormatPred pred == - atom pred => pred - [op,:args] := pred - op = 'IF => axFormatOp pred - op = 'has => - [name,type] := args - if name = '$ then name := '% - else name := axFormatOp name - ftype := axFormatOp type - if ftype is ['Declare,:.] then - ftype := ['With, [], ftype] - ['Test,['Has,name, ftype]] - axArglist := [axFormatPred arg for arg in args] - op = 'AND => ['And,:axArglist] - op = 'OR => ['Or,:axArglist] - op = 'NOT => ['Not,:axArglist] - error "unknown predicate" - -@ -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -103,9 +31,6 @@ axFormatPred pred == -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"as" )package "BOOT" @@ -125,7 +50,7 @@ sourceFilesToAxFile(filename, sourceFiles) == $extendedDomains := nil setExtendedDomains(l) == - $extendedDomains := l + $extendedDomains := l fileConstructors name == [INTERN(con,"BOOT") for con in SRCABBREVS SOURCEPATH STRING name] @@ -144,12 +69,30 @@ makeAxFile(filename, constructors) == axForms := [['Foreign, ['Declare, 'dummyDefault, 'Exit], 'Lisp], :axForms] axForms := APPEND(axDoLiterals(), axForms) -<<aldor mod 1>> + axForm := ['Sequence, _ + ['Import, [], 'AxiomLib], ['Import, [], 'Boolean], :axForms] st := MAKE_-OUTSTREAM(filename) PPRINT(axForm,st) CLOSE st -<<makeAxExportForm>> +makeAxExportForm(filename, constructors) == + $defaultFlag : local := false + $literals := [] + axForms := + [modemapToAx(modemap) for cname in constructors | + (modemap:=GETDATABASE(cname,'CONSTRUCTORMODEMAP)) and + (not cname in '(Tuple Exit Type)) and + not isDefaultPackageName cname] + if $baseForms then + axForms := [:$baseForms, :axForms] + if $defaultFlag then + axForms := + [['Foreign, ['Declare, 'dummyDefault, 'Exit], 'Lisp], :axForms] + axForms := APPEND(axDoLiterals(), axForms) + axForm := ['Sequence, _ + ['Import, [], 'AxiomLib], ['Import, [], 'Boolean], :axForms] + axForm + stripType type == $stripTypes => @@ -172,7 +115,7 @@ modemapToAx(modemap) == ['Define, ['Declare, constructor, ['Apply, "->", optcomma argdecls, 'Category]], ['Lambda, argdecls, 'Category, - ['Label, constructor, + ['Label, constructor, addDefaults(constructor, axFormatType categoryInfo)]]] constructor in $extendedDomains => NULL args => @@ -239,8 +182,8 @@ axFormatType(typeform) == axAddLiteral('bracket, ['Apply, 'List, 'Symbol], [ 'Apply, 'Tuple, 'Symbol]) axAddLiteral('string, 'Symbol, 'Literal) ['RestrictTo, ['Apply, 'bracket, - :[axFormatType a for a in args]], - ['Apply, 'List, 'Symbol] ] + :[axFormatType a for a in args]], + ['Apply, 'List, 'Symbol] ] typeform is [op] => op = '$ => '% op = 'Void => ['Comma] @@ -252,7 +195,7 @@ axFormatType(typeform) == ['With, [], makeTypeSequence( APPEND([axFormatType c for c in cats], - [axFormatOp op for op in ops]))] + [axFormatOp op for op in ops]))] ['With, [], makeTypeSequence([axFormatType c for c in rest typeform])] typeform is ['CATEGORY, type, :ops] => ['With, [], axFormatOpList ops] @@ -318,7 +261,24 @@ axFormatOpSig(name, [result,:argtypes]) == axFormatConstantOp(name, [result]) == ['Declare, axOpTran name, axFormatType result] -<<axFormatPred aldor change>> +axFormatPred pred == + atom pred => pred + [op,:args] := pred + op = 'IF => axFormatOp pred + op = 'has => + [name,type] := args + if name = '$ then name := '% + else name := axFormatOp name + ftype := axFormatOp type + if ftype is ['Declare,:.] then + ftype := ['With, [], ftype] + ['Test,['Has,name, ftype]] + axArglist := [axFormatPred arg for arg in args] + op = 'AND => ['And,:axArglist] + op = 'OR => ['Or,:axArglist] + op = 'NOT => ['Not,:axArglist] + error "unknown predicate" + axFormatCondOp op == $pretendFlag:local := true @@ -419,13 +379,7 @@ axAddLiteral(name, type, dom) == axDoLiterals() == [ [ 'Import, - [ 'With, [], - ['Declare, name, [ 'Apply, '_-_> , dom , '_% ]]], - type ] for [name, type, dom] in $literals] - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} + [ 'With, [], + ['Declare, name, [ 'Apply, '_-_> , dom , '_% ]]], + type ] for [name, type, dom] in $literals] + diff --git a/src/interp/bc-matrix.boot b/src/interp/bc-matrix.boot index 64d6ffb9..0f8fe3f7 100644 --- a/src/interp/bc-matrix.boot +++ b/src/interp/bc-matrix.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/bc-misc.boot.pamphlet b/src/interp/bc-misc.boot index 776273a1..8ef492b3 100644 --- a/src/interp/bc-misc.boot.pamphlet +++ b/src/interp/bc-misc.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp bc-misc.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"bc-util" )package "BOOT" @@ -941,9 +927,3 @@ bcComplexLimitGen htPage == bcFinish('"complexLimit",fun,varPart) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/bc-solve.boot.pamphlet b/src/interp/bc-solve.boot index 78735cf1..29992b8f 100644 --- a/src/interp/bc-solve.boot.pamphlet +++ b/src/interp/bc-solve.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp bc-solve.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"bc-matrix" import '"bc-misc" @@ -163,8 +149,8 @@ bcInputEquations(htPage,solutionMethod) == lnam := INTERN STRCONC('"l",STRINGIMAGE i) rnam := INTERN STRCONC('"r",STRINGIMAGE i) var:= - linearp => bcMakeLinearEquations(i,n) - bcMakeEquations(i,n) + linearp => bcMakeLinearEquations(i,n) + bcMakeEquations(i,n) [['text,:prefix],['bcStrings,[30,var,lnam,'P]],'(text . " = "),['bcStrings,[5,"0",rnam,'P]]] equationPart := [ '(domainConditions @@ -206,18 +192,18 @@ bcMakeEquations(i,number)== STRCONC( STRCONC( APPLY('CONCAT,[STRCONC(bcCreateVariableString(j),"+") for j in 1..number]),"1"), - STRCONC("-2*",STRCONC(bcCreateVariableString(i),"^2"))) + STRCONC("-2*",STRCONC(bcCreateVariableString(i),"^2"))) bcMakeLinearEquations(i,number)== number = 1 => bcCreateVariableString(1) number = 2 => - i=1 => STRCONC(bcCreateVariableString(1),STRCONC("+",bcCreateVariableString(2))) - STRCONC(bcCreateVariableString(1),STRCONC("-",bcCreateVariableString(2))) + i=1 => STRCONC(bcCreateVariableString(1),STRCONC("+",bcCreateVariableString(2))) + STRCONC(bcCreateVariableString(1),STRCONC("-",bcCreateVariableString(2))) STRCONC( STRCONC( APPLY('CONCAT,[STRCONC(bcCreateVariableString(j),"+") for j in 1..number]),"1"), - STRCONC("-2*",bcCreateVariableString(i))) + STRCONC("-2*",bcCreateVariableString(i))) bcInputEquationsEnd htPage == @@ -380,9 +366,3 @@ bcGenEquations alist == -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/bc-util.boot.pamphlet b/src/interp/bc-util.boot index 831563d6..70b8df52 100644 --- a/src/interp/bc-util.boot.pamphlet +++ b/src/interp/bc-util.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp bc-util.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"ht-util" )package "BOOT" @@ -142,9 +128,3 @@ stringList2String x == htMkName(s,n) == STRCONC(s,STRINGIMAGE n) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/buildom.boot.pamphlet b/src/interp/buildom.boot index cbbc7a43..11e96b24 100644 --- a/src/interp/buildom.boot.pamphlet +++ b/src/interp/buildom.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp buildom.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> -- This file contains the constructors for the domains that cannot -- be written in ScratchpadII yet. They are not cached because they @@ -74,36 +60,36 @@ Record0 args == -- JHD added an extra slot to cache EQUAL methods dom.0 := ["Record", :[["_:", CAR a, devaluate CDR a] for a in args]] dom.1 := - [function lookupInTable,dom, - [["_=",[[["Boolean"],"_$","_$"],:12]], - ["coerce",[[$Expression,"_$"],:14]]]] + [function lookupInTable,dom, + [["_=",[[["Boolean"],"_$","_$"],:12]], + ["coerce",[[$Expression,"_$"],:14]]]] dom.2 := NIL dom.3 := ["RecordCategory",:QCDR dom.0] dom.4 := - [[ '(SetCategory) ],[ '(SetCategory) ]] + [[ '(SetCategory) ],[ '(SetCategory) ]] dom.5 := [CDR a for a in args] dom.6 := [function RecordEqual, :dom] dom.7 := [function RecordPrint, :dom] dom.8 := [function Undef, :dom] -- following is cache for equality functions dom.9 := if (n:= LENGTH args) <= 2 - then [NIL,:NIL] - else GETREFV n + then [NIL,:NIL] + else GETREFV n dom RecordEqual(x,y,dom) == PAIRP x => b:= SPADCALL(CAR x, CAR y, CAR(dom.9) or - CAR RPLACA(dom.9,findEqualFun(dom.5.0))) + CAR RPLACA(dom.9,findEqualFun(dom.5.0))) NULL rest(dom.5) => b b and SPADCALL(CDR x, CDR y, CDR (dom.9) or - CDR RPLACD(dom.9,findEqualFun(dom.5.1))) + CDR RPLACD(dom.9,findEqualFun(dom.5.1))) VECP x => equalfuns := dom.9 and/[SPADCALL(x.i,y.i,equalfuns.i or (equalfuns.i:=findEqualFun(fdom))) - for i in 0.. for fdom in dom.5] + for i in 0.. for fdom in dom.5] error '"Bug: Silly record representation" RecordPrint(x,dom) == coerceRe2E(x,dom.3) @@ -136,16 +122,16 @@ coerceRe2E(x,source) == Union(:args) == dom := GETREFV 9 dom.0 := ["Union", :[(if a is ["_:",tag,domval] then ["_:",tag,devaluate domval] - else devaluate a) for a in args]] + else devaluate a) for a in args]] dom.1 := - [function lookupInTable,dom, - [["_=",[[["Boolean"],"_$","_$"],:12]], - ["coerce",[[$Expression,"_$"],:14]]]] + [function lookupInTable,dom, + [["_=",[[["Boolean"],"_$","_$"],:12]], + ["coerce",[[$Expression,"_$"],:14]]]] dom.2 := NIL dom.3 := '(SetCategory) dom.4 := - [[ '(SetCategory) ],[ '(SetCategory) ]] + [[ '(SetCategory) ],[ '(SetCategory) ]] dom.5 := args dom.6 := [function UnionEqual, :dom] dom.7 := [function UnionPrint, :dom] @@ -190,14 +176,14 @@ Mapping(:args) == dom := GETREFV 9 dom.0 := ["Mapping", :[devaluate a for a in args]] dom.1 := - [function lookupInTable,dom, - [["_=",[[["Boolean"],"_$","_$"],:12]], - ["coerce",[[$Expression,"_$"],:14]]]] + [function lookupInTable,dom, + [["_=",[[["Boolean"],"_$","_$"],:12]], + ["coerce",[[$Expression,"_$"],:14]]]] dom.2 := NIL dom.3 := '(SetCategory) dom.4 := - [[ '(SetCategory) ],[ '(SetCategory) ]] + [[ '(SetCategory) ],[ '(SetCategory) ]] dom.5 := args dom.6 := [function MappingEqual, :dom] dom.7 := [function MappingPrint, :dom] @@ -221,14 +207,14 @@ Enumeration(:"args") == -- JHD added an extra slot to cache EQUAL methods dom.0 := ["Enumeration", :args] dom.1 := - [function lookupInTable,dom, - [["_=",[[["Boolean"],"_$","_$"],:12]], - ["coerce",[[$Expression,"_$"],:14], [["_$", $Symbol], :16]] + [function lookupInTable,dom, + [["_=",[[["Boolean"],"_$","_$"],:12]], + ["coerce",[[$Expression,"_$"],:14], [["_$", $Symbol], :16]] ]] dom.2 := NIL dom.3 := ["EnumerationCategory",:QCDR dom.0] dom.4 := - [[ '(SetCategory) ],[ '(SetCategory) ]] + [[ '(SetCategory) ],[ '(SetCategory) ]] dom.5 := args dom.6 := [function EnumEqual, :dom] dom.7 := [function EnumPrint, :dom] @@ -256,11 +242,11 @@ UnionCategory(:"x") == constructorCategory ["Union",:x] --ListCategory(:"x") == constructorCategory ("List",:x) --VectorCategory(:"x") == constructorCategory ("Vector",:x) - --above two now defined in SPAD code. + --above two now defined in SPAD code. constructorCategory (title is [op,:.]) == constructorFunction:= GETL(op,"makeFunctionList") or - systemErrorHere '"constructorCategory" + systemErrorHere '"constructorCategory" [funlist,.]:= FUNCALL(constructorFunction,"$",title,$CategoryFrame) oplist:= [[[a,b],true,c] for [a,b,c] in funlist] cat:= @@ -282,23 +268,23 @@ mkRecordFunList(nam,["Record",:Alist],e) == -- for (.,a,.) in Alist do -- if getmode(a,e) then MOAN("Symbol: ",a, --- " must not be both a variable and literal") +-- " must not be both a variable and literal") -- e:= put(a,"isLiteral","true",e) dc := GENSYM() sigFunAlist:= --:((a,(A,nam),("XLAM",("$1","$2"),("RECORDELT","$1",i,len))) - -- for i in 0..,(.,a,A) in Alist), + -- for i in 0..,(.,a,A) in Alist), [["construct",[nam,:[A for [.,a,A] in Alist]],"mkRecord"], ["_=",[["Boolean"],nam ,nam],["ELT",dc,6]], ["coerce",[$Expression,nam],["ELT",dc,7]],: - [["elt",[A,nam,PNAME a],["XLAM",["$1","$2"],["RECORDELT","$1",i,len]]] - for i in 0.. for [.,a,A] in Alist],: - [["setelt",[A,nam,PNAME a,A],["XLAM",["$1","$2","$3"], - ["SETRECORDELT","$1",i, len,"$3"]]] - for i in 0.. for [.,a,A] in Alist],: - [["copy",[nam,nam],["XLAM",["$1"],["RECORDCOPY", - "$1",len]]]]] + [["elt",[A,nam,PNAME a],["XLAM",["$1","$2"],["RECORDELT","$1",i,len]]] + for i in 0.. for [.,a,A] in Alist],: + [["setelt",[A,nam,PNAME a,A],["XLAM",["$1","$2","$3"], + ["SETRECORDELT","$1",i, len,"$3"]]] + for i in 0.. for [.,a,A] in Alist],: + [["copy",[nam,nam],["XLAM",["$1"],["RECORDCOPY", + "$1",len]]]]] [substitute(nam,dc,substitute("$","Rep",sigFunAlist)),e] mkNewUnionFunList(name,form is ["Union",:listOfEntries],e) == @@ -309,18 +295,18 @@ mkNewUnionFunList(name,form is ["Union",:listOfEntries],e) == [["_=",[["Boolean"],name ,name],["ELT",dc,6]], ["coerce",[$Expression,name],["ELT",dc,7]],: ("append"/ - [[["construct",[name,type],["XLAM",["#1"],["CONS",i,"#1"]]], - ["elt",[type,name,tag],cdownFun], - ["case",['(Boolean),name,tag], - ["XLAM",["#1"],["QEQCAR","#1",i]]]] - for [.,tag,type] in listOfEntries for i in 0..])] where - cdownFun() == - gg:=GENSYM() - $InteractiveMode => - ["XLAM",["#1"],["PROG1",["QCDR","#1"], - ["check_-union",["QEQCAR","#1",i],type,"#1"]]] - ["XLAM",["#1"],["PROG2",["LET",gg,"#1"],["QCDR",gg], - ["check_-union",["QEQCAR",gg,i],type,gg]]] + [[["construct",[name,type],["XLAM",["#1"],["CONS",i,"#1"]]], + ["elt",[type,name,tag],cdownFun], + ["case",['(Boolean),name,tag], + ["XLAM",["#1"],["QEQCAR","#1",i]]]] + for [.,tag,type] in listOfEntries for i in 0..])] where + cdownFun() == + gg:=GENSYM() + $InteractiveMode => + ["XLAM",["#1"],["PROG1",["QCDR","#1"], + ["check_-union",["QEQCAR","#1",i],type,"#1"]]] + ["XLAM",["#1"],["PROG2",["LET",gg,"#1"],["QCDR",gg], + ["check_-union",["QEQCAR",gg,i],type,gg]]] [cList,e] mkEnumerationFunList(nam,["Enumeration",:SL],e) == @@ -347,40 +333,34 @@ mkUnionFunList(op,form is ["Union",:listOfEntries],e) == ["coerce",[$Expression,g],["ELT",op,7]],: ("append"/ [[["autoCoerce",[g,t],upFun], - ["coerce",[t,g],cdownFun], - ["autoCoerce",[t,g],downFun], --this should be removed eventually - ["case",['(Boolean),g,t],typeFun]] - for p in predList for t in listOfEntries])] where - upFun() == - p is ["EQCAR",x,n] => ["XLAM",["#1"],["CONS",n,"#1"]] - ["XLAM",["#1"],"#1"] - cdownFun() == - gg:=GENSYM() - if p is ["EQCAR",x,n] then - ref:=["QCDR",gg] - q:= ["QEQCAR", gg, n] - else - ref:=gg - q:= substitute(gg,"#1",p) - ["XLAM",["#1"],["PROG2",["LET",gg,"#1"],ref, - ["check_-union",q,t,gg]]] - downFun() == - p is ["EQCAR",x,.] => - ["XLAM",["#1"],["QCDR","#1"]] - ["XLAM",["#1"],"#1"] - typeFun() == - p is ["EQCAR",x,n] => - ["XLAM",["#1"],["QEQCAR",x,n]] - ["XLAM",["#1"],p] + ["coerce",[t,g],cdownFun], + ["autoCoerce",[t,g],downFun], --this should be removed eventually + ["case",['(Boolean),g,t],typeFun]] + for p in predList for t in listOfEntries])] where + upFun() == + p is ["EQCAR",x,n] => ["XLAM",["#1"],["CONS",n,"#1"]] + ["XLAM",["#1"],"#1"] + cdownFun() == + gg:=GENSYM() + if p is ["EQCAR",x,n] then + ref:=["QCDR",gg] + q:= ["QEQCAR", gg, n] + else + ref:=gg + q:= substitute(gg,"#1",p) + ["XLAM",["#1"],["PROG2",["LET",gg,"#1"],ref, + ["check_-union",q,t,gg]]] + downFun() == + p is ["EQCAR",x,.] => + ["XLAM",["#1"],["QCDR","#1"]] + ["XLAM",["#1"],"#1"] + typeFun() == + p is ["EQCAR",x,n] => + ["XLAM",["#1"],["QEQCAR",x,n]] + ["XLAM",["#1"],p] op:= op="Rep" => "$" op cList:= substitute(op,g,cList) [cList,e] -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/c-util.boot.pamphlet b/src/interp/c-util.boot index 6bc3f726..8bb8927c 100644 --- a/src/interp/c-util.boot.pamphlet +++ b/src/interp/c-util.boot @@ -1,21 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/c-util.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -45,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"g-util" )package "BOOT" @@ -730,11 +713,3 @@ displayModemaps E == GCOPY ob == COPY ob -- for now -@ - - -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/clam.boot.pamphlet b/src/interp/clam.boot index 985bb006..cde11ef3 100644 --- a/src/interp/clam.boot.pamphlet +++ b/src/interp/clam.boot @@ -1,21 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{/src/interp/clam.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -45,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"g-timer" )package "BOOT" @@ -720,11 +703,3 @@ removeAllClams() == for [fun,:.] in $clamList repeat sayBrightly ['"Un-clamming function",'%b,fun,'%d] SET(fun,eval INTERN STRCONC(STRINGIMAGE fun,'";")) -@ - - -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/cparse.boot b/src/interp/cparse.boot index c49ee250..4193670f 100644 --- a/src/interp/cparse.boot +++ b/src/interp/cparse.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/cstream.boot.pamphlet b/src/interp/cstream.boot index 46be9728..d935de69 100644 --- a/src/interp/cstream.boot.pamphlet +++ b/src/interp/cstream.boot @@ -1,32 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp cstream.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -The input stream is parsed into a large s-expression by repeated calls -to Delay. Delay takes a function f and an argument x and returns a list -consisting of ("nonnullstream" f x). Eventually multiple calls are made -and a large list structure is created that consists of -("nonnullstream" f x ("nonnullstream" f1 x1 ("nonnullstream" f2 x2... - -This delay structure is given to StreamNull which walks along the -list looking at the head. If the head is "nonnullstream" then the -function is applied to the argument. - -So, in effect, the input is "zipped up" into a Delay data structure -which is then evaluated by calling StreamNull. This "zippered stream" -parser was a research project at IBM and Axiom was the testbed (which -explains the strange parsing technique). -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -56,9 +31,6 @@ explains the strange parsing technique). -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"sys-macros" @@ -139,9 +111,3 @@ spadcall1(g)== spadcall2(f,args) == [impl, :env] := f APPLY(impl, [args, env]) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/format.boot.pamphlet b/src/interp/format.boot index 5f8da182..3c7b75e3 100644 --- a/src/interp/format.boot.pamphlet +++ b/src/interp/format.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp format.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -209,10 +195,10 @@ reportOpSymbol op1 == m := # mms sayMSG m = 1 => - ['"There is one",:bright label,'"function called", - :bright op,'":"] + ['"There is one",:bright label,'"function called", + :bright op,'":"] ['"There are ",m,:bright label,'"functions called", - :bright op,'":"] + :bright op,'":"] for mm in mms for i in 1.. repeat sayModemapWithNumber(mm,i) @@ -651,7 +637,7 @@ application2String(op,argl, linkInfo) == concat(first argl, '"..") concat(first argl, concat('"..", first rest argl)) concat(app2StringWrap(formWrapId op, linkInfo) , - concat("_(",concat(tuple2String argl,"_)"))) + concat("_(",concat(tuple2String argl,"_)"))) app2StringConcat0(x,y) == FORMAT(NIL, '"~a ~a", x, y) @@ -799,9 +785,3 @@ form2FenceQuoteTail x == form2StringList u == atom (r := form2String u) => [r] r -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/g-boot.boot.pamphlet b/src/interp/g-boot.boot index a754a951..793a7f06 100644 --- a/src/interp/g-boot.boot.pamphlet +++ b/src/interp/g-boot.boot @@ -1,21 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/g-boot.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -45,15 +31,12 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"def" import '"g-util" )package "BOOT" --- @(#)g-boot.boot 2.2 89/11/02 14:44:09 +-- @(#)g-boot.boot 2.2 89/11/02 14:44:09 --% BOOT to LISP Translation @@ -478,10 +461,3 @@ bootTransform e == $labelsForGO : local := NIL bootLabelsForGO e bootTran e -@ - -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/g-cndata.boot.pamphlet b/src/interp/g-cndata.boot index 6c0efdac..d6a4ce66 100644 --- a/src/interp/g-cndata.boot.pamphlet +++ b/src/interp/g-cndata.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp g-cndata.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"sys-macros" )package "BOOT" @@ -83,7 +69,7 @@ putConstructorProperty(name,prop,val) == true attribute? name == - MEMQ(name, _*ATTRIBUTES_*) + MEMQ(name, _*ATTRIBUTES_*) abbreviation? abb == -- if it is an abbreviation, return the corresponding name @@ -257,9 +243,3 @@ nAssocQ(x,l,n) == l:= QCDR l -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/g-error.boot.pamphlet b/src/interp/g-error.boot index 35cd7ebb..fe81ea1c 100644 --- a/src/interp/g-error.boot.pamphlet +++ b/src/interp/g-error.boot @@ -1,21 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/g-error.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -45,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"diagnostics" import '"g-util" @@ -217,9 +200,3 @@ throwMessage(:msg) == if $printMsgsToFile then sayMSG2File msg' spadThrow() -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/g-opt.boot.pamphlet b/src/interp/g-opt.boot index f45a5378..ed80cc90 100644 --- a/src/interp/g-opt.boot.pamphlet +++ b/src/interp/g-opt.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp g-opt.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"def" @@ -125,9 +111,9 @@ optCatch (x is ["CATCH",g,a]) == ["CATCH",y,a]:= optimize x if hasNoThrows(a,g) where hasNoThrows(a,g) == - a is ["THROW", =g,:.] => false - atom a => true - hasNoThrows(first a,g) and hasNoThrows(rest a,g) + a is ["THROW", =g,:.] => false + atom a => true + hasNoThrows(first a,g) and hasNoThrows(rest a,g) then (rplac(first x,first a); rplac(rest x,rest a)) else changeThrowToGo(a,g) where @@ -396,26 +382,20 @@ optEQ u == u for x in '( (call optCall) _ - (SEQ optSEQ)_ - (EQ optEQ) - (MINUS optMINUS)_ - (QSMINUS optQSMINUS)_ - (_- opt_-)_ - (LESSP optLESSP)_ - (SPADCALL optSPADCALL)_ - (_| optSuchthat)_ - (CATCH optCatch)_ - (COND optCond)_ - (mkRecord optMkRecord)_ - (RECORDELT optRECORDELT)_ - (SETRECORDELT optSETRECORDELT)_ - (RECORDCOPY optRECORDCOPY)) _ + (SEQ optSEQ)_ + (EQ optEQ) + (MINUS optMINUS)_ + (QSMINUS optQSMINUS)_ + (_- opt_-)_ + (LESSP optLESSP)_ + (SPADCALL optSPADCALL)_ + (_| optSuchthat)_ + (CATCH optCatch)_ + (COND optCond)_ + (mkRecord optMkRecord)_ + (RECORDELT optRECORDELT)_ + (SETRECORDELT optSETRECORDELT)_ + (RECORDCOPY optRECORDCOPY)) _ repeat MAKEPROP(CAR x,'OPTIMIZE,CREATE_-SBC CADR x) --much quicker to call functions if they have an SBC -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/g-timer.boot.pamphlet b/src/interp/g-timer.boot index 6b060ddc..0f26f306 100644 --- a/src/interp/g-timer.boot.pamphlet +++ b/src/interp/g-timer.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp g-timer.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" import '"g-util" @@ -288,9 +274,3 @@ statRecordInstantiationEvent() == nil statRecordLoadEvent() == nil statisticsSummary() == '"No statistics available." -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/g-util.boot.pamphlet b/src/interp/g-util.boot index 1b5b9f38..ea980250 100644 --- a/src/interp/g-util.boot.pamphlet +++ b/src/interp/g-util.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/g-util.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} - -\maketitle -\begin{abstract} -\end{abstract} - -\tableofcontents -\eject - -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -654,11 +636,3 @@ gensymInt g == -- Push into the BOOT package when invoked in batch mode. AxiomCore::$sysScope := '"BOOT" -@ - - -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/hashcode.boot.pamphlet b/src/interp/hashcode.boot index 4a0f640e..bcd1a554 100644 --- a/src/interp/hashcode.boot.pamphlet +++ b/src/interp/hashcode.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp hashcode.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -54,67 +40,67 @@ getDomainHash dom == SPADCALL(CDR dom, (CAR dom).4) hashType(type, percentHash) == - SYMBOLP type => + SYMBOLP type => type = '$ => percentHash type = "%" => percentHash hashString SYMBOL_-NAME type STRINGP type => hashCombine(hashString type, - hashString('"Enumeration")) + hashString('"Enumeration")) type is ['QUOTE, val] => hashType(val, percentHash) - type is [dom] => hashString SYMBOL_-NAME dom - type is ['_:, ., type2] => hashType(type2, percentHash) + type is [dom] => hashString SYMBOL_-NAME dom + type is ['_:, ., type2] => hashType(type2, percentHash) isDomain type => getDomainHash type - [op, :args] := type - hash := hashString SYMBOL_-NAME op - op = 'Mapping => - hash := hashString '"->" - [retType, :mapArgs] := args - for arg in mapArgs repeat - hash := hashCombine(hashType(arg, percentHash), hash) + [op, :args] := type + hash := hashString SYMBOL_-NAME op + op = 'Mapping => + hash := hashString '"->" + [retType, :mapArgs] := args + for arg in mapArgs repeat + hash := hashCombine(hashType(arg, percentHash), hash) retCode := hashType(retType, percentHash) EQL(retCode, $VoidHash) => hash - hashCombine(retCode, hash) - op = 'Enumeration => - for arg in args repeat - hash := hashCombine(hashString(STRING arg), hash) - hash - op in $DomainsWithoutLisplibs => - for arg in args repeat - hash := hashCombine(hashType(arg, percentHash), hash) - hash + hashCombine(retCode, hash) + op = 'Enumeration => + for arg in args repeat + hash := hashCombine(hashString(STRING arg), hash) + hash + op in $DomainsWithoutLisplibs => + for arg in args repeat + hash := hashCombine(hashType(arg, percentHash), hash) + hash - cmm := CDDAR getConstructorModemap(op) - cosig := CDR GETDATABASE(op, 'COSIG) - for arg in args for c in cosig for ct in cmm repeat - if c then - hash := hashCombine(hashType(arg, percentHash), hash) - else - hash := hashCombine(7, hash) + cmm := CDDAR getConstructorModemap(op) + cosig := CDR GETDATABASE(op, 'COSIG) + for arg in args for c in cosig for ct in cmm repeat + if c then + hash := hashCombine(hashType(arg, percentHash), hash) + else + hash := hashCombine(7, hash) -- !!! If/when asharp hashes values using their type, use instead --- ctt := EQSUBSTLIST(args, $FormalMapVariableList, ct) --- hash := hashCombine(hashType(ctt, percentHash), hash) +-- ctt := EQSUBSTLIST(args, $FormalMapVariableList, ct) +-- hash := hashCombine(hashType(ctt, percentHash), hash) - hash + hash --The following are in cfuns.lisp -$hashModulus := 1073741789 -- largest 30-bit prime +$hashModulus := 1073741789 -- largest 30-bit prime -- Produce a 30-bit hash code. This function must produce the same codes -- as the asharp string hasher in src/strops.c hashString str == - h := 0 - for i in 0..#str-1 repeat - j := CHAR_-CODE char str.i - h := LOGXOR(h, ASH(h, 8)) - h := h + j + 200041 - h := LOGAND(h, 1073741823) -- 0x3FFFFFFF - REM(h, $hashModulus) + h := 0 + for i in 0..#str-1 repeat + j := CHAR_-CODE char str.i + h := LOGXOR(h, ASH(h, 8)) + h := h + j + 200041 + h := LOGAND(h, 1073741823) -- 0x3FFFFFFF + REM(h, $hashModulus) -- Combine two hash codes to make a new one. Must be the same as in -- the hashCombine function in aslib/runtime.as in asharp. hashCombine(hash1, hash2) == - MOD(ASH(LOGAND(hash2, 16777215), 6) + hash1, $hashModulus) + MOD(ASH(LOGAND(hash2, 16777215), 6) + hash1, $hashModulus) $VoidHash := hashString '"Void" @@ -123,9 +109,3 @@ $VoidHash := hashString '"Void" -- following two lines correct bad coSig properties due to SubsetCategory --putConstructorProperty('LocalAlgebra,'coSig,'(NIL T T T)) --putConstructorProperty('Localize,'coSig,'(NIL T T T)) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/ht-root.boot.pamphlet b/src/interp/ht-root.boot index 9ec1bbf3..b81501a1 100644 --- a/src/interp/ht-root.boot.pamphlet +++ b/src/interp/ht-root.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp ht-root.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"ht-util" )package "BOOT" @@ -109,21 +95,21 @@ htSystemVariables() == main where functionTail(name,class,var,valuesOrFunction) == val := eval var atom valuesOrFunction => - htMakePage '((domainConditions (isDomain STR (String)))) - htMakePage [['bcLinks,['"reset",'"",'htSetSystemVariableKind,[var,name,nil]]]] - htMakePage [['bcStrings,[30,STRINGIMAGE val,name,valuesOrFunction]]] + htMakePage '((domainConditions (isDomain STR (String)))) + htMakePage [['bcLinks,['"reset",'"",'htSetSystemVariableKind,[var,name,nil]]]] + htMakePage [['bcStrings,[30,STRINGIMAGE val,name,valuesOrFunction]]] displayOptions(name,class,var,val,valuesOrFunction) displayOptions(name,class,variable,val,options) == class = 'INTEGER => - htMakePage [['bcLispLinks,[[['text,options.0,'"-",options.1 or '""]],'"",'htSetSystemVariableKind,[variable,name,'PARSE_-INTEGER]]]] - htMakePage '((domainConditions (isDomain INT (Integer)))) - htMakePage [['bcStrings,[5,STRINGIMAGE val,name,'INT]]] + htMakePage [['bcLispLinks,[[['text,options.0,'"-",options.1 or '""]],'"",'htSetSystemVariableKind,[variable,name,'PARSE_-INTEGER]]]] + htMakePage '((domainConditions (isDomain INT (Integer)))) + htMakePage [['bcStrings,[5,STRINGIMAGE val,name,'INT]]] class = 'STRING => - htSay('"{\em ",val,'"}\space{1}") + htSay('"{\em ",val,'"}\space{1}") for x in options repeat - val = x or val = true and x = 'on or null val and x = 'off => - htSay('"{\em ",x,'"}\space{1}") - htMakePage [['bcLispLinks,[x,'" ",'htSetSystemVariable,[variable,x]]]] + val = x or val = true and x = 'on or null val and x = 'off => + htSay('"{\em ",x,'"}\space{1}") + htMakePage [['bcLispLinks,[x,'" ",'htSetSystemVariable,[variable,x]]]] fn(t,al,firstTime) == atom t => al if firstTime then $heading := opOf first t @@ -307,9 +293,3 @@ mkUnixPattern s == u -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/ht-util.boot.pamphlet b/src/interp/ht-util.boot index 4e5de6aa..36330ed6 100644 --- a/src/interp/ht-util.boot.pamphlet +++ b/src/interp/ht-util.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp ht-util.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -747,9 +733,3 @@ unescapeStringsInForm form == -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/htcheck.boot.pamphlet b/src/interp/htcheck.boot index 82f67b3a..39fa49bb 100644 --- a/src/interp/htcheck.boot.pamphlet +++ b/src/interp/htcheck.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/htcheck.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"sys-driver" import '"macros" @@ -149,9 +131,3 @@ spadSysBranch(tree,arg) == --tree is (msg kind TREEorSomethingElse ...) systemError '"unknown tree branch" buildHtMacroTable() -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/htsetvar.boot.pamphlet b/src/interp/htsetvar.boot index f1b38f7d..a563645e 100644 --- a/src/interp/htsetvar.boot.pamphlet +++ b/src/interp/htsetvar.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp htsetvar.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -495,9 +481,3 @@ htCacheOne names == -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/hypertex.boot.pamphlet b/src/interp/hypertex.boot index 208f8aa7..21a3a1e3 100644 --- a/src/interp/hypertex.boot.pamphlet +++ b/src/interp/hypertex.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp hypertex.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"boot-pkg" )package "BOOT" @@ -137,9 +123,3 @@ popUpNamedHTPage(name,cols) == sendHTErrorSignal() == sockSendInt($MenuServer, $SpadError) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/macex.boot.pamphlet b/src/interp/macex.boot index a275c59b..b15445e0 100644 --- a/src/interp/macex.boot.pamphlet +++ b/src/interp/macex.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp macex.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -203,9 +189,3 @@ mac0InfiniteExpansion(posn, body, active) == [ [:[n,'"==>"] for n in reverse rnames], fname, %pform body ] ) body -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/nag-c02.boot b/src/interp/nag-c02.boot index a7cf81f6..2eade7ba 100644 --- a/src/interp/nag-c02.boot +++ b/src/interp/nag-c02.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-c05.boot b/src/interp/nag-c05.boot index 80436694..82d7c981 100644 --- a/src/interp/nag-c05.boot +++ b/src/interp/nag-c05.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-c06.boot b/src/interp/nag-c06.boot index f5733a6a..a61f5d42 100644 --- a/src/interp/nag-c06.boot +++ b/src/interp/nag-c06.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-d01.boot b/src/interp/nag-d01.boot index 9d85ecff..3d1ea138 100644 --- a/src/interp/nag-d01.boot +++ b/src/interp/nag-d01.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-d02.boot b/src/interp/nag-d02.boot index 69510bac..3387f5f7 100644 --- a/src/interp/nag-d02.boot +++ b/src/interp/nag-d02.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-d03.boot b/src/interp/nag-d03.boot index 912d8cea..17a6f86f 100644 --- a/src/interp/nag-d03.boot +++ b/src/interp/nag-d03.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-e01.boot b/src/interp/nag-e01.boot index 51e56996..a5d7df0c 100644 --- a/src/interp/nag-e01.boot +++ b/src/interp/nag-e01.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-e02.boot b/src/interp/nag-e02.boot index 56588e73..edc6f9f5 100644 --- a/src/interp/nag-e02.boot +++ b/src/interp/nag-e02.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-e02b.boot b/src/interp/nag-e02b.boot index aa307b1b..6a523ba2 100644 --- a/src/interp/nag-e02b.boot +++ b/src/interp/nag-e02b.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-e04.boot b/src/interp/nag-e04.boot index e20eb98e..860b3d38 100644 --- a/src/interp/nag-e04.boot +++ b/src/interp/nag-e04.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-f01.boot b/src/interp/nag-f01.boot index bbb511b6..3a6ddaa3 100644 --- a/src/interp/nag-f01.boot +++ b/src/interp/nag-f01.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-f02.boot b/src/interp/nag-f02.boot index f0cb92ed..d93b65e6 100644 --- a/src/interp/nag-f02.boot +++ b/src/interp/nag-f02.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-f04.boot b/src/interp/nag-f04.boot index 2d50f701..39498a45 100644 --- a/src/interp/nag-f04.boot +++ b/src/interp/nag-f04.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-f07.boot b/src/interp/nag-f07.boot index 1784e006..bbc690a8 100644 --- a/src/interp/nag-f07.boot +++ b/src/interp/nag-f07.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/nag-s.boot b/src/interp/nag-s.boot index e2eed84a..5b9051b2 100644 --- a/src/interp/nag-s.boot +++ b/src/interp/nag-s.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/osyscmd.boot.pamphlet b/src/interp/osyscmd.boot index c1afede2..c26a4246 100644 --- a/src/interp/osyscmd.boot.pamphlet +++ b/src/interp/osyscmd.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp osyscmd.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -67,9 +53,3 @@ parseFromString(s) == StreamNull s => nil pf2Sex macroExpanded first rest first s -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/package.boot.pamphlet b/src/interp/package.boot index f97f86ac..afb54051 100644 --- a/src/interp/package.boot.pamphlet +++ b/src/interp/package.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/package.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -292,9 +274,3 @@ addSuffix(n,u) == INTERNL STRCONC(s,STRINGIMAGE ";",STRINGIMAGE n) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/packtran.boot.pamphlet b/src/interp/packtran.boot index b1814ddf..b61683b9 100644 --- a/src/interp/packtran.boot.pamphlet +++ b/src/interp/packtran.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\$SPAD/src/interp packtran.boot} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -78,9 +60,3 @@ zeroOneTran sex == NSUBST("$EmptyMode", "?", sex) sex -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/pathname.boot.pamphlet b/src/interp/pathname.boot index cab703d1..fc3f882a 100644 --- a/src/interp/pathname.boot.pamphlet +++ b/src/interp/pathname.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp pathname.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -158,9 +144,3 @@ updateSourceFiles p == if MAKE_-INPUT_-FILENAME p and pathnameTypeId p in '(BOOT LISP META) then $sourceFiles := insert(p, $sourceFiles) p -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/pf2sex.boot.pamphlet b/src/interp/pf2sex.boot index a5ea9b6e..bde56323 100644 --- a/src/interp/pf2sex.boot.pamphlet +++ b/src/interp/pf2sex.boot @@ -1,61 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp pf2sex.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{Changes} -In the function [[float2Sex]] we need to special case the return value -if the global variable [[$useBFasDefault]] is set to true. This variable -allows ``big'' floating point values. - -The change can be seen from this email from Greg Vanuxem: -\begin{verbatim} -Attached is the patch (pf2sex.patch) that allows the use -of DoubleFloat by default in the interpreter. Test it. - -(1) -> 1.7+7.2 - - (1) 8.9 - Type: Float -(2) -> 1.7-7.2 - - (2) - 5.5 - Type: Float -(3) -> -1.7-7.2 - - (3) - 8.9 - Type: Float -(4) -> )boot $useBFasDefault:=false - -(SPADLET |$useBFasDefault| NIL) -Value = NIL - -(4) -> 1.7+7.2 - - (4) 8.9000000000000004 - Type: DoubleFloat -(5) -> 1.7-7.2 - - (5) - 5.5 - Type: DoubleFloat -(6) -> -1.7-7.2 - - (6) - 8.9000000000000004 - Type: DoubleFloat - - - -\end{verbatim} -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -85,9 +31,6 @@ Value = NIL -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -518,9 +461,3 @@ pfSuchThat2Sex args == -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/pile.boot b/src/interp/pile.boot index 9fc3f0c7..9742602e 100644 --- a/src/interp/pile.boot +++ b/src/interp/pile.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/profile.boot.pamphlet b/src/interp/profile.boot index f6d858d9..bc0916ac 100644 --- a/src/interp/profile.boot.pamphlet +++ b/src/interp/profile.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp profile.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -106,9 +92,3 @@ profileDisplayOp(op,alist1) == for [op1,:sig] in MSORT alist2 repeat sayBrightly ['" ",:formatOpSignature(op1,sig)] -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/pspad1.boot.pamphlet b/src/interp/pspad1.boot index 408ff6f5..ce580b14 100644 --- a/src/interp/pspad1.boot.pamphlet +++ b/src/interp/pspad1.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/pspad1.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -759,9 +741,3 @@ formatLocal1 a == $insideTypeExpression: local := true format a -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/pspad2.boot.pamphlet b/src/interp/pspad2.boot index 54e9a584..e5af3357 100644 --- a/src/interp/pspad2.boot.pamphlet +++ b/src/interp/pspad2.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp pspad2.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -675,9 +661,3 @@ formatRB(originalC) == --called only by restoreC $pileStyle => $m newLine() and format "}" and $m --==> brace -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/ptrees.boot.pamphlet b/src/interp/ptrees.boot index 414b09af..b6ab6e37 100644 --- a/src/interp/ptrees.boot.pamphlet +++ b/src/interp/ptrees.boot @@ -1,34 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp ptrees.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\begin{verbatim} -Abstract Syntax Trees - -This file provides functions to create and examine abstract -syntax trees. These are called pform, for short. -The definition of valid pforms see ABSTRACT BOOT. - -!! This file also contains constructors for concrete syntax, although -!! they should be somewhere else. - -THE PFORM DATA STRUCTURE - Leaves: [hd, tok, pos] - Trees: [hd, tree, tree, ...] - hd is either an id or (id . alist) - -\end{verbatim} -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -58,9 +31,21 @@ THE PFORM DATA STRUCTURE -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> + + +-- This file provides functions to create and examine abstract +-- syntax trees. These are called pform, for short. +-- The definition of valid pforms see ABSTRACT BOOT. + +-- !! This file also contains constructors for concrete syntax, although +-- !! they should be somewhere else. + +-- THE PFORM DATA STRUCTURE +-- Leaves: [hd, tok, pos] +-- Trees: [hd, tree, tree, ...] +-- hd is either an id or (id . alist) + + import '"posit" import '"serror" @@ -785,9 +770,3 @@ pf0FlattenSyntacticTuple pform == not pfTuple? pform => [pform] [:pf0FlattenSyntacticTuple p for p in pf0TupleParts pform] -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/redefs.boot.pamphlet b/src/interp/redefs.boot.pamphlet deleted file mode 100644 index 519c3fbb..00000000 --- a/src/interp/redefs.boot.pamphlet +++ /dev/null @@ -1,92 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp redefs.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= --- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. --- All rights reserved. --- --- Redistribution and use in source and binary forms, with or without --- modification, are permitted provided that the following conditions are --- met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- --- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS --- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED --- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER --- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, --- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, --- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR --- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF --- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING --- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -@ -<<*>>= -<<license>> - -)package "BOOT" - -BLANKS n== MAKE_-FULL_-CVEC (n) - -object2String x== - STRINGP x=>x - IDENTP x=> PNAME x - STRINGIMAGE x - -sayMSG x== shoeConsole x -sayBrightly x== - brightPrint x - TERPRI() -;;char x==CHAR(PNAME x,0) -pathname x==CONCAT(PNAME(x.0),'".",PNAME(x.1)) -CVECP x== STRINGP x -concat(:l) == concatList l - -concatList [x,:y] == - null y => x - null x => concatList y - concat1(x,concatList y) - -concat1(x,y) == - null x => y - atom x => (null y => x; atom y => [x,y]; [x,:y]) - null y => x - atom y => [:x,y] - [:x,:y] - ---$FILESIZE x== --- a:=OPEN MAKE_-INPUT_-FILENAME x --- b:=FILE_-LENGTH a --- CLOSE a --- b -SPADCATCH(x,y)==CATCH(x,y) -SPADTHROW(x,y)==THROW(x,y) -listSort(f,l)== SORT(l,f) -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/rulesets.boot.pamphlet b/src/interp/rulesets.boot index 9c1ccd82..0e786f7f 100644 --- a/src/interp/rulesets.boot.pamphlet +++ b/src/interp/rulesets.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp rulesets.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"vmlisp" )package "BOOT" @@ -320,9 +306,3 @@ initializeRuleSets() == createTypeEquivRules() $ruleSetsInitialized := true true -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/server.boot.pamphlet b/src/interp/server.boot index ae0bfcc1..9bb1c271 100644 --- a/src/interp/server.boot.pamphlet +++ b/src/interp/server.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp server.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"macros" )package "BOOT" @@ -235,9 +221,3 @@ protectedEVAL x == UNWIND_-PROTECT((val := EVAL x; error := NIL), error => (resetStackLimits(); sendHTErrorSignal())) val -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/showimp.boot b/src/interp/showimp.boot index c6af476a..829aa5e5 100644 --- a/src/interp/showimp.boot +++ b/src/interp/showimp.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/simpbool.boot.pamphlet b/src/interp/simpbool.boot index 88021ab9..d79829c2 100644 --- a/src/interp/simpbool.boot.pamphlet +++ b/src/interp/simpbool.boot @@ -1,18 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp simpbool.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -42,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -217,9 +203,3 @@ testPredList u == pp x pp '"==========>" pp y -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/slam.boot.pamphlet b/src/interp/slam.boot index fe4f4c1c..d9832a9a 100644 --- a/src/interp/slam.boot.pamphlet +++ b/src/interp/slam.boot @@ -1,19 +1,7 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\File{src/interp/slam.boot} Pamphlet} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -43,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> import '"g-timer" )package "BOOT" @@ -351,10 +336,3 @@ clearAllSlams x == clearSlam("functor")== id:= mkCacheName functor SET(id,nil) -@ - -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/sys-constants.boot b/src/interp/sys-constants.boot index adca0eca..75896661 100644 --- a/src/interp/sys-constants.boot +++ b/src/interp/sys-constants.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -29,8 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- --- Copyright (C) 2007 Gabriel Dos Reis --- -- -- This file collects and documents some of the constants used by either diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot index f33d9bc8..2bd991fa 100644 --- a/src/interp/sys-driver.boot +++ b/src/interp/sys-driver.boot @@ -1,5 +1,7 @@ -- Copyright (C) 2007 Gabriel Dos Reis -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/sys-globals.boot b/src/interp/sys-globals.boot index e01aca54..072c4ac0 100644 --- a/src/interp/sys-globals.boot +++ b/src/interp/sys-globals.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/template.boot b/src/interp/template.boot index 06b03d7a..78018e07 100644 --- a/src/interp/template.boot +++ b/src/interp/template.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/termrw.boot b/src/interp/termrw.boot index 6829defc..5b876b84 100644 --- a/src/interp/termrw.boot +++ b/src/interp/termrw.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/topics.boot b/src/interp/topics.boot index 32a7d7bf..5ecc9dee 100644 --- a/src/interp/topics.boot +++ b/src/interp/topics.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/trace.boot b/src/interp/trace.boot index 6cfd5d39..cb78d843 100644 --- a/src/interp/trace.boot +++ b/src/interp/trace.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/varini.boot b/src/interp/varini.boot index aa70e21e..5b755d32 100644 --- a/src/interp/varini.boot +++ b/src/interp/varini.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/wi1.boot.pamphlet b/src/interp/wi1.boot index a86a7da2..6d287d09 100644 --- a/src/interp/wi1.boot.pamphlet +++ b/src/interp/wi1.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/wi1.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -95,7 +77,7 @@ put(x,prop,val,e) == SAY ["**** modemap PUT on CapsuleModemapFrame: ",val] $CapsuleModemapFrame:= addBinding(x,augProplistOf(x,"modemap",val,$CapsuleModemapFrame), - $CapsuleModemapFrame) + $CapsuleModemapFrame) e addBinding(x,newProplist,e) @@ -104,11 +86,11 @@ addBinding(var,proplist,e is [[curContour,:tailContour],:tailEnv]) == EQ(proplist,getProplist(var,e)) => e $InteractiveMode => addBindingInteractive(var,proplist,e) if curContour is [[ =var,:.],:.] then curContour:= rest curContour - --Previous line should save some space + --Previous line should save some space [[[lx,:curContour],:tailContour],:tailEnv] where lx:= [var,:proplist] --====================================================================== --- From define.boot +-- From define.boot --====================================================================== compJoin(["Join",:argl],m,e) == catList:= [(compForMode(x,$Category,e) or return 'failed).expr for x in argl] @@ -158,12 +140,12 @@ compDefineLisplib(df,m,e,prefix,fal,fn) == $lisplibKind: local := NIL $lisplibModemap: local := NIL $lisplibModemapAlist: local := NIL - $lisplibSlot1 : local := NIL -- used by NRT mechanisms + $lisplibSlot1 : local := NIL -- used by NRT mechanisms $lisplibOperationAlist: local := NIL $lisplibSuperDomain: local := NIL $libFile: local := NIL $lisplibVariableAlist: local := NIL - $lisplibRelatedDomains: local := NIL --from ++ Related Domains: see c-doc + $lisplibRelatedDomains: local := NIL --from ++ Related Domains: see c-doc $lisplibCategory: local := nil --for categories, is rhs of definition; otherwise, is target of functor --will eventually become the "constructorCategory" property in lisplib @@ -204,7 +186,7 @@ compTopLevel(x,m,e) == 'sorry x is ["DEF",:.] or x is ["where",["DEF",:.],:.] => ([val,mode,.]:= FUNCALL(compFun,x,m,e); [val,mode,e]) - --keep old environment after top level function defs + --keep old environment after top level function defs FUNCALL(compFun,x,m,e) markWhereTran ["where",["DEF",form,sig,clist,body],:tail] == @@ -219,24 +201,24 @@ markWhereTran ["where",["DEF",form,sig,clist,body],:tail] == for x in items repeat x is [":",a,b] => a is ['LISTOF,:r] => - for y in r repeat decls := [[":",y,b],:decls] + for y in r repeat decls := [[":",y,b],:decls] decls := [x,:decls] x is [key,fn,p,q,bd] and MEMQ(key,'(DEF MDEF)) and p='(NIL) and q='(NIL) => fn = target or fn is [=target] => ttype := bd - fn = body or fn is [=body] => body := bd + fn = body or fn is [=body] => body := bd macros := [x,:macros] systemError ['"unexpected WHERE item: ",x] nargtypes := [p for arg in argl | - p := or/[t for d in decls | d is [.,=arg,t]] or - systemError ['"Missing WHERE declaration for :", arg]] + p := or/[t for d in decls | d is [.,=arg,t]] or + systemError ['"Missing WHERE declaration for :", arg]] nform := form ntarget := ttype or target ndef := ['DEF,nform,[ntarget,:nargtypes],clist,body] result := REVERSE macros is [:m,e] => mpart := - m => ['SEQ,:m,['exit,1,e]] - e + m => ['SEQ,:m,['exit,1,e]] + e ['where,ndef,mpart] ndef result @@ -309,9 +291,9 @@ compNoStacking01(x,m,e) == T:= comp2(x,m,e) => (m=$EmptyMode and T.mode=IFCAR(get('Rep,'value,e)) => [T.expr,"Rep",T.env]; qt(12,T)) - --$Representation is bound in compDefineFunctor, set by doIt - --this hack says that when something is undeclared, $ is - --preferred to the underlying representation -- RDJ 9/12/83 + --$Representation is bound in compDefineFunctor, set by doIt + --this hack says that when something is undeclared, $ is + --preferred to the underlying representation -- RDJ 9/12/83 T := compNoStacking1(x,m,e,$compStack) qt(13,T) @@ -337,7 +319,7 @@ compWithMappingMode(x,m,oldE) == isFunctor x => if get(x,"modemap",$CategoryFrame) is [[[.,target,:argModeList],.],:.] and (and/[extendsCategoryForm("$",s,mode) for mode in argModeList for s in sl] - ) and extendsCategoryForm("$",target,m') then return [x,m,e] + ) and extendsCategoryForm("$",target,m') then return [x,m,e] if STRINGP x then x:= INTERN x for m in sl for v in (vl:= take(#sl,$FormalMapVariableList)) repeat [.,.,e]:= compMakeDeclaration([":",v,m],$EmptyMode,e) @@ -394,8 +376,8 @@ compSymbol(s,m,e) == v:= get(s,"value",e) => --+ MEMQ(s,$functorLocalParameters) => - NRTgetLocalIndex s - [s,v.mode,e] --s will be replaced by an ELT form in beforeCompile + NRTgetLocalIndex s + [s,v.mode,e] --s will be replaced by an ELT form in beforeCompile [s,v.mode,e] --s has been SETQd m':= getmode(s,e) => if not member(s,$formalArgList) and not MEMQ(s,$FormalMapVariableList) and @@ -438,8 +420,8 @@ compForm1(form,m,e) == -------> new <------------- domain= 'Rep and (ans := compForm2([op',:argl],SUBST('Rep,'_$,m),e:= addDomain(domain,e), - [SUBST('Rep,'_$,x) for x in getFormModemaps([op',:argl],e) - | x is [[ =domain,:.],:.]])) => ans + [SUBST('Rep,'_$,x) for x in getFormModemaps([op',:argl],e) + | x is [[ =domain,:.],:.]])) => ans -------> new <------------- ans := compForm2([op',:argl],m,e:= addDomain(domain,e), [x for x in getFormModemaps([op',:argl],e) | x is [[ =domain,:.],:.]]) => ans @@ -460,7 +442,7 @@ compForm3(form is [op,:argl],m,e,modemapList) == T:= or/ [compFormWithModemap(form,m,e,first (mml:= ml)) - for ml in tails modemapList] or return nil + for ml in tails modemapList] or return nil qt(14,T) result := $compUniquelyIfTrue => @@ -498,11 +480,11 @@ compWhere([.,form,:exprList],m,eInit) == -- if not $insideFunctorIfTrue then -- $originalTarget := -- form is ['DEF,a,osig,:.] and osig is [otarget,:.] => --- exprList is [['SEQ,:l,['exit,n,y]]] and (u := [:l,y]) and --- (ntarget := or/[def for x in u | x is [op,a',:.,def] and ([op,a',otarget]) and --- MEMQ(op,'(DEF MDEF)) and (a' = otarget or a' is [=otarget])]) => --- [ntarget,:rest osig] --- osig +-- exprList is [['SEQ,:l,['exit,n,y]]] and (u := [:l,y]) and +-- (ntarget := or/[def for x in u | x is [op,a',:.,def] and ([op,a',otarget]) and +-- MEMQ(op,'(DEF MDEF)) and (a' = otarget or a' is [=otarget])]) => +-- [ntarget,:rest osig] +-- osig -- nil -- foobum exprList e:= eInit @@ -524,9 +506,9 @@ compMacro(form,m,e) == markMacro(first lhs,rhs) rhs := rhs is ['CATEGORY,:.] => ['"-- the constructor category"] - rhs is ['Join,:.] => ['"-- the constructor category"] + rhs is ['Join,:.] => ['"-- the constructor category"] rhs is ['CAPSULE,:.] => ['"-- the constructor capsule"] - rhs is ['add,:.] => ['"-- the constructor capsule"] + rhs is ['add,:.] => ['"-- the constructor capsule"] formatUnabbreviated rhs sayBrightly ['" processing macro definition",'%b, :formatUnabbreviated lhs,'" ==> ",:rhs,'%d] @@ -539,9 +521,9 @@ compMacro(form,m,e) == -- ["MDEF",lhs,signature,specialCases,rhs]:= form -- rhs := -- rhs is ['CATEGORY,:.] => ['"-- the constructor category"] --- rhs is ['Join,:.] => ['"-- the constructor category"] +-- rhs is ['Join,:.] => ['"-- the constructor category"] -- rhs is ['CAPSULE,:.] => ['"-- the constructor capsule"] --- rhs is ['add,:.] => ['"-- the constructor capsule"] +-- rhs is ['add,:.] => ['"-- the constructor capsule"] -- formatUnabbreviated rhs -- sayBrightly ['" processing macro definition",'%b, -- :formatUnabbreviated lhs,'" ==> ",:rhs,'%d] @@ -583,11 +565,11 @@ setqSingle(id,val,m,E) == T:= (trialT and coerce(trialT,m'')) or eval or return nil where eval() == - T:= comp(val,m'',E) => T - not get(id,"mode",E) and m'' ^= (maxm'':=maxSuperType(m'',E)) and - (T:=comp(val,maxm'',E)) => T - (T:= comp(val,$EmptyMode,E)) and getmode(T.mode,E) => - assignError(val,T.mode,id,m'') + T:= comp(val,m'',E) => T + not get(id,"mode",E) and m'' ^= (maxm'':=maxSuperType(m'',E)) and + (T:=comp(val,maxm'',E)) => T + (T:= comp(val,$EmptyMode,E)) and getmode(T.mode,E) => + assignError(val,T.mode,id,m'') T':= [x,m',e']:= convert(T,m) or return nil if $profileCompiler = true then null IDENTP id => nil @@ -601,7 +583,7 @@ setqSingle(id,val,m,E) == if isDomainForm(x1,e') then if isDomainInScope(id,e') then stackWarning ["domain valued variable","%b",id,"%d", - "has been reassigned within its scope"] + "has been reassigned within its scope"] e':= augModemapsFromDomain1(id,x1,e') --all we do now is to allocate a slot number for lhs --e.g. the LET form below will be changed by putInLocalDomainReferences @@ -611,9 +593,9 @@ setqSingle(id,val,m,E) == $markFreeStack := [id,:$markFreeStack] form:=['SETELT,"$",k,x] else form:= - $QuickLet => ["LET",id,x] - ["LET",id,x, - (isDomainForm(x,e') => ['ELT,id,0];CAR outputComp(id,e'))] + $QuickLet => ["LET",id,x] + ["LET",id,x, + (isDomainForm(x,e') => ['ELT,id,0];CAR outputComp(id,e'))] [form,m',e'] setqMultiple(nameList,val,m,e) == @@ -632,13 +614,13 @@ setqMultiple(nameList,val,m,e) == convert([["PROGN",x,["LET",nameList,g],g],m',e],m) --2. verify that the #nameList = number of parts of right-hand-side selectorModePairs:= - --list of modes + --list of modes decompose(m1,#nameList,e) or return nil where decompose(t,length,e) == - t is ["Record",:l] => [[name,:mode] for [":",name,mode] in l] - comp(t,$EmptyMode,e) is [.,["RecordCategory",:l],.] => - [[name,:mode] for [":",name,mode] in l] - stackMessage ["no multiple assigns to mode: ",t] + t is ["Record",:l] => [[name,:mode] for [":",name,mode] in l] + comp(t,$EmptyMode,e) is [.,["RecordCategory",:l],.] => + [[name,:mode] for [":",name,mode] in l] + stackMessage ["no multiple assigns to mode: ",t] #nameList^=#selectorModePairs => stackMessage [val," must decompose into ",#nameList," components"] -- 3.generate code; return @@ -656,7 +638,7 @@ setqMultipleExplicit(nameList,valList,m,e) == for g in gensymList for name in nameList repeat e := put(g,"mode",get(name,"mode",e),e) assignList:= - --should be fixed to declare genVar when possible + --should be fixed to declare genVar when possible [[.,.,e]:= compSetq1(g,val,$EmptyMode,e) or return "failed" for g in gensymList for val in valList for name in nameList] assignList="failed" => nil @@ -681,18 +663,18 @@ canReturn(expr,level,exitCount,ValueFlag) == --SPAD: exit and friends [.,gs,data]:= expr (findThrow(gs,data,level,exitCount,ValueFlag) => true) where findThrow(gs,expr,level,exitCount,ValueFlag) == - atom expr => nil - expr is ["THROW", =gs,data] => true - --this is pessimistic, but I know of no more accurate idea - expr is ["SEQ",:l] => - or/[findThrow(gs,u,level+1,exitCount,ValueFlag) for u in l] - or/[findThrow(gs,u,level,exitCount,ValueFlag) for u in rest expr] + atom expr => nil + expr is ["THROW", =gs,data] => true + --this is pessimistic, but I know of no more accurate idea + expr is ["SEQ",:l] => + or/[findThrow(gs,u,level+1,exitCount,ValueFlag) for u in l] + or/[findThrow(gs,u,level,exitCount,ValueFlag) for u in rest expr] canReturn(data,level,exitCount,ValueFlag) op = "COND" => level = exitCount => or/[canReturn(last u,level,exitCount,ValueFlag) for u in rest expr] or/[or/[canReturn(u,level,exitCount,ValueFlag) for u in v] - for v in rest expr] + for v in rest expr] op="IF" => expr is [.,a,b,c] if not canReturn(a,0,0,true) and not (BOUNDP '$convert2NewCompiler and $convert2NewCompiler) then @@ -744,16 +726,16 @@ compColon([":",f,t],m,e) == f is [op,:argl] and not (t is ["Mapping",:.]) => --for MPOLY--replace parameters by formal arguments: RDJ 3/83 newTarget:= EQSUBSTLIST(take(#argl,$FormalMapVariableList), - [(x is [":",a,m] => a; x) for x in argl],t) + [(x is [":",a,m] => a; x) for x in argl],t) signature:= - ["Mapping",newTarget,: - [(x is [":",a,m] => m; - getmode(x,e) or systemErrorHere '"compColonOld") for x in argl]] + ["Mapping",newTarget,: + [(x is [":",a,m] => m; + getmode(x,e) or systemErrorHere '"compColonOld") for x in argl]] put(op,"mode",signature,e) put(f,"mode",t,e) if not $bootStrapMode and $insideFunctorIfTrue and makeCategoryForm(t,e) is [catform,e] then - e:= put(f,"value",[genSomeVariable(),t,$noEnv],e) + e:= put(f,"value",[genSomeVariable(),t,$noEnv],e) ["/throwAway",getmode(f,e),e] compConstruct(form,m,e) == (T := compConstruct1(form,m,e)) and markConstruct(form,T) @@ -840,7 +822,7 @@ coerce(T,m) == coerce0(T,m) == T':= coerceEasy(T,m) => T' T':= coerceSubset(T,m) => markCoerce(T,T','AUTOSUBSET) - T':= coerceHard(T,m) => markCoerce(T,T','AUTOHARD) + T':= coerceHard(T,m) => markCoerce(T,T','AUTOHARD) T':= coerceExtraHard(T,m) => T' T.expr = "$fromCoerceable$" or isSomeDomainVariable m => nil T' := coerceRep(T,m) => markCoerce(T,T','AUTOREP) @@ -849,7 +831,7 @@ coerce0(T,m) == -- from compFormWithModemap to filter through the modemaps fn(x,m1,m2) == ["Cannot coerce","%b",x,"%d","%l"," of mode","%b",m1,"%d","%l", - " to mode","%b",m2,"%d"] + " to mode","%b",m2,"%d"] coerceSubset(T := [x,m,e],m') == m = $SmallInteger => @@ -876,18 +858,18 @@ coerceRep(T,m) == --- GET rid of XLAMs spadCompileOrSetq form == - --bizarre hack to take account of the existence of "known" functions - --good for performance (LISPLLIB size, BPI size, NILSEC) + --bizarre hack to take account of the existence of "known" functions + --good for performance (LISPLLIB size, BPI size, NILSEC) [nam,[lam,vl,body]] := form CONTAINED("",body) => sayBrightly ['" ",:bright nam,'" not compiled"] if vl is [:vl',E] and body is [nam',: =vl'] then LAM_,EVALANDFILEACTQ ['PUT,MKQ nam,MKQ 'SPADreplace,MKQ nam'] sayBrightly ['" ",:bright nam,'"is replaced by",:bright nam'] else if (ATOM body or and/[ATOM x for x in body]) - and vl is [:vl',E] and not CONTAINED(E,body) then - macform := ['XLAM,vl',body] - LAM_,EVALANDFILEACTQ ['PUT,MKQ nam,MKQ 'SPADreplace,MKQ macform] - sayBrightly ['" ",:bright nam,'"is replaced by",:bright body] + and vl is [:vl',E] and not CONTAINED(E,body) then + macform := ['XLAM,vl',body] + LAM_,EVALANDFILEACTQ ['PUT,MKQ nam,MKQ 'SPADreplace,MKQ macform] + sayBrightly ['" ",:bright nam,'"is replaced by",:bright body] $insideCapsuleFunctionIfTrue => first COMP LIST form compileConstructor form @@ -970,7 +952,7 @@ autoCoerceByModemap([x,source,e],target) == markCoerceByModemap(x,source,target,[["call",fn,x],target,e],true) --====================================================================== --- From compiler.boot +-- From compiler.boot --====================================================================== --comp3x(x,m,$e) == @@ -1070,7 +1052,7 @@ compBoolean(p,pWas,m,Einit) == T := comp(p,m,Einit) or return nil markAny('compBoolean,pWas,T) [p',m,getSuccessEnvironment(markKillAll p,E), - getInverseEnvironment(markKillAll p,E)] + getInverseEnvironment(markKillAll p,E)] compAnd([op,:args], pWas, m, e) == --called ONLY from compBoolean @@ -1122,7 +1104,7 @@ compDefine1(form,m,e) == -- the modemap by a declaration, then strip off declarations and recurse e := compDefineAddSignature(lhs,signature,e) -- 2. if signature list for arguments is not empty, replace ('DEF,..) by --- ('where,('DEF,..),..) with an empty signature list; +-- ('where,('DEF,..),..) with an empty signature list; -- otherwise, fill in all NILs in the signature not (and/[null x for x in rest signature]) => compDefWhereClause(form,m,e) signature.target=$Category => @@ -1130,7 +1112,7 @@ compDefine1(form,m,e) == isDomainForm(rhs,e) and not $insideFunctorIfTrue => if null signature.target then signature:= [getTargetFromRhs(lhs,rhs,giveFormalParametersValues(rest lhs,e)),: - rest signature] + rest signature] rhs:= addEmptyCapsuleIfNecessary(signature.target,rhs) compDefineFunctor(['DEF,lhs,signature,specialCases,rhs],m,e,nil, $formalArgList) @@ -1148,19 +1130,19 @@ compDefineCategory(df,m,e,prefix,fal) == compDefineCategory1(df,m,e,prefix,fal) compDefineCategory1(df,m,e,prefix,fal) == - $DEFdepth : local := 0 --for conversion to new compiler 3/93 - $capsuleStack : local := nil --for conversion to new compiler 3/93 + $DEFdepth : local := 0 --for conversion to new compiler 3/93 + $capsuleStack : local := nil --for conversion to new compiler 3/93 $predicateStack:local := nil --for conversion to new compiler 3/93 $signatureStack:local := nil --for conversion to new compiler 3/93 - $importStack : local := nil --for conversion to new compiler 3/93 - $globalImportStack : local := nil --for conversion to new compiler 3/93 + $importStack : local := nil --for conversion to new compiler 3/93 + $globalImportStack : local := nil --for conversion to new compiler 3/93 $catAddForm : local := nil --for conversion to new compiler 2/95 $globalDeclareStack : local := nil $globalImportDefAlist: local:= nil - $localMacroStack : local := nil --for conversion to new compiler 3/93 - $freeStack : local := nil --for conversion to new compiler 3/93 + $localMacroStack : local := nil --for conversion to new compiler 3/93 + $freeStack : local := nil --for conversion to new compiler 3/93 $domainLevelVariableList: local := nil--for conversion to new compiler 3/93 - $categoryTranForm : local := nil --for conversion to new compiler 10/93 + $categoryTranForm : local := nil --for conversion to new compiler 10/93 ['DEF,form,sig,sc,body] := df body := markKillAll body --these parts will be replaced by compDefineLisplib categoryCapsule := @@ -1177,7 +1159,7 @@ compDefineCategory1(df,m,e,prefix,fal) == [.,.,e] := $insideCategoryPackageIfTrue: local := true --see NRTmakeSlot1 $categoryPredicateList: local := - makeCategoryPredicates(form,$lisplibCategory) + makeCategoryPredicates(form,$lisplibCategory) defform := mkCategoryPackage(form,cat,categoryCapsule) ['DEF,[.,arg,:.],:.] := defform $categoryNameForDollar :local := arg @@ -1194,12 +1176,12 @@ compDefineCategory2(form,signature,specialCases,body,m,e, $insideCategoryIfTrue: local:= true $TOP__LEVEL: local $definition: local - --used by DomainSubstitutionFunction + --used by DomainSubstitutionFunction $form: local $op: local $extraParms: local - --Set in DomainSubstitutionFunction, used further down --- 1.1 augment e to add declaration $: <form> + --Set in DomainSubstitutionFunction, used further down +-- 1.1 augment e to add declaration $: <form> [$op,:argl]:= $definition:= form e:= addBinding("$",[['mode,:$definition]],e) @@ -1229,7 +1211,7 @@ compDefineCategory2(form,signature,specialCases,body,m,e, op':= $op -- following line causes cats with no with or Join to be fresh copies if opOf(formalBody)^='Join and opOf(formalBody)^='mkCategory then - formalBody := ['Join, formalBody] + formalBody := ['Join, formalBody] T := compOrCroak(formalBody,signature'.target,e) --------------------> new <------------------- $catAddForm := @@ -1241,12 +1223,12 @@ compDefineCategory2(form,signature,specialCases,body,m,e, if $extraParms then formals:=actuals:=nil for u in $extraParms repeat - formals:=[CAR u,:formals] - actuals:=[MKQ CDR u,:actuals] + formals:=[CAR u,:formals] + actuals:=[MKQ CDR u,:actuals] body := ['sublisV,['PAIR,['QUOTE,formals],['LIST,:actuals]],body] - if argl then body:= -- always subst for args after extraparms - ['sublisV,['PAIR,['QUOTE,sargl],['LIST,: - [['devaluate,u] for u in sargl]]],body] + if argl then body:= -- always subst for args after extraparms + ['sublisV,['PAIR,['QUOTE,sargl],['LIST,: + [['devaluate,u] for u in sargl]]],body] body:= ['PROG1,['LET,g:= GENSYM(),body],['SETELT,g,0,mkConstructor $functorForm]] fun:= compile [op',['LAM,sargl,body]] @@ -1255,33 +1237,27 @@ compDefineCategory2(form,signature,specialCases,body,m,e, pairlis:= [[a,:v] for a in argl for v in $FormalMapVariableList] parSignature:= SUBLIS(pairlis,signature') parForm:= SUBLIS(pairlis,form) ----- lisplibWrite('"compilerInfo", ----- ['SETQ,'$CategoryFrame, ----- ['put,['QUOTE,op'],' ----- (QUOTE isCategory),true,['addModemap,MKQ op',MKQ parForm, ----- MKQ parSignature,true,MKQ fun,'$CategoryFrame]]],$libFile) +---- lisplibWrite('"compilerInfo", +---- ['SETQ,'$CategoryFrame, +---- ['put,['QUOTE,op'],' +---- (QUOTE isCategory),true,['addModemap,MKQ op',MKQ parForm, +---- MKQ parSignature,true,MKQ fun,'$CategoryFrame]]],$libFile) --Equivalent to the following two lines, we hope if null sargl then evalAndRwriteLispForm('NILADIC, - ['MAKEPROP,['QUOTE,op'],'(QUOTE NILADIC),true]) + ['MAKEPROP,['QUOTE,op'],'(QUOTE NILADIC),true]) -- 6. put modemaps into InteractiveModemapFrame $domainShell := BOUNDP '$convertingSpadFile and $convertingSpadFile => nil eval [op',:MAPCAR('MKQ,sargl)] $lisplibCategory:= formalBody ----- if $LISPLIB then ----- $lisplibForm:= form ----- $lisplibKind:= 'category ----- modemap:= [[parForm,:parSignature],[true,op']] ----- $lisplibModemap:= modemap ----- $lisplibCategory:= formalBody ----- form':=[op',:sargl] ----- augLisplibModemapsFromCategory(form',formalBody,signature') +---- if $LISPLIB then +---- $lisplibForm:= form +---- $lisplibKind:= 'category +---- modemap:= [[parForm,:parSignature],[true,op']] +---- $lisplibModemap:= modemap +---- $lisplibCategory:= formalBody +---- form':=[op',:sargl] +---- augLisplibModemapsFromCategory(form',formalBody,signature') [fun,'(Category),e] -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/wi2.boot.pamphlet b/src/interp/wi2.boot index e4dd5a8a..4c8035ac 100644 --- a/src/interp/wi2.boot.pamphlet +++ b/src/interp/wi2.boot @@ -1,22 +1,7 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/wi2.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\section{License} - -<<license>>= -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -46,9 +31,6 @@ -- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@ -<<*>>= -<<license>> )package "BOOT" @@ -749,7 +731,7 @@ optDeltaEntry(op,sig,dc,eltOrConst) == not(IDENTP x) => x get(x,'value,$e) => x x='$ => x - MKQ x + MKQ x fn := compiledLookup(op,nsig,dcval) if null fn then return nil eltOrConst="CONST" => @@ -1247,9 +1229,3 @@ chk(x,key) == fn(x,0,key) where fn(x,cnt,key) == for y in x repeat cnt := fn(y, cnt + 1, key) cnt -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/xrun.boot b/src/interp/xrun.boot index b6be04c5..925d1c16 100644 --- a/src/interp/xrun.boot +++ b/src/interp/xrun.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are diff --git a/src/interp/xruncomp.boot b/src/interp/xruncomp.boot index 4b558a3e..ffd4b211 100644 --- a/src/interp/xruncomp.boot +++ b/src/interp/xruncomp.boot @@ -1,5 +1,7 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. +-- Copyright (C) 2007, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are |