aboutsummaryrefslogtreecommitdiff
path: root/src/interp/fortcall.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-21 05:56:14 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-21 05:56:14 +0000
commit97463cc77bbec1c33f46ceb44584a180264682c3 (patch)
tree61d9cf3e25771fbdd5de776ea989aff622684aa3 /src/interp/fortcall.boot
parent1ca37b944b566ef3f0479d4c2fe6895e9fbd3785 (diff)
downloadopen-axiom-97463cc77bbec1c33f46ceb44584a180264682c3.tar.gz
* boot/tokens.boot: Don't rename nreverse.
* boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE.
Diffstat (limited to 'src/interp/fortcall.boot')
-rw-r--r--src/interp/fortcall.boot24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/interp/fortcall.boot b/src/interp/fortcall.boot
index 17e99819..a4ed15dd 100644
--- a/src/interp/fortcall.boot
+++ b/src/interp/fortcall.boot
@@ -115,7 +115,7 @@ writeCFile(name,args,fortranArgs,dummies,decls,results,returnType,asps,fp) ==
for a in args repeat
argList := [[a, getCType getFortranType(a,decls)], :argList]
printDec(second first argList,a,asps,fp)
- argList := nreverse argList;
+ argList := reverse! argList;
-- read in the data
writeLine('" xdrstdio__create(&xdrs, stdin, XDR__DECODE);",fp)
for a in argList repeat
@@ -462,10 +462,10 @@ spadify(l,results,decls,names,actual) ==
for c in 0..(second(dims) - 1) repeat
offset := 2*(c*first(dims)+r)
innerEls := [[fort.offset,:fort.(offset+1)],:innerEls]
- els := [makeVector(nreverse innerEls,nil),:els]
+ els := [makeVector(reverse! innerEls,nil),:els]
else
error ['"Can't cope with complex output dimensions higher than 2"]
- spadForms := [makeResultRecord(name,ty,makeVector(nreverse els,nil)),
+ spadForms := [makeResultRecord(name,ty,makeVector(reverse! els,nil)),
:spadForms]
-- Result is a Boolean vector or array
LISTP(ty) and first(ty)="logical" and #ty=2 =>
@@ -480,10 +480,10 @@ spadify(l,results,decls,names,actual) ==
innerEls := nil
for c in 0..(second(dims) - 1) repeat
innerEls := [int2Bool fort.(c*first(dims)+r),:innerEls]
- els := [nreverse innerEls,:els]
+ els := [reverse! innerEls,:els]
else
error ['"Can't cope with logical output dimensions higher than 2"]
- spadForms := [makeResultRecord(name,ty,nreverse els), :spadForms]
+ spadForms := [makeResultRecord(name,ty,reverse! els), :spadForms]
-- Result is a vector or array
VECTORP fort =>
dims := [getVal(u,names,actual) for u in rest ty]
@@ -498,7 +498,7 @@ spadify(l,results,decls,names,actual) ==
innerEls := nil
for c in 0..(second(dims) - 1) repeat
innerEls := [fort.(c*first(dims)+r),:innerEls]
- els := [makeVector(nreverse innerEls,nil),:els]
+ els := [makeVector(reverse! innerEls,nil),:els]
else if #dims=3 then
iDim := first(dims)
jDim := second dims
@@ -510,11 +510,11 @@ spadify(l,results,decls,names,actual) ==
for p in 0..(kDim - 1) repeat
offset := p*jDim + c*kDim + r
innerEls := [fort.offset,:innerEls]
- middleEls := [makeVector(nreverse innerEls,nil),:middleEls]
- els := [makeVector(nreverse middleEls,nil),:els]
+ middleEls := [makeVector(reverse! innerEls,nil),:middleEls]
+ els := [makeVector(reverse! middleEls,nil),:els]
else
error ['"Can't cope with output dimensions higher than 3"]
- if not scalarMember?(0,dims) then els := makeVector(nreverse els,nil)
+ if not scalarMember?(0,dims) then els := makeVector(reverse! els,nil)
spadForms := [makeResultRecord(name,ty,els), :spadForms]
-- Result is a Boolean Scalar
atom fort and ty="logical" =>
@@ -523,7 +523,7 @@ spadify(l,results,decls,names,actual) ==
atom fort =>
spadForms := [makeResultRecord(name,ty,fort),:spadForms]
error ['"Unrecognised output format: ",fort]
- nreverse spadForms
+ reverse! spadForms
lispType u ==
-- Return the lisp type equivalent to the given Fortran type.
@@ -587,7 +587,7 @@ prepareResults(results,args,dummies,values,decls) ==
type = "complex" => makeVector([shortZero,shortZero],"%SingleFloat")
type = "double complex" => makeVector([longZero,longZero],"%DoubleFloat")
error ['"Unrecognised Fortran type: ",type]
- nreverse data
+ reverse! data
-- TTT this is dead code now
-- transposeVector(u,type) ==
@@ -604,7 +604,7 @@ prepareResults(results,args,dummies,values,decls) ==
-- else
-- for j in 0..cols repeat for i in 0..rows repeat
-- els := [u.i.j,:els]
--- makeVector(nreverse els,type)
+-- makeVector(reverse! els,type)
writeData(tmpFile,indata) ==