diff --git a/E-VO.S b/E-VO.S index 819f9d2..915bfe4 100644 --- a/E-VO.S +++ b/E-VO.S @@ -10084,8 +10084,8 @@ SRCFN: DC.L 0 EROBJLINE: DC.B 'WITH: %s',10,0 DC.B '$VER:' TITLE: DC.B 'E-VO',160,'E',160,'Compiler' - DC.B '/Assembler/Linker/PP',160,'v3.7.0-dev',160 - DC.B '(16.02.2024)' + DC.B '/Assembler/Linker/PP',160,'v3.7.0',160 + DC.B '(09.03.2024)' DC.B 10,'developing as "EC"',160 DC.B '''1991-97',160,'by Wouter van Oortmerssen',10 DC.B 'developing as "GEC"',160 diff --git a/E-VO.guide b/E-VO.guide index ed2dfe8..6fd5830 100644 --- a/E-VO.guide +++ b/E-VO.guide @@ -346,6 +346,66 @@ NOTE: in most cases you won't need to use any of these options 0D. changes / history / new features ------------------------------------ + New in E-VO (3.7.0) + - Compiler sometimes produced garbage error message with an error at the very + end of the file. + - Reformatted the Amigaguide document to better fit in 80 columns. + - added Arexx compile scripts + - allow creating a new object directly into an object member + eg. self.a:=NEW self.a.method() + - method table was not correctly initialised for objects declared as + eg. DEF a:b OR DEF a[5]:ARRAY OF b + - heap in compiler is allocated with MEMF_CLEAR in compiler to ensure all + data in the exe is initialised to 0 and not contain random data from + memory + - calling a method on an array element of an object did did not calculate + the correct address for the method. + - compiler was creating 020 opcodes when accessing an array of objects + - added NIL pointer checks when calling methods on array of objects + - self variable was set incorrectly for methods declared with an exception + handler + - fix issue with wrong opcode being generated in this code + DEF a + DEF b:PTR TO LONG + a:=[0,b[0]:=5] + resulting in the value not being stored correctly + - include textfield module + - fix bug in reaction_lib with the freeClickTabs, freeChooserLabels and + freeRadioButtons functions not looping through the list correctly. + - add support for long branch 020 instruction. + - fix invalid memory access when casting the result of a procedure call + to an object + - fix inconsistencies with SIZEOF command + - fix error in branching code for the == operator + - add missing listview module + - add some extra functions in reaction_lib (openClass, openLibs, + closeLibs, libDoGadgetMethodA) + - added PSIZEOF operator + - added ARRAYSIZE operator + - added SelectFirst function + - added debug symbols for methods + - allow CONT and EXIT within SELECT statement + - updated Rnd() function to be pure + - flagged openw, opwns, boolgad, settopaz, sets, gets functions as not pure + - added WARN TRUE/FALSE to enable/disable warnings + - added Rol() and Ror() functions + - the 020 variant of Mod() was not correctly used by the compiler and + was also taking the parameters the wrong way around + - added 020 variant of ListItem function + - track line numbers for warnings + - NOREGS option was not correctly parsed on methods + - taking a reference to a method {obj.method} did not return the + correct address + - 1.3 startup code now updates stack pointers to allow stack space + functions to return the correct values. + - skip NameFromFH call on kick 1.3 meaning the compiler now works + on that OS again + - NOT operator was very broken (inconsistently applied and in some cases + not applied at all) + - Added EVO_3_7_0 define + - casting and PTR TO PTR handling is improved and should now work in all + use cases. + New in E-VO (3.6.1) - add checks for object going over 64k @@ -946,7 +1006,7 @@ v3.4.1 19.10.2021 -> 23.10.2021 v3.5.0 04.11.2021 -> 14.07.2022 v3.6.0 12.09.2022 -> 19.04.2023 v3.6.1 24.04.2023 -> 16.06.2023 -v3.7.0 30.06.2023 -> ? +v3.7.0 30.06.2023 -> 09.03.2024 @endnode @node CH_0E diff --git a/E-VO_Install b/E-VO_Install index 9d9a73c..7764349 100644 --- a/E-VO_Install +++ b/E-VO_Install @@ -12,8 +12,8 @@ (set #app-name "E-VO") ; Application name -(set #app-year 2023) ; Copyright year -(set #app-version "3.6.0") +(set #app-year 2024) ; Copyright year +(set #app-version "3.7.0") (set #ModulesPath "EModules:") diff --git a/Updates.txt b/Updates.txt index 2970baf..e4d02f0 100644 --- a/Updates.txt +++ b/Updates.txt @@ -543,4 +543,4 @@ DATE HISTORY: 3.5.1 08.08.2022 -> 06.09.2222 3.6.0 12.09.2022 -> 19.04.2023 3.6.1 24.04.2023 -> 16.06.2023 - 3.7.0 30.06.2023 -> ? \ No newline at end of file + 3.7.0 30.06.2023 -> 09.03.2024 \ No newline at end of file diff --git a/file_id.diz b/file_id.diz index ab543fd..c302ca9 100644 --- a/file_id.diz +++ b/file_id.diz @@ -2,8 +2,8 @@ / . \ \/ / \ \ __ /\ / / / ++\___\--\_/\____/++ ---------------[v3.6.1]-- +--------------[v3.7.0]-- E-VO: Amiga E Evolution - (c)2023 Darren Coles + (c)2024 Darren Coles ------------------------ \ No newline at end of file diff --git a/readme.txt b/readme.txt index ea15332..66f93c1 100644 --- a/readme.txt +++ b/readme.txt @@ -2,7 +2,7 @@ Short: E-VO: Amiga E Evolution Author: darren_m_coles@yahoo.co.uk (Darren Coles) Uploader: darren_m_coles@yahoo.co.uk (Darren Coles) Type: dev/e -Version: 3.6.1 +Version: 3.7.0 Replaces: dev/e/evo.lha Architecture: m68k-amigaos >= 2.0.4 Distribution: Aminet @@ -12,24 +12,21 @@ by Wouter van Oortmerssen. It adds many new features, bug fixes and optimisations including object UNIONs, string merging, non word-aligned objects and many more. -This version is a minor update which contains the following changes: - - add checks for object going over 64k - - fix 020 optimised address calculation for array of object (or ptr to - object) indexing - - added EXENAME and DESTDIR command line arguments to override the output - file name. - - EDBG: Setting breakpoint caused crashes on certain versions of graphics.library - - fix casing for IeeeDPFloor and IeeeDPCeil - - Extend lists to handle 64k items instead of 32k. - - Fix #else preprocessor parsing issues +Just a small sample of the changes in this release: + added PSIZEOF operator + + added ARRAYSIZE operator + + added SelectFirst function + + added debug symbols for methods + + allow CONT and EXIT within SELECT statement + + skip NameFromFH call on kick 1.3 meaning the compiler now works + on that OS again + E is an object oriented / procedural / unpure functional higher programming language, mainly influenced by languages such as C++, Ada, Lisp etc. It is a general-purpose programming language, and the Amiga implementation is