fix bytecode-format bug

The range of values used to represent "improper lists"
of length 36 to 65 overlapped with the range of values
used to represent other things.

This bug is the new chapion of the "how did we not hit that
earlier?" category. The bug was introduced around v300, at
the latest.
This commit is contained in:
Matthew Flatt 2013-08-07 08:29:58 -07:00
parent ed3c2d4e7c
commit b8db5aacb3
4 changed files with 569 additions and 569 deletions

View File

@ -449,7 +449,7 @@
(set-cport-pos! cp (add1 (cport-pos cp)))
r)
(define small-list-max 65)
(define small-list-max 50)
(define raw-cpt-table
;; The "schcpt.h" mapping, earlier entries override later ones
`([0 escape]

File diff suppressed because it is too large Load Diff

View File

@ -48,7 +48,7 @@ enum {
#define CPT_SMALL_MARSHALLED_START 80
#define CPT_SMALL_MARSHALLED_END 92
#define _SMALL_LIST_MAX_ 65
#define _SMALL_LIST_MAX_ 50
#define CPT_SMALL_PROPER_LIST_START 92
#define CPT_SMALL_PROPER_LIST_END (CPT_SMALL_PROPER_LIST_START + _SMALL_LIST_MAX_)

View File

@ -13,12 +13,12 @@
consistently.)
*/
#define MZSCHEME_VERSION "5.90.0.4"
#define MZSCHEME_VERSION "5.90.0.5"
#define MZSCHEME_VERSION_X 5
#define MZSCHEME_VERSION_Y 90
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 4
#define MZSCHEME_VERSION_W 5
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)