CONTENTS | PREV
18E. TODO/BUG list
By popular demand: This is an extract from my todo/bugs list for E. The real
list is much longer, since I left all the real details/unimportant stuff out.
Don't go and ask why any of these items haven't been done yet; the answer will
generally vary from the the tactical "due to the internal structure of the
compiler fixing this bug is more work than the collective trouble it will ever
cause" to the honest "I'm too lazy: I can't be bothered" :) Don't go and ask
me "when?" either.
Bugs I haven't been able to reproduce:
* compilation problems on 060
* broken Lock in combination with MCX
Bugs still not fixed:
* dereferencing an untyped OBJECT member is not properly interpreted
as "PTR TO CHAR". Easy workaround: Give the member a type.
* debug hunks don't contain directory information for projects
split up over sub directories.
* error reports can sometimes be off by several lines.
* error reports for inline assembly often doesn't work.
* unreferenced check too conservative in some cases.
* doesn't detect two library functions with the same names.
* constant folding optimizer often misbehaves, disallowing
you to do things like `1+SIZEOF o' in constant expressions
or 1+a as list-elements.
* internal linker problem doesn't allow for private methods.
* strings in lists cannot be joined by "+" (optimizer problem).
* StrCopy/MidStr don't fill dest with empty-string if len=0
* methods and procs in one module cannot have the same name
(other than by inheritance).
* Exists() evaluates all regardless.
* SUPER doesn't check wether the superclass actually has such
* recompiling a module that is being used at the same time
by another invocation of EC can give problems.
* fix above bugs :)
* extend CONST expressions with floats etc.
* find a way to split up executables in more hunks
* add symbols for methods
* lots of extensions to the optimizer
* proper 020+ support
* improve error reporting
* class variables
* short-circuit AND / OR
Wild Ideas (aka Big Todo's)
* plug a general back-end onto EC (to allow for code
generation to other cpus (e.g. PPC) or even languages
(e.g. C) or better optimizers etc.)
* extend the language with lambda's / higher order
functions / lazyness etc.
* concurrency system based on Linda
* better debugging / analysis / type inference tools
* full visual language on top of E