diff options
author | dos-reis <gdr@axiomatics.org> | 2008-01-27 17:52:17 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-01-27 17:52:17 +0000 |
commit | 58cae19381750526539e986ca1de122803ac2293 (patch) | |
tree | 24c77cb7e745a5072eac5dde2503820de3c376f9 /src/interp/buildom.boot | |
parent | a388d36abab4b55733a8e2c19b1a8ec882274fa8 (diff) | |
download | open-axiom-58cae19381750526539e986ca1de122803ac2293.tar.gz |
Fix SF/1872551
* interp/c-util.boot (dollarIfRepHack): New.
(RepIfRepHack): Likewise.
(substituteDollarIfRepHack): Likewise.
(isSubset): Dollar is subset of Rep only in old semantics.
* interp/buildom.boot (mkMappingFunList): Substitute dollar for
Rep only when appropriate.
(mkRecordFunList): Likewise.
(mkNewUnionFunList): Likewise.
(mkUnionFunList): Likewise.
* interp/compiler.boot (compNoStacking): Likewise.
(compNoStacking1): Likewise.
(getConstructorFormOfMode): Likewise.
(isUnionMode): Likewise.
(coerce): Likewise.
(coerceSubset): Likewise.
* interp/modemap.boot (addModemap1): Likewise.
(isSuperDomain): Likewise.
* interp/define.boot (maybeInsertViewMorphisms): New.
(compCapsule): Use it.
(compCategoryItem): Don't allow exports of rep and per.
* interp/sys-globals.boot ($useRepresentationHack): New.
Diffstat (limited to 'src/interp/buildom.boot')
-rw-r--r-- | src/interp/buildom.boot | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/interp/buildom.boot b/src/interp/buildom.boot index 228ef863..cacced1b 100644 --- a/src/interp/buildom.boot +++ b/src/interp/buildom.boot @@ -1,6 +1,6 @@ -- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -- All rights reserved. --- Copyright (C) 2007, Gabriel Dos Reis. +-- Copyright (C) 2007-2008, Gabriel Dos Reis. -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without @@ -270,7 +270,7 @@ mkMappingFunList(nam,mapForm,e) == sigFunAlist:= [["_=",[["Boolean"],nam ,nam],["ELT",dc,6]], ["coerce",[$OutputForm,nam],["ELT",dc,7]]] - [substitute(nam,dc,substitute("$",'Rep,sigFunAlist)),e] + [substitute(nam,dc,substituteDollarIfRepHack sigFunAlist),e] mkRecordFunList(nam,["Record",:Alist],e) == len:= #Alist @@ -294,11 +294,11 @@ mkRecordFunList(nam,["Record",:Alist],e) == for i in 0.. for [.,a,A] in Alist],: [["copy",[nam,nam],["XLAM",["$1"],["RECORDCOPY", "$1",len]]]]] - [substitute(nam,dc,substitute("$","Rep",sigFunAlist)),e] + [substitute(nam,dc,substituteDollarIfRepHack sigFunAlist),e] mkNewUnionFunList(name,form is ["Union",:listOfEntries],e) == dc := name - if name = "Rep" then name := "$" + m := dollarIfRepHack name --2. create coercions from subtypes to subUnion cList:= [["_=",[["Boolean"],name ,name],["ELT",dc,6]], @@ -367,9 +367,6 @@ mkUnionFunList(op,form is ["Union",:listOfEntries],e) == p is ["EQCAR",x,n] => ["XLAM",["#1"],["QEQCAR",x,n]] ["XLAM",["#1"],p] - op:= - op="Rep" => "$" - op - cList:= substitute(op,g,cList) + cList:= substitute(dollarIfRepHack op,g,cList) [cList,e] |