aboutsummaryrefslogtreecommitdiff
path: root/src/interp/sys-utility.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/sys-utility.boot')
-rw-r--r--src/interp/sys-utility.boot10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/interp/sys-utility.boot b/src/interp/sys-utility.boot
index 57fc9a9b..441d356e 100644
--- a/src/interp/sys-utility.boot
+++ b/src/interp/sys-utility.boot
@@ -44,6 +44,8 @@ namespace BOOT
++ representation of a domain, as a Lisp type specifier as seen by
++ the runtime system.
getVMType d ==
+ IDENTP d => "%Thing"
+ STRINGP d => "%Thing" -- literal flag parameter
case (d' := devaluate d) of
Void => "%Void"
Boolean => "%Boolean"
@@ -51,11 +53,19 @@ getVMType d ==
Character => "%Char"
SingleInteger => "%Short"
Integer => "%Integer"
+ NonNegativeInteger => ["%IntegerSection",0]
+ PositiveInteger => ["%IntegerSection",1]
+ IntegerMod => "%Integer"
+ DoubleFloat => "%DoubleFloat"
String => "%String"
List => "%List"
Vector => ["%Vector",getVMType second d']
PrimitiveArray => ["%SimpleArray", getVMType second d']
Pair => "%Pair"
+ Union => "%Pair"
+ Record =>
+ #rest d' > 2 => "%Shell"
+ "%Pair"
otherwise => "%Thing" -- good enough, for now.
--%