Quality Assurance Log ===================== The file for developer's own quality management. Checkpoints ----------- - Specification conformance check by eyes Whether conforms to the expected specification (R5RS, SRFI, or SigScheme-local specs such as SAL). - Specification conformance check by tests Ensure the conformance by tests. - General code review (logic, structure, meaning, validity etc) - 64-bit data model capability check by eyes Whether the codes are capable of LL64(ILP32), LP64, LLP64 and ILP64. - 64-bit data model capability check by tests Ensure the capability by tests. - Coding style check (doc/style.txt) Don't forget checking duplicate evaluation of side-effective expression on macro invocations. - Normal case tests - Corner case tests Format and Examples ------------------- - Free format log Record significant achievements to 'Log' section in ChangeLog format 2006-06-06 YamaKen <yamaken AT bp.iij4u.or.jp> * general code review for all core files - Status record template file: category: spec by eyes: spec by tests: general review: 64-bit by eyes: 64-bit by tests: coding style: normal case tests: corner case tests: * The unit for status recording is file. Check all functions in a file at a time * category = (base|core|semicore|r5rs|srfi|opt|ext|other) * record comma separated username@revision for each checkpoints * don't overwrite per-user checkpoints. i.e. record as "yamaken@r3499, yamaken@r3670" instead of recording latest "yamaken@r3670" only * don't fold each line * '-' means "unneeded" * blank field means "unchecked" - Examples file: scmint.h category: base spec by eyes: - spec by tests: - general review: yamaken@r3499, ekato@r3499 64-bit by eyes: yamaken@r3499, ekato@r3499 64-bit by tests: coding style: yamaken@r3499 normal case tests: corner case tests: file: syntax.c category: r5rs spec by eyes: yamaken@r3499, yamaken@r3670 spec by tests: general review: yamaken@r3499 64-bit by eyes: yamaken@r3499 64-bit by tests: - coding style: yamaken@r3499 normal case tests: corner case tests: Categorized File List --------------------- - SigScheme-independent base libraries (base) * scmint.h * scmport.h * scmport-config.h * scmport-null.h * scmport-null.c * scmport-file.c * scmport-file.h * scmport-str.h * scmport-str.c * scmport-basechar.c * scmport-sbchar.h * scmport-sbchar.c * scmport-mbchar.h * scmport-mbchar.c * encoding.h * encoding-dummy.h * encoding-config.h * encoding.c * global.h * global-aggregated.c - Core (core) * config-old.h * sigscheme.h * sigschemeinternal.h * storage-common.h * storage-fatty.h * storage-compact.h * storage.c * storage-gc.c * gcroots.h * gcroots.c * strcasecmp.c * alloc.c * error.c * env.c * symbol.c * continuation.c * eval.c * module.c * sigscheme.c - Semi-core (semicore) * port.c * read.c * write.c * load.c * format.c - R5RS Syntaxes and Procedures (r5rs) * syntax.c * procedure.c * number.c * number-io.c * list.c * deep-cadrs.c * char.c * string.c * string-procedure.c * vector.c * qquote.c * macro.c * promise.c - SRFIs (srfi) * module-srfi1.c * module-srfi2.c * module-srfi6.c * module-srfi8.c * module-srfi9.c * module-srfi23.c * module-srfi28.c * module-srfi34.c * module-srfi38.c * module-srfi43.c * module-srfi48.c * module-srfi55.c * module-srfi60.c - Optional Features (opt) * legacy-macro.c * module-sscm-ext.c * module-siod.c - Others (other) * main.c * sigscheme-combined.h * dllentry.c Status Summary -------------- $ tools/summarize_quality.rb QALog ---------------------------------------------------------------- +-------- specification conformance check by eyes |+------- specification conformance check by tests ||+------ general code review (logic, structure, meaning, validity etc) |||+----- 64-bit data model capability check by eyes ||||+---- 64-bit data model capability check by tests |||||+--- coding style check (doc/style.txt) ||||||+-- normal case tests |||||||+- corner case tests |||||||| y yy y base scmint.h y yy y base scmport.h y yy y base scmport-config.h y yy y base scmport-null.h y yy y base scmport-null.c y yy y base scmport-file.c y yy y base scmport-file.h y yy y base scmport-str.h y yy y base scmport-str.c y yy y base scmport-basechar.c y yy y base scmport-sbchar.h y yy y base scmport-sbchar.c y yy y base scmport-mbchar.h y yy y base scmport-mbchar.c y yy y base encoding.h y yy y base encoding-dummy.h y yy y base encoding-config.h y yy y base encoding.c y yy yy base global.h y yy y base global-aggregated.c y yy y core config-old.h y yy y core sigscheme.h y yy y core sigschemeinternal.h y yy y core storage-common.h y yy y core storage-fatty.h y yy yy core storage-compact.h y yy y core storage.c y yy y core storage-gc.c y yy yy core gcroots.h y yy yy core gcroots.c yyyy yyy core strcasecmp.c y yy y core alloc.c y yy y core error.c y yy y core env.c y yy y core symbol.c yyyy yyy core continuation.c yyyy yyy core eval.c y yy y core module.c y yy y core sigscheme.c y yy y semicore port.c yyyy yyy semicore read.c y yy y semicore write.c y yy y semicore load.c yyyyyyyy semicore format.c yyyy yyy r5rs syntax.c yyyy yyy r5rs procedure.c yyyyyyyy r5rs number.c yyyyyyyy r5rs number-io.c yyyy yyy r5rs list.c yyyy yyy r5rs deep-cadrs.c yyyy yy r5rs char.c yyyy yyy r5rs string.c yyyy yy r5rs string-procedure.c yyyy yyy r5rs vector.c yyyy yyy r5rs qquote.c r5rs macro.c yyyy yy r5rs promise.c yyyy yyy srfi module-srfi1.c yyyy yyy srfi module-srfi2.c yyyy yyy srfi module-srfi6.c yyyy yyy srfi module-srfi8.c yyyy yyy srfi module-srfi9.c yyyy yy srfi module-srfi23.c yyyy yyy srfi module-srfi28.c yyyy yyy srfi module-srfi34.c yyyy yyy srfi module-srfi38.c yyyy yyy srfi module-srfi43.c yyyy yyy srfi module-srfi48.c yyyy yy srfi module-srfi55.c yyyyyyyy srfi module-srfi60.c yyyy yyy opt legacy-macro.c y yy y opt module-sscm-ext.c y yy y opt module-siod.c other main.c y yy y other sigscheme-combined.h other dllentry.c ---------------------------------------------------------------- Status ------ file: scmint.h category: base spec by eyes: yamaken@r3961, yamaken@r3992, yamaken@r4134 spec by tests: general review: yamaken@r3961 64-bit by eyes: yamaken@r3961, yamaken@r4134 64-bit by tests: coding style: yamaken@r3961 normal case tests: corner case tests: file: scmport.h category: base spec by eyes: yamaken@r3963, yamaken@r3992, yamaken@r3999, yamaken@r4138 spec by tests: general review: yamaken@r3963, yamaken@r3992 64-bit by eyes: yamaken@r3963, yamaken@r3992 64-bit by tests: coding style: yamaken@r3963, yamaken@r3992 normal case tests: corner case tests: file: scmport-config.h category: base spec by eyes: yamaken@r3963 spec by tests: general review: yamaken@r3963 64-bit by eyes: yamaken@r3963 64-bit by tests: coding style: yamaken@r3963 normal case tests: corner case tests: file: scmport-null.h category: base spec by eyes: yamaken@r3963 spec by tests: general review: yamaken@r3963 64-bit by eyes: yamaken@r3963 64-bit by tests: coding style: yamaken@r3963 normal case tests: corner case tests: file: scmport-null.c category: base spec by eyes: yamaken@r3963, yamaken@r3992, yamaken@r4068 spec by tests: general review: yamaken@r3963, yamaken@r3992 64-bit by eyes: yamaken@r3963, yamaken@r3992 64-bit by tests: coding style: yamaken@r3963, yamaken@r3992 normal case tests: corner case tests: file: scmport-file.c category: base spec by eyes: yamaken@r3963, yamaken@r3992, yamaken@r4068 spec by tests: general review: yamaken@r3963, yamaken@r3992 64-bit by eyes: yamaken@r3963, yamaken@r3992 64-bit by tests: coding style: yamaken@r3963, yamaken@r3992 normal case tests: corner case tests: file: scmport-file.h category: base spec by eyes: yamaken@r3963, yamaken@r4068 spec by tests: general review: yamaken@r3963 64-bit by eyes: yamaken@r3963 64-bit by tests: coding style: yamaken@r3963 normal case tests: corner case tests: file: scmport-str.h category: base spec by eyes: yamaken@r3963 spec by tests: general review: yamaken@r3963 64-bit by eyes: yamaken@r3963 64-bit by tests: coding style: yamaken@r3963 normal case tests: corner case tests: file: scmport-str.c category: base spec by eyes: yamaken@r3963, yamaken@r3992, yamaken@r4068, yamaken@r4298 spec by tests: general review: yamaken@r3963, yamaken@r3992 64-bit by eyes: yamaken@r3963, yamaken@r3992 64-bit by tests: coding style: yamaken@r3963, yamaken@r3992 normal case tests: corner case tests: file: scmport-basechar.c category: base spec by eyes: yamaken@r3963, yamaken@r3992, yamaken@r4068 spec by tests: general review: yamaken@r3963, yamaken@r3992 64-bit by eyes: yamaken@r3963, yamaken@r3992 64-bit by tests: coding style: yamaken@r3963, yamaken@r3992 normal case tests: corner case tests: file: scmport-sbchar.h category: base spec by eyes: yamaken@r3963 spec by tests: general review: yamaken@r3963 64-bit by eyes: yamaken@r3963 64-bit by tests: coding style: yamaken@r3963 normal case tests: corner case tests: file: scmport-sbchar.c category: base spec by eyes: yamaken@r3963, yamaken@r3992, yamaken@r3999, yamaken@r4060, yamaken@r4068 spec by tests: general review: yamaken@r3963, yamaken@r3992 64-bit by eyes: yamaken@r3963, yamaken@r3992 64-bit by tests: coding style: yamaken@r3963, yamaken@r3992 normal case tests: corner case tests: file: scmport-mbchar.h category: base spec by eyes: yamaken@r4528 spec by tests: general review: yamaken@r4528 64-bit by eyes: yamaken@r4528 64-bit by tests: coding style: yamaken@r4528 normal case tests: corner case tests: file: scmport-mbchar.c category: base spec by eyes: yamaken@r4528 spec by tests: general review: yamaken@r4528 64-bit by eyes: yamaken@r4528 64-bit by tests: coding style: yamaken@r4528 normal case tests: corner case tests: file: encoding.h category: base spec by eyes: yamaken@r4527 spec by tests: general review: yamaken@r4527 64-bit by eyes: yamaken@r4527 64-bit by tests: coding style: yamaken@r4527 normal case tests: corner case tests: file: encoding-dummy.h category: base spec by eyes: yamaken@r4067 spec by tests: general review: yamaken@r4067 64-bit by eyes: yamaken@r4067 64-bit by tests: coding style: yamaken@r4067 normal case tests: corner case tests: file: encoding-config.h category: base spec by eyes: yamaken@r4527 spec by tests: general review: yamaken@r4527 64-bit by eyes: yamaken@r4527 64-bit by tests: coding style: yamaken@r4527 normal case tests: corner case tests: file: encoding.c category: base spec by eyes: yamaken@r4527, yamaken@r4585 spec by tests: general review: yamaken@r4527 64-bit by eyes: yamaken@r4527 64-bit by tests: coding style: yamaken@r4527 normal case tests: corner case tests: file: global.h category: base spec by eyes: yamaken@r4060, yamaken@r4175 spec by tests: general review: yamaken@r4060 64-bit by eyes: yamaken@r4060 64-bit by tests: coding style: yamaken@r4060 normal case tests: yamaken@r4103 corner case tests: file: global-aggregated.c category: base spec by eyes: yamaken@r4060 spec by tests: general review: yamaken@r4060 64-bit by eyes: yamaken@r4060 64-bit by tests: coding style: yamaken@r4060 normal case tests: corner case tests: file: config-old.h category: core spec by eyes: yamaken@r4145 spec by tests: general review: yamaken@r4145 64-bit by eyes: yamaken@r4145 64-bit by tests: coding style: yamaken@r4145 normal case tests: corner case tests: file: sigscheme.h category: core spec by eyes: yamaken@r4061, yamaken@r4103, yamaken@r4110, yamaken@r4111, yamaken@r4138, yamaken@r4152, yamaken@r4182 spec by tests: general review: yamaken@r4061 64-bit by eyes: yamaken@r4061 64-bit by tests: coding style: yamaken@r4061 normal case tests: corner case tests: file: sigschemeinternal.h category: core spec by eyes: yamaken@r4061, yamaken@r4101, yamaken@r4103, yamaken@r4152, yamaken@r4550 spec by tests: general review: yamaken@r4061 64-bit by eyes: yamaken@r4061 64-bit by tests: coding style: yamaken@r4061 normal case tests: corner case tests: file: storage-common.h category: core spec by eyes: yamaken@r4066, yamaken@r4108, yamaken@r4152, yamaken@r4809 spec by tests: general review: yamaken@r4066 64-bit by eyes: yamaken@r4066 64-bit by tests: coding style: yamaken@r4066 normal case tests: corner case tests: file: storage-fatty.h category: core spec by eyes: yamaken@r4066, yamaken@r4108, yamaken@r4127, yamaken@r4809 spec by tests: general review: yamaken@r4066 64-bit by eyes: yamaken@r4066 64-bit by tests: coding style: yamaken@r4066 normal case tests: corner case tests: file: storage-compact.h category: core spec by eyes: yamaken@r4103, yamaken@r4123, yamaken@r4135, yamaken@r4809 spec by tests: general review: yamaken@r4103 64-bit by eyes: yamaken@r4103, yamaken@r4135 64-bit by tests: coding style: yamaken@r4103 normal case tests: yamaken@r4103, yamaken@r4123, yamaken@r4135, yamaken@r4809 corner case tests: file: storage.c category: core spec by eyes: yamaken@r4066, yamaken@r4152, yamaken@r4809 spec by tests: general review: yamaken@r4066 64-bit by eyes: yamaken@r4066 64-bit by tests: coding style: yamaken@r4066 normal case tests: corner case tests: file: storage-gc.c category: core spec by eyes: yamaken@r4066, yamaken@r4101, yamaken@r4108, yamaken@r4110, yamaken@r4111, yamaken@r4152, yamaken@r4182, yamaken@r4515, yamaken@r4809 spec by tests: general review: yamaken@r4066 64-bit by eyes: yamaken@r4066 64-bit by tests: coding style: yamaken@r4066 normal case tests: corner case tests: file: gcroots.h category: core spec by eyes: yamaken@r4203, yamaken@r4734 spec by tests: general review: yamaken@r4203, yamaken@r4734 64-bit by eyes: yamaken@r4203, yamaken@r4734 64-bit by tests: coding style: yamaken@r4203, yamaken@r4734 normal case tests: yamaken@r4203 corner case tests: file: gcroots.c category: core spec by eyes: yamaken@r4203, yamaken@r4734 spec by tests: general review: yamaken@r4203, yamaken@r4734 64-bit by eyes: yamaken@r4203, yamaken@r4734 64-bit by tests: coding style: yamaken@r4203, yamaken@r4734 normal case tests: yamaken@r4203 corner case tests: file: strcasecmp.c category: core spec by eyes: yamaken@r4053 spec by tests: yamaken@r4053 general review: yamaken@r4053 64-bit by eyes: yamaken@r4053 64-bit by tests: coding style: yamaken@r4053 normal case tests: yamaken@r4053 corner case tests: yamaken@r4053 file: alloc.c category: core spec by eyes: yamaken@r3945 spec by tests: general review: yamaken@r3945 64-bit by eyes: yamaken@r3945 64-bit by tests: coding style: yamaken@r3945 normal case tests: corner case tests: file: error.c category: core spec by eyes: yamaken@r3950, yamaken@r4062, yamaken@r4152 spec by tests: general review: yamaken@r3950 64-bit by eyes: yamaken@r3950 64-bit by tests: coding style: yamaken@r3950 normal case tests: corner case tests: file: env.c category: core spec by eyes: yamaken@r3946, yamaken@r4613 spec by tests: general review: yamaken@r3946 64-bit by eyes: yamaken@r3946 64-bit by tests: coding style: yamaken@r3946 normal case tests: corner case tests: file: symbol.c category: core spec by eyes: yamaken@r3947 spec by tests: general review: yamaken@r3947 64-bit by eyes: yamaken@r3947 64-bit by tests: coding style: yamaken@r3947 normal case tests: corner case tests: file: continuation.c category: core spec by eyes: yamaken@r3880, yamaken@r4138, yamaken@r4603, yamaken@r4893 spec by tests: yamaken@r3880, yamaken@r4076, yamaken@r4603 general review: yamaken@r3880 64-bit by eyes: yamaken@r3880 64-bit by tests: coding style: yamaken@r3880 normal case tests: yamaken@r3880, yamaken@r4603 corner case tests: yamaken@r3880, yamaken@r4603 file: eval.c category: core spec by eyes: yamaken@r3865, yamaken@r4103, yamaken@r4152, yamaken@r4299, yamaken@r4603, yamaken@r4946, yamaken@r4950 spec by tests: yamaken@r3865, yamaken@r4076, yamaken@r4103, yamaken@r4603, yamaken@r4946, yamaken@r4950 general review: yamaken@r3865, yamaken@r4946 64-bit by eyes: yamaken@r3865, yamaken@r4946 64-bit by tests: coding style: yamaken@r3866, yamaken@r4946 normal case tests: yamaken@r3865, yamaken@r4103, yamaken@r4603, yamaken@r4946, yamaken@r4950 corner case tests: yamaken@r3865, yamaken@r4103, yamaken@r4603, yamaken@r4946, yamaken@r4950 file: module.c category: core spec by eyes: yamaken@r4019, yamaken@r4182 spec by tests: general review: yamaken@r4019 64-bit by eyes: yamaken@r4019 64-bit by tests: coding style: yamaken@r4019 normal case tests: corner case tests: file: sigscheme.c category: core spec by eyes: yamaken@r4017, yamaken@r4019, yamaken@r4066, yamaken@r4152, yamaken@r4182, yamaken@r4543, yamaken@r4722, yamaken@r4818, yamaken@r4880 spec by tests: general review: yamaken@r4017 64-bit by eyes: yamaken@r4017 64-bit by tests: coding style: yamaken@r4017 normal case tests: corner case tests: file: port.c category: semicore spec by eyes: yamaken@r3992, yamaken@r4152, yamaken@r4533 spec by tests: general review: yamaken@r3992, yamaken@r4533 64-bit by eyes: yamaken@r3992 64-bit by tests: coding style: yamaken@r3992 normal case tests: corner case tests: file: read.c category: semicore spec by eyes: yamaken@r4012, yamaken@r4533, yamaken@r4550 spec by tests: yamaken@r4012, yamaken@r4014, yamaken@r4015, yamaken@r4533 general review: yamaken@r4012, yamaken@r4533 64-bit by eyes: yamaken@r4012 64-bit by tests: coding style: yamaken@r4012 normal case tests: yamaken@r4012, yamaken@r4533 corner case tests: yamaken@r4012, yamaken@r4533 file: write.c category: semicore spec by eyes: yamaken@r4041, yamaken@r4152, yamaken@r4543, yamaken@r4800 spec by tests: general review: yamaken@r4041 64-bit by eyes: yamaken@r4041, yamaken@r4800 64-bit by tests: coding style: yamaken@r4041 normal case tests: corner case tests: file: load.c category: semicore spec by eyes: yamaken@r4017, yamaken@r4182, yamaken@r4541, yamaken@r4722 spec by tests: general review: yamaken@r4017 64-bit by eyes: yamaken@r4017 64-bit by tests: coding style: yamaken@r4017 normal case tests: corner case tests: file: format.c category: semicore spec by eyes: yamaken@r4052, yamaken@r4070, yamaken@r4152, yamaken@r4543 spec by tests: yamaken@r4052, yamaken@r4070 general review: yamaken@r4052 64-bit by eyes: yamaken@r4052 64-bit by tests: yamaken@r4075 coding style: yamaken@r4052 normal case tests: yamaken@r4052, yamaken@r4070, yamaken@r4075 corner case tests: yamaken@r4052, yamaken@r4070, yamaken@r4075 file: syntax.c category: r5rs spec by eyes: yamaken@r3704, yamaken@r4103, yamaken@r4152 spec by tests: yamaken@r3704, yamaken@r4014, yamaken@r4076, yamaken@r4103 general review: yamaken@r3704 64-bit by eyes: yamaken@r3704 64-bit by tests: coding style: yamaken@r3704 normal case tests: yamaken@r3704, yamaken@r4103 corner case tests: yamaken@r3896, yamaken@r4103 file: procedure.c category: r5rs spec by eyes: yamaken@r3880, yamaken@r4152 spec by tests: yamaken@r3880 general review: yamaken@r3880 64-bit by eyes: yamaken@r3880 64-bit by tests: coding style: yamaken@r3880 normal case tests: yamaken@r3880 corner case tests: yamaken@r3880 file: number.c category: r5rs spec by eyes: yamaken@r3943, yamaken@r4071 spec by tests: yamaken@r3943, yamaken@r4071 general review: yamaken@r3943 64-bit by eyes: yamaken@r3943 64-bit by tests: yamaken@r4071 coding style: yamaken@r3943 normal case tests: yamaken@r3943, yamaken@r4071 corner case tests: yamaken@r3943, yamaken@r4071 file: number-io.c category: r5rs spec by eyes: yamaken@r3943, yamaken@r4071, yamaken@r4760 spec by tests: yamaken@r3943, yamaken@r4071, yamaken@r4760 general review: yamaken@r3943 64-bit by eyes: yamaken@r3943 64-bit by tests: yamaken@r4071 coding style: yamaken@r3943 normal case tests: yamaken@r3943, yamaken@r4071, yamaken@r4760 corner case tests: yamaken@r3943, yamaken@r4071, yamaken@r4760 file: list.c category: r5rs spec by eyes: yamaken@r3902 spec by tests: yamaken@r3902 general review: yamaken@r3902 64-bit by eyes: yamaken@r3902 64-bit by tests: coding style: yamaken@r3902 normal case tests: yamaken@r3902 corner case tests: yamaken@r3902 file: deep-cadrs.c category: r5rs spec by eyes: yamaken@r3892 spec by tests: yamaken@r3903 general review: yamaken@r3892 64-bit by eyes: yamaken@r3892 64-bit by tests: coding style: yamaken@r3892 normal case tests: yamaken@r3903 corner case tests: yamaken@r3903 file: char.c category: r5rs spec by eyes: yamaken@r4550 spec by tests: yamaken@r4550, yamaken@r4563 general review: yamaken@r4550 64-bit by eyes: yamaken@r4550 64-bit by tests: coding style: yamaken@r4550 normal case tests: yamaken@r4550, yamaken@r4563 corner case tests: file: string.c category: r5rs spec by eyes: yamaken@r3911, yamaken@r4865 spec by tests: yamaken@r3911, yamaken@r4865 general review: yamaken@r3911 64-bit by eyes: yamaken@r3911 64-bit by tests: coding style: yamaken@r3911 normal case tests: yamaken@r3911, yamaken@r4865 corner case tests: yamaken@r3911 file: string-procedure.c category: r5rs spec by eyes: yamaken@r4552, yamaken@r4564, yamaken@r4865 spec by tests: yamaken@r4552, yamaken@r4564, yamaken@r4865 general review: yamaken@r4552 64-bit by eyes: yamaken@r4552 64-bit by tests: coding style: yamaken@r4552 normal case tests: yamaken@r4552, yamaken@r4865 corner case tests: file: vector.c category: r5rs spec by eyes: yamaken@r4562 spec by tests: yamaken@r4562 general review: yamaken@r4562 64-bit by eyes: yamaken@r4562 64-bit by tests: coding style: yamaken@r4562 normal case tests: yamaken@r4562 corner case tests: yamaken@r4562 file: qquote.c category: r5rs spec by eyes: yamaken@r3649 spec by tests: yamaken@r3649 general review: yamaken@r3649 64-bit by eyes: yamaken@r3649 64-bit by tests: coding style: yamaken@r3649 normal case tests: yamaken@r3649 corner case tests: yamaken@r3649 file: macro.c category: r5rs spec by eyes: spec by tests: general review: 64-bit by eyes: 64-bit by tests: coding style: normal case tests: corner case tests: file: promise.c category: r5rs spec by eyes: yamaken@r4740 spec by tests: yamaken@r4740 general review: yamaken@r4740 64-bit by eyes: yamaken@r4740 64-bit by tests: coding style: yamaken@r4740 normal case tests: yamaken@r4740 corner case tests: file: module-srfi1.c category: srfi spec by eyes: yamaken@r4643 spec by tests: yamaken@r4643 general review: yamaken@r4643 64-bit by eyes: yamaken@r4643 64-bit by tests: coding style: yamaken@r4643 normal case tests: yamaken@r4643 corner case tests: yamaken@r4643 file: module-srfi2.c category: srfi spec by eyes: yamaken@r4583 spec by tests: yamaken@r4583 general review: yamaken@r4583 64-bit by eyes: yamaken@r4583 64-bit by tests: coding style: yamaken@r4583 normal case tests: yamaken@r4583 corner case tests: yamaken@r4583 file: module-srfi6.c category: srfi spec by eyes: yamaken@r3992, yamaken@r4172 spec by tests: yamaken@r3992 general review: yamaken@r3992 64-bit by eyes: yamaken@r3992 64-bit by tests: coding style: yamaken@r3992 normal case tests: yamaken@r3992 corner case tests: yamaken@r3992 file: module-srfi8.c category: srfi spec by eyes: yamaken@r4572 spec by tests: yamaken@r4572 general review: yamaken@r4572 64-bit by eyes: yamaken@r4572 64-bit by tests: coding style: yamaken@r4572 normal case tests: yamaken@r4572 corner case tests: yamaken@r4572 file: module-srfi9.c category: srfi spec by eyes: yamaken@r4810, yamaken@r4939 spec by tests: yamaken@r4939 general review: yamaken@r4810, yamaken@r4939 64-bit by eyes: yamaken@r4810, yamaken@r4939 64-bit by tests: coding style: yamaken@r4810, yamaken@r4939 normal case tests: yamaken@r4939 corner case tests: yamaken@r4939 file: module-srfi23.c category: srfi spec by eyes: yamaken@r3953 spec by tests: yamaken@r3953 general review: yamaken@r3953 64-bit by eyes: yamaken@r3953 64-bit by tests: coding style: yamaken@r3953 normal case tests: yamaken@r3953 corner case tests: file: module-srfi28.c category: srfi spec by eyes: yamaken@r4052 spec by tests: yamaken@r4052 general review: yamaken@r4052 64-bit by eyes: yamaken@r4052 64-bit by tests: coding style: yamaken@r4052 normal case tests: yamaken@r4052 corner case tests: yamaken@r4052 file: module-srfi34.c category: srfi spec by eyes: yamaken@r3959 spec by tests: yamaken@r3959 general review: yamaken@r3959 64-bit by eyes: yamaken@r3959 64-bit by tests: coding style: yamaken@r3959 normal case tests: yamaken@r3959 corner case tests: yamaken@r3959 file: module-srfi38.c category: srfi spec by eyes: yamaken@r4041 spec by tests: yamaken@r4041 general review: yamaken@r4041 64-bit by eyes: yamaken@r4041 64-bit by tests: coding style: yamaken@r4041 normal case tests: yamaken@r4041 corner case tests: yamaken@r4041 file: module-srfi43.c category: srfi spec by eyes: yamaken@r4943 spec by tests: yamaken@r4943 general review: yamaken@r4943 64-bit by eyes: yamaken@r4943 64-bit by tests: coding style: yamaken@r4943 normal case tests: yamaken@r4943 corner case tests: yamaken@r4943 file: module-srfi48.c category: srfi spec by eyes: yamaken@r4052 spec by tests: yamaken@r4052 general review: yamaken@r4052 64-bit by eyes: yamaken@r4052 64-bit by tests: coding style: yamaken@r4052 normal case tests: yamaken@r4052 corner case tests: yamaken@r4052 file: module-srfi55.c category: srfi spec by eyes: yamaken@r4713 spec by tests: yamaken@r4713 general review: yamaken@r4713 64-bit by eyes: yamaken@r4713 64-bit by tests: coding style: yamaken@r4713 normal case tests: yamaken@r4713 corner case tests: file: module-srfi60.c category: srfi spec by eyes: yamaken@r3944 spec by tests: yamaken@r3944 general review: yamaken@r3944 64-bit by eyes: yamaken@r3944 64-bit by tests: yamaken@r3944 coding style: yamaken@r3944 normal case tests: yamaken@r3944 corner case tests: yamaken@r3944 file: legacy-macro.c category: opt spec by eyes: yamaken@r4946 spec by tests: yamaken@r4946 general review: yamaken@r4946 64-bit by eyes: yamaken@r4946 64-bit by tests: coding style: yamaken@r4946 normal case tests: yamaken@r4946 corner case tests: yamaken@r4946 file: module-sscm-ext.c category: opt spec by eyes: yamaken@r4020, yamaken@r4182, yamaken@r4606 spec by tests: general review: yamaken@r4020 64-bit by eyes: yamaken@r4020 64-bit by tests: coding style: yamaken@r4020 normal case tests: corner case tests: file: module-siod.c category: opt spec by eyes: yamaken@r4021 spec by tests: general review: yamaken@r4021 64-bit by eyes: yamaken@r4021 64-bit by tests: coding style: yamaken@r4021 normal case tests: corner case tests: file: main.c category: other spec by eyes: spec by tests: general review: 64-bit by eyes: 64-bit by tests: coding style: normal case tests: corner case tests: file: sigscheme-combined.h category: other spec by eyes: yamaken@r4022 spec by tests: general review: yamaken@r4022 64-bit by eyes: yamaken@r4022 64-bit by tests: coding style: yamaken@r4022 normal case tests: corner case tests: file: dllentry.c category: other spec by eyes: spec by tests: general review: 64-bit by eyes: 64-bit by tests: coding style: normal case tests: corner case tests: Log --- 2007-09-13 YamaKen <yamaken AT bp.iij4u.or.jp> * eval.c - Fix non-toplevel definition by a form returned by syntactic closure, and QA done again @r4950 for define-macro with test-legacy-macro.scm 2007-09-08 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi43.c - QA done @r4943 with test-srfi43.scm * legacy-macro.c * eval.c - QA done @r4946 for define-macro with test-legacy-macro.scm 2007-09-04 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi9.c - QA done again @r4939 (including the fix in r4928) with test-srfi9.scm 2007-08-24 YamaKen <yamaken AT bp.iij4u.or.jp> * sigscheme.c - QA done again @r4880 for revised array<->list conversion functions. Both 2 functions are fully tested with test-array2list.c 2007-08-19 YamaKen <yamaken AT bp.iij4u.or.jp> * string.c * string-procedure.c - QA done again @r4865 for multibyte string handlings. string-length is fixed, and new procedure %%string-reconstruct! has been added with tests in test-string-proc.scm 2007-08-11 YamaKen <yamaken AT bp.iij4u.or.jp> * sigscheme.c - QA done again @r4818 for array<->list conversion functions. The 3 functions are fully tested with test-array2list.c 2007-08-09 YamaKen <yamaken AT bp.iij4u.or.jp> * storage-gc.c * storage-compact.h * storage-fatty.h * storage-common.h * storage.c - QA done again @r4809 for GC around freecell and scm_gc_protectedp() * module-srfi9.c - QA done @r4810 by eyes 2007-08-07 YamaKen <yamaken AT bp.iij4u.or.jp> * write.c - Fix misinitialized hash table and QA done again @r4800 for hash tables 2007-07-21 YamaKen <yamaken AT bp.iij4u.or.jp> * number-io.c - QA done again @r4760 for scm_string2number() 2007-07-18 YamaKen <yamaken AT bp.iij4u.or.jp> * gcroots.h * gcroots.c - QA done again @r4734 * promise.c - QA done @r4740 2007-07-13 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi55.c * srfi-55.scm - QA done @r4713 with test-srfi55.scm * load.c * sigscheme.c - system load-path related functions are added, and 2nd arg is added to scm_initialize(). Checked by eyes and tests 2007-07-01 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi1.c - QA done @r4643 with test-srfi1-another.scm, test-srfi1.scm and stone-srfi1.scm 2007-06-30 YamaKen <yamaken AT bp.iij4u.or.jp> * env.c - QA done again @r4613 with test-misc.scm 2007-06-16 YamaKen <yamaken AT bp.iij4u.or.jp> * module-sscm-ext.c - QA done again @r4606 for newly added let-optionals* with test-sscm-ext.scm and gauche-let-optionals.scm 2007-06-15 YamaKen <yamaken AT bp.iij4u.or.jp> * eval.c * continuation.c - Fix the case continuation takes multiple values - QA done again @r4603 with test-continuation.scm 2007-06-13 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi2.c - QA done @r4583 with test-srfi2.scm and oleg-srfi2.scm 2007-05-29 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi8.c - QA done @r4572 with test-srfi8.scm 2007-05-25 YamaKen <yamaken AT bp.iij4u.or.jp> * vector.c - QA done @r4562 with test-vector.scm 2007-05-20 YamaKen <yamaken AT bp.iij4u.or.jp> * string-procedure.c - QA done @r4552 with test-string-{proc,cmp}.scm 2007-05-19 YamaKen <yamaken AT bp.iij4u.or.jp> * char.c - QA done @r4550 with test-char{,-pred}.scm 2007-04-13 YamaKen <yamaken AT bp.iij4u.or.jp> * write.c * format.c * sigscheme.c - QA done again @r4543 for SCM_USE_MULTIBYTE_CHAR 2007-04-10 YamaKen <yamaken AT bp.iij4u.or.jp> * load.c - QA done again @r4541 for SCM_USE_MULTIBYTE_CHAR 2007-04-06 YamaKen <yamaken AT bp.iij4u.or.jp> * port.c * read.c - QA done again @r4533 for SCM_USE_MULTIBYTE_CHAR and SCM_USE_R6RS*_CHARS * unittest.scm - (assert-parseable): Fix broken parse error detection 2007-03-31 YamaKen <yamaken AT bp.iij4u.or.jp> * scmport-mbchar.h * scmport-mbchar.c - QA done @r4528 - Fix broken read state update for mbc 2007-03-30 YamaKen <yamaken AT bp.iij4u.or.jp> * encoding-config.h * encoding.h * encoding.c - QA done @r4527 - The encoding rule itself has not been verified because it had already been done at the time I added the codec interface-based API - Make Shift_JIS encoding name (CES) and Unicode CCS names proper 2007-03-25 YamaKen <yamaken AT bp.iij4u.or.jp> * storage-gc.c - QA done again @r4515 - Check new scm_gc_protectedp(), scm_gc_protected_contextp() and scm_prealloc_heaps() with test-gc-protect.c 2006-12-24 YamaKen <yamaken AT bp.iij4u.or.jp> * gcroots.h * gcroots.c - QA done @r4203 2006-12-23 YamaKen <yamaken AT bp.iij4u.or.jp> * sigscheme.h * storage-gc.c * sigscheme.c * module.c * load.c * module-sscm-ext.c - QA done again @r4182 - libgcroots API and its SigScheme-specific implementation is introduced to resolve corrupted GC problem on SPARC and IA-64. It needs API change 2006-12-19 YamaKen <yamaken AT bp.iij4u.or.jp> * config-old.h - QA done @r4145 2006-12-18 YamaKen <yamaken AT bp.iij4u.or.jp> * error.c * format.c * storage-gc.c * procedure.c * write.c * sigscheme.h * storage-common.h * storage.c * sigschemeinternal.h * eval.c * port.c * sigscheme.c * syntax.c - QA done again @r4152 - Fix broken conditional compilation on smaller configurations such as --enable-conf={small,uim,siod} 2006-12-16 YamaKen <yamaken AT bp.iij4u.or.jp> * configure.in * config-old.h * ax_feature_configurator.m4 - Significant changes @r4144-4145 - The (broken) --enable and --disable handlings are entirely replaced with newly developed, dependency-based ax_feature_configurator.m4 2006-12-14 YamaKen <yamaken AT bp.iij4u.or.jp> * sigscheme.h * continuation.c - QA done again @r4138 - Fix broken conditional configurations 2006-12-13 YamaKen <yamaken AT bp.iij4u.or.jp> * storage-compact.h * sigscheme.c - QA done again @r4134-4135 - Fix bit size exceeding problem of SCM_SAL_*_{BITS,MAX,MIN} * sigscheme-stdint.h * scmint.h - QA done again @r4126-4127 - sigscheme-stdint.h has been removed and replaced with AC_TYPE_UINTPTR_T and so on of autoconf 2.60 - *_MIN and *_MAX are replaced with newly defined macros in scmint.h - Add ALIGNOF_* macros 2006-12-12 YamaKen <yamaken AT bp.iij4u.or.jp> * string-core.c * string.c * string-procedure.c * number.c * number-io.c - File reorganization done @r4112-4118. See svn log - Be careful about this string-related files renaming string.c -> string-procedure.c string-core.c -> string.c - number-io.c has been split off from number.c - test-number-conv.scm has been renamed to test-number-io.scm - test-let.scm has been split into 4 files 2006-12-11 YamaKen <yamaken AT bp.iij4u.or.jp> * sigscheme.h * storage-gc.c - QA done again @r4110, @r4111 - Fix broken max heap size configuration - Limit max heap size by countable number of cells * storage-compact.h - QA done @r4109 by eyes and some normal case tests - Fix broken 64-bit data model capability 2006-12-09 YamaKen <yamaken AT bp.iij4u.or.jp> * syntax.c * eval.c * sigscheme.h * sigschemeinternal.h - QA done again @r4103 - [R5RS] Fix syntactic keyword to value evaluation that only bound to syntax or macro (i.e. (eq? if and) has been invalidated). But binding syntactic keywords to first-class objects such as (define else 3) and (define do 4) are still allowed - [R5RS] Fix first-class binding objects acceptance of let-syntax, letrec-syntax and define-syntax - Specs have been validated against following R5RS sections: "3.1 Variables; syntactic keywords; and regions" "4.1.1 Variable references" "5.3 Syntax definitions" "7.1.1 Lexical structure" 2006-12-07 YamaKen <yamaken AT bp.iij4u.or.jp> * test-c2/ * test-c/ - @r4086, the Cutter-based C testing framework has been replaced with the new framework developed by Jun Inoue. All of old contents of test-c/ have been removed, and test-c2/ has been renamed to test-c/. Be careful to read old logs. * syntax.c * eval.c * continuation.c - QA done again @r4076 Details: - Proper tail recursion conformance tests have been passed with test-tail-rec.scm and runtest-tail-rec.sh on both fatty and compact on x86_64-unknown-linux-gnu and i386-unknown-freebsd * format.c - QA done @r4070, @r4075 - Fix broken va_list passing on x86_64 platform Details: - "64-bit by tests" have been passed with previously written test-c2/test-format.c and test-srfi48.scm with some fixes and additions for the tests, on both fatty and compact on x86_64-unknown-linux-gnu * number.c - QA done @r4071 - Fix broken out of range error detection of scm_string2number() which fails every conversion once after the error has occurred Details: - "64-bit by tests" have been passed with previously written test-number-{arith,cmp,conv,literal}.scm with some trivial fixes for the tests, on both fatty and compact on x86_64-unknown-linux-gnu 2006-12-06 YamaKen <yamaken AT bp.iij4u.or.jp> * scmport-file.c - QA done again @r4068 by eyes and hand tests - Fix *BSD-dependent error detection for fputs(3) with ISO 9899:1999 - Check again other std C functions against ISO 9899:1999 * encoding-dummy.h - QA done @r4067 by eyes 2006-12-05 YamaKen <yamaken AT bp.iij4u.or.jp> * storage-fatty.h * storage-common.h * storage.c * storage-gc.c - QA done @r4066 by eyes except for #if SCM_USE_HYGIENIC_MACRO - Fix possible crash of the broken GC protection on initialization * sigscheme.h * sigschemeinternal.h - QA done @r4061 by eyes * global.h * global-aggregated.c - QA done @r4060 by eyes - Fix broken aggregated global variables handling - Fix writable static data feature dependency 2006-12-02 YamaKen <yamaken AT bp.iij4u.or.jp> * strcasecmp.c - QA done @r4053 except for "64-bit by tests" Details: - Replace test-c/test_strcasecmp.c with test-c2/test-strcasecmp.c - Complete all required tests for these procedures I'm aware of * format.c * module-srfi28.c * module-srfi48.c - QA done @r4052 except for "64-bit by tests" and #if SCM_USE_MULTIBYTE_CHAR Details: - Complete all required tests for these procedures I'm aware of in test-srfi{28,48}.scm and test-c/test_format.c - Specs have been validated against SRFI-28: * format - Specs have been validated against SRFI-48: * format, pretty-print * write.c * module-srfi38.c - QA done @r4041 except for "64-bit by tests" and #if SCM_USE_HYGIENIC_MACRO - Fix inacceptance of optional 'optarg' argument of 'write-with-shared-structure' - Fix possible datum index overflow of SRFI-38 write/ss on 64-bit platforms Details: - Complete all required tests for these procedures I'm aware of in test-srfi38.scm - Specs have been validated against following R5RS sections: * write, display "6.6.3 Output" - Specs have been validated against SRFI-38: * write-with-shared-structure 2006-11-30 YamaKen <yamaken AT bp.iij4u.or.jp> * sigscheme-combined.h - QA done @r4022 by eyes * module-siod.c - QA done @r4021 by eyes - Fix broken body result of %%closure-code when body-length == 1 * module-sscm-ext.c - QA done @r4020 by eyes Details: - 'length*' is validated with test-list.scm - These procedure specs have been validated against following R6RS (R5.91RS) sections: * fixnum-width, least-fixnum, greatest-fixnum "16.3 Fixnums" "16.3.1 Quotient-ring fixnum operations" * module.c - QA done @r4019 by eyes * load.c * sigscheme.c - QA done @r4017 by eyes - (scm_set_lib_path): Change to holding copied library path string - Fix possible crash on parsing script prelude longer than 64 chars - Fix possible crash on parsing script prelude that only has "#! /usr/bin/env" - Fix a broken error handling on character encoding switching when !SCM_USE_MULTIBYTE_CHAR - Fix acceptable pathname length of a script name of sscm command previously one char lesser than maximum Details: - Specs have been validated against following R5RS sections: * load "6.6.4 System interface" - Specs have been validated against SRFI-22: * load 2006-11-29 YamaKen <yamaken AT bp.iij4u.or.jp> * read.c - QA done @r4012 except for "64-bit by tests" and SRFI-75 supports - Remove initial hyphen support for symbols (such as '-sym). Use (string->symbol "-sym") instead - Fix potential SEGV on long string parsing - Fix possible crash on parsing R5RS-reserved chars |[]{} Details: - Since SRFI-75 had already been obsoleted, SCM_USE_SRFI75 parts are not validated deeply. It will be replaced with stable R6RS implementation once the specifications have been stabilized - Complete all required tests for these procedures I'm aware of in test-{formal-syntax,symbol,string,char,number-literal}.scm except for SRFI-75 -related ones - Specs have been validated against following R5RS sections: * read "2. Lexical conventions" "2.1 Identifiers" "2.2 Whitespace and comments" "2.3 Other notations" "6.6.2 Input" "7.1.1 Lexical structure" "7.1.2 External representations" "7.1.5 Transformers" - Character literals specs have been briefly checked (but not conformed) against following R6RS sections: "3 Lexical syntax and read syntax" "3.2 Lexical syntax" "3.2.1 Formal account" "3.2.3 Identifiers" "3.2.5 Characters" "3.2.6 Strings" 2006-11-18 YamaKen <yamaken AT bp.iij4u.or.jp> * scmport.h * scmport-null.c * scmport-file.c * scmport-str.c * scmport-basechar.c * scmport-sbchar.c * scmport-mbchar.c * scmint.h - QA done again @r3992 by eyes - Change the low-level port API to fix the design error about error handling (get_byte() and peek_byte() were not able to detect read error) - Fix broken sign extention for 8-bit char on string port read * port.c - QA done @r3992 by eyes - Add lacking or incomplete error handlings for port operations Details: - Specs have been validated against following R5RS sections: * call-with-input-file, call-with-output-file, input-port?, output-port?, current-input-port, current-output-port, with-input-from-file, with-output-to-file, open-input-file, open-output-file, read-char, peek-char, eof-object?, char-ready?, newline, write-char "6.6.1 Ports" "6.6.2 Input" "6.6.3 Output" * module-srfi6.c - QA done @r3992 Details: - Add some tests to test-srfi6.scm - Specs have been validated against SRFI-6: * open-input-string, open-output-string, get-output-string 2006-11-09 YamaKen <yamaken AT bp.iij4u.or.jp> * scmport.h * scmport-config.h * scmport-null.h * scmport-null.c * scmport-file.h * scmport-file.c * scmport-str.h * scmport-str.c * scmport-basechar.c * scmport-sbchar.h * scmport-sbchar.c - QA done @r3963 - Fix broken ScmBaseCharPort inheritance of ScmSingleByteCharPort which may cause SEGV * scmint.h - QA done @r3961 2006-11-08 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi34.c - QA done @r3959 - [SRFI-34] Add current handler to error object to behave as same as the reference implementation of SRFI-34 'raise' Details: - Perform some tests by hand, since it cannot be checked by assert-error - Specs have been validated against SRFI-34: * with-exception-handler, guard, raise 2006-11-07 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi23.c - QA done @r3953 by eyes - [SRFI-23] Display error message and optional objects as same as the reference implementation of SRFI-23 Details: - Perform some tests for normal and invalid cases by hand, since it cannot be checked by assert-error - Specs have been validated against SRFI-23: * error * error.c - QA done @r3950 by eyes 2006-11-06 YamaKen <yamaken AT bp.iij4u.or.jp> * symbol.c - QA done @r3947 by eyes * env.c - QA done @r3946 by eyes except for #if SCM_USE_HYGIENIC_MACRO part. It must be validated together when QA for the macro feature is performed * alloc.c * sigschemeinternal.h (LBUF part) - QA done @r3945 by eyes 2006-11-05 YamaKen <yamaken AT bp.iij4u.or.jp> * module-srfi60.c - QA done @r3944 - [SRFI-60] Fix invalid result of (logand). Now it returns -1 as same as the reference implementation Details: - Complete all required tests for currently provided SRFI-60 procedures I'm aware of - Specs have been validated against SRFI-60: * bitwise-and, logand, bitwise-ior, logior, bitwise-xor, logxor, bitwise-not, lognot, bitwise-merge, bitwise-if, any-bits-set?, logtest * number.c - QA done @r3943 except for "64-bit by tests". And all required tests for 64-bit configuration itself are also written, but since both storage-compact and fatty produces SEGV when displaying an integer on LP64 env, debug needed - [R5RS] Fix broken result of 'modulo' on no-remainder cases - Fix missized-cast of 'quotient' which results a broken value on 64-bit configurations - [R5RS] Reject invalid number strings such as "0xa" and " 1" on 'string->number' - [R5RS] Reject invalid number literals such as "#x0xa" - (INT_LITERAL_LEN_MAX): Fix '0' prefix incapability on a maximum-length binary number literal. See "R5RS conformance: Numbers: Literals" subsection of doc/spec.txt for further details Details: - Add test-number-{arith,cmp,conv,literal,pred}.scm and complete all required tests for these procedures I'm aware of - Specs have been validated against following R5RS sections: * +, *, -, /, number?, integer?, =, <, <=, >, >=, zero?, positive?, negative?, odd?, even?, max, min, abs, quotient, modulo, remainder, number->string, string->number "6.2 Numbers" "6.2.1 Numerical types" "6.2.2 Exactness" "6.2.3 Implementation restrictions" "6.2.4 Syntax of numerical constants" "6.2.5 Numerical operations" "6.2.6 Numerical input and output" "7.1.1 Lexical structure" - Arithmetic behaviors and rounding specs for integers are validated against following ISO/IEC 9899:1999(E) standard: * /, quotient, remainder "6.3.1.4 Real floating and integer" "6.5.5 Multiplicative operators" 2006-10-09 YamaKen <yamaken AT bp.iij4u.or.jp> * string-core.c - QA done @r3911 except for "64-bit by tests" Details: - Complete all required tests for these procedures I'm aware of in test-string-core.scm - Specs have been validated against following R5RS sections: * string?, string-length, string=?, string-append, string-copy "6.3.5 Strings" 2006-10-03 YamaKen <yamaken AT bp.iij4u.or.jp> * list.c - QA done for 'append', 'reverse', 'list-tail', 'list-ref' @r3901 except for "64-bit by tests". Rest parts of list.c is not validated yet - QA done for 'memq', 'memv', 'member', 'assq', 'assv', 'assoc' and all list.c @r3902 except for "64-bit by tests" - [R5RS] Fix broken improper tail handling of 'list-ref' - [R5RS] Fix improper list acceptance of 'reverse' Details: - Complete all required tests for these procedures I'm aware of in test-list.scm - Add test-member.scm and test-assoc.scm and complete all required tests I'm aware of - Specs have been validated against following R5RS sections: * append, reverse, list-tail, list-ref, memq, memv, member, assq, assv, assoc "6.3.2 Pairs and lists" Since the 'member' and 'assoc' procedures use eq?, eqv? and equal? that already validated before, "6.1 Equivalence predicates" is not checked again here * deep-cadr.c - QA done again for all c[ad]+r procedures @r3903 with fixed test-pair.scm 2006-10-02 YamaKen <yamaken AT bp.iij4u.or.jp> * list.c * sigscheme.h * sigschemeinternal.h * syntax.c - QA done for 'length' @r3896 except for "64-bit by tests". Rest parts of list.c is not validated yet - QA done for 'length'-related macros of sigscheme.h @r3896. Rest parts of sigscheme.h is not validated yet - QA done for 'length'-related macros of sigschemeinternal.h @r3897. Rest parts of sigschemeinternal.h is not validated yet - Fix infinite loop of 'quote' triggered by (error a-circular-list) Details: - Add tests for 'length' to test-list.scm and complete all required 'length'-related tests I'm aware of - Add test-length.c and complete all required 'length'-related tests I'm aware of - (scm_s_quote): Fix infinite loop of SCM_UNWRAP_SYNTAX() by error objects that contain circular list - (scm_p_length): Fix passing circular list into error object when SRFI-38 is not enabled - Specs have been validated against following R5RS sections: * length "6.3.2 Pairs and lists" "Improper Lists" section of SRFI-1 * sigscheme/src/sigschemeinternal.h * sigscheme/src/sigscheme.h * sigscheme/src/list.c - Definition of dotted list length is changed to SRFI-1's from SigScheme-speciific one @r3898. See svn log for further information 2006-09-30 YamaKen <yamaken AT bp.iij4u.or.jp> * list.c - QA done for null?, list? @r3893 except for "64-bit by tests". Rest parts of list.c is not validated yet Details: - Specs have been validated against following R5RS sections: * null?, list? "6.3.2 Pairs and lists" * test-bool.scm - Fix boolean? tests. Since the predicates must return exact #t if true as described in "6.3.1 Booleans" of R5RS, assert-true is insufficient * test-misc.scm - Likewise for procedure? with "6.4 Control features" * test-pair.scm - Likewise for pair? with "6.3.2 Pairs and lists" * test-symbol.scm Likewise for symbol? with "6.3.3 Symbols" * test-eq.scm Likewise for eq? with "6.1 Equivalence predicates" * test-eqv.scm Likewise for eq? with "6.1 Equivalence predicates" * test-equal.scm Likewise for eq? with "6.1 Equivalence predicates" 2006-09-27 YamaKen <yamaken AT bp.iij4u.or.jp> * list.c * deep-cadrs.c - QA done for pair?, cons, car, cdr, set-car!, set-cdr! and all c[ad]+r procedures @r3892 except for "64-bit by tests". Rest parts of list.c is not validated yet Details: - Add test-pair.scm (some tests that I wrote and R5RS examples are moved from test-list.scm) and complete all required tests I'm aware of - Specs have been validated against following R5RS sections: * pair?, cons, car, cdr, set-car!, set-cdr!, caar, cadr, cdar, cddr, caddr, cdddr, caaar, caadr, cadar, cdaar, cdadr, cddar, caaaar, caaadr, caadar, caaddr, cadaar, cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar, cddddr "3.3 External representations" "3.4 Storage model" "6.3.2 Pairs and lists" 2006-09-25 YamaKen <yamaken AT bp.iij4u.or.jp> * procedure.c * continuation.c * eval.c - QA done for call-with-current-continuation and dynamic-wind together with all parts of procedure.c and continuation.c @r3880 except for "64-bit by tests" - [R5RS] Fix improper tail recursion of call-with-values on a corner case - [R5RS] Proper tail recursion conformance of 'eval' has been marked as 'uncertain' Details: - Add various tests to test-continuation.scm, test-dyn-extent.scm and test-tail-rec.scm and complete all required tests I'm aware of - All proper tail recursion conformance (including '=>' clause of 'cond' and 'apply') are tested except for R5RS 'eval' and SRFI-34 'guard'. See the comments of scm_p_eval() and rec-by-eval for further information about 'eval' - Specs have been validated against following R5RS sections: * call-with-current-continuation, dynamic-wind, call-with-values "3.5 Proper tail recursion" "6.4 Control features" * test/ - Some test-*.scm have been renamed as follows. Take care of the renamings to dig into old logs * test-syntax.scm -> test-formal-syntax.scm * test-exp.scm -> test-syntax.scm (R5RS syntaxes) * test-exp.scm -> test-obsolete.scm (obsolete tests) * test-map-2.scm -> test-map.scm 2006-09-20 YamaKen <yamaken AT bp.iij4u.or.jp> * procedure.c - QA done for symbol?, symbol->string, string->symbol and general symbol comparisons @r3873. Rest parts of procedure.c is not validated yet - QA done for procedure? @r3874. Rest parts of procedure.c is not validated yet - QA done for map and for-each @r3875 and @r3876. Rest parts of procedure.c is not validated yet - QA done for values and call-with-values @r3877 except for proper tail-recursion test of call-with-values. Rest parts of procedure.c is not validated yet - [R5RS] Fix improper list acceptance on single-arg map Details: - Add uneven-length lists rejection (as error) on multiple-args map. Although such forms are not allowed by R5RS, causing the error is SigScheme-specific implementation - Add test-symbol.scm, test-misc.scm, test-map-2.scm and complete all required tests I'm aware of - Specs have been validated against following R5RS sections: * symbol?, symbol->string, string->symbol "2. Lexical conventions" "2.1 Identifiers" "4.1.2 Literal expressions" "6.3.3 Symbols" "7.1.1 Lexical structure" * procedure?, map, for-each "6.4 Control features" * values, call-with-values "3.5 Proper tail recursion" "4.1.3 Procedure calls" "6.4 Control features" 2006-09-07 YamaKen <yamaken AT bp.iij4u.or.jp> * procedure.c - QA done for 'not' and boolean? @r3869. Rest parts of procedure.c is not validated yet Details: - Add test-bool.scm and complete all required tests I'm aware of - Specs have been validated against following R5RS sections: * not, boolean? "6.3.1 Booleans" 2006-09-05 YamaKen <yamaken AT bp.iij4u.or.jp> * procedure.c - QA done for eq?, eqv? and equal? @r3868 except for "64-bit by tests" and hygienic macros capability. Other parts of procedure.c is not validated yet Details: - Fix a critical bug of 'scm_type' of storage-compact - Deprecate test-equation.scm since R5RS specification is not reflected well, and test cases are considerably insufficient - Add test-{eq,eqv,equal}.scm and complete all required tests I'm aware of - Specs have been validated against following R5RS sections: * eq?, eqv?, equal? "6.1 Equivalence predicates" "2. Lexical conventions" "2.1 Identifiers" 2006-09-02 YamaKen <yamaken AT bp.iij4u.or.jp> * eval.c - QA done @r3865 and @r3866 except for "64-bit by tests" and hygienic macros capability Details: - Fix a critical bug of 'call' appears on a minor build configuration - Add tests for 'eval' returns multiple values, scheme-report-environment and null-environment to test-eval.scm - Add tests for 'apply' invalid forms, single-argument, multi-aruguments and returns multiple values to test-apply.scm - Specs have been validated against following R5RS sections: * apply "4.1.3 Procedure calls" "6.4 Control features" * eval "4.1.1 Variable references" "4.1.2 Literal expressions" "4.1.3 Procedure calls" "4.1.4 Procedures" "6.4 Control features" (continuation, multiple values) "6.5 Eval" * interaction-environment "6.5 Eval" - Specs have been validated against following R5RS sections, but not conformed yet although tests are written for the future: * scheme-report-environment "6.5 Eval" * null-environment "6.5 Eval" 2006-07-08 YamaKen <yamaken AT bp.iij4u.or.jp> * syntax.c - QA done @r3704 except for "64-bit by tests" and hygienic macros capability and proper tail recursion capability of '=>' form of 'cond' - [R5RS] Fix invalid acceptance of definition form on where neither toplevel nor internal definition is allowed - [R5RS] Fix invalid acceptance of 'begin' that contains definitions and expressions intermixed - [R5RS] Fix invalid acceptance of <body> that contains definitions and expressions intermixed on 'let', 'let*', 'letrec' and function form 'define' - [R5RS] Fix invalid no-expressions <body> acceptance of 'let', 'let*', 'letrec' and function form 'define' - [R5RS] Fix invalid acceptance of binding syntactic keyword as value on 'define', 'let', 'let*', 'letrec' and 'do' - Add optional duplicate variable check to 'let', 'let*', 'letrec' and 'do' (it is not required by R5RS) - [R5RS] Fix broken per-iteration env isolation of 'do' - [R5RS] Fix proper tail recursion incapability of '=>' form of 'cond' - [R5RS] Fix invalid acceptance of cond-like '=>' form of 'case' which is not defined in R5RS - [R5RS] Remove 'delay' and 'force' since they are completely broken Details: - Accept '(begin)' as valid internal and toplevel definition as defined in "7.1.6 Programs and definitions" of R5RS, and reject as expression as defined in "7.1.3 Expressions". This behavior is strictly conforms to R5RS and same as Scheme48 1.3. (i.e. '(begin)' is valid only at where definitions are allowed) - Remove broken internal definition on !SCM_STRICT_DEFINE_PLACEMENT. Since it breaks the R5RS internal definitions semantics, the macro is replaced with SCM_USE_INTERNAL_DEFINITIONS and the feature is made exclusively selectable from only 'completely valid' or 'disabled'. The broken internal definitions have been withdrawn - I found that 'delay' implementation is completely misunderstood and broken. So the implementation of 'delay' and 'force' are rewritten as "not implemented yet" error generator and separated into a placeholder file promise.c - Add test-let.scm, test-lambda.scm, test-begin.scm, test-define-internal.scm, test-do.scm and complete all required tests I'm aware of - Add and fix various tests to test-exp.scm, test-syntax.scm and test-define.scm - Specs have been validated against following R5RS sections: * quote "3.3 External representations" "4.1.2 Literal expressions" "7.1.3 Expressions" * lambda "4.1.4 Procedures" "7.1.3 Expressions" "5.2.2 Internal definitions" "7.1.6 Programs and definitions" * if "4.1.5 Conditionals" "7.1.3 Expressions" * set! "4.1.6 Assignments" "7.1.3 Expressions" * cond, case, and, or "3.5 Proper tail recursion" "4.2.1 Conditionals" "7.1.3 Expressions" * let, named lfet, let*, letrec "4.2.2 Binding constructs" "4.2.4 Iteration" "5.2.2 Internal definitions" "7.1.3 Expressions" "7.1.6 Programs and definitions" * begin "4.2.3 Sequencing" "5.2.2 Internal definitions" "7.1.3 Expressions" "7.1.6 Programs and definitions" * do "4.2.4 Iteration" "7.1.3 Expressions" * define "3.1 Variables; syntactic keywords; and regions" "4.1.1 Variable references" "4.2.3 Sequencing" "4.3 Macros" "5.1 Programs" "5.2 Definitions" "5.2.1 Top level definitions" "5.2.2 Internal definitions" "7.1.1 Lexical structure" "7.1.3 Expressions" "7.1.6 Programs and definitions" 2006-06-25 YamaKen <yamaken AT bp.iij4u.or.jp> * qquote.c - QA done @r3649 except for "64-bit by tests" - Specs have been validated against R5RS "4.2.6 Quasiquotation" and "7.1.4 Quasiquotations" - Fix some bugs including a destructive one - An unquote-splicing behavior is different to some other implementations, but I believe that this implementation is proper. See "unquote-splicing nested" of test-quote.scm 2006-06-24 YamaKen <yamaken AT bp.iij4u.or.jp> * Create this file and define record formats.