~ubuntu-branches/ubuntu/lucid/x11-apps/lucid

« back to all changes in this revision

Viewing changes to xedit/lisp/TODO

  • Committer: Bazaar Package Importer
  • Author(s): Julien Cristau
  • Date: 2008-09-23 00:24:45 UTC
  • mfrom: (1.1.2 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080923002445-mb2rwkif45zz1vlj
Tags: 7.3+4
* Remove xedit from the package, it's unmaintained and broken
  (closes: #321434).
* Remove xedit's conffiles on upgrade.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
$XFree86: xc/programs/xedit/lisp/TODO,v 1.8 2002/11/23 08:26:47 paulo Exp $
2
 
 
3
 
LAST UPDATED:   $Date$
4
 
 
5
 
  Small todo list
6
 
 
7
 
o Change function/macro body to know if a &key or &optional argument was not
8
 
  provided, and initialize to the default value in the function, for
9
 
  interpreted and builtin functions it is better done before the function is
10
 
  called, but for bytecode it is better in the function.
11
 
o Following the previous idea, change function definitions in the format:
12
 
  (defun afun (a &aux b (c (some-code))) ...)
13
 
  to
14
 
  (defun afun (a) (let* ((b (c (some-code)))) ...))
15
 
  This can significatively reduce bytecode size, and also simplify function
16
 
  calls.
17
 
o Optimize text redisplay in Xaw, instead of allocating a copy of the buffer
18
 
  for the paint-list, should use the text in place, and only allocate small
19
 
  buffers when required, i.e. displaying control characters, etc.
20
 
o Add an interface to create new object types dinamically.
21
 
o Add a special string object to simplify and avoid too many copies of
22
 
  portions of the text buffers. This special string should be read-only
23
 
  and not gc-collected.
24
 
o Make the bytecode compiler smarter to detect some constructs like:
25
 
  (builtin-or-bytecode-function-call arg1 arg2 (return))
26
 
  this will not properly restore the internal stacks.
27
 
 
28
 
o When an Init function is present in every file, call LispAddBuiltin from
29
 
  that initialization function.
30
 
o Cleanup the code, make it optional to build some uncommon features (as well
31
 
  as the entire interpreter?). Implement more functions directly in lisp.
32
 
o Finish an "specification" for loadable modules. Write a FFI interface.
33
 
  Without the possibility of using already existing libraries, the interpreter
34
 
  won't be too much useful due to a poor library. It is very desirable to
35
 
  "auto-generate" directly from C header files the interface to the lisp
36
 
  code, and from that, dlload a shared library. In some cases, it is required
37
 
  to link statically with a new interpreter binary, make it easy.
38
 
o Implement a better string type. That should support characters larger than
39
 
  8 bits, and that should allow embeded nuls.
40
 
o Implement a richer set of math functions. This, if properly done can be
41
 
  made a loadable module.
42
 
o Optmize mathimp.c, comparing a double with a bignum should never cause an
43
 
  error. Implement mp?_initsetXXX functions?
44
 
o Finish missing features in read.c, and simplify it.
45
 
o (close) probably should not send a signal when closing a pipe.
46
 
o Implement "real" vectors, they exist to make access to field elements
47
 
  at constant time, implementing vectors as lists may be very slow.
48
 
o Use float and double as floating points formats.
49
 
o Implement support for vectors of "atomic" types. Vectors of floats would
50
 
  be useful for example if a OpenGL binding is done.
51
 
o Implement a multiple precision floating point format. Either a 128 bits
52
 
  (or configurable length?) IEEE 754 like number, or some format using
53
 
  ratios, a epsilon for rouding, rounding modes, exact/inexact flag, a good
54
 
  amount of guard digits, etc.
55
 
o Write more functions and optimization for bignums. Try to make the code
56
 
  as reusable as possible, either by other software or at least by the
57
 
  different number types.
58
 
o Instead of using mathimp.c for a large amount of functions, implement a
59
 
  "generic number" type and implement the calculations directly in the
60
 
  mp library.
61
 
o Add more missing Common Lisp features, like &allow-other-keys for function
62
 
  definitions, the missing structure features, CLOS etc.
63
 
o Fix the Postgresql module, make it compile everywhere.
64
 
o Add support for multi-threaded applications?
65
 
o Make it possible to know if a object has only one reference, this is
66
 
  required to make "inplace" changes of variables. Very useful for things
67
 
  like (incf) and (decf), and also when dealing with bignums.
68
 
o Maybe have a freelist for objects depending on the type. Bignums can be
69
 
  reused, and having some large ones expecting to be freed by the gc can
70
 
  consume a lot of memory.
71
 
o Internationalization. Support ',' in floats? Correctly treat characters
72
 
  for {up,down}-casing.
73
 
o Synch the Xaw text code for supporting tables, text alignment/paragraphs,
74
 
  etc, and add bindings to the interpreter. Add support for incremental
75
 
  changes of those properties, currently it is "read-only".
76
 
o Write some type of "hyperlinks", this is the only feature missing to even
77
 
  allow writting a web browser inside xedit.
78
 
o Write some "demos" (maybe a file manager or a simple mail reader) using the
79
 
  Xt/Xaw bindings (needs modules working in all systems).
80
 
o Remove all calls to the macros GCDisable and GCEnable. This is unsafe
81
 
  and should be removed.