Author: yamakenz
Date: Wed Jul 18 09:56:27 2007
New Revision: 4742

Modified:
   sigscheme-trunk/NEWS
   sigscheme-trunk/RELNOTE
   sigscheme-trunk/TODO
   sigscheme-trunk/doc/spec.txt

Log:
* doc/spec.txt
  - Describe the problem about current macro implementation
* TODO
* NEWS
* RELNOTE
  - Update for 0.8.0


Modified: sigscheme-trunk/NEWS
==============================================================================
--- sigscheme-trunk/NEWS        (original)
+++ sigscheme-trunk/NEWS        Wed Jul 18 09:56:27 2007
@@ -3,19 +3,19 @@
 
 * New features
 
-  - R5RS promises (delay and force)
-
-  - SRFI-1 List Library
+  - SRFI-1 List Library (full featured)
 
   - SRFI-55 require-extension
 
   - SRFI-95 Sorting and Merging
 
+  - R5RS promises (delay and force)
+
   - New syntax let-optionals* compatible with Gauche for optional argument
     processing
 
   - %%require-module and scm_require_module(). 'use' and scm_use() have been
-    deprecated and will be removed in SigScheme 0.9
+    deprecated and will be removed in SigScheme 0.9.0
 
   - System-installed libraries written in Scheme are introduced. And to manage
     them, scm_set_system_load_path() and %%system-load-path have been added
@@ -30,8 +30,8 @@
 
 * Specification changes
 
-  - SRFI-75 characters have been turned into R6RS (R5.92RS) characters
-    completely, including configuration names
+  - SRFI-75 characters have been turned into R6RS (R5.92RS) characters,
+    including configuration names
 
   - Make Shift_JIS encoding name (CES) and Unicode CCS names of the codec API
     proper
@@ -55,6 +55,8 @@
   - [R5RS] Fix multiple values inacceptance of call-with-values continuation
     such as (receive (x y) (call/cc (lambda (k) (k 0 1))))
 
+  - [R5RS] Fix error on (integer->char 0) on non-Unicode codecs
+
   - [R6RS] Fix invalid Unicode character acception on integer->char
 
   - Fix unexpected memory exhaustion on negative length on make-string
@@ -68,6 +70,17 @@
 
   - New document multibyte.txt about multibyte character processing has been
     added
+
+  - Code validation for R5RS characters, all R5RS string procedures, R5RS
+    vectors, SRFI-2, SRFI-8 and Multibyte character processing have been done
+    and now can be used for production codes
+
+  - SRFI-1 List Library is partially validated, but expected as usable quality.
+    Though C part is fully validated, the Scheme part imported from the
+    reference implementation of SRFI-1 is not fully validated. See
+    test/test-srfi1-another.scm for validation status. The procedures that not
+    validated only have header comment such as ";; delete-duplicates" in the
+    file.
 
 
 Overview of changes from 0.7.3 to 0.7.4

Modified: sigscheme-trunk/RELNOTE
==============================================================================
--- sigscheme-trunk/RELNOTE     (original)
+++ sigscheme-trunk/RELNOTE     Wed Jul 18 09:56:27 2007
@@ -1,4 +1,4 @@
-SigScheme 0.7.4 Release Note
+SigScheme 0.8.0 Release Note
 ============================
 
 What's SigScheme
@@ -6,6 +6,12 @@
 
 SigScheme is a R5RS Scheme interpreter for embedded use.
 
+It features small footprint (64KB in library form on the 'small' configuration)
+like SIOD and TinyScheme, low memory consumption (2-words per cons cell),
+multibyte characters handling (UTF-8, EUCs and Shift_JIS) and more.
+
+It is mainly developed to replace the Scheme interpreter of uim.
+
   Homepage:
     http://code.google.com/p/sigscheme/
 
@@ -13,32 +19,25 @@
 About This Release
 ------------------
 
-This distribution of SigScheme 0.7.4 is latest stable release of the
-software. And this release has been adopted by uim 1.4.0, the primary
+This distribution of SigScheme 0.8.0 is latest stable release of the
+software. And this release will be adopted by uim 1.5.0, the primary
 application of SigScheme.
 
