diff --git a/BUILDING b/BUILDING index 49d7bacec..07d0a7880 100644 --- a/BUILDING +++ b/BUILDING @@ -1,5 +1,5 @@ -Building Chez Scheme Version 9.5.1 -Copyright 1984-2017 Cisco Systems, Inc. +Building Chez Scheme Version 9.5.2 +Copyright 1984-2019 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/LOG b/LOG index 7f65723c5..5c0ea61db 100644 --- a/LOG +++ b/LOG @@ -1207,3 +1207,28 @@ - added library-search-handler, compile-whole-library, and improved packaging to the release notes. release_notes/release_notes.stex + +9.5.2 changes: +- updated version to 9.5.2 + bintar/Makefile rpm/Makefile pkg/Makefile BUILDING NOTICE + makefiles/Mf-install.in makefiles/Makefile-csug.in scheme.1.in + c/Makefile.a6nt c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt + mats/Mf-a6nt mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea + c/scheme.rc s/7.ss s/cmacros.ss release_notes/release_notes.stex + csug/copyright.stex csug/csug.stex rpm/Makefile pkg/Makefile + wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs + wininstall/ta6nt.wxs wininstall/ti3nt.wxs +- fixed handling of bintar, rpm, pkg make files + newrelease +- fixed a bug in the fasl representation and reading of mutually + recursive ftypes where one of the members of the cycle is the + parent of another, which manifested in the fasl reader raising + bogus "incompatible record type" exceptions. (The bug could also + affect other record-type descriptors with cycles involving parent + rtds and "extra" fields.) object files created before this fix + are incompatible with builds with this fix, and objects files + created after this fix are incompatible builds without this fix. + fasl.ss, strip.ss, + fasl.c, + ftype.ms, + release_notes.stex diff --git a/NOTICE b/NOTICE index fb3bf4d92..386eeb28d 100644 --- a/NOTICE +++ b/NOTICE @@ -1,5 +1,5 @@ -Chez Scheme Version 9.5.1 -Copyright 1984-2017 Cisco Systems, Inc. +Chez Scheme Version 9.5.2 +Copyright 1984-2019 Cisco Systems, Inc. This product includes code developed by Cisco Systems, Inc. diff --git a/bintar/Makefile b/bintar/Makefile index 61b323ccb..14d3933b2 100644 --- a/bintar/Makefile +++ b/bintar/Makefile @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -version = 9.5.1 +version = 9.5.2 m := $(shell find ../bin/* -type d | xargs basename) R = csv$(version) diff --git a/boot/a6le/equates.h b/boot/a6le/equates.h index cc011110e..e167f0a9b 100644 --- a/boot/a6le/equates.h +++ b/boot/a6le/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xE #define segment_t1_bits 0x10 diff --git a/boot/a6le/petite.boot b/boot/a6le/petite.boot index 0c6d98525..c3b25e9dc 100644 Binary files a/boot/a6le/petite.boot and b/boot/a6le/petite.boot differ diff --git a/boot/a6le/scheme.boot b/boot/a6le/scheme.boot index 59f171139..73da0dc3e 100644 Binary files a/boot/a6le/scheme.boot and b/boot/a6le/scheme.boot differ diff --git a/boot/a6le/scheme.h b/boot/a6le/scheme.h index 3d951ee08..2544b5783 100644 --- a/boot/a6le/scheme.h +++ b/boot/a6le/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (a6le) */ +/* scheme.h for Chez Scheme Version 9.5.2 (a6le) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "a6le" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/a6nt/equates.h b/boot/a6nt/equates.h index 1ff003b36..e2e31f4aa 100644 --- a/boot/a6nt/equates.h +++ b/boot/a6nt/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xE #define segment_t1_bits 0x10 diff --git a/boot/a6nt/petite.boot b/boot/a6nt/petite.boot index c4beab248..e2a7508a5 100644 Binary files a/boot/a6nt/petite.boot and b/boot/a6nt/petite.boot differ diff --git a/boot/a6nt/scheme.boot b/boot/a6nt/scheme.boot index cf00257de..b703d5102 100644 Binary files a/boot/a6nt/scheme.boot and b/boot/a6nt/scheme.boot differ diff --git a/boot/a6nt/scheme.h b/boot/a6nt/scheme.h index ebd0bdc2f..3055ae9b0 100644 --- a/boot/a6nt/scheme.h +++ b/boot/a6nt/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (a6nt) */ +/* scheme.h for Chez Scheme Version 9.5.2 (a6nt) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "a6nt" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/a6osx/equates.h b/boot/a6osx/equates.h index 5c9132946..1d85829b3 100644 --- a/boot/a6osx/equates.h +++ b/boot/a6osx/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xE #define segment_t1_bits 0x10 diff --git a/boot/a6osx/petite.boot b/boot/a6osx/petite.boot index 125b4095a..9495a8997 100644 Binary files a/boot/a6osx/petite.boot and b/boot/a6osx/petite.boot differ diff --git a/boot/a6osx/scheme.boot b/boot/a6osx/scheme.boot index 0cd95bfd3..2530328f4 100644 Binary files a/boot/a6osx/scheme.boot and b/boot/a6osx/scheme.boot differ diff --git a/boot/a6osx/scheme.h b/boot/a6osx/scheme.h index 857cc8f97..3c55130a8 100644 --- a/boot/a6osx/scheme.h +++ b/boot/a6osx/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (a6osx) */ +/* scheme.h for Chez Scheme Version 9.5.2 (a6osx) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "a6osx" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/i3le/equates.h b/boot/i3le/equates.h index d77e3b362..89cff599a 100644 --- a/boot/i3le/equates.h +++ b/boot/i3le/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x4 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xD #define segment_t1_bits 0x13 diff --git a/boot/i3le/petite.boot b/boot/i3le/petite.boot index c42be1b1d..c3f3a2b7c 100644 Binary files a/boot/i3le/petite.boot and b/boot/i3le/petite.boot differ diff --git a/boot/i3le/scheme.boot b/boot/i3le/scheme.boot index 309799e68..290b6e247 100644 Binary files a/boot/i3le/scheme.boot and b/boot/i3le/scheme.boot differ diff --git a/boot/i3le/scheme.h b/boot/i3le/scheme.h index 92acd9bf8..e12b7ad46 100644 --- a/boot/i3le/scheme.h +++ b/boot/i3le/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (i3le) */ +/* scheme.h for Chez Scheme Version 9.5.2 (i3le) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "i3le" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/i3nt/equates.h b/boot/i3nt/equates.h index 7d6f33568..9918b57be 100644 --- a/boot/i3nt/equates.h +++ b/boot/i3nt/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned __int64 U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x4 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xD #define segment_t1_bits 0x13 diff --git a/boot/i3nt/petite.boot b/boot/i3nt/petite.boot index 153fb6a39..db2ea4be8 100644 Binary files a/boot/i3nt/petite.boot and b/boot/i3nt/petite.boot differ diff --git a/boot/i3nt/scheme.boot b/boot/i3nt/scheme.boot index 38e12a388..488b7a2e3 100644 Binary files a/boot/i3nt/scheme.boot and b/boot/i3nt/scheme.boot differ diff --git a/boot/i3nt/scheme.h b/boot/i3nt/scheme.h index e34a32053..c843bc8e3 100644 --- a/boot/i3nt/scheme.h +++ b/boot/i3nt/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (i3nt) */ +/* scheme.h for Chez Scheme Version 9.5.2 (i3nt) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "i3nt" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/i3osx/equates.h b/boot/i3osx/equates.h index 98c991785..de96bce93 100644 --- a/boot/i3osx/equates.h +++ b/boot/i3osx/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x4 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xD #define segment_t1_bits 0x13 diff --git a/boot/i3osx/petite.boot b/boot/i3osx/petite.boot index 596cebcfd..5207d515c 100644 Binary files a/boot/i3osx/petite.boot and b/boot/i3osx/petite.boot differ diff --git a/boot/i3osx/scheme.boot b/boot/i3osx/scheme.boot index b2cb97ca7..1d5c75270 100644 Binary files a/boot/i3osx/scheme.boot and b/boot/i3osx/scheme.boot differ diff --git a/boot/i3osx/scheme.h b/boot/i3osx/scheme.h index f78804a77..06b851665 100644 --- a/boot/i3osx/scheme.h +++ b/boot/i3osx/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (i3osx) */ +/* scheme.h for Chez Scheme Version 9.5.2 (i3osx) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "i3osx" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/ta6le/equates.h b/boot/ta6le/equates.h index ac9e6b483..f7611b9ae 100644 --- a/boot/ta6le/equates.h +++ b/boot/ta6le/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xE #define segment_t1_bits 0x10 diff --git a/boot/ta6le/petite.boot b/boot/ta6le/petite.boot index 1eee7168d..76af4c18f 100644 Binary files a/boot/ta6le/petite.boot and b/boot/ta6le/petite.boot differ diff --git a/boot/ta6le/scheme.boot b/boot/ta6le/scheme.boot index 3be82bd0a..ffe16cd14 100644 Binary files a/boot/ta6le/scheme.boot and b/boot/ta6le/scheme.boot differ diff --git a/boot/ta6le/scheme.h b/boot/ta6le/scheme.h index 6ff3d6246..4d3aac78e 100644 --- a/boot/ta6le/scheme.h +++ b/boot/ta6le/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (ta6le) */ +/* scheme.h for Chez Scheme Version 9.5.2 (ta6le) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "ta6le" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/ta6nt/equates.h b/boot/ta6nt/equates.h index d9405696d..f63645804 100644 --- a/boot/ta6nt/equates.h +++ b/boot/ta6nt/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xE #define segment_t1_bits 0x10 diff --git a/boot/ta6nt/petite.boot b/boot/ta6nt/petite.boot index 35232e31a..8005b854b 100644 Binary files a/boot/ta6nt/petite.boot and b/boot/ta6nt/petite.boot differ diff --git a/boot/ta6nt/scheme.boot b/boot/ta6nt/scheme.boot index 71c4d37de..968dd63bc 100644 Binary files a/boot/ta6nt/scheme.boot and b/boot/ta6nt/scheme.boot differ diff --git a/boot/ta6nt/scheme.h b/boot/ta6nt/scheme.h index 979000285..45f150329 100644 --- a/boot/ta6nt/scheme.h +++ b/boot/ta6nt/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (ta6nt) */ +/* scheme.h for Chez Scheme Version 9.5.2 (ta6nt) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "ta6nt" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/ta6osx/equates.h b/boot/ta6osx/equates.h index 53b8a4bba..bb9166bb7 100644 --- a/boot/ta6osx/equates.h +++ b/boot/ta6osx/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xE #define segment_t1_bits 0x10 diff --git a/boot/ta6osx/petite.boot b/boot/ta6osx/petite.boot index 5265d9742..26ca8122d 100644 Binary files a/boot/ta6osx/petite.boot and b/boot/ta6osx/petite.boot differ diff --git a/boot/ta6osx/scheme.boot b/boot/ta6osx/scheme.boot index 245d8fe9e..2535f152b 100644 Binary files a/boot/ta6osx/scheme.boot and b/boot/ta6osx/scheme.boot differ diff --git a/boot/ta6osx/scheme.h b/boot/ta6osx/scheme.h index a59c0791f..20d8dcf31 100644 --- a/boot/ta6osx/scheme.h +++ b/boot/ta6osx/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (ta6osx) */ +/* scheme.h for Chez Scheme Version 9.5.2 (ta6osx) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "ta6osx" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/ti3le/equates.h b/boot/ti3le/equates.h index 07c7ea942..083e86a04 100644 --- a/boot/ti3le/equates.h +++ b/boot/ti3le/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x4 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xD #define segment_t1_bits 0x13 diff --git a/boot/ti3le/petite.boot b/boot/ti3le/petite.boot index 0be7b3ade..02b0ba52b 100644 Binary files a/boot/ti3le/petite.boot and b/boot/ti3le/petite.boot differ diff --git a/boot/ti3le/scheme.boot b/boot/ti3le/scheme.boot index 953be4cd5..51f8c63f1 100644 Binary files a/boot/ti3le/scheme.boot and b/boot/ti3le/scheme.boot differ diff --git a/boot/ti3le/scheme.h b/boot/ti3le/scheme.h index 48e87191b..464a460ff 100644 --- a/boot/ti3le/scheme.h +++ b/boot/ti3le/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (ti3le) */ +/* scheme.h for Chez Scheme Version 9.5.2 (ti3le) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "ti3le" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/ti3nt/equates.h b/boot/ti3nt/equates.h index 8bb75f903..1deb41f7d 100644 --- a/boot/ti3nt/equates.h +++ b/boot/ti3nt/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned __int64 U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x4 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xD #define segment_t1_bits 0x13 diff --git a/boot/ti3nt/petite.boot b/boot/ti3nt/petite.boot index 22861b7f8..266d51d9a 100644 Binary files a/boot/ti3nt/petite.boot and b/boot/ti3nt/petite.boot differ diff --git a/boot/ti3nt/scheme.boot b/boot/ti3nt/scheme.boot index b4653f72f..34a2dfc6d 100644 Binary files a/boot/ti3nt/scheme.boot and b/boot/ti3nt/scheme.boot differ diff --git a/boot/ti3nt/scheme.h b/boot/ti3nt/scheme.h index f34b5de0a..41fe24395 100644 --- a/boot/ti3nt/scheme.h +++ b/boot/ti3nt/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (ti3nt) */ +/* scheme.h for Chez Scheme Version 9.5.2 (ti3nt) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "ti3nt" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/boot/ti3osx/equates.h b/boot/ti3osx/equates.h index 64d18aad5..627e97738 100644 --- a/boot/ti3osx/equates.h +++ b/boot/ti3osx/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 9.5.1 */ +/* equates.h for Chez Scheme Version 9.5.2 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -473,7 +473,7 @@ typedef unsigned long long U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x4 -#define scheme_version 0x90501 +#define scheme_version 0x90502 #define segment_card_offset_bits 0x5 #define segment_offset_bits 0xD #define segment_t1_bits 0x13 diff --git a/boot/ti3osx/petite.boot b/boot/ti3osx/petite.boot index 6f7c4c9c0..ec6eed12d 100644 Binary files a/boot/ti3osx/petite.boot and b/boot/ti3osx/petite.boot differ diff --git a/boot/ti3osx/scheme.boot b/boot/ti3osx/scheme.boot index c1022eefc..06514f08e 100644 Binary files a/boot/ti3osx/scheme.boot and b/boot/ti3osx/scheme.boot differ diff --git a/boot/ti3osx/scheme.h b/boot/ti3osx/scheme.h index 7c5ad81a2..fdd25f7e2 100644 --- a/boot/ti3osx/scheme.h +++ b/boot/ti3osx/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 9.5.1 (ti3osx) */ +/* scheme.h for Chez Scheme Version 9.5.2 (ti3osx) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "9.5.1" +#define VERSION "9.5.2" #define MACHINE_TYPE "ti3osx" /* All Scheme objects are of type ptr. Type iptr and */ diff --git a/c/Makefile.a6nt b/c/Makefile.a6nt index 04c9659e7..79eedfcf4 100644 --- a/c/Makefile.a6nt +++ b/c/Makefile.a6nt @@ -17,11 +17,11 @@ m = a6nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv952.dll +KernelLib = ..\bin\$m\csv952.lib +MTKernelLib = ..\boot\$m\csv952mt.lib +MDKernelLib = ..\boot\$m\csv952md.lib +KernelExp = ..\bin\$m\csv952.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj diff --git a/c/Makefile.i3nt b/c/Makefile.i3nt index 279558721..4a91a815a 100644 --- a/c/Makefile.i3nt +++ b/c/Makefile.i3nt @@ -17,11 +17,11 @@ m = i3nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv952.dll +KernelLib = ..\bin\$m\csv952.lib +MTKernelLib = ..\boot\$m\csv952mt.lib +MDKernelLib = ..\boot\$m\csv952md.lib +KernelExp = ..\bin\$m\csv952.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj diff --git a/c/Makefile.ta6nt b/c/Makefile.ta6nt index 637f1b488..9a6617551 100644 --- a/c/Makefile.ta6nt +++ b/c/Makefile.ta6nt @@ -17,11 +17,11 @@ m = ta6nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv952.dll +KernelLib = ..\bin\$m\csv952.lib +MTKernelLib = ..\boot\$m\csv952mt.lib +MDKernelLib = ..\boot\$m\csv952md.lib +KernelExp = ..\bin\$m\csv952.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj diff --git a/c/Makefile.ti3nt b/c/Makefile.ti3nt index 8dfa80e6f..bcf9cd433 100644 --- a/c/Makefile.ti3nt +++ b/c/Makefile.ti3nt @@ -17,11 +17,11 @@ m = ti3nt # following have to use \ for directory separator SchemeInclude = ..\boot\$m -KernelDll = ..\bin\$m\csv951.dll -KernelLib = ..\bin\$m\csv951.lib -MTKernelLib = ..\boot\$m\csv951mt.lib -MDKernelLib = ..\boot\$m\csv951md.lib -KernelExp = ..\bin\$m\csv951.exp +KernelDll = ..\bin\$m\csv952.dll +KernelLib = ..\bin\$m\csv952.lib +MTKernelLib = ..\boot\$m\csv952mt.lib +MDKernelLib = ..\boot\$m\csv952md.lib +KernelExp = ..\bin\$m\csv952.exp Exec = ..\bin\$m\scheme.exe MTMain = ..\boot\$m\mainmt.obj MDMain = ..\boot\$m\mainmd.obj diff --git a/c/fasl.c b/c/fasl.c index ec7799b9b..fef56cdb9 100644 --- a/c/fasl.c +++ b/c/fasl.c @@ -71,7 +71,7 @@ * * -> {base-rtd} * - * -> {rtd} + * -> {rtd} * * -> {record} * @@ -696,24 +696,25 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) { } case fasl_type_rtd: { ptr rtd, rtd_uid, plist, ls; - fasl_record(tc, x, t, pstrbuf, f); - rtd = *x; - rtd_uid = RECORDDESCUID(rtd); + faslin(tc, &rtd_uid, t, pstrbuf, f); - /* see if uid's property list already registers an rtd */ + /* look for rtd on uid's property list */ plist = SYMSPLIST(rtd_uid); for (ls = plist; ls != Snil; ls = Scdr(Scdr(ls))) { if (Scar(ls) == S_G.rtd_key) { - ptr old_rtd = Scar(Scdr(ls)); - /* if so, check new rtd against old rtd and return old rtd */ - if (!rtd_equiv(rtd, old_rtd)) - S_error2("", "incompatible record type ~s in ~a", RECORDDESCNAME(rtd), f->uf->path); - *x = old_rtd; + ptr tmp; + *x = rtd = Scar(Scdr(ls)); + fasl_record(tc, &tmp, t, pstrbuf, f); + if (!rtd_equiv(tmp, rtd)) + S_error2("", "incompatible record type ~s in ~a", RECORDDESCNAME(tmp), f->uf->path); return; } } - /* if not, register it */ + fasl_record(tc, x, t, pstrbuf, f); + rtd = *x; + + /* register rtd on uid's property list */ SETSYMSPLIST(rtd_uid, Scons(S_G.rtd_key, Scons(rtd, plist))); return; } diff --git a/c/scheme.rc b/c/scheme.rc index 5f9a1d766..3c31db789 100644 --- a/c/scheme.rc +++ b/c/scheme.rc @@ -1,8 +1,8 @@ #include "winver.h" VS_VERSION_INFO VERSIONINFO - FILEVERSION 9,5,1,0 - PRODUCTVERSION 9,5,1,0 + FILEVERSION 9,5,2,0 + PRODUCTVERSION 9,5,2,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS VOS__WINDOWS32 @@ -12,13 +12,13 @@ VS_VERSION_INFO VERSIONINFO BLOCK "StringFileInfo" { BLOCK "04090000" { VALUE "CompanyName", "Cisco Systems, Inc." - VALUE "FileDescription", "Chez Scheme Version 9.5.1" - VALUE "FileVersion", "9.5.1" + VALUE "FileDescription", "Chez Scheme Version 9.5.2" + VALUE "FileVersion", "9.5.2" VALUE "InternalName", "scheme.exe" - VALUE "LegalCopyright", "Copyright 1984-2017 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0." + VALUE "LegalCopyright", "Copyright 1984-2019 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0." VALUE "OriginalFilename", "scheme.exe" VALUE "ProductName", "Chez Scheme" - VALUE "ProductVersion", "9.5.1" + VALUE "ProductVersion", "9.5.2" } } BLOCK "VarFileInfo" { diff --git a/csug/copyright.stex b/csug/copyright.stex index de160eb21..583e8868a 100644 --- a/csug/copyright.stex +++ b/csug/copyright.stex @@ -16,13 +16,13 @@ \centerline{}\vfill -\textbf{\copyright~2005--2018 Cisco Systems, Inc.} +\textbf{\copyright~2019 Cisco Systems, Inc.} Licensed under the Apache License Version 2.0\\ http://www.apache.org/licenses/LICENSE-2.0 % NB: also update corresponding notice in csug.stex -Revised \revisiondate~for Chez Scheme Version 9.5.1. +Revised \revisiondate~for Chez Scheme Version 9.5.2. \medskip\noindent Cisco and the Cisco logo are trademarks or registered trademarks diff --git a/csug/csug.stex b/csug/csug.stex index 39800fc02..bcd9d7d37 100644 --- a/csug/csug.stex +++ b/csug/csug.stex @@ -60,10 +60,10 @@ \def\copyrightnotice{\raw{

Chez Scheme Version 9 User's Guide
-Copyright © 2018 Cisco Systems, Inc.
+Copyright © 2019 Cisco Systems, Inc.
Licensed under the Apache License Version 2.0 (full copyright notice.).
-Revised} \revisiondate\raw{ for Chez Scheme Version 9.5.1
+Revised} \revisiondate\raw{ for Chez Scheme Version 9.5.2
about this book }} diff --git a/makefiles/Mf-install.in b/makefiles/Mf-install.in index b40b524bd..6ea9aaaca 100644 --- a/makefiles/Mf-install.in +++ b/makefiles/Mf-install.in @@ -55,7 +55,7 @@ InstallScriptName=scheme-script # no changes should be needed below this point # ############################################################################### -Version=csv9.5.1 +Version=csv9.5.2 Include=boot/$m PetiteBoot=boot/$m/petite.boot SchemeBoot=boot/$m/scheme.boot diff --git a/mats/Mf-a6nt b/mats/Mf-a6nt index 51957fad6..024427518 100644 --- a/mats/Mf-a6nt +++ b/mats/Mf-a6nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv952.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /MD /nologo $<" diff --git a/mats/Mf-i3nt b/mats/Mf-i3nt index 52e9d3e09..d807e0a8b 100644 --- a/mats/Mf-i3nt +++ b/mats/Mf-i3nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv952.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat x86 && cl /DWIN32 /MD /nologo $<" diff --git a/mats/Mf-ta6nt b/mats/Mf-ta6nt index 177a78aed..5bf797ff8 100644 --- a/mats/Mf-ta6nt +++ b/mats/Mf-ta6nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv952.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat amd64 && cl /DWIN32 /DX86_64 /MD /nologo $<" diff --git a/mats/Mf-ti3nt b/mats/Mf-ti3nt index ab61f72a3..ab582e3fa 100644 --- a/mats/Mf-ti3nt +++ b/mats/Mf-ti3nt @@ -22,7 +22,7 @@ mdclean = cat_flush.exe cat_flush.obj foreign1.exp foreign1.lib foreign1.obj for include Mf-base foreign1.so: $(fsrc) - cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv951.lib $(fsrc)" + cmd.exe /c "vs.bat x86 && cl /DWIN32 /Fe$@ /I${Include} /LD /MD /nologo ../bin/$m/csv952.lib $(fsrc)" cat_flush: cat_flush.c cmd.exe /c "vs.bat x86 && cl /DWIN32 /MD /nologo $<" diff --git a/mats/ftype.ms b/mats/ftype.ms index e5c6a9d3d..7fc237f1f 100644 --- a/mats/ftype.ms +++ b/mats/ftype.ms @@ -2876,6 +2876,42 @@ (ftype-set! fcf-B (next) x (make-ftype-pointer fcf-B 0)) (ftype-pointer? (ftype-ref fcf-B (next) x))) (lambda () (foreign-free addr)))) + ; regression test: verify that we can fasl in a cyclic ftd that's already registered on its uid + (begin + (mkfile "testfile-ftype3.ss" + '(define-ftype + [ftype3-A (* ftype3-B)] + [ftype3-B (struct [h ftype3-A])])) + (compile-file "testfile-ftype3") + #t) + (begin ; once should prove it + (load "testfile-ftype3.so") + (ftype-pointer? ftype3-A (make-ftype-pointer ftype3-B 0))) + (begin ; twice for that warm fuzzy feeling + (load "testfile-ftype3.so") + (ftype-pointer? ftype3-A (make-ftype-pointer ftype3-B 0))) + (begin + (mkfile "testfile-ftype4.ss" + '(define-ftype + [ftype4-A (struct [q (* ftype4-B)])] + [ftype4-B (struct [h (* ftype4-A)])])) + (compile-file "testfile-ftype4") + #t) + (begin ; once should prove it + (load "testfile-ftype4.so") + (ftype-pointer? ftype4-A (make-ftype-pointer ftype4-A 0))) + (begin ; twice for that warm fuzzy feeling + (load "testfile-ftype4.so") + (ftype-pointer? ftype4-B (make-ftype-pointer ftype4-B 0))) + (begin + (mkfile "testfile-ftype5.ss" + '(define-ftype + [ftype5-A (struct [q (* ftype4-A)])])) + (compile-file "testfile-ftype5") + #t) + (begin + (load "testfile-ftype5.so") + (ftype-pointer? ftype5-A (make-ftype-pointer ftype5-A 0))) ) (mat ftype-bits diff --git a/newrelease b/newrelease index 54072cfea..d03c0df50 100755 --- a/newrelease +++ b/newrelease @@ -76,15 +76,15 @@ if ($status != 0) exit 1 cd $W /bin/rm bintar/Makefile -sed -e "s/^v = .*/v = $R/" ../bintar/Makefile > bintar/Makefile +sed -e "s/^version = .*/version = $R/" ../bintar/Makefile > bintar/Makefile set updatedfiles = ($updatedfiles bintar/Makefile) /bin/rm rpm/Makefile -sed -e "s/^v = .*/v = $R/" ../rpm/Makefile > rpm/Makefile +sed -e "s/^version = .*/version = $R/" ../rpm/Makefile > rpm/Makefile set updatedfiles = ($updatedfiles rpm/Makefile) /bin/rm pkg/Makefile -sed -e "s/^v = .*/v = $R/" ../pkg/Makefile > pkg/Makefile +sed -e "s/^version = .*/version = $R/" ../pkg/Makefile > pkg/Makefile set updatedfiles = ($updatedfiles pkg/Makefile) /bin/rm -f BUILDING @@ -105,7 +105,9 @@ sed -e "s/csug[0-9]\.[0-9]/csug$MR.$mR/" -e "s/csug[0-9]_[0-9]/csug$MR""_$mR/" . set updatedfiles = ($updatedfiles makefiles/Mf-install.in makefiles/Makefile-csug.in) /bin/rm scheme.1.in -sed -e "s/Chez Scheme Version [0-9]\.[0-9]\(\.[0-9]\)*/Chez Scheme Version $R/" ../scheme.1.in > scheme.1.in +sed -e "s/Chez Scheme Version [0-9]\.[0-9]\(\.[0-9]\)* .* [0-9][0-9]*/Chez Scheme Version $R `date +'%B %Y'`/" \ + -e "s/Copyright .* Cisco Systems, Inc./Copyright `date +%Y` Cisco Systems, Inc./" \ + ../scheme.1.in > scheme.1.in set updatedfiles = ($updatedfiles scheme.1.in) /bin/rm -f c/Makefile.{,t}{i3,a6}nt @@ -147,8 +149,12 @@ sed -e "s/thisversion{Version [^ ]*}/thisversion{Version $R}/" ../release_notes/ set updatedfiles = ($updatedfiles release_notes/release_notes.stex) mkdir csug -sed -e "s/Revised\(.*\)for Chez Scheme Version [^ ]*\./Revised\1for Chez Scheme Version $R./" ../csug/copyright.stex > csug/copyright.stex -sed -e "s/Revised\(.*\)for Chez Scheme Version [^ ]*
/Revised\1for Chez Scheme Version $R
/" ../csug/csug.stex > csug/csug.stex +sed -e "s/Revised\(.*\)for Chez Scheme Version [^ ]*\./Revised\1for Chez Scheme Version $R./" \ + -e "s/n\\copyright~ .* Cisco Systems, Inc./n\\copyright~`date +%Y` Cisco Systems, Inc./" \ + ../csug/copyright.stex > csug/copyright.stex +sed -e "s/Revised\(.*\)for Chez Scheme Version [^ ]*
/Revised\1for Chez Scheme Version $R
/" \ + -e "s/nCopyright © .* Cisco Systems, Inc./nCopyright \© `date +%Y` Cisco Systems, Inc./" \ + ../csug/csug.stex > csug/csug.stex set updatedfiles = ($updatedfiles csug/copyright.stex csug/csug.stex) /bin/rm -f rpm/Makefile diff --git a/pkg/Makefile b/pkg/Makefile index c1eb10817..771d8ccdf 100644 --- a/pkg/Makefile +++ b/pkg/Makefile @@ -14,7 +14,7 @@ # limitations under the License. m := $(shell find ../bin/* -type d | xargs basename) -version = 9.5.1 +version = 9.5.2 release = 1 DOTUSER = $(shell ls -ld . | sed -e 's/[^ ]* *[^ ]* *\([^ ]*\).*/\1/') diff --git a/release_notes/release_notes.stex b/release_notes/release_notes.stex index d7cbc9d59..192725f06 100644 --- a/release_notes/release_notes.stex +++ b/release_notes/release_notes.stex @@ -1,6 +1,6 @@ \documentclass{releasenotes} -\thisversion{Version 9.5.1} +\thisversion{Version 9.5.2} \thatversion{Version 8.4} \pubmonth{January} \pubyear{2019} @@ -1663,6 +1663,27 @@ in fasl files does not generally make sense. %----------------------------------------------------------------------------- \section{Bug Fixes}\label{section:bugfixes} +\subsection{Fasl representation change for recursive ftypes (9.5.2)} + +A bug in the reading of mutually recursive ftype definitions from +compiled files has been fixed. +The bug was triggered by recursive ftype definitions in which one +of the mutually recursive ftypes is a subtype of another, as in: + +\schemedisplay +(define-ftype + [A (* B)] + [B (struct [h A])])) +\endschemedisplay + +It manifested in the fasl reader raising bogus "incompatible record +type" exceptions when two or more references to one of the ftypes +occur in in separate compiled files or in separate top-level forms +of a file compiled via \scheme{compile-file}. +The bug could also have affected other record-type descriptors with +cycles involving parent rtds and ``extra'' fields as well as fasl +output created via \scheme{fasl-write}. + \subsection{Unbound object resulting from libraries combined with \protect\scheme{compile-whole-library} (9.5.1)} A bug in \scheme{compile-whole-library} that allowed the invoke code for a diff --git a/rpm/Makefile b/rpm/Makefile index 2b661b37a..4d36324a5 100644 --- a/rpm/Makefile +++ b/rpm/Makefile @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -version = 9.5.1 +version = 9.5.2 release = 1 m := $(shell find ../bin/* -type d | xargs basename) arch := $(shell if test "$(m)" == "i3le" ; then echo i686 ; elif test "$(m)" == "a6le" ; then echo x86_64 ; else echo UNKNOWN ; fi) diff --git a/s/7.ss b/s/7.ss index ab0ed3572..3f2792748 100644 --- a/s/7.ss +++ b/s/7.ss @@ -658,7 +658,7 @@ (define $scheme-greeting (lambda () - (format "~a\nCopyright 1984-2017 Cisco Systems, Inc.\n" + (format "~a\nCopyright 1984-2019 Cisco Systems, Inc.\n" (scheme-version)))) (define $session-key #f) diff --git a/s/cmacros.ss b/s/cmacros.ss index d4b1e1b4a..88f6c6540 100644 --- a/s/cmacros.ss +++ b/s/cmacros.ss @@ -328,7 +328,7 @@ [(_ foo e1 e2) e1] ... [(_ bar e1 e2) e2]))))]))) -(define-constant scheme-version #x00090501) +(define-constant scheme-version #x00090502) (define-syntax define-machine-types (lambda (x) diff --git a/s/fasl.ss b/s/fasl.ss index be4eaefd8..3f13a7f33 100644 --- a/s/fasl.ss +++ b/s/fasl.ss @@ -68,6 +68,9 @@ (define bld-record (lambda (x t a?) (unless (eq? x #!base-rtd) + (when (record-type-descriptor? x) + ; fasl representation for record-type-descriptor includes uid separately and as part of the record + (bld (record-type-uid x) t a?)) (really-bld-record x t a?)))) (define really-bld-record @@ -423,6 +426,7 @@ (cond [(record-type-descriptor? x) (put-u8 p (constant fasl-type-rtd)) + (wrf (record-type-uid x) p t a?) (wrf-fields (maybe-remake-rtd x) p t a?)] [else (put-u8 p (constant fasl-type-record)) diff --git a/s/strip.ss b/s/strip.ss index feab33f25..f9fae08cd 100644 --- a/s/strip.ss +++ b/s/strip.ss @@ -28,7 +28,7 @@ (vector ty vfasl) (fxvector ty viptr) (bytevector ty bv) - (record ty size nflds rtd pad-ty* fld*) + (record maybe-uid size nflds rtd pad-ty* fld*) ; maybe-uid => rtd (closure offset c) (flonum high low) (small-integer iptr) @@ -172,6 +172,13 @@ (vector-set! v i (let ([key (read-fasl p g)]) (cons key (read-fasl p g)))))))) + (define (read-record p g maybe-uid) + (let* ([size (read-uptr p)] [nflds (read-uptr p)] [rtd (read-fasl p g)]) + (let loop ([n nflds] [rpad-ty* '()] [rfld* '()]) + (if (fx= n 0) + (fasl-record maybe-uid size nflds rtd (reverse rpad-ty*) (reverse rfld*)) + (let* ([pad-ty (read-byte p)] [fld (read-fld p g (fxlogand pad-ty #x0f))]) + (loop (fx- n 1) (cons pad-ty rpad-ty*) (cons fld rfld*))))))) (define (read-fasl p g) (let ([ty (read-byte p)]) (fasl-type-case ty @@ -202,13 +209,8 @@ ((fx= i n) bv) (bytevector-u8-set! bv i (read-byte p))))))] [(fasl-type-base-rtd) (fasl-tuple ty '#())] - [(fasl-type-rtd fasl-type-record) - (let* ([size (read-uptr p)] [nflds (read-uptr p)] [rtd (read-fasl p g)]) - (let loop ([n nflds] [rpad-ty* '()] [rfld* '()]) - (if (fx= n 0) - (fasl-record ty size nflds rtd (reverse rpad-ty*) (reverse rfld*)) - (let* ([pad-ty (read-byte p)] [fld (read-fld p g (fxlogand pad-ty #x0f))]) - (loop (fx- n 1) (cons pad-ty rpad-ty*) (cons fld rfld*))))))] + [(fasl-type-rtd) (read-record p g (read-fasl p g))] + [(fasl-type-record) (read-record p g #f)] [(fasl-type-closure) (let* ([offset (read-uptr p)] [c (read-fasl p g)]) @@ -326,9 +328,9 @@ (define fasl-record? (lambda (uname x) (fasl-case (follow-indirect x) - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (fasl-case (follow-indirect rtd) - [record (rtd-ty rtd-size rtd-nflds rtd-rtd rtd-pad-ty* rtd-fld*) + [record (rtd-uid rtd-size rtd-nflds rtd-rtd rtd-pad-ty* rtd-fld*) (and (> (length rtd-fld*) uid-index) (field-case (list-ref rtd-fld* uid-index) [ptr (fasl) @@ -351,7 +353,7 @@ (unless (fasl-record? uname x) (sorry! "unexpected type of object ~s" x)) (fasl-case (follow-indirect x) - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (unless (> (length fld*) index) (sorry! "fewer fields than expected for ~s" x)) (let ([fld (list-ref fld* index)]) @@ -401,11 +403,12 @@ [vector (ty vfasl) (build-graph! x t (build-vfasl! vfasl))] [fxvector (ty viptr) (build-graph! x t void)] [bytevector (ty viptr) (build-graph! x t void)] - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (if (and strip-source-annotations? (fasl-annotation? x)) (build! (fasl-annotation-stripped x) t) (build-graph! x t (lambda () + (when maybe-uid (build! maybe-uid t)) (build! rtd t) (for-each (lambda (fld) (field-case fld @@ -538,12 +541,16 @@ (write-byte p ty) (write-uptr p (bytevector-length bv)) (put-bytevector p bv)))] - [record (ty size nflds rtd pad-ty* fld*) + [record (maybe-uid size nflds rtd pad-ty* fld*) (if (and strip-source-annotations? (fasl-annotation? x)) (write-fasl p t (fasl-annotation-stripped x)) (write-graph p t x (lambda () - (write-byte p ty) + (if maybe-uid + (begin + (write-byte p (constant fasl-type-rtd)) + (write-fasl p t maybe-uid)) + (write-byte p (constant fasl-type-record))) (write-uptr p size) (write-uptr p nflds) (write-fasl p t rtd) @@ -695,14 +702,14 @@ (fasl-case x [closure (offset c) #t] [revisit (fasl) #t] - [record (ty size nflds rtd pad-ty* fld*) (revisit-record? x)] + [record (maybe-uid size nflds rtd pad-ty* fld*) (revisit-record? x)] [else #f]))) (fasl-case x [entry (fasl) (fasl-case fasl [closure (offset c) x] [revisit (fasl) x] - [record (ty size nflds rtd pad-ty* fld*) (and (revisit-record? fasl) x)] + [record (maybe-uid size nflds rtd pad-ty* fld*) (and (revisit-record? fasl) x)] [group (vfasl) (let ([fasl* (filter revisit-stuff? (vector->list vfasl))]) (and (not (null? fasl*)) @@ -831,8 +838,10 @@ [vector (ty vfasl) (and (eqv? ty1 ty2) (vandmap fasl=? vfasl1 vfasl2))] [fxvector (ty viptr) (and (eqv? ty1 ty2) (vandmap = viptr1 viptr2))] [bytevector (ty bv) (and (eqv? ty1 ty2) (bytevector=? bv1 bv2))] - [record (ty size nflds rtd pad-ty* fld*) - (and (eqv? ty1 ty2) + [record (maybe-uid size nflds rtd pad-ty* fld*) + (and (if maybe-uid1 + (and maybe-uid2 (fasl=? maybe-uid1 maybe-uid2)) + (not maybe-uid2)) (eqv? size1 size2) (eqv? nflds1 nflds2) (fasl=? rtd1 rtd2) diff --git a/scheme.1.in b/scheme.1.in index 69191eb21..3dab1faaf 100644 --- a/scheme.1.in +++ b/scheme.1.in @@ -3,7 +3,7 @@ .if t .ds c caf\o'\'e' .if n .ds c cafe .ds ]W -.TH SCHEME 1 "Chez Scheme Version 9.5.1 October 2017" +.TH SCHEME 1 "Chez Scheme Version 9.5.2 March 2019" .SH NAME \fIChez Scheme\fP .br @@ -791,6 +791,6 @@ Second Edition\fP, MIT press (1996). .in -5 .SH AUTHOR -Copyright 2017 Cisco Systems, Inc. +Copyright 2019 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) diff --git a/wininstall/Makefile b/wininstall/Makefile old mode 100755 new mode 100644 index 9cfb2bdd1..38ba0d66f --- a/wininstall/Makefile +++ b/wininstall/Makefile @@ -1,4 +1,4 @@ -VERSION := 9.5.1 +VERSION := 9.5.2 WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension ChezScheme.exe: x86/bundle.wixobj ChezScheme32.msi ChezScheme64.msi diff --git a/wininstall/a6nt.wxs b/wininstall/a6nt.wxs old mode 100755 new mode 100644 index 221693e0a..7914da8a4 --- a/wininstall/a6nt.wxs +++ b/wininstall/a6nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/wininstall/i3nt.wxs b/wininstall/i3nt.wxs old mode 100755 new mode 100644 index bc63d1a74..9e13a99f0 --- a/wininstall/i3nt.wxs +++ b/wininstall/i3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/wininstall/ta6nt.wxs b/wininstall/ta6nt.wxs old mode 100755 new mode 100644 index bc6507109..3463b00be --- a/wininstall/ta6nt.wxs +++ b/wininstall/ta6nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/wininstall/ti3nt.wxs b/wininstall/ti3nt.wxs old mode 100755 new mode 100644 index 3ca3ede5f..fffad58bf --- a/wininstall/ti3nt.wxs +++ b/wininstall/ti3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/workarea b/workarea index 995fd21ae..5c6e45248 100755 --- a/workarea +++ b/workarea @@ -200,8 +200,8 @@ case $M in *nt) (cd $W/boot/$M; workln ../../../boot/$M/mainmd.obj mainmd.obj) (cd $W/boot/$M; workln ../../../boot/$M/mainmt.obj mainmt.obj) - (cd $W/boot/$M; workln ../../../boot/$M/csv951md.lib csv951md.lib) - (cd $W/boot/$M; workln ../../../boot/$M/csv951mt.lib csv951mt.lib) + (cd $W/boot/$M; workln ../../../boot/$M/csv952md.lib csv952md.lib) + (cd $W/boot/$M; workln ../../../boot/$M/csv952mt.lib csv952mt.lib) (cd $W/boot/$M; workln ../../../boot/$M/scheme.res scheme.res) ;; *) @@ -216,8 +216,8 @@ case $M in *nt) (cd $W/bin/$M; workln ../../../bin/$M/scheme.exe scheme.exe) (cd $W/bin/$M; forceworkln2 scheme.exe petite.exe) - (cd $W/bin/$M; workln ../../../bin/$M/csv951.dll csv951.dll) - (cd $W/bin/$M; workln ../../../bin/$M/csv951.lib csv951.lib) + (cd $W/bin/$M; workln ../../../bin/$M/csv952.dll csv952.dll) + (cd $W/bin/$M; workln ../../../bin/$M/csv952.lib csv952.lib) ;; *) (cd $W/bin/$M; workln ../../../bin/$M/scheme scheme)