+---------------------------------------------------------------+ | 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]) - 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+ - 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 ->comment bla,bla - "....:REG",10,"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 (beter als ListItem hack) - NOT unary operator (mischien ook "-") - more useful quoted expression functions - []: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 ". * 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 ... 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 <=> 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 OF 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]