-As declared in 0.6.1 release, the main goal of 0.7.x series is to acquire
-stability and standards conformance. Though many parts have been validated
-against the standards, reviewed, tested and fixed, following parts are not done
-yet. Please keep in mind that using these features involves standards
-conformity and/or stability problems.
+This release aimed to acquire many useful features such as SRFI-1 (see "What's
+New" section), and to complete code validations for most part of
+SigScheme. Following features that left unvalidated in 0.7.x series have been
+validated and now can be used for production codes.
 
   - R5RS characters
-  - Some string procedures of R5RS
-  - Multibyte character encodings
-  - R5RS Vectors
+  - All string procedures of R5RS
+  - R5RS vectors
   - SRFI-2
   - SRFI-8
+  - Multibyte character processing
 
-And the hygienic macros feature is still likely having a problem. See
-doc/spec.txt for details.
-
-  - R5RS hygienic macros
-
-And finally, these features are completely broken and not usable yet.
-
-  - R5RS promises
-  - SRFI-1
+But R5RS hygienic macros feature is still likely having a reliability problem,
+and also contains architectural inefficiency. See "Macros" subsection of
+doc/spec.txt for details. It is expected to be resolved in 0.9.0.
 
 See the file 'QALog' for further information about the quality assurance state.
 
@@ -52,39 +51,12 @@
 What's New
 ----------
 
-  - New %%prealloc-heaps procedure for memory consumptive applications
-
-
-What's New in 0.7.3
--------------------
-
-  - [CRITICAL] Fix broken libgcroots compilation on SPARC and IA-64 (NIIBE
-    Yutaka)
-
-
-What's New in 0.7.2
--------------------
-
-  - [CRITICAL] Fix broken libgcroots (Etsushi)
-
-  - Fix distribution making procedure
-
-  - Fix '-no-cpp-precomp' warning on gcc
-
-  - Change To: mail address of make-report.sh which does not have size
-    limitation
-
-
-What's New in 0.7.1
--------------------
-
-  - Fix 17 R5RS-conformance bugs and 4 SRFI-conformance bugs
-
-  - Fix 8 critical, 13 major and 12 minor bugs
-
-  - All particular language features and behaviors have become configurable via
-    --enable and --disable options of the configure script, with automated
-    feature dependencies resolution and conflict detection
+  - SRFI-1 List Library (full-featured)
+  - SRFI-55 require-extension
+  - SRFI-95 Sorting and Merging
+  - R5RS promises (delay and force)
+  - let-optionals* for optional argument processing
+  - Character codec handling procedures
 
 See 'NEWS' for the fully detailed changes.
 
@@ -92,7 +64,7 @@
 Notes for Packagers and System Integrators
 ------------------------------------------
 
-  - libgcroots has been developed and bundled in this release. Since it is
+  - libgcroots has been updated and bundled in this release. Since it is
     installed as a separated library independent of libsscm, please create its
     own package, and make SigScheme package depending on it with
     "--with-libgcroots=installed"
@@ -103,12 +75,3 @@
 
   - The options "--enable-debug" and/or "--enable-backtrace" make SigScheme
     quite heavy. Please keep them unspecified for normal library
-
-
-Thanks
-------
-
-Hans-J. Boehm and all authors of Boehm GC for the useful codes.
-
-Tanaka Akira for letting me realize about the GC problem through the
-presentation at Binary 2.0 Conference 2006.

Modified: sigscheme-trunk/TODO
==============================================================================
--- sigscheme-trunk/TODO        (original)
+++ sigscheme-trunk/TODO        Wed Jul 18 09:56:27 2007
@@ -1,5 +1,16 @@
 ==============================================================================
-Requirements and critical bugs:
+High priority tasks:
+
+* (0.9) Efficient macro
+  - Introduce compilation phase (see "Macros" subsection of spec.txt)
+  - Make macro expansion performed on compilation phase
+  - Make runtime syntax sugars interpretation into macro expansions on
+    compilation phase (such as internal definition or implicit lambda on
+    define)
+  - Validate as production quality
+
+* (0.9) Provide a record type
+  - Evaluate SRFI-9 and R6RS records
 
 * grep "FIXME" and fix them
 
@@ -22,16 +33,6 @@
 
 * Introduce dynamic environment for internal use
   - Fix continuation-unsafe current-{input,output}-port handling with it
-  - Replace Scm_current_char_codec handling with it
-
-* Dynamic encoding switching for a conversion between string and char list,
-  based on a SRFI or de facto standard API
-  - Evaluate ces API of Gauche
-  - Consider dynamic environment
-
-* Implement a record type
-  - Evaluate SRFI-9 and SRFI-76
-  - Make a comparison with uim's define-record
 
 * Implement numbers other than integer
   - Define SAL accessors considering SRFI-50 and other implementations
@@ -58,6 +59,8 @@
 
 ==============================================================================
 Properness improvements: (not required for now)
+
+* Update test-r4rs.scm to CVS HEAD of SCM
 
 * Import http://sisc.sourceforge.net/r5rs_pitfall.scm
   - Fix hygienic-macro incapability of module_srfi34.c to catch errors into

Modified: sigscheme-trunk/doc/spec.txt
==============================================================================
--- sigscheme-trunk/doc/spec.txt        (original)
+++ sigscheme-trunk/doc/spec.txt        Wed Jul 18 09:56:27 2007
@@ -55,6 +55,34 @@
 integration into SigScheme is not fully validated yet. It is likely having a
 problem on identifier references.
 
+In addition to the validity problem, there is an architectural inefficiency.
+Since SigScheme had been started as macro-less naive system, it lacks the
+concept 'compilation'. So current SigScheme implementation adopted runtime
+macro expansion. A macro form is kept untransformed in program, and expanded
+immediately before each evaluation. For example, following code causes macro
+expansion on each `map-caddr` call.
+
+.Macro expansion inefficiency
+----------------------------------------------------------------
+(define-syntax compose-internal
+  (syntax-rules ()
+    ((compose-internal f x)     (f x))
+    ((compose-internal f g ...) (f (compose-internal g ...)))))
+
+(define-syntax compose
+  (syntax-rules ()
+    ((compose)         values)
+    ((compose f)       f)
+    ((compose f g ...) (lambda (x) (compose-internal f g ... x)))))
+
+(define map-caddr
+  (lambda (lst)
+    (map (compose car cdr cdr) lst)))
+----------------------------------------------------------------
+
+Since it is considerably inefficient in many cases, keep in mind the expansion
+cost. The inefficiency problem is expected to be resolved in SigScheme 0.9.0.
+
 Numbers
 ~~~~~~~
 

Reply via email to