aboutsummaryrefslogtreecommitdiffstats
path: root/csc/encoding.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/encoding.csc')
-rw-r--r--csc/encoding.csc8
1 files changed, 8 insertions, 0 deletions
diff --git a/csc/encoding.csc b/csc/encoding.csc
index 21ee88f..5c06bec 100644
--- a/csc/encoding.csc
+++ b/csc/encoding.csc
@@ -3,6 +3,14 @@
(import (scheme base)
(only (csc match) match))
(begin
+ ; I'm only going to say this once, so pay attention.
+ ; The format of unboxed constants is described in bytecocde/src/data.rs.
+ ; Boxed values are represented by a pointer to an array on the heap. The
+ ; first position in the array is an integer code indicating what type the
+ ; object is. Vectors have code 0, codes for other types are not stable.
+ ; Vectors are represented as an array, the first element of which is the
+ ; integer 0 (the type code), the second element is the vector length, and
+ ; the remaining slots hold the array values.
(define (right-shift n1 n2)