773 lines
31 KiB
Plaintext
773 lines
31 KiB
Plaintext
+---------------------------------------------------------------+
|
|
| TODO for next release |
|
|
+---------------------------------------------------------------+
|
|
|
|
- jasons sc.e crashes with textview.e -> needed recompiled sctext.e,
|
|
put in distr.
|
|
- ignore EXPORT if were not in a MODULE
|
|
- problems:
|
|
|
|
> OBJECT foo
|
|
> bar
|
|
> ENDOBJECT
|
|
>
|
|
> PROC main()
|
|
> DEF x:foo
|
|
> WriteF('\d\n', x.bar.bar)
|
|
> ENDPROC
|
|
|
|
- Facos() / Fsinh() crashes?
|
|
|
|
|
|
+---------------------------------------------------------------+
|
|
| PUBLIC TODO LIST |
|
|
+---------------------------------------------------------------+
|
|
|
|
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
|
|
a method.
|
|
* recompiling a module that is being used at the same time
|
|
by another invocation of EC can give problems.
|
|
|
|
Future Todo's
|
|
* 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
|
|
|
|
|
|
+---------------------------------------------------------------+
|
|
| TODO for maybe some future release ? |
|
|
+---------------------------------------------------------------+
|
|
|
|
|
|
|
|
[unconfirmed bugs / could not reproduce / does it make sense?]
|
|
- doesn't compile large sources on 060
|
|
- lock still doesn't work in some circumstances (v2.1b does work ok, does work
|
|
with snoopdos, doesn't with mcx: register trashing?) [tried with mcx no prob]
|
|
- bug: object x; x; x; ENDOBJECT no all detected
|
|
-> tested all combinations with modules and inheritance, no prob
|
|
- LIBB_DELEXP is meant to be used on lib_flags, not sb_flags, though
|
|
sample.library does it this way and it seems to function ok?
|
|
- the GTMENUITEM_USERDATA(x) macro doesn't work [jolyon]? not true.
|
|
- flushcache flushes all
|
|
- unsigned comparison????: no practical example sofar
|
|
- [2,4,826,0,$1C8E],[2,4,27,0,$2A7E],[9,4,207,0,$802E] on a 030 no hits: which EC?
|
|
- DEF a[; missing "]" found only in next proc!
|
|
- myfunc(a,b,[blah1,BLAH,[foo,[bar,NIL,a]) <error here>
|
|
- in v3.1a: EC INTERNAL ERROR [2,0,-1,1,$0] (please report!) (Started this while an other EC was compiling...)
|
|
- not in exec.m: private functions. (no prob?)
|
|
- supposedly tools/pt.m would not produce a sound on 030, but does on 020 same
|
|
config [tried on my 030 which works]
|
|
|
|
[bug-fixes]
|
|
- a membor 'bla' and a method 'bla()' on the same OBJECT collide.
|
|
- bug: doing obj.f[1] where f is untyped interpreted f as "PTR TO
|
|
SIZEOF obj" instead of "PTR TO CHAR", because type for next deref
|
|
isn't properly set. Fixing it however causess
|
|
imsg.iaddress::gadget.gadgetid to break
|
|
- sourcecode name in debug hunks misses path if compiled in a
|
|
different directory, e.g. '*tools/bla'
|
|
- large mui window def, comma fails in the middle, error at first line.
|
|
- MULU.W A0,D0 (error) gives ERRBYTE of 0
|
|
- library bases are shown as unreferenced if only calls (opened in other module)
|
|
- bug: proc (or libsfuns) with same names from libs aren't detected!
|
|
- bug: RealVal('\0...') = 0
|
|
- since CONST idents aren't resolved until the end of the line in lex,
|
|
RAISE IF gives 'immediate value expected' instead of 'unknown keyword/const'.
|
|
- INCBIN doesn't work in ASM mode !
|
|
- OBJECT testobject;ENDPROC;PROC main();ENDPROC -> gives label expected at "main"
|
|
- StrCopy returns NIL on empty string. check retvals other stringfuns as well.
|
|
- ERRBYTE = 0 als MODULE 'x' \n 'y' (no comma)
|
|
- module by o2m with empty section causes [3,0,-1,1,$0]
|
|
- EOR.W #xx,Dx not automatically translated to EORI
|
|
- (in main:) if in an object in a module there is a "PTR TO x", and the
|
|
module defining x is not included, attempting to dereference to a
|
|
member in x gives "illegal use of/reference to object", whereas
|
|
"x undeclared" would be more helpful. (while loading EC converts
|
|
"PTR TO x" to "LONG" if "x" can't be found).
|
|
-> have a typed object member in a module remember type even if obj is not available.
|
|
- a local in a proc in a mod is not shown as unreferenced
|
|
- unknown function only shown after (...) ?
|
|
- obj::class.method() ignores ::class part!
|
|
- 1*SIZEOF LONG werkt niet want ASM_GRABVALUE kent geen SIZEOF LONG
|
|
- macro prep kan #define DEBUG -> etc niet, want comment stopt bij 0?
|
|
- 2x zelfde label naam -> geen error! (x: na x: of x())
|
|
- een module met alleen labels en inline asm geeft scope errors
|
|
- private classes in een module worden NIET geexporteerd,
|
|
dus krijgen ook geen geinit delegate obeject in main!!
|
|
temp solution: compiler forces export
|
|
- I can declare instance var "x" even if already in super
|
|
(and access both via different pointers!)
|
|
- strings in list cannot have "+"
|
|
- MOVEQ doesn't accept -128
|
|
- StrCopy/MidStr don't fill dest with empty-string if len=0
|
|
- tools/vector.m saved geen regs
|
|
- can't have methods with the same name without inheritance.
|
|
methods and procs in one module cannot have same name.
|
|
- flushing: what if .m's get flushed currently used by EC?
|
|
- SUPER doesn't check if super has a method there
|
|
-> could pass a maxoffset to expcallmethod
|
|
- Exists() evaluates all regardless
|
|
|
|
|
|
[todo]
|
|
- "-D" like switch for defines
|
|
- floats in CONSTs etc?
|
|
- see etext/truelambda.txt!
|
|
- one hunk
|
|
- lowercase sourcename
|
|
- () in constexp (and maybe other things)
|
|
- %bin for binary nums
|
|
- a read_e_module(): jason/gregor/vincenzo and others
|
|
- "LINE" debug of modules -> "L" thus unusable with enforcer!
|
|
- some space in library node for magic values?
|
|
GoldED (V3) syntax-parser 'magicid' ("SCAN") at offset $24 in libbase(a6) ($22=exec base size, +word pad)
|
|
-> could easily preserve $22 to $32 or so for own data... how to give A6 to
|
|
main() so that magic can be poked there?
|
|
- symbols for methods?
|
|
- \num for strings?
|
|
- "::" on anything? -> on typedecls as short for ":PTR TO "
|
|
- for libs: stack alloc [] or somesuch. warning for [] in opt library
|
|
maybe a NEW equivalent for existing mem (and stackmem?)
|
|
- linenum by var used as function warning?
|
|
- put some forbids in modulecache access.
|
|
- faq: more interesting questions (how to start on own compilers etc.)
|
|
|
|
[code-optis]
|
|
- OPTI: lea 4..8(A7),A7 --> ADDQ
|
|
- OPTI: CMP.L #1,D0 --> MOVEQ #1,D1; CMP.L D1,D0
|
|
- OPTI: recognise a:=a+<exp>
|
|
- OPTI: ELSEIF doesn't optimize EXTs away
|
|
- OPYI: LISTs should make use of EXPEA
|
|
- OPTI: get rid of LINK iff no args + only REG locals
|
|
- OPTI: optimize NEW [1,2,3] code with EXPEA
|
|
|
|
[020/030/040/881]
|
|
- 680x0 code gen.
|
|
- jsr --> bsr.l (no relochunks needed!)
|
|
- array/record access etc. with ([base,a5],d2*4,1) etc. (FAAST!!)
|
|
- EXTL etc. + see how other 020 modi can be applied
|
|
- 020/881 asm
|
|
|
|
[unstablenesses]
|
|
- [..] allows for private CHAR fields to be cleared,
|
|
NEW [..] allows all private fields.
|
|
prob = CHAR is equal to align byte
|
|
- arrange for double declarations in idents from module etc.
|
|
- check more number of args etc. where main->b->c, c is
|
|
changed and recompiled, but b is just linked.
|
|
- OPTIBUG: OPTIIF makes too many assumptions about code
|
|
- we might need a token-look-back-stack or similar for lex
|
|
|
|
[module-system]
|
|
- o2m: maybe do something with C in .library-link mode.
|
|
- o2m: "Raise" en "dosbase" als XREF
|
|
- checksums on modules
|
|
|
|
[errors]
|
|
- selected multiple errormessages for most occuring errors
|
|
(lex, for starters) with per-case specific recovery code (+ switch)
|
|
- catch errors in writemod: otherwise readlock
|
|
Locks on modules when error from moduleload
|
|
- calc Levenstein distance for idents? unknown=Writef, suggest: WriteF
|
|
- problems with error-reconstruction:
|
|
- assembly not properly supported
|
|
- stat;stat wrong spot error
|
|
- problems if "->ENDPROC" last line
|
|
- bla,bla <no_comma> ->comment <lf> <err_spot> bla,bla
|
|
- "....:REG",10,"<here>whatever"
|
|
- meer foutmeldingen, syntax error opsplitsen
|
|
- foutmeldingen in andere talen (frans/duits/italiaans)
|
|
(locale.library??)
|
|
|
|
[EC]
|
|
- resident check?
|
|
- SHOWBUF option also lines/minute etc.
|
|
|
|
[compiler-organisation-OPTI]
|
|
- raise-tab linked maken
|
|
- enlarge hash tables from 211 to near 1024
|
|
- change all sorts IF-THEN situations into jump-tables
|
|
- OPTI: hash bij first search members tijdens lex?
|
|
- OPTI: E-system functions ge-hashed
|
|
- OPTI: intui/exec/dos/gfx functions ge-hashed
|
|
|
|
[code-generation]
|
|
- chip/data hunk stuff? INCBIN x TO CHIP/DATA -> how to put in var?
|
|
more code hunks?
|
|
- Jan Schulz zn SELECT idee
|
|
- better implementation of [1-x] etc.
|
|
- lists have to be able to get longer then a few hundred entries!
|
|
prob: runtime stack (just a little).
|
|
better code gen altogether?
|
|
- LANGUAGE TEST SUITE for code-gen testing
|
|
- write disassembler for E exe's to some interim language.
|
|
|
|
[inline-asm]
|
|
- asm instr + LONG use of reloc possibilties
|
|
- MOVE.L .member:obj(A0),D0
|
|
|
|
[run-time-system]
|
|
- if >37 then conout AUTO/WAIT/CLOSE
|
|
|
|
[oo-language-features]
|
|
- method hiding
|
|
- x <=> self.x ??
|
|
- constructor without need for pointer
|
|
allow NEW [..]:x.constr(), since '..' inits only public fields
|
|
- SHARED (class variables) as "Side Effect Functions"
|
|
- private methods
|
|
- PROBLEM: auto-destructors <=> exceptions
|
|
for now: ONLY DYNAMIC objects from classes.
|
|
sol: linked list on the stack, upon raise etc. call destructors
|
|
below return stackpoint. data=(next,objptr),depth=stackptr,
|
|
destructor at fixed offset.
|
|
[END (do it yourself),normal ENDPROC,Raise(),CleanUp()]
|
|
|
|
[language features]
|
|
- E component project doen? (weinig werk voor mij)
|
|
- tagged args doenbaar? (helpt niet erg voor easygui) tagged objects+defaults dan mischien?
|
|
- FastString() etc., -> table in docs
|
|
- more constexps (enum/select_of)
|
|
- richer constexps (and/shl/mod)
|
|
- let "::" work on anything, so you can do gfxbase::gfxbase.defaultfont
|
|
:: on any exp (only lhs) func()::y.x
|
|
- macros should allow for macro()
|
|
-> module format has nargs=0 as macro, not macro()
|
|
- case insensitive OstrCmp() (how localisation?)
|
|
-> better: convert all stuff to one case anyway, or use utility.library
|
|
- EXIT in LOOP and REPEAT
|
|
- +:= for self.x:=self.x+1 cases
|
|
- ASSERT / DEBUG..ENDDEBUG
|
|
- _vector_ calc on lists?: MAP x,y,z IN x:=fun(y)+z+a*10
|
|
- Linda tuples + persistance (combined with Linda / as a class to
|
|
inherit from / special language feature ??)
|
|
- RENAME statement? could work with almost all types of idents.
|
|
- LOOP as short form
|
|
- IF a AND THEN b ..., IF a OR ELSE b ...
|
|
BUT AND/OR <=> major probs OPTIIF
|
|
x BUT OR y = IF x THEN x ELSE y = r:=x; IF r=0 THEN r:=y
|
|
x BUT AND y = IF x THEN y ELSE x = r:=x; IF r THEN r:=y
|
|
- UNIFICATION:
|
|
- strings: _pattern_matching_ REGEXPs, and string binding
|
|
- ranges and comparisons: a <=> [1 TO 10,<5] (watch <5 with CONS)
|
|
- UNIFY more than one exp with list of patterns (a la SELECT)
|
|
- ENDSELECT <var> (beter als ListItem hack)
|
|
- NOT unary operator (mischien ook "-")
|
|
- more useful quoted expression functions
|
|
- [<constexp>]:ARRAY
|
|
- const exps pre-calc uitbreiden met ">" "AND" etc.
|
|
|
|
[docs]
|
|
- extend the FAQ! be even clearer about pointers? -> hints & pitfalls for beginners
|
|
- an INDEX!
|
|
- [chapter on optimizing, more on (data)types
|
|
- design_of_e, good_programming_style, debugging etc.
|
|
|
|
[dist]
|
|
- UTIL: fd2module
|
|
- Lex equivalent for E
|
|
- large set of utils in E, a la diff/grep
|
|
- p2m en Iconvert update with options:
|
|
- examples: keep_prefixes egs_window etc.
|
|
|
|
[modules]
|
|
- serial.device!!
|
|
- also very simple things, like classes for intuition etc. -> as many HQ mods as possible!
|
|
- SEE: container classes
|
|
- task object ofzo
|
|
functions for tasks. (see E source) +other amiga.lib
|
|
geta4() routine etc.
|
|
- common Lex() routine.
|
|
lex+pars
|
|
- play samples, allocating channels, playsample() audiodevice support
|
|
- garbage collecting string-lib
|
|
- String matching (regexps) Parse() en Match() routines
|
|
- bignums.m: lijst [] of LONGs makes up an integer of any size
|
|
use ADDX. how opti for short ints?
|
|
- bobs, sprites
|
|
- fast mem-copy + string shifting [b], fastinsert/delete
|
|
- all sorts of Rexx string parsing stuff
|
|
- OohNo! module
|
|
- 24bit module
|
|
- harwarebang module :-)
|
|
- structure:
|
|
emodules:tools/ -> general tools supplied with E
|
|
emodules:class/ -> same, but now as class
|
|
emodules:other/ -> tools not standard with E, 3rd party stuff
|
|
^^^nobody listens to that...
|
|
|
|
|
|
+---------------------------------------------------------------+
|
|
| DONE !!!! |
|
|
+---------------------------------------------------------------+
|
|
|
|
[see other texts for pre-v3.0a stuff]
|
|
[sofar EC627 (=3.0a)]
|
|
|
|
+ odd-size created with NEWM macro -> internal errors on 68000
|
|
+ ODEL field not properly set in all cases of NEWMETHODS
|
|
caused delegates not to be constructed -> method probs!
|
|
++ keep track of PTR TO object idents from modules, and find
|
|
objects after lex. (not found = no action)
|
|
+ modules: 4 bytes of code [mathexit generated RTS]
|
|
+ defargs of method not installed correctly after moduleload
|
|
+ double-decl test on method tests for bit that wasn't set yet
|
|
thus: not possible to redefine method for subclass!
|
|
|
|
[EC631;v3.0b, released as such (patch)]
|
|
|
|
[EC632;v3.0c]
|
|
+++ debugger! DEBUG/S option also switches on LINEDEBUG/S
|
|
+ adds NOPs and EVAR hunks.
|
|
++ SUPER method calls possible! notes: [calls from there
|
|
not super, super-calc is static]
|
|
[EC639;c3.0c]
|
|
|
|
[EC640;v3.0d]
|
|
+ enforcer hit in linker fixed (strcmp)
|
|
++ BIGBUG: BSR GLOBJUMP
|
|
in initcode didn't work with modules-total >32k!!!!!!!!!
|
|
+ code-buf estimate bigger ivm modules in small main
|
|
now starts at 100k ivp 50k, and ReadArgs allows ADDBUFs
|
|
1..1000 (each *100k add, i.e. max 100meg exes)
|
|
+ method_arg_stacklea bug: code for SUPER trashed reg
|
|
+ bug: String() would trash D3
|
|
+ bug: error report within OBJECT always on 1st line
|
|
+ modules with only constdefs etc. would still save debughunk
|
|
+ compiler would accept things like PROC pippo(a,b,)
|
|
+ method def of object in other module!!! now illegal.
|
|
+ BUG: privateness would continue in next object decl
|
|
+ AND.L Dx,regvar (and similar constructions, such as with ADD)
|
|
assembles as AND.L Dn,ea instead of AND.L ea,Dn -> ILLEGAL!!!
|
|
+ CMP.B A3,D0 (and other An <=> .B) -> ILLEGAL!
|
|
+ temp export force on accessed classes.
|
|
[EC655;v3.0d]
|
|
|
|
[v3.0e released as patch]
|
|
|
|
[v3.0f]
|
|
++++ newer EDBG!
|
|
+++ Macro preprocessor and conditional compilation!
|
|
+++ enhanced EasyGUI
|
|
++ a FAQ!!!!
|
|
+ doc
|
|
* .guide niet duidelijk genoeg
|
|
* error doc: too size exp also strings
|
|
* Organise, optimise... It's organize and optimize!
|
|
* ERROR: illegal use of/reference to object LINE 66: NEW raum[MAX_RAEUME]
|
|
* prob: bij module main->a->b, add method in b without recomp a: crash.
|
|
* In the E.doc it still says "use <another_function>".
|
|
* syntax errors in <|> syntax!!
|
|
* no mention of *2 *4 /2 /4 getting optimized
|
|
* in 4K: automatically at the end of the program, or by hand with ___Dispose(p)___
|
|
* Fexp(y) gives e^y, not y^e, Fpow(y,z) gives z^y, instead of y^z
|
|
* explain SUPER
|
|
* docs: better con-destructor explanation
|
|
* remarks in letter Martin F. Combs
|
|
* how to report bugs
|
|
* no language suggestions please
|
|
* reg. sites
|
|
* refs naar ML,EPD etc. -> in FAQ
|
|
* anti-serge hamm. message
|
|
- dist: fonts, nieuwe aprof
|
|
- fix errors in stack
|
|
- BUG: method with equivalent name inobject wouldn't work (left,name...)
|
|
- BUG: nested method calls disturb self at call site
|
|
- closing brackets would continue until decl of next proc with stange error,
|
|
now "missing )" at endproc
|
|
- demoversion limit to 8k
|
|
- finished macroprep + save macros. tested with BGUI/MUI
|
|
- lets fix it on "FastDisposeList()" + LONG align opti for NEW [1,2,3]
|
|
- unification bug in LISP-lists <>
|
|
- RealF(s,-3.14159,0) produces '-', RealVal() returns bagger as readlen?? (68000?)
|
|
RealF(s,12345.67,4) produces '1234.6699'??
|
|
more than one complaint about RealF on 68000
|
|
FIXED: all non-regsave 68881 vs. emulation
|
|
- flushcache flushes everything
|
|
- E-build executes actions in reverse order! :-) -> jasons version in dist
|
|
- docs: linedebug buiten procs
|
|
- docs: EXPORT gebruik met methods? currently not poss., EXPORT voor nonsense
|
|
- smod uses proper commandline arg (for completion)
|
|
- dist: nieuwe modules, sources etc.
|
|
- devices/serial.m termarray member were 0,1
|
|
- In inputevent fehlen ie_x, ie_y und ie_addr. Warum? -> in C it's a union
|
|
- BUG: SUPER doesn't work as exp
|
|
- list consts will accept no negative floating point
|
|
- SMOD doet foute arg-idents met nummers + defargs
|
|
- PROC ...IS obj.unknown; PROC <HERE> ...
|
|
Without following pro: internal [3,3,-1,0,$750E]
|
|
.unknown had a continue_on_next_line because of .method()
|
|
- docs: explain all new features
|
|
- docs: nieuwe errors
|
|
- finish easygui -> in DIST!
|
|
- finish EDBG
|
|
* weird bugs: doesn't find vars in allx.e
|
|
-> in DIST!
|
|
|
|
[EC666, v3.1a, released as such]
|
|
|
|
[EC667, v3.1b]
|
|
- BUG: .L in some instructions needs to be rejected, f.e. MULU.L #3,D1 = bagger
|
|
(done for mulu/muls/divu/divs)
|
|
- BUG: labels not in symhunk
|
|
- BUG: ASR.B #1,(A0) word toegestaan (alleen ASR.W geldig hier)
|
|
- BUG: Bounds(-1,0,255) -> 255
|
|
- BUG: macros of other module are saved AGAIN in current module
|
|
- BUG: 1/0 causes internal error
|
|
- stringf/textf made use of task-stack, now e-allocated-stack (like writef does)
|
|
- various emodules with problems, but fixed in v40 (datatypes/datatypesclass.m)
|
|
- v40 std modules in EC
|
|
- BUG: voegde linedebug toe voor elk statement, maar alloc alleen voor elke
|
|
sourceregel (nu alleen linedebug voor stats zonder ";" ervoor)
|
|
- forth.e closes console twice (still!)
|
|
- HUGEBUG: exp*globvar in module not compiled ok: not offset-2
|
|
now also operand_size in modules >= v10 (makes incompat!)
|
|
- bug: .B etc. at end of stat didn't work
|
|
- globals in modules used in inline asm were not exported/offsets adjusted
|
|
- incbin does any size no prob!?
|
|
- a-- where a:PTR TO o where SIZEOF o>8 translated into ADDI ipv SUBI
|
|
- ignorecache werkt niet: trashes own cookie. by load module.
|
|
- macros don't allow for ";"
|
|
-> disabled altogether ivm problems in eol-processing otherwise
|
|
- show expanded text within macros -> only for lex-phase
|
|
[EC676, v3.1b, to_jason]
|
|
|
|
[EC677, v3.1c]
|
|
- fixed bug in easygui: used gl instead of glist
|
|
- another bug in easygui: listv put userdata in all parts
|
|
++ NILCHECK/S, build in NIL checker for deref! raises "NIL" for "." and "[]"
|
|
- bigbug: (found in niklas' sources): when adding methods to an object that
|
|
inherits from a method-less object, delegates would start at 0 (not 4),
|
|
thereby trashing the object_dynamic_length and causing END trouble.
|
|
- self.s <=> <x|y> gives syntax error
|
|
- LEA -99(A2,D0.W),A2 becomes LEA -$0063(A2,A7.L),A2 ??? -xx(Ax,Dx.w)
|
|
- NEW en END moeten ook op subobjs werken.
|
|
- edbg: show current line one too high in t/test2.e -> file
|
|
[EC685, v3.1c, to_jason?,pnolan]
|
|
|
|
[v3.1d]
|
|
- EasyGUI: fixed newlook menus
|
|
- EasyGUI: activates first stringgad
|
|
- EDBG: doesn't work with SYM hunks
|
|
- EDBG: cursor keys: down = step over, right = step in
|
|
- EDBG: output to debugger window?
|
|
- EDBG: source menu option improved
|
|
- EDBG: menus in strange colour
|
|
- EDBG: scroller prob
|
|
- EDBG: doesn't jump to correct spot if outta sight.
|
|
- EDBG: doesn't display tabs: tempfix: convert to space
|
|
- EDBG: better graphics for toolbar & about
|
|
- EDBG: breakpoints on sourcelines
|
|
- EDBG: breakpoints on memory/vars
|
|
- EDBG: run upto breakpoint
|
|
- EDBG: E expression parser for all value/addr inputs
|
|
- EDBG: Raise()
|
|
- EDBG: shows vars own proc + globals only (scoped!)
|
|
- EDBG: watched variables window
|
|
[v3.1d, to various persons]
|
|
|
|
[v3.1e,EC688]
|
|
- .library output
|
|
- integrated jasons newest modules, etc.
|
|
- new easygui integrated
|
|
- new EE
|
|
- easygui leaves 160 bytes if exception from callback: missed a ReplyMsg()
|
|
- forbid when changing task-a4 table!
|
|
- #else mentioned in some error messy
|
|
- sc.m etc.
|
|
- BUG: /2 added 1 also for >0
|
|
- unknown ident of functionname still at the end.
|
|
- doc:
|
|
+ clear about where globals need to be defined
|
|
+ too many use flushcache
|
|
+ SELECT_OF takes n-1 as max, not n (DEFAULT)
|
|
+ labels ook exportable->doc
|
|
+ (wrong!): ' ARRAYs are declared by specifying their lenght (in bytes) '
|
|
+ explain that error message can point as much as 2 tokens beyond real cause of error.
|
|
+ FastDipose#? accepts NIL
|
|
+ macros don't do ;
|
|
+ libdoc: eg, and what happens to stdout etc.
|
|
+ FAQ uitbreiden
|
|
|
|
[v3.2a, EC707, released as such]
|
|
|
|
[v3.2b,EC708]
|
|
- hung or gave wrong error on procident.member [jaco]
|
|
- prepbug: rkrmsrc/intuition/windows/lines.e. internal [2,3,232,0,$698] on 68000
|
|
- It has problems using control characters or extended character set characters in #defines
|
|
- extra safeties for preprocessor (i.e. tries to expand interim buf after each
|
|
macro expansion).
|
|
- 'W\0Save Statistics...' exists in the compiled binary as 'W' (under 3.1)
|
|
[v3.2b,EC712,released to almathera]
|
|
|
|
- eg: fixed an enforcer hit
|
|
v3.2a all.e with EC DEBUG byte reads (-1,0) on amosaic & font, from rom(-1) too. 569A(0) (= StrLen)
|
|
EDBG v3.2a byte-reads from addr. 0 hunk offset E6FE (often when an easygui opens/closes?) (= StrLen)
|
|
- eg: cleangui() -> $DEADBEEF mem already freed: used window after closing!
|
|
- eg: added settext() and setnum()
|
|
- eg: fixed NUM gadget
|
|
- eg: advice not to give to high values for proportional values because of high fonts (fheight*val)
|
|
- eg: topaz function
|
|
- eg: easygui renderen soms in bottom border: check wborbot! check with sysihack
|
|
- eg: PLUGINs!!!
|
|
- eg: there might still be some string-fields causing hits at -1 in an OS call?
|
|
- edbg: about & toolbar do not respect bigger borders
|
|
- edbg: console (+tool+about?) don't work on PUBSCREEN
|
|
- edbg: sourcenaam in title
|
|
- edbg: check doubles in var view
|
|
- edbg: save & loads prefs + window sizes + watched vars
|
|
- edbg: arexx-port & script launching
|
|
- bug: problem with Lock() in EC: 2 instead of -2 as mode
|
|
- bug: $FFFF as default arg becomes $FFFF0000
|
|
- bug: macro errors printed incorrectly: fixed with a kludge
|
|
- bug: /* */ in macros didn't work (e:t/macc.e)
|
|
- bug: OBJECT x OF x not detected and causes major guru in exe
|
|
- bug: doesn't accept a:REG in 0(A3,a) or 0(A3,a.L) or lab(PC,a) etc.
|
|
- bug: AND.L D0, tst where tst:REG screws up (changes dest-src, also for OR/EOR etc.)
|
|
[v3.2e, EC716, released as small update]
|
|
|
|
[EC719]
|
|
- faq: these features will not be implemented (so don't ask for them):
|
|
* assembly source output by the compiler
|
|
* .o
|
|
* inits for global vars in modules
|
|
* unaligned objectmembers
|
|
* bitfields
|
|
* not opening intuition.library etc, in startup-code
|
|
* automatically include _all_ modules used by a module
|
|
* `member' ipv `self.member'
|
|
* DEFs halfway PROCs
|
|
* disassembly mixed mode for EDBG
|
|
* sourcecode include
|
|
* unsigned INT/LONG or signed CHAR
|
|
* ";" in macros
|
|
* multiple error messages
|
|
* x.y in assignment expression, {}
|
|
* inline code for Shl() etc.
|
|
- doc changes:
|
|
* mark all obsolete features in the docs as such (CleanUp() etc.)
|
|
* :: works only on object types, <>cast
|
|
* New and NEW behaviour in libraries
|
|
* you can't have zero argument macros
|
|
* update registration sites (sweden + germany)
|
|
* Link() doesn't work on NEW [...] etc.
|
|
* if you want to use vars from other modules, you have to EXPORT DEF them too
|
|
* make EXTREMELY clear the error-indication is always after the error!
|
|
* be more specific about module-loading behaviour (type set to LONG if
|
|
object is not defined _before_ this object).
|
|
* warning for POLAND
|
|
* E_bonk.e: make clearer that p.i++ works on p, not i
|
|
* chequepoint stuff
|
|
* tell crackers about double protection
|
|
* .end() is not called automatically
|
|
* In de docs staat het eerste deel van 12A aan het einde van 11C.
|
|
* backslashes dubbel doen in guide
|
|
* ^ is NOT equivalent to []
|
|
* OO alleen met NEW duidelijK?
|
|
* make clear librarybases are provided by the modules
|
|
* no lectures on asm, opti in compiler is hard
|
|
* modules circularity?
|
|
* OO objs with NEW only
|
|
* edbg: raise exceptions for current handler only 1 after DEF
|
|
- tell regs for libraries! myfun(A0), but slower than movem.
|
|
- in methods with a handler and register allocation on, "self" could
|
|
be allocated to a register where it shouldn't, and cause trashed
|
|
variables elsewhere
|
|
- "EXPORT PROC array( w, h, m=$10000) OF array" with OBJECT array
|
|
-> dirty backwards parsing, now made more specific
|
|
- compiles no errors, crashes on run: PROC main();DEF x;WriteF('\d\n',x.4);ENDPROC
|
|
-> two bugs: floatval would sometimes not lex as float (reg-prob), and
|
|
not check for preceding operator in expression.
|
|
[EC722]
|
|
|
|
[EC723]
|
|
- p2m maakt bagger van tweede char als libname bv `E_..' is.
|
|
- pp: #define X Unknown; X results in LINE 22: X ;WITH: Unknown;MACRO: nknown
|
|
- twice the same label: doesn't give error
|
|
- FOR x:=0 TO 3 DO FOR y:=0 TO 3; ...; ENDFOR
|
|
- in the compile part, methods could be called before the corresponding
|
|
OBJECT was processed (by calling it from an instance variable in a method
|
|
of an object defined higherup), which caused an intern102, now it is
|
|
an error71.
|
|
- double declaration objecthead geen probleem
|
|
- double declaration objectmember geen probleem
|
|
also solves nokielski's bug (cd2:src/betas/todebug/pack.lha)
|
|
- doc: both /* */ and -> are included in macros, -> gives problems
|
|
[EC723]
|
|
|
|
[EC724]
|
|
- bigbug: cache problem clear: what if compiled module (that needs to
|
|
be flushed) was accessed from a less deep dir...
|
|
paths in cache need to be ABSOLUTE
|
|
NameFromFH/NameFromLock/MatchFirst: all 2.04, all need file access
|
|
-> solved: flushcache() compares without path.
|
|
- IEEEbug
|
|
* patch is for 040/fpu only?
|
|
* internal errors on 060?!??
|
|
* make workaround for 3.1 floatproblem!!! [2,11,36,0,$0]
|
|
* 030/no881/3.1/mmu
|
|
PROC main()
|
|
DEF x
|
|
x:=2.1
|
|
ENDPROC
|
|
* compiling with Blizzard 060 -> "internal Errors": Apollo 1240:
|
|
[2,11,38,0,$0] DEF x=0.0, exp=0.0, pos, pos2,
|
|
* doc: FAQ: probs with floats in 3.1:
|
|
PatchMathSB10.lha util/boot 4K 7+Patch MathIEEESingBas/SPDiv,SPMul
|
|
-> EC warns + messys in docs.
|
|
- in Iconvert for PhxAss:
|
|
1) in makeasmfile(), just before the WriteF(' INCLUDE...), I added this line:
|
|
WriteF(' TTL ""\n')
|
|
(this line ensure that the chunk won't get any name, like A68K does).
|
|
2) The new command line for invokea68k() is:
|
|
IF Execute('SmallPhxAss I INCLUDES: FROM ram:iconvert.s noexe opt 0',NIL,stdout)=FALSE THEN error(ER_INVOKE)
|
|
-> added option "-p" for phxass
|
|
[v3.2g, EC724, to jason]
|
|
|
|
[v3.2h, EC725]
|
|
- device with library feature: not possible without different startup-code, or
|
|
atleast various registers made available to main() and close() -> doc
|
|
- doc:
|
|
* E source should contain atleast one function
|
|
* e reg is personal
|
|
* #define CharIsX(x) (x="x") substitutes the "x" too.
|
|
handy, i.e.: #define debug(x) (WriteF('now evaluating: x\n') BUT x)
|
|
* main() in lib works under Forbid() of OpenLibrary()
|
|
* homepage!
|
|
* FAQ: more on resources (available translations)
|
|
- eg: extra arg to plugin methods for font
|
|
- sw: PGA_TOTAL wasn't updated (refresh_scrollbars() (to allow max to change))
|
|
-> needed in EDBG for varwin
|
|
- edbg: var view scroller altijd 100%
|
|
- edbg: a search (for large sources)
|
|
- edbg: zwarte balk in onderste regel, dan window met een regel kleiner maken: rendering in border
|
|
- doc
|
|
* shr is ASR
|
|
* writef/printf string limit.
|
|
* address
|
|
- edbg: fixed enforcer hit in deletetoolbar
|
|
- fixed obj/member double decl test enfhit
|
|
- new tools, e.g. Iconvert, p2m, doc2guide? etc.
|
|
- explorer?
|
|
- include jasons rkrm2
|
|
[v3.2i, EC725, for Amy Resource]
|
|
|
|
- [easygui: over to jason]
|
|
[unreproduced bugs]
|
|
* eg: PALETTE: If the relx Argument is smaller than 3 it has got problems (Recoverble alert, hang-up)
|
|
* eg: double menu-selections do not trigger actions multiple times
|
|
[features]
|
|
* eg: maybe supply a host of handy plugins as standard (for images / image gadgets / boopsi gadgets etc.)
|
|
* eg: support GTLV_SHOWSELECTED (what were the problems?): really wanted
|
|
* eg: allow cut of window: smaller than minimum and solves small screens too?! panes? pages?
|
|
* eg: Other IDCMPs and messages (i.e. rawkey!)
|
|
* eg: the MX gadget does not use the "abovetext" field
|
|
* eg: APPWINDOW?
|
|
* eg: maybe builtin topaz fallback??
|
|
* eg: block input on other easygui's
|
|
prob: - intuition/blockinput.e doesn't stop resize and has ugly waitptr
|
|
- IDCMP_SIZEVERIFY not appropriate for long periods
|
|
better: if >1 window, process them all!
|
|
* eg: size num voor slider berekenen.
|
|
* eg: text in screenmode can't compute max, same for sqrt in raymond
|
|
* eg: bug: midsize align is mixed when one gadget has text on the left and other
|
|
on the right
|
|
- [edbg->to->jason]
|
|
* allow input hunkoffset->source in EDBG (cooperation with enforcer)
|
|
* allow obj editing with explorer
|
|
* double clicking on scroller gives breakpoint
|
|
* (see uncommented stuff (=new) in begl2) es wird nur kein SELECT <zahl> OF <variable> weiter verfolgt
|
|
* with many modules, source window tiling gets too small
|
|
* allow to break program while running? (non trivial)
|
|
* no builtin global variables
|
|
* show changed registers (and vars?)
|
|
* really describe all features in doc
|
|
[edbg, less urgent]
|
|
* skip statement/jump?
|
|
* object browser!
|
|
* repeat step in/over "exp" times (so in a for-loop of 3 lines, step over a-1*3)
|
|
* record step as rexx script
|
|
* do something about debug-interactivity or rexx-scripts
|
|
* more gadgets in toolbar
|
|
* enable more windows to hang around instead of requester-like
|
|
* add all builtin vars. what about other librarybases? -> redefine
|
|
* make memory and other stuff modifiable
|
|
* optimize refresh of some windows
|
|
|
|
[EC726, v3.2k]
|
|
- bug: doing obj.f[1] where f is untyped interpreted f as "PTR TO
|
|
SIZEOF obj" instead of "PTR TO CHAR", because type for next deref
|
|
wasn't properly set.
|
|
- bug: module-flush flushed only first module that matches. now guaranteed if
|
|
you compile x.m from anywhere, all modules called x.m (any path) will be flushed.
|
|
(also when you create a .m with LIBRARY)
|
|
- enum now works with negative numbers (ENUM AA=-1,BB,CC)
|
|
- if the source for a LIBRARY contains a proc close(), it will be
|
|
called when the user of the library calls CloseLibrary() (i.e. it is
|
|
the counterpart to main()). [close still mentioned as unref]
|
|
- OPT RTD flawed in the context of hooks, call backs etc -> disabled
|
|
- include other float ops ArcSin, ArcCos and ArcTan etc.
|
|
- "self" now has own (code 5) entry in debughunk for EDBG -> jason?
|
|
- bug fix of obj.f[1] undone :( now part of known bugs
|
|
- dist: include ieee patch? -> setpatch v43.6
|
|
- dist: texturemapper (v7)
|
|
- dist: nieuwe sw
|
|
- docs:
|
|
* validness of other registration sites
|
|
* fabio's new ML
|
|
* better email warning
|
|
* add to version history
|
|
* new float functions
|
|
* new features etc.
|
|
* make a known bugs list and a todo list (without any promises!)
|
|
- dist:
|
|
* fabio's objects
|
|
* gregors OOstuff, new build
|
|
* edbg: do more tests: doesn't find vars correctly. test self
|
|
* jason's EasyGUI, EDBG etc.
|
|
[-> out as beta to jason/gregor/fabio]
|
|
- incorporated some final tiny changes
|
|
- ebug.e: battclockbase not real base so needs EXPORT DEF
|
|
- EDBG sources
|
|
- demo ec + patches for 30 31 32
|
|
[EC733, v3.3a final release version]
|