diff options
author | dos-reis <gdr@axiomatics.org> | 2007-11-07 20:54:59 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-11-07 20:54:59 +0000 |
commit | 4edaea6cff2d604009b8f2723a9436b0fc97895d (patch) | |
tree | eb5d3765b2e4f131610571cf5f15eef53419fca0 /src/interp/i-util.boot.pamphlet | |
parent | 45ce0071c30e84b72e4c603660285fa6a462e7f7 (diff) | |
download | open-axiom-4edaea6cff2d604009b8f2723a9436b0fc97895d.tar.gz |
remove more pamphlets
Diffstat (limited to 'src/interp/i-util.boot.pamphlet')
-rw-r--r-- | src/interp/i-util.boot.pamphlet | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/src/interp/i-util.boot.pamphlet b/src/interp/i-util.boot.pamphlet deleted file mode 100644 index 3539c195..00000000 --- a/src/interp/i-util.boot.pamphlet +++ /dev/null @@ -1,263 +0,0 @@ -\documentclass{article} -\usepackage{axiom} - -\title{\File{src/interp/i-util.boot} Pamphlet} -\author{The Axiom Team} - -\begin{document} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject - -\begin{verbatim} -Wrapping and Unwrapping Values - -A wrapped value represents something that need not be evaluated -when code is generated. This includes objects from domains or things -that just happed to evaluate to themselves. Typically generated -lisp code is unwrapped. - -\end{verbatim} -\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>> - -import '"g-util" -)package "BOOT" - ---% The function for making prompts - -spadPrompt() == - SAY '" AXIOM" - sayNewLine() - -inputPrompt str == - -- replaces older INPUT-PROMPT - atom (x := $SCREENSIZE()) => NIL - p := CAR(x) - 2 - y := $OLDLINE - SETQ($OLDLINE,NIL) - y => _$SHOWLINE(STRCONC(str,EBCDIC 19,y),p) - 0 = SIZE str => NIL - _$SHOWLINE(STRCONC(str,EBCDIC 19),p) - -protectedPrompt(:p) == - [str,:br] := p - 0 = SIZE str => inputPrompt str - msg := EBCDIC 29 -- start of field - msg := - if br then STRCONC(msg,EBCDIC 232) -- bright write protect - else STRCONC(msg,EBCDIC 96) -- write protect - msg := STRCONC(msg,str,EBCDIC 29,EBCDIC 64) -- unprotect again - inputPrompt msg - -MKPROMPT() == - $inputPromptType = 'none => '"" - $inputPromptType = 'plain => '"-> " - $inputPromptType = 'step => - STRCONC('"(",STRINGIMAGE $IOindex,'") -> ") - $inputPromptType = 'frame => - STRCONC(STRINGIMAGE $interpreterFrameName, - '" (",STRINGIMAGE $IOindex,'") -> ") - STRCONC(STRINGIMAGE $interpreterFrameName, - '" [", SUBSTRING(CURRENTTIME(),8,NIL),'"] [", - STRINGIMAGE $IOindex, '"] -> ") - ---% Miscellaneous - -Zeros n == - BOUNDP '$ZeroVecCache and #$ZeroVecCache=n => $ZeroVecCache - $ZeroVecCache:= MAKE_-VEC n - for i in 0..n-1 repeat $ZeroVecCache.i:=0 - $ZeroVecCache - -LZeros n == - n < 1 => nil - l := [0] - for i in 2..n repeat l := [0, :l] - l - --- bpi2FunctionName x == --- s:= BPINAME x => s --- x - --- subrToName x == BPINAME x - --- formerly in clammed.boot - -isSubDomain(d1,d2) == - -- d1 and d2 are different domains - subDomainList := '(Integer NonNegativeInteger PositiveInteger) - ATOM d1 or ATOM d2 => nil - l := MEMQ(CAR d2, subDomainList) => - MEMQ(CAR d1, CDR l) - nil - -$variableNumberAlist := nil - -variableNumber(x) == - p := ASSQ(x, $variableNumberAlist) - null p => - $variableNumberAlist := [[x,:0], :$variableNumberAlist] - 0 - RPLACD(p, 1+CDR p) - CDR p - -newType? t == nil - - --- functions used at run-time which were formerly in the compiler files - -Undef(:u) == - u':= LAST u - [[domain,slot],op,sig]:= u' - domain':=eval mkEvalable domain - ^EQ(CAR ELT(domain',slot), function Undef) => --- OK - thefunction is now defined - [:u'',.]:=u - if $reportBottomUpFlag then - sayMessage concat ['" Retrospective determination of slot",'%b, - slot,'%d,'"of",'%b,:prefix2String domain,'%d] - APPLY(CAR ELT(domain',slot),[:u'',CDR ELT(domain',slot)]) - throwKeyedMsg("S2IF0008",[formatOpSignature(op,sig),domain]) - ---------------------> NEW DEFINITION (see interop.boot.pamphlet) -devaluate d == - not REFVECP d => d - QSGREATERP(QVSIZE d,5) and QREFELT(d,3) is ['Category] => QREFELT(d,0) - QSGREATERP(QVSIZE d,0) => - d':=QREFELT(d,0) - isFunctor d' => d' - d - d - -devaluateList l == [devaluate d for d in l] - ---HasAttribute(domain,attrib) == -----> --- isNewWorldDomain domain => newHasAttribute(domain,attrib) -----+ --- (u := LASSOC(attrib,domain.2)) and lookupPred(first u,domain,domain) - -HasSignature(domain,[op,sig]) == - compiledLookup(op,sig,domain) - ---HasCategory(domain,catform') == --- catform' is ['SIGNATURE,:f] => HasSignature(domain,f) --- catform' is ['ATTRIBUTE,f] => HasAttribute(domain,f) --- catform:= devaluate catform' --- domain0:=domain.0 --- isNewWorldDomain domain => newHasCategory(domain,catform) --- slot4 := domain.4 --- catlist := slot4.1 --- member(catform,catlist) or --- MEMQ(opOf(catform),'(Object Type)) or --temporary hack --- or/[compareSigEqual(catform,cat,domain0,domain) for cat in catlist] - -makeInitialModemapFrame() == COPY $InitialModemapFrame - -isCapitalWord x == - (y := PNAME x) and and/[UPPER_-CASE_-P y.i for i in 0..MAXINDEX y] - ---------------------> NEW DEFINITION (see interop.boot.pamphlet) -domainEqual(a,b) == VECP a and VECP b and a.0 = b.0 - -lispize x == first optimize [x] - -$newCompilerUnionFlag := true - -orderUnionEntries l == - $newCompilerUnionFlag => l - first l is [":",.,.] => l -- new style Unions - [a,b]:= - split(l,nil,nil) where - split(l,a,b) == - l is [x,:l'] => - (STRINGP x => split(l',[x,:a],b); split(l',a,[x,:b])) - [a,b] - [:orderList a,:orderList b] - -mkPredList listOfEntries == - $newCompilerUnionFlag => - [['EQCAR,"#1",i] for arg in listOfEntries for i in 0..] - first listOfEntries is [":",.,.] => -- new Tagged Unions - [['EQCAR,"#1",MKQ tag] for [.,tag,.] in listOfEntries] - --1. generate list of type-predicate pairs from union specification - initTypePredList:= - [selTypePred for x in listOfEntries] where - selTypePred() == - STRINGP x => [x,'EQUAL,"#1",x] - [x,:GETL(opOf x,"BasicPredicate")] - typeList:= ASSOCLEFT initTypePredList - initPredList:= ASSOCRIGHT initTypePredList - hasDuplicatePredicate:= - fn initPredList where - fn x == - null x => false - first x and member(first x,rest x) => true - fn rest x - --if duplicate predicate, kill them all - if hasDuplicatePredicate then initPredList:= [nil for x in initPredList] - nonEmptyPredList:= [p for p in initPredList | p^=nil] - numberWithoutPredicate:= #listOfEntries-#nonEmptyPredList - predList:= - numberWithoutPredicate=0 and not hasDuplicatePredicate => initPredList - numberWithoutPredicate=1 and null LAST initPredList and - [STRINGP x for x in rest REVERSE listOfEntries] => - allButLast:= rest REVERSE initPredList - NREVERSE [['NULL,MKPF(allButLast,"OR")],:allButLast] - --otherwise, generate a tagged-union - --we have made an even number of REVERSE operations, therefore - --the original order is preserved. JHD 25.Sept.1983 - tagPredList:= [["EQCAR","#1",i] for i in 1..numberWithoutPredicate] - [addPredIfNecessary for p in initPredList] where - addPredIfNecessary() == - p => p - [u,:tagPredList]:= tagPredList - u - predList - - - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |