[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/06: Reorder tc7 type codes
From: |
Andy Wingo |
Subject: |
[Guile-commits] 03/06: Reorder tc7 type codes |
Date: |
Tue, 6 Sep 2016 10:21:49 +0000 (UTC) |
wingo pushed a commit to branch master
in repository guile.
commit 7cdaf0e27b8b7c22b6ca3900eafc3ffeacb62bc9
Author: Andy Wingo <address@hidden>
Date: Tue Sep 6 09:29:51 2016 +0200
Reorder tc7 type codes
* libguile/tags.h: Reorder type codes so that they are in numeric order
in the header file; no type code value is changed.
---
libguile/tags.h | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/libguile/tags.h b/libguile/tags.h
index 5b0bc8c..3d6f4bb 100644
--- a/libguile/tags.h
+++ b/libguile/tags.h
@@ -395,8 +395,12 @@ typedef union SCM { struct { scm_t_bits n; } n; } SCM;
(SCM_NIMP (x) && type (x) == (tag))
#define SCM_HAS_TYP7(x, tag) (SCM_HAS_HEAP_TYPE (x, SCM_TYP7, tag))
-/* If you change these numbers, change them also in (system vm
- assembler). */
+/* These type codes form part of the ABI and cannot be changed in a
+ stable series. The low bits of each must have the tc3 of a heap
+ object type code (see above). If you do change them in a development
+ series, change them also in (system vm assembler) and (system base
+ types). Bonus points if you change the build to define these tag
+ values in only one place! */
#define scm_tc7_symbol 0x05
#define scm_tc7_variable 0x07
@@ -404,32 +408,32 @@ typedef union SCM { struct { scm_t_bits n; } n; } SCM;
#define scm_tc7_wvect 0x0f
#define scm_tc7_string 0x15
#define scm_tc7_number 0x17
-#define scm_tc7_stringbuf 0x27
-#define scm_tc7_bytevector 0x4d
-#define scm_tc7_pointer 0x1f
#define scm_tc7_hashtable 0x1d
+#define scm_tc7_pointer 0x1f
#define scm_tc7_fluid 0x25
+#define scm_tc7_stringbuf 0x27
#define scm_tc7_dynamic_state 0x2d
#define scm_tc7_frame 0x2f
#define scm_tc7_keyword 0x35
-#define scm_tc7_unused_55 0x37
-#define scm_tc7_vm_cont 0x47
-#define scm_tc7_unused_17 0x3d
-#define scm_tc7_unused_21 0x3f
+#define scm_tc7_unused_37 0x37
+#define scm_tc7_unused_3d 0x3d
+#define scm_tc7_unused_3f 0x3f
#define scm_tc7_program 0x45
-#define scm_tc7_unused_79 0x4f
+#define scm_tc7_vm_cont 0x47
+#define scm_tc7_bytevector 0x4d
+#define scm_tc7_unused_4f 0x4f
#define scm_tc7_weak_set 0x55
#define scm_tc7_weak_table 0x57
#define scm_tc7_array 0x5d
#define scm_tc7_bitvector 0x5f
-#define scm_tc7_unused_12 0x65
-#define scm_tc7_unused_18 0x67
-#define scm_tc7_unused_13 0x6d
-#define scm_tc7_unused_14 0x6f
-#define scm_tc7_unused_15 0x75
-#define scm_tc7_unused_16 0x7f
-#define scm_tc7_port 0x7d
+#define scm_tc7_unused_65 0x65
+#define scm_tc7_unused_67 0x67
+#define scm_tc7_unused_6d 0x6d
+#define scm_tc7_unused_6f 0x6f
+#define scm_tc7_unused_75 0x75
#define scm_tc7_smob 0x77
+#define scm_tc7_port 0x7d
+#define scm_tc7_unused_7f 0x7f
/* Definitions for tc16: */
- [Guile-commits] branch master updated (605a01b -> 32f309d), Andy Wingo, 2016/09/06
- [Guile-commits] 02/06: Tweak value of tc7-smob., Andy Wingo, 2016/09/06
- [Guile-commits] 04/06: Add atomic boxes, Andy Wingo, 2016/09/06
- [Guile-commits] 03/06: Reorder tc7 type codes,
Andy Wingo <=
- [Guile-commits] 05/06: Fix fixnum min/max for assembler, Andy Wingo, 2016/09/06
- [Guile-commits] 06/06: Compiler support for atomics, Andy Wingo, 2016/09/06
- [Guile-commits] 01/06: Convert tc7 values to hex in tags.h and elsewhere, Andy Wingo, 2016/09/06