File: TODO

package info (click to toggle)
sigscheme 0.8.5-4.1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 11,752 kB
  • ctags: 7,396
  • sloc: lisp: 37,498; ansic: 30,976; sh: 10,329; makefile: 746; asm: 333; ruby: 288
file content (109 lines) | stat: -rw-r--r-- 3,867 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
==============================================================================
High priority tasks:

* (0.9) Efficient macro
  - Fix infinite loop on test-srfi1-another.scm
  - 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

* (0.9) Introduce a standard unit testing framework
  - SRFI-64 "A Scheme API for test suites"

* grep "FIXME" and fix them

==============================================================================
Low priority bugs:

* fileport_byte_readyp() does not support a FILE based on a pipe, or opened by
  fdopen(3)

==============================================================================
Extensions: (not required for now)

* Dynamically loadable binary module which allows user-written procedure

* Complete SLIB support
  - Resolve the conflict of 'require' and 'provided?' with SigScheme
  - Make the slib.scm installable
  - Fill some variables with configure (slib.scm.in)

* Make Symbian OS and BREW support working (patches are welcome)

* Implement numbers other than integer
  - Define SAL accessors considering SRFI-50 and other implementations
  - Evaluate R6RS Arithmetic

* Add ISO-2022-JP support to encoding.[hc] and scmport-mbchar.c. It requires
  encoding API fix on int2str() which lacks post-write state update

* Add GB18030 to encoding.c

* Add Big5 to encoding.c

==============================================================================
Performance improvements:

* %%identity-hash, %%string-hash, %%symbol-hash, %%string-ci-hash for SRFI-69

* (not required for now) Introduce SCM_QNULL for (quote ()) to reduce cons cell
  consumption, and support shortcuts for it in read.c and eval.c

* (not required for now) Simplify read.c by table-based tokenizer

* (not required for now) Support string of constant-width char
  - Define SigScheme's own internal multi-CCS code
  - Make UCS2 selectable as canonical internal code

==============================================================================
Properness improvements: (not required for now)

* Import http://sisc.sourceforge.net/r5rs_pitfall.scm
  - Fix hygienic-macro incapability of module_srfi34.c to catch errors into
    a failed result in the 'should-be' macro

* Support R6RS style symbol escaping such as |-sym|

* Reorganize unit test for C
  - Remove GNU sed dependency of test-c/collect.sh.in
  - Separate SigScheme-dependent part and generic part of test-c, and
    generalize the unit testing utils as usable for uim
  - Name 'the testing utils'

==============================================================================
Logical simplifications:

* Remove valuecons to increase simplicity

* Remove the concept 'freecell' from SAL (turn it into ordinary list with
  freecell maker)

* Remove the concept 'ScmCell' from sigscheme.h

* Add SCM_TYPESAFE_MACRO for all I?SAL macros

* (not required for now) Encode argument type information into ScmFuncTypeCode
  to remove ENSURE_*() from each procedure implementation

* (not required for now) Reorganize list (argument) extraction API

* (not required for now) Reorganize encoding and char codec API

==============================================================================
Namings and Cosmetic things:

* Consider renaming about typenames (e.g. ScmObj -> scm_obj)

* Rename STL names (string, list) to another such as str, lst

* Define the coding style for indent(1) and reform *.[ch] by it

* [uim] Rename uim-scm.c to uim-scm-sigscheme.c (after the merger)

==============================================================================