What's new in ELENA Integrated Development Environment 6.0.9

Apr 18, 2024
  • [ADDED] new opcode - parent
  • [ADDED] meta expression: nested singletons
  • [ADDED] new class flag - elPacked
  • [ADDED] new attribute - packed
  • [ADDED] #637 - unit tests for byRefOp optimization
  • [ADDED] #637 - unit tests for intCopying optimization
  • [ADDED] #610 - struct redesign
  • [FIXED] optimization : copy 8 / copydpn 8
  • [FIXED] #615 : The field is not property incremented by an addition assignment
  • [FIXED] x64 : fround opcode
  • [FIXED] x64 : fabs opcode
  • [FIXED] x86 : xdispatchmr opcode
  • [ADDED] system'dynamic'expressions'LazySymbolExpression
  • [FIXED] ushort - native comparison operations
  • [ADDED] system'net
  • [ADDED] ltests
  • [ADDED] net
  • [ADDED] win64 gui
  • [FIXED] realOp.RoundedInt extension
  • [FIXED] interpreter sample for x86-64
  • [FIXED] #618 : template class descriptions
  • [ADDED] include / exclude file
  • [FIXED] ctrl+w hides the frame
  • [ADDED] ins / over modes
  • [ADDED] dark color scheme
  • [ADDED] GitHub Action - MSBuild nightly build

New in ELENA Integrated Development Environment 6.0.8 (Mar 21, 2024)

  • Fixes:
  • [ADDED] an opcode LNEG
  • [ADDED] native negate operation for long integers
  • [ADDED] #588 - Operation with int constant
  • [ADDED] multi-profiles per a single project file; new option -l
  • [ADDED] #638 - Accessing a variable declared in the upper scope
  • [FIXED] calling a variadic method without arguments directly
  • [FIXED] declaring a template based type with T is an array as a method result
  • [FIXED] GC : perm generation is not included as roots for the partial collect
  • [FIXED] generating a proper debug info for local structure / structure self
  • [FIXED] it has to be possible to convert int literal directly to v_int8 / v_int16 / v_int64, depending on the value size
  • [FIXED] x86 MTA : starting the new thread / program
  • [FIXED] x86 MTA : GC routine
  • [FIXED] byrefHandler : if it is not contain the explicit return, assign self to byref retVal
  • [FIXED] no need for typecasting operation after if-else operation with both branches containging returning operation
  • [FIXED] optimizing operation with int constants
  • [ADDED] sqlite module
  • [FIXED] string.toUpper() : returns a string with an incorrect length
  • [FIXED] windproc
  • [ADDED] xforms
  • [ADDED] sqlite_test
  • [FIXED] Rosetta Code : Interactive programming (repl), Vigenère cipher
  • [ADDED] c_a_g sample
  • [ADDED] agenda sample
  • [ADDED] graph sample
  • [ADDED] support for stdcall for win32
  • [ADDED] project settings - select the project profile
  • [FIXED] #634 - IDE debugger: the debugger must hide trace line on wait
  • [FIXED] #634 - debugger step over some expressions
  • [FIXED] #636 - IDE bugs
  • [FIXED] displaying stack-allocated structures
  • [FIXED] warn if the source code is not compiled after the change before run / debug
  • [FIXED] warn if the source code is changed and not save before run / debug
  • [FIXED] the document is in read-only mode during the debugging

New in ELENA Integrated Development Environment 6.0.6 (Oct 19, 2023)

  • ELENA
  • [ADDED]snop opcode
  • [ADDED]xfsave opcode
  • [ADDED]opcodes : xcmp sp, load sp
  • [ADDED]$yield operator
  • [ADDED]yieldable method
  • [ADDED]using statements
  • [ADDED]lock statement
  • [ADDED]class constants
  • [ADDED]globals
  • ELC
  • [ADDED]MTA support for x86
  • [ADDED]#321,#173 - conditional boxing
  • [ADDED]warn if the outpur type is less accessible than the symbol
  • [ADDED]variadic and normal methods cannot have similar names
  • [ADDED]weak implementations of &&, ||, ^^
  • [FIXED]struct typecast handler : do not copy the struct
  • [FIXED]constructor explicit multi-dispatch handler
  • [FIXED]support constants in array size declaration
  • [FIXED]passing variadic argument to another method
  • [FIXED]#47 : Evaluating an expression in a symbol
  • [FIXED]duplicates in GA_EXT_OVERLOAD_LIST
  • [FIXED]#15 - return double / long from external function
  • ELENAVM
  • [ADDED]preloaded symbols
  • [ADDED]loadAddressInfo
  • [FIXED]LoadExtensionDispatcherLA
  • [FIXED]LoadActionNameLA
  • ELENASM
  • [FIXED]#366 - Script engine rule not recognized correctly
  • API
  • [ADDED]event property template
  • [ADDED]system'winforms module
  • [ADDED]forms module
  • [ADDED]forms'SDIDialog
  • [ADDED]forms'Button
  • [ADDED]forms'Edit
  • [ADDED]forms'Label
  • [ADDED]system'dynamic'ExtensionDispatcher
  • [FIXED]Console class should be public with internal constructor
  • [FIXED]system'io'StreamWriter
  • [FIXED]system'collections'Stack
  • [FIXED]system'dynamic'DynamicTape - variadic functions
  • [FIXED]dynamic expressions
  • SAMPLES
  • [ADDED] Conway's Game of Life
  • IDE
  • [ADDED]recent open projects
  • [FIXED]debug watch : Reference
  • Tools
  • [FIXED] elt-cli

New in ELENA Integrated Development Environment 6.0.5 (Aug 20, 2023)

  • [ADDED]implementing corex60 routines
  • [ADDED]constant array of integers
  • [ADDED]native support for ?: operator
  • [FIXED]#524 : Alt expression breaks the compilation
  • [ADDED]message name functionality
  • [ADDED]new opcodes : fiadd, fisub, fimul, fidiv
  • [ADDED]basic bytecode optimization rules
  • [ADDED]basic build optimization rules
  • [ADDED]warn on unassigned variables
  • [FIXED]nested class fields
  • [FIXED]assignment operations with integers
  • [FIXED]calling an interface / closed-class method
  • [FIXED]warning on resending to itself (e.g. for constructor)
  • [FIXED]resending to the property
  • [FIXED]template-based extensions
  • [FIXED]template of template
  • [FIXED]do not box the returning self for the stacksafe method
  • [FIXED]string comparison routines
  • [FIXED]conversion routines
  • [FIXED]nested exception catching
  • [ADDED]number of new unit-tests
  • [ADDED]system'runtime'commonOp - extension to read package info
  • [ADDED]system'culture
  • [ADDED]system'routines'stex
  • [ADDED]new unit-tests: methodnotfound, nilreference
  • [ADDED]24 sample
  • [ADDED]Find dialog
  • [ADDED]Goto dialog
  • [ADDED]Toolbar dialog
  • [ADDED]Context menu
  • [FIXED]IDE blinking issues
  • [ADDED]Window menu
  • [ADDED]Unident
  • [FIXED]Running to the cursor
  • [ADDED]Recent files
  • [ADDED]erase line, trim, upper case, lower case
  • [ADDED]About dialog
  • [ADDED]Editor settings
  • [ADDED]Duplicate line
  • [ADDED]close all but active
  • [FIXED]API Doc generation
  • [ADDED]ecv-cli: showing the method number
  • [ADDED]ecv-cli: showing the module manifest info

New in ELENA Integrated Development Environment 6.0.4 Beta (Jun 26, 2023)

  • Fixing variadic multimethod dispatcher
  • (re)implementing loading classes / symbols / messages / message names
  • Elt crash fixed
  • Several new samples : pi, calc
  • Fixing number of bugs

New in ELENA Integrated Development Environment 6.0.3 Beta (May 30, 2023)

  • Fixes:
  • Fixing an issue with call stack information : incorrect / missing source code information
  • Fixing conversion uint to string and back
  • Fixing number of bugs
  • Migrating rest of API to ELENA 6.0
  • Ide : fixing go to source routine
  • Fix implementation of abstract method with the stack allocated returning value

New in ELENA Integrated Development Environment 6.0.2 Beta (Apr 1, 2023)

  • fixing a critical error with long number comparison operations
  • (re)implementing Script Engine (elenasm60 dll)
  • fixing #568 : Converting an external function return to the pointer
  • starting work on (re)implementing multi-threading support (win x86)
  • a lot of bug fixes : including critical ones
  • migrating number of examples

New in ELENA Integrated Development Environment 5.0.23 (Jul 15, 2020)

  • ELENA:
  • binary incompatible due to major version change
  • Explicit namespaces
  • Flat library hierarchy
  • nested code brackets
  • #500 : Nested code blocks
  • #492 : Yield statement
  • #380 : Run-time extension dispatching
  • #494 : Method result multi-dispatching
  • #495 : Inheritable static methods
  • #501 : Modificator **new** can be used with a variable
  • ELC:
  • deep code refactoring - treamlining code generation, increasing the compilation speed
  • #489 : Creating a variadic argument enumerator
  • #490 : Passing a variadic argument list in sub call
  • #491 : The message target is corrupt when a variadic argument is used in sub call
  • #381 : const static property
  • #162 : compiler redux - embedded constructor call
  • #505 : constructor with variadic argument list
  • #498 : Compile-time dispatching nil argument
  • #472 : Embeddable property is not called correctly

New in ELENA Integrated Development Environment 5.0.11 (Jul 15, 2020)

  • ELENA:
  • binary incompatible due to major version change
  • Explicit namespaces
  • Flat library hierarchy
  • nested code brackets
  • 500 : Nested code blocks
  • 492 : Yield statement
  • 380 : Run-time extension dispatching
  • 494 : Method result multi-dispatching
  • 495 : Inheritable static methods
  • 501 : Modificator new can be used with a variable
  • ELC:
  • deep code refactoring - treamlining code generation, increasing the compilation speed
  • 489 : Creating a variadic argument enumerator
  • 490 : Passing a variadic argument list in sub call
  • 491 : The message target is corrupt when a variadic argument is used in sub call
  • 381 : const static property
  • 162 : compiler redux - embedded constructor call
  • 505 : constructor with variadic argument list
  • 498 : Compile-time dispatching nil argument
  • 472 : Embeddable property is not called correctly

New in ELENA Integrated Development Environment 5.0 Beta 4 (Apr 6, 2020)

  • The point release contains a number of bug fixes

New in ELENA Integrated Development Environment 5.0 Beta 3 (Mar 29, 2020)

  • This build includes:
  • Several critical bug fixes
  • GUI samples

New in ELENA Integrated Development Environment 5.0 Beta 2 (Mar 21, 2020)

  • A lot of bug fixes

New in ELENA Integrated Development Environment 4.1.1 (Jan 15, 2020)

  • ELENA:
  • Several critical bug fixes!
  • #481 : New expression attribute - inlinearg
  • The operations with reference arguments are improved
  • #200 : unboxing explicit local allocated extension
  • #64 : Stand alone executable - Script engine

New in ELENA Integrated Development Environment 4.0.5 (Oct 20, 2019)

  • Several critical bug fixes!
  • #481 : New expression attribute - inlinearg
  • The operations with reference arguments are improved
  • #200 : unboxing explicit local allocated extension
  • #64 : Stand alone executable - Script engine

New in ELENA Integrated Development Environment 4.0.5 (May 2, 2019)

  • Fixing critical bug in external routine call
  • 284, #283 : duplicate output nested fields

New in ELENA Integrated Development Environment 4.0.2 Beta 2 (Apr 3, 2019)

  • The second beta release is available. It contains several critical bug-fixes, extended API

New in ELENA Integrated Development Environment 4.0.1 Beta 1 (Feb 15, 2019)

  • ELENA:
  • a lot of critical bug fixes
  • the syntax deeply refactored and streamlined
  • #355 : Multimethods : nil
  • new operators : . and .?
  • LIB:
  • forms library (re)implemented
  • Misc:
  • ELENA 4.x Specification (see doclangspec.txt)
  • (re)implementing script engine

New in ELENA Integrated Development Environment 4.0.0 Pre-release (Jan 14, 2019)

  • The first beta release of ELENA 4.0.0

New in ELENA Integrated Development Environment 3.2.0 (Sep 8, 2017)

  • ELENA:
  • binary incompatible due to implementing issues #100 and #333
  • #100 : classOp : test if object is subclass of
  • #333 : multimethods
  • #266 : static fields
  • #342 : Alternative variable declaration syntax
  • #344 : Resolving duplicate field names
  • #349 : Initialize fields at declaration
  • #348 : Accumulator static fields
  • #352 : if else if
  • ELC:
  • fixing template routines
  • new project template : vm_gui
  • IDE:
  • #14 : switch to xml config files
  • #329 : Source file with full path causes a forever loop in IDE
  • #332 : IDE not save the file with relative path
  • LIB:
  • moving to LIB32
  • #315 : GUI markup script / library
  • #328 : unsingned int / long
  • Tools:
  • #31 : Unresolved labels

New in ELENA Integrated Development Environment 3.1.10 (Jun 19, 2017)

  • What's new:
  • ELC :
  • #308 : Invalid lshift opcode when arg >= 32
  • #310 : wrong result with equals and not equals operator for long numbers
  • fixing scores of bugs
  • LIB :
  • migrating remaining classes from LIB30

New in ELENA Integrated Development Environment 3.1.0 (Jun 9, 2017)

  • ELENA:
  • Major syntax refactoring
  • Try / catch / finally code template
  • if-else code template
  • finally code template
  • using code template
  • generic handler with open argument list the nested class implicit constructor
  • #Explicit literal constants
  • ELC:
  • fixing scores of bugs
  • LIB:
  • new system'matrixof template
  • extensions'routines'MatrixSpace
  • iterators are renamed into indexers

New in ELENA Integrated Development Environment 3.0.4 (Mar 7, 2017)

  • The release contains major syntax overhaul.

New in ELENA Integrated Development Environment 2.1.0 (Jan 19, 2017)

  • ELENA:
  • binary incompatible due to implementing issues #267
  • #264 : Assigning an outer variable
  • #266 : Static fields
  • template syntax modified, suppress hint is obsolete (w2 and w3 can be used directly)
  • #265 : enumeration lists
  • ELC:
  • #271 : constant array
  • #238 : Library / Program Manifest (win32)

New in ELENA Integrated Development Environment 2.0.2 (Dec 13, 2016)

  • ELENA:
  • #172 : private / internal methods
  • #250 : Implicit constructors
  • IDE:
  • #185 : Stack allocated structures are not correctly displayed
  • #233 : IDE Debugger : next statement menu deprecated
  • Samples:
  • net sample : chat

New in ELENA Integrated Development Environment 2.0.1 (May 18, 2016)

  • ELENA:
  • new statement #extern - exclude the code from GC
  • new simplified syntax to declare typified variable / field
  • new simplified syntax to declare subject
  • typecasting message is auto generated
  • #201 : shorthand property settings
  • #54 : templates
  • #231 - new syntax : Signature / Message constants
  • #128 : constructors may now return constant value
  • #136 : refactoring access to primitive managed code (core_routines)
  • #40 : self is typified for type extensions
  • ELC:
  • binary incompatible due to implementing issues #217 and #54
  • #217 : output code optimization
  • critical bug fixes in COREX
  • critical bug fixes in GCX
  • #228 : safe region
  • LIB:
  • system : BitArray, BitArray32
  • system'routines : PatternFilter2,PatternFilter3,PatternFilter4, PatternFilter5, PatternFilter6
  • system'routines : enumerable.filter&pattern[1]
  • system'routines : enumerable.group&by[1]
  • system'routines : enumerable.order&by[1]
  • system'routines : enumerable.get&count
  • system'io : stream.set&length[1]
  • system : Char#class.new[1] supports now an integer parameter
  • system'text : TextBuffer => TextBuilder
  • system'io : Console output operation can be redirected now
  • system'collections : #234 issue - listof:subject
  • IDE:
  • issue #4 : IDE and Chinese characters
  • Menu - View - ELENA Interactive (#58: vm console)
  • Samples:
  • rosetta sample : Top rank per group
  • rosetta sample : Truncatable primes
  • rosetta sample : Visualize a tree
  • ElenaScript:
  • #65 issue : script engine is optimized

New in ELENA Integrated Development Environment 1.9.25 (Feb 10, 2016)

  • ELC:
  • binary incompatible due to implementing issues #134 and #136
  • issue #132 : GC hotfix
  • issue #216 : operation with structure fields in stacksafe method
  • issue #211 : Message call sequence with open arguments
  • critical bug fix in lock statement
  • LIB:
  • system'routines : enumerable.sequenceEqual[1], indexable.reverse&at[2]
  • system'routines : enumerable.accumulate&with[2]
  • extensions : textwriter.write&args[1,], textwriter.writeLine&args[1,]
  • extensions'text : (literal/wide).toByteArray
  • system : Message.get&literal$
  • system'io : MemoryBuffer
  • 213 : system'MethodNotFoundException provides the message name now

New in ELENA Integrated Development Environment 1.9.24 (Jan 15, 2016)

  • ELENA:
  • binary incompatible due to new opcodes
  • new simplified closure declaration syntax : ()[ i ]
  • issue #125 : new UTF-16 literal constant
  • implementing #198
  • ELC:
  • new project section "references" : adding a path to a library
  • LIB:
  • system : ExtensionMessage
  • new extension : file.literalContent, file.wideContent
  • new extension : char.is &whitespace
  • new extension : object.toHexInt, object.toHexLong
  • new extension : enumerable.zip&into[2], numeric.repeat&each[1]
  • new system'dynamic extension : object.mix&into[1]
  • new extensions'dynamic extension : object.fromJson / object.toJson
  • extensions'text: WordEnumerator => TokenEnumerator
  • critical bug fix : "AA" < "AA" = true
  • fixing arcsin, arccos
  • Samples:
  • console sample : random
  • rosetta sample : evolutionary algorithm
  • IDE:
  • icons in project tree added
  • issue #130 : namespace is included into the tab name

New in ELENA Integrated Development Environment 1.9.23 (Dec 15, 2015)

  • ELENA:
  • binary incompatible due to major change in the heap structure
  • new project template : guix
  • ELC:
  • issue #150 fixed
  • issue #42 implemented
  • issue #145 implemented : source level call optimization
  • new option "xo1-" : turning off compiler source level optimization
  • new method hint "suppress" : turning off compiler warnings for the method
  • LIB:
  • issue #174 fixed: bizarre return value in toLiteral&base:16
  • issue #169 fixed: An error in literalOp.trimRight[1]
  • new extension : object.toChar
  • Samples:
  • rosetta code sample : simple windowed app
  • rosetta code sample : gui component interaction
  • rosetta code sample : 99 Bottles of Beer
  • IDE:
  • issue #75 fixed : call stack window is not properly refreshed
  • issue #185 fixed : stack allocated structures are not correctly displayed

New in ELENA Integrated Development Environment 1.9.22 (Nov 5, 2015)

  • ELENA:
  • [+] new statement: #try () [] |
  • [+] new statement: #lock () []
  • [+] new hint : arrayof
  • [+] issue #123 implemented : fixed size array field
  • [*] #143 issue : #import statement will be used for namespace importing
  • [+] issue #10 : initializing stack allocated object without creating a dynamic one
  • [+] issue #48 : A proper method should have a precedence over an extension one
  • [!] static symbols are stack-safe
  • ELC:
  • [*] output code optimization
  • [-] issue #8 fixed
  • IDE:
  • [+] issue #13 implemented : Project View
  • [-] issue #142 fixed
  • LIB:
  • [*] some house keeping
  • [+] culture'Locale
  • [+] new package net / system'net (issue #33)
  • [+] system'net : Socket, AddrInfo, AddrInfoReader
  • [+] linux: support calendar routines
  • Samples:
  • [+]rosetta sample: 9 billion names
  • [+]linux : datetime sample migrated
  • Misc:
  • [*]rearranging examples

New in ELENA Integrated Development Environment 1.9.21.5 (Aug 12, 2015)

  • ELENA:
  • new "variable" hint
  • "ByRef" parameters are supported
  • project template console_mt (corex) is operational once again
  • ELC:
  • issue #47 fixed
  • issue #22 fixed
  • issue #68 fixed
  • issue #67 fixed
  • LIB:
  • system'collections: Stack, Queue
  • system'dynamic: CastOver
  • bool inline if : iif[2]
  • forms : Combobox
  • system'dynamic'DynamicStruct is renamed into system'dynamic'Dynamic
  • Samples:
  • rosetta code sample : 100 doors
  • rosetta code sample : 24 game
  • calc is using script engine now
  • IDE:
  • issue #7 fixed
  • issue #74 fixed

New in ELENA Integrated Development Environment 1.9.20 (Aug 1, 2015)

  • [ELC]
  • issue #15
  • [LIB]
  • sqlite: supports float and blob fields
  • extensions'dynamic : scriptEngine
  • system'text'UT8Encoding : toLiteral&int&int&bytearray
  • [ElenaScript]
  • script engine is again operational
  • refactored / syntax modified
  • local variables are supported
  • structures are supported [+] functions are supported
  • EvaluateFile / InterpretFile: "~" indicates relative to elena bin folder
  • [Samples]
  • calc
  • sqlite_test - a first ELENA database example
  • rosetta samples ackermann, addfield, accumulator are migrated to Linux

New in ELENA Integrated Development Environment 1.9.19.4 (Jul 8, 2015)

  • ELENA:
  • binary incompatible due to changes in the compiler code
  • a strong type cannot be used as a custom verb
  • ~ operator is no longer supported
  • is 100% UTF-8 internally
  • operator redesign : \ - alternative message call, || - or operator
  • stripping CORE from OS dependant code and moving it into CORE_LNX and CORE_WIN
  • out prefix is no longer supported, variable should be used instead
  • gui platform is reintroduced
  • built-in $nil symbol
  • a class hint "stringof" supports type argument as well (e.g. stringof:int)
  • coreapi : loading subject by name, returning the subject name
  • ELC:
  • two passes compiling: at first declare, at second - implement
  • -wX / -wX- options turning on / off warnings
  • optimization : a simple resend operation
  • linux ELF linker
  • both external call modes supported: winapi / c
  • bug with outer field type fixed
  • bug with redirect to an outer field fixed
  • issue #45
  • compiler option: ds - enabling subject serialization in stand-alone program
  • by default c call convention (cdecl) is used
  • LIB:
  • literal type, LiteralValue, String are UTF-8, CharValue is Unicode (UTF-32)
  • WideLiteralValue and WideString
  • linux: support basic i/o operations (console, files)
  • system'winforms module implementing basic WIN32 GUI functionality
  • forms: SDIForm, SDIDialog, ChildForm, Edit, Label, Button, ImageBox, ImageList
  • forms: Menu, DockingBox
  • system'dynamic'classOp : read&mssg_mask&index&mssgarray&vint[4]
  • system: MessageArray, IntMatrix, ReadArray, RealMatrix
  • system'Signature: constructor new&literal$[1], new&wide$[1]
  • system'dynamic: subjectROp
  • system'dynamic: classOp -> classROp
  • reflection routines work for stand-alone version as well
  • extensions'text: encoderOp
  • system'io: File
  • new package: sqlite
  • new modules: system'drawing
  • system'io: Stream, BinaryReader, BinaryWriter, FileStream
  • system'console: clear
  • system'collections: ArrayList
  • refactored to simplify the code
  • Samples:
  • agenda, graphs, c_a_g
  • notepad
  • IDE:
  • binaray arrays are displayed in the debug watch correctly
  • debugger behaviour reimplemented to improve UX

New in ELENA Integrated Development Environment 1.9.18.1 (Feb 23, 2015)

  • ELC:
  • codebase refactored
  • output code optimized
  • IDE:
  • Project - View - Call stack
  • Project - Options - Debug Mode : Enabled for VM Client is no longer supported
  • LIB:
  • system : Object#class.new
  • system'control => extensions'control
  • Misc:
  • nstallation package is introduced

New in ELENA Integrated Development Environment 1.9.18 (Feb 23, 2015)

  • binary incompatible due to changes in debugger / exception support /
  • typecasting
  • dn files are no longer produced, debug info is inside an executable
  • new shared library : elenart - run-time helper for stand-alone
  • applications
  • constructor may have redirecting and initializing parts
  • vmpath is no longer used, shared path used instead (for both elenavm and
  • elenart)
  • type routine overhaul
  • syntax : extending operator renamed - "::" should be used
  • syntax : class syntax changed - "::" should be used to provide the class
  • parent
  • new hint : type can be provided for the method result
  • direct dispatching no longer supported
  • statement terminator can be omitted only in lazy expression
  • character constant (e.g. "a" is CharValue rather than LiteralValue)
  • escape sequence is no longer supported (e.g. "Hello%n" => "Hello"#10 )
  • 0r, 1.0e2r constants are correctly recognized
  • ? and ! operators require an object now (e.g. a == b ? [ .. ] is no
  • longer possible, correct syntax is (a==b) ? [ ... ])
  • codebase refactored
  • output code optimized
  • compiler option is no longer supported : -xembed-
  • Project - View - Call stack
  • Project - Options - Debug Mode : Enabled for VM Client is no longer
  • supported
  • Project - Options - VM Path is no longer supported / required (SHARED
  • path is used)
  • system : ByteNumber, ShortNumber, IntNumber, LongNumber, RealNumber,
  • Integer, Long, Real, CharValue
  • system : intConvertor, literalConvertor, longConvertor, realConvertor,
  • FunctionX, IndexFunctionX
  • system : Object#class.new, Exception::theCallStack, Exception.get&literal$
  • system : ByteArray, ShortArray, LiteralValue, Array
  • system'control => extensions'control
  • system'collections : List, Dictionary
  • system'routines : literalOp
  • system'math : intOp, realOp
  • system'calendar : Date, TimeSpan
  • system'text : TextBuffer, Encoder, ansiEncoder
  • system'io : BinaryReader, StreamReader, BinaryWriter, StreamWriter,
  • FileStream, TextReader, TextWriter
  • extensions: inputOp, outputOp, convetor
  • system : CallStack, IntArray, byteConvertor, shortConvertor, CharArray
  • extensions'dynamic: scriptEngine, ScriptEngineException
  • system'math : byteOp, shortOp, longOp, Matrix
  • installation package is introduced
  • ELENA API documentation (see doc\api) is up to date now
  • Visual Studio Projects are migrated to Visual Studio Community 2013

New in ELENA Integrated Development Environment 1.9.17 (Oct 16, 2014)

  • ELENA:
  • some bug fixes
  • generic methods
  • LIB:
  • some bug fixes
  • system'dynamic: Group, Extension, classOp, DynamicStruct
  • system'io: TextReader, StreamReader, StreamWriter, BinaryReader, BinaryWriter
  • system'text: TextReader (refactored to be a base class and moved to system'io, system'io'StreamReader should be used instead)
  • extensions'calendar: dateOp
  • extensions'dynamic: scriptEngine
  • extensions'text: StringReader
  • ElenaScript:
  • script engine redesigned

New in ELENA Integrated Development Environment 1.9.16 (Sep 15, 2014)

  • compiler code overhaul & optimized (vm command set, typecasting, method
  • code),
  • binary incompatible due to changes in the compiler
  • changes in exception handling routines
  • new operator setAt (e.g. a@2 := b a setAt:2:b)
  • fixed: #var(type:long)n := 2
  • output code : some refactoring, binary incompatible due to changes in
  • method calling code / stack frame structure
  • project configuration modified to support multiply platforms
  • new platform: console_mt (early alpha)
  • private message implementation fixed
  • ecode optimization: idle labels are removed
  • some code refactoring-
  • system'threading: Thread, threadControl
  • new functionality: system'intOp, system'mathOp
  • new functionality: system'dynamic'Tape (supports methods)
  • asm2binx: fixed ecode compiler

New in ELENA Integrated Development Environment 1.9.15 (May 24, 2014)

  • ELENA:
  • new operator setAt (e.g. a@2 := b a setAt:2:b)
  • new ecodes: bloadfi, mresetsubj
  • ELC:
  • output code : some refactoring, binary incompatible due to changes in method calling code / stack frame structure
  • project configuration modified to support multiply platforms
  • new platform: console_mt (early alpha)
  • private message implementation fixed
  • ecode optimization: idle labels are removed
  • [LIB]:
  • some code refactoring
  • system'threading: Thread, threadControl
  • new functionality: system'intOp, system'mathOp
  • new functionality: system'dynamic'Tape (supports methods)
  • ElenaScript:
  • engine: syntax simplified, implementation refactored (alpha)

New in ELENA Integrated Development Environment 1.9.14 (Apr 12, 2014)

  • ELENA:
  • operator implemenation refactored
  • new statement : #use
  • new method hint : extension
  • new ecodes: loadclass, indexofmsg, wseval
  • ELC:
  • codebase refactored
  • some native-code optimization
  • fixed ecode: lrndnext
  • IDE:
  • "step over line"/"step over" implementations are improved
  • LIB:
  • system'dynamic: Symbol
  • new functionality:system'dynamic'classOp
  • fixed bug:system'primitive.toLiteral&int&index (e.g. binary sample with 1234567)
  • fixed bug:system'text'TextBuffer.write&literal (e.g. matrix sample, identity matrix with size >= 18)

New in ELENA Integrated Development Environment 1.9.12 (Feb 15, 2014)

  • ELENA:
  • new ecodes: sqrt, cos, sin, pi, arctan, iaxloadfi, iaxloadsi, iaxloadbi
  • ELC:
  • heap size is tuned
  • bug fix: length boxing, long static array implementation, break statement, wscopyreal, object constructor implementation
  • byte code optimization routine fixed
  • IDE:
  • debugger watch: open argument list
  • [LIB]
  • new package: forms
  • system: intOp

New in ELENA Integrated Development Environment 1.9.11 (Jan 18, 2014)

  • ELENA:
  • new ecodes: unbox, mreset
  • it is possible to use generic arguments with an open argument list
  • operations with stack allocated objects refactored
  • ELC:
  • configuration / project files are UTF8 now
  • some native-code optimization
  • some byte-code optimization
  • fixed bug with external operation error handling
  • fixed bug with exception handling sub code
  • fixed bug with control&do&until virtual implementation
  • fixed critical bug in external call routine
  • [LIB]
  • ELENA API refactored and simplified
  • ELENAVM:
  • fixed bug with stack allocated object boxing
  • Samples:
  • rosseta code: bullscows, calendar
  • Tools:
  • asm2binx: fixed ModR/M and SIB encoding bug

New in ELENA Integrated Development Environment 1.9.9.11 (Nov 26, 2013)

  • ELENA:
  • Exception handling syntax modified
  • long, real and bytearray variable can be declared as a stack allocated one
  • get / set opcodes: index range verification added
  • [LIB]
  • ELENA API refactored
  • index operations raise an exception if out of range
  • extensions'patterns: CombinatorWithRepetition
  • Samples:
  • matrix: determinant code fixed
  • IDE:
  • debugger watch: fixed bug with unrefreshed stack allocated variables
  • menu option shortcut fixed:upper / lower case
  • menu option fixed:project clean up
  • settings: font size can be changed

New in ELENA Integrated Development Environment 1.9.9.10 Beta (Nov 1, 2013)

  • ELENA:
  • binary incompatible due to critical bug fixes / new ecodes
  • open argument list
  • stack allocated local variable
  • multy-select branching
  • ELC:
  • some output code optimization
  • CRITICAL BUG: dynamic array initializing
  • [LIB]:
  • CRITICAL BUG: fixed bug in GC algorithm
  • extensions'math
  • system'dynamic: SelectorTape
  • fixed bug: LiteralValue.equal&type'widestr[1]
  • Samples:
  • console: datetime, matrix, textdb, translit
  • rosseta code: ackermann, anagram, arithmeticint, arithmmean, arrayconcat, arraymode, associatearrays, bestshuffle, binary, brackets
  • ElenaScript:
  • script modified to support basic operations
  • opencalc: inline / default scripts

New in ELENA Integrated Development Environment 1.9.9.9 (Oct 8, 2013)

  • Changes:
  • ELENA:
  • new short form: %prop ( 2 ) == { prop'get = 2)
  • the method parameter order is reversed
  • new ecodes: mccelseacci, mccthenacci
  • ELC:
  • binary incompatible due to changes in the implementation / opcodes
  • CRITICAL BUG: fixed bug in jump opcode implementation
  • CRITICAL BUG: fixed bug in mccquit opcode implementation
  • [LIB]
  • system'dynamic:GetProperty
  • system'text:ELiteralOp
  • Samples:
  • rosseta code: arrays, applycallback, aplusb, anonymrec, addfield, anagrams

New in ELENA Integrated Development Environment 1.9.9.8 (Sep 17, 2013)

  • new class hint: sealed
  • binary incompatible due to changes in ecodes / critical bug fix
  • CRITICAL BUG: fixed bug in GC algorithm
  • more user friendly syntax errors
  • optimization:idle frames
  • fixed bug with default vm client exception handler
  • fixed bug with direct method call implementation
  • method has duplicate parameter names
  • clean up code reimplemented
  • bug in branching implementation (^ operator works incorrectly)
  • some code refactoring
  • exception handler interface modified: the reference to exception is passed

New in ELENA Integrated Development Environment 1.9.9.7 (Aug 26, 2013)

  • ELC:
  • binary incompatible due to changes in ecodes/API
  • exception handling routine is modified to fix the bug with stack allocated objects
  • fixed critical error in code generation (jump ecodes)
  • more user friendly syntax errors
  • optimization:virtual branching
  • resend expression syntax modified
  • [LIB]:
  • system'dynamic:Wrap,Pair,EReflector
  • system'collections'Dictionary
  • extensions'dynamic:ETextSerializer, Globals
  • extensions'text:presenter
  • system: Date, TimeSpan, Variable
  • system'text: Bookmark
  • fixed critical error in LiteralValue.equal implementation
  • IDE:
  • debugger watch: fixed bug with stack allocated objects
  • Samples:
  • console: replace, goods
  • rosseta code: accumulator

New in ELENA Integrated Development Environment 1.9.9.5 (Aug 3, 2013)

  • ELENA:
  • external code call routine is modified
  • ELC:
  • binary incompatible due to changes in encodes/procedure enter/leave implementation
  • fixed boxing routine
  • IDE:
  • debugger watch supports stack allocated variables
  • LIB:
  • extensions'text:EIntPresenter, EIntFormatter, IntPresenter, IntFormatter, EListPresenter
  • extensions'io:consoleHelper
  • Samples:
  • binary sample is migrated

New in ELENA Integrated Development Environment 1.9.9.4 (Jul 23, 2013)

  • ELENA:
  • default subject param is no longer supported
  • method / constructor dispatch body
  • primitive operation overhaul, stack allocated primitives introduced
  • ELC:
  • bsredirect is optimized
  • some bytecode optimization
  • some code refactoring
  • fixed "duplicate constant" issue
  • LIB:
  • system'io'File, system'io'TextReader
  • IDE:
  • "step over line" implementation is improved
  • file's full path is displayed as a tab hint
  • Samples:
  • textfile sample is migrated

New in ELENA Integrated Development Environment 1.9.9.3 (Jun 28, 2013)

  • ELENA:
  • unnamed argument list
  • ELC:
  • fixed several critical bugs
  • LIB:
  • properties start with a capital letter
  • date / time basic support
  • some bug fixes
  • Samples:
  • pi sample is migrated
  • bsort sample is migrated

New in ELENA Integrated Development Environment 1.9.9.2 (Jun 3, 2013)

  • Changes:
  • ELENA:
  • horizontal inheritance
  • ELC:
  • fixed several critical bugs
  • LIB:
  • new package: extensions
  • new modules: system'collections, system'text
  • Samples:
  • words sample is migrated

New in ELENA Integrated Development Environment 1.9.9.1 (May 20, 2013)

  • ELENA:
  • deep language redesign [ELENA2]
  • ELC:
  • deep compiler redesign
  • LIB:
  • deep API redesign
  • IDE:
  • some modification to support ELENA2 changes
  • Samples:
  • helloworld, u_helloworld, intsum and real sum are migrated

New in ELENA Integrated Development Environment 1.7.17 (Sep 25, 2012)

  • ELC:
  • some code refactoring to be ready for Linux migration (all _T macros are removed)
  • new elena code optimization rules
  • fixed several critical bugs (branching, jump optimization)
  • Samples:
  • gui samples migrated to lib27
  • LIB:
  • migration to lib27
  • SCRIPT:
  • interpreter migrated to lib27

New in ELENA Integrated Development Environment 1.7.16 (Sep 17, 2012)

  • ELC:
  • argument list routine redesigned, arg, sign hints are no longer supported
  • dispatching mechanism is redesigned
  • __prop is no longer supported, __args should be used instead
  • new external role __args
  • binary incompatible due to change in ecodes / argument list implementation
  • #try, #role are no longer supported
  • sign, subj, arg hints are no longer supported
  • argument list extender
  • argument list disptacher
  • Samples:
  • some samples migrated to lib27
  • LIB:
  • part of the codebase migrated to lib27

New in ELENA Integrated Development Environment 1.7.15.8 (Sep 6, 2012)

  • ELC:
  • argument list routine redesigned, arg, sign hints are no longer supported
  • dispatching mechanism is redesigned
  • __prop is no longer supported, __args should be used instead
  • new external role __args
  • binary incompatible due to change in ecodes / argument list implementation
  • #try, #role are no longer supported
  • sign, subj, arg hints are no longer supported
  • argument list extender
  • argument list disptacher
  • Samples:
  • some samples migrated to lib27
  • LIB:
  • part of the codebase migrated to lib27

New in ELENA Integrated Development Environment 1.7.15.5 (Aug 25, 2012)

  • ELC:
  • argument list routine redesigned, arg, sign hints are no longer supported
  • dispatching mechanism is redesigned
  • __prop is no longer supported, __args should be used instead
  • new external role __args
  • binary incompatible due to change in ecodes / argument list implementation
  • #try, #role are no longer supported
  • sign, subj, arg hints are no longer supported
  • argument list extender
  • argument list disptacher
  • Samples:
  • some samples migrated to lib27
  • LIB:
  • part of the codebase migrated to lib27

New in ELENA Integrated Development Environment 1.7.15 (Aug 16, 2012)

  • ELC:
  • argument list routine redesigned, arg, sign hints are no longer supported
  • dispatching mechanism is redesigned
  • __prop is no longer supported,
  • __args should be used instead
  • new external role __args
  • binary incompatible due to change in ecodes / argument list implementation
  • #try, #role are no longer supported
  • sign, subj, arg hints are no longer supported
  • argument list extender
  • argument list disptacher
  • Samples:
  • some samples migrated to lib27
  • LIB:
  • part of the codebase migrated to lib27

New in ELENA Integrated Development Environment 1.7.14 (Jul 17, 2012)

  • ELENA:
  • code base refactored to support UTF16 & UTF8
  • __classreference and __symbolreference should be used instead of $classreference and $symbolreference
  • __symbolreference can be now used to dynamically load a symbol (in VM mode)
  • new dynamic group object: __succ
  • ELENAVM:
  • VM API is refactored
  • Samples:
  • upndown migrated to
  • LIB26:
  • most of samples are migrated to LIB26 (except notepad)
  • LIB:
  • fixed a critical error with int64 arithmetic operations (multiplication) ext'serialization'TextSerialized
  • ext'routines'CombinatorWithRepetition and ext'routines'Combinator refactored

New in ELENA Integrated Development Environment 1.7.13 (Jul 4, 2012)

  • This release includes new classes, samples and several compiler & IDE enhancements
  • This release contains refactored samples and several bug fixes

New in ELENA Integrated Development Environment 1.7.12 (Jun 27, 2012)

  • ELENA:
  • new keyword: #sync (to acquire an object exclusive access)
  • new group objects: __symbol
  • obsolete group object: __action (__symbol should be used instead)
  • batch group handler is redesigned
  • ELC:
  • some code refactoring (get rid of TCHAR)
  • IDE:
  • some code refactoring (get rid of TCHAR)
  • fixed bug with step over parametrized symbol
  • Tools:
  • some code refactoring (get rid of TCHAR)
  • elt is refactored
  • Samples:
  • some rosetta samples migrated to LIB26
  • SCRIPT:
  • elenasm is refactored to support several layer grammar rules
  • script syntax modified
  • action dynamic group is renamed into symbol

New in ELENA Integrated Development Environment 1.7.11 (Jun 8, 2012)

  • LIB:
  • std'routines'arrays'reverted
  • IDE:
  • debug watch:the content is refreshed automatically when the item is expanded
  • Samples:
  • some rosetta samples migrated to
  • LIB26:
  • upndown: score table displayed

New in ELENA Integrated Development Environment 1.7.10 (May 30, 2012)

  • ELENA:
  • #loop is obsolete, #while should be used instead
  • fixed wrapgroup: group of group
  • ELC:
  • code base: some refactoring (bcwriter)
  • new byte code optimization rules
  • new ecodes: sptrylock and accfreelock
  • LIB:
  • lib26: ELENA API is refactored
  • new module: ext'serialization
  • Samples:
  • samples migrated to LIB26
  • rosetta samples are not migrated to LIB26
  • notepad sample is not migrated to LIB26

New in ELENA Integrated Development Environment 1.7.8 (Apr 24, 2012)

  • ELC:
  • optimization: a back:b => b
  • LIB:
  • ext'routines: Combinator, CombinatorWithRepetition

New in ELENA Integrated Development Environment 1.7.7 (Apr 11, 2012)

  • ELC:
  • coret: synchronization routine is overhauled
  • project templates reorganized

New in ELENA Integrated Development Environment 1.7.5 (Mar 19, 2012)

  • ELC:
  • new compiler option: lstdx
  • fixed bug with invokevmt and "any" handler
  • ELENAVM:
  • new function: LoadClassName
  • LIB:
  • sys'vm'engine: Controller::class_name'refer
  • sys'vm'routines'classname
  • std'memory'bytearrayreader refactored
  • IDE:
  • debug autowatch:self and $self variables are now displayed correctly
  • Samples:
  • new rosetta sample: combinations
  • Tools:
  • elt: cannot display VM error

New in ELENA Integrated Development Environment 1.7.4.1 (Mar 10, 2012)

  • ELENA:
  • new initializing argument list syntax:Loop &&from:1 &to:5
  • it is now possible to debug built-in group types
  • ELC:
  • optimization: numeric and literal constant methods are called directly
  • fixed: negative floating number constant
  • LIB:
  • win32'localization'strings
  • fixed: minus is lost when converting a real64 to a string
  • IDE:
  • fixed: go to source
  • fixed: symbol parameter is not shown in auto watch
  • Tools:
  • ecv: it is possible to provide path to the viewing module
  • Samples:
  • new rosetta sample: charmatch

New in ELENA Integrated Development Environment 1.7.3 (Mar 6, 2012)

  • ELC:
  • optimization: a role method is invoked directly
  • fixed generic handler
  • IDE:
  • fixed bugs with auto compilation mode
  • fixed: if the breakpoint is at the first visible line, it is not shown
  • LIB:
  • win32'threading'api'threadhandle.wait
  • std'basic'widechar: + / -
  • sys'dynamics: batch
  • gui controls events: onenter / onleave
  • fixed: timespan::milliseconds'get
  • Samples:
  • new rosetta sample: caesar
  • calc: some rules are migrated to the script

New in ELENA Integrated Development Environment 1.7.2 (Feb 25, 2012)

  • ELENA:
  • #type is no longer supported, use $classreference instead
  • new meta symbols : $symbolreference and $classreference
  • SCRIPT:
  • new inline command: $symbolreference - to create a type symbol
  • LIB:
  • std'routines'arrays:fixed bug
  • win32'io: directoryfactory
  • ELC:
  • simple byte command type optimization (popn pop => popn)
  • Tools:
  • ecv: displays command references Samples:
  • new rosetta sample: binary

New in ELENA Integrated Development Environment 1.7.0 (Feb 15, 2012)

  • ELC:
  • binary incompatible due to change in ecodes / primitives
  • LIB:
  • new module: ext'utils
  • std'basic'factory: newwideliteral
  • Samples:
  • new rosetta stone sample:brackets, bestshufffle
  • IDE:
  • tools - debugger options: lib path, src path
  • project - options: vm path

New in ELENA Integrated Development Environment 1.6.18 (Feb 1, 2012)

  • ELENA:
  • new verb: invoke (used only for dynamic programming)
  • LIB:
  • new group object: __action, __bcast
  • verb role implementation changed
  • __cast routine was modified (the old functionality is implemented in __bcast)
  • fixed bug in the property group handler: $self should be used instead of self to deal with the case when the property is a part of the group
  • fixed bugs in std'routines'strings'eops role
  • SCRIPT:
  • new inline command ^^ verb: use external role object
  • new supported group type: cast
  • interpreter script migrated to LIB25 / OA paradigm
  • IDE:
  • new setting - debugtape - to debug vm tape
  • fixed bug with the debugger:stayed twice on the same step
  • Tools:
  • ecv: could view symbol code as well

New in ELENA Integrated Development Environment 1.6.16 (Jan 26, 2012)

  • ELC:
  • some code refactoring / cleaning
  • LIB:
  • ext'gui migrated to lib25
  • SCRIPT:
  • VM Tape command overhaul; it supports stack variables now
  • fixed bug with the role implementation
  • IDE:
  • VM Client debugger overhauled
  • it is now possible to debug vm script
  • fixed #00063: step over / into does not work when starting vm client
  • Tools:
  • ECV (ELENA Code viewer): ELENA byte code decoder

New in ELENA Integrated Development Environment 1.6.13 (Jan 19, 2012)

  • ELENA:
  • new built-in verb roles
  • built-in group class aliases can be used in
  • #type expression
  • ELC:
  • fixed #00062: cannot parse 2-3 expression
  • fixed bug with external role $self variable
  • fixed critical error in arithmetic routines
  • parsing order changed: tilde expression is now part of the operation rather than the object
  • LIB:
  • "then" subject is moved to external role std'patterns'econtrol
  • std'patterns:
  • tryget template
  • ext'patterns: meanaction
  • SCRIPT:
  • embedded action is no longer supported

New in ELENA Integrated Development Environment 1.6.12 (Jan 6, 2012)

  • ELENA:
  • #wrap, #group, #cast and #union are no longer used, built-in classes should be used instead
  • subject adapter hint is no longer supported
  • new method handler - #generic
  • new verb: replace
  • LIB:
  • LIB25: the language API was overhauled
  • LIB25: new built-in group classes: __prop, __wrap, __group, __cast, __union, __wrapgroup
  • SCRIPT:
  • supports new group objects: &prop and &wrap

New in ELENA Integrated Development Environment 1.6.11 (Dec 20, 2011)

  • ELENA: [!] core / command primitives refactored
  • ecodes set extended
  • new built-in variable $next
  • new group type: switch
  • role enext is no longer supported, use $next instead
  • new group type: wrap
  • LIB:
  • sys'assembly'egetprop
  • SCRIPT:
  • disptaching implementation refactored
  • it is possible to use external roles
  • new script engine keyword: $role

New in ELENA Integrated Development Environment 1.6.10 (Dec 8, 2011)

  • ELENA:
  • fixied critical errors in GCX/GCXT
  • new ecode: shiftacc
  • it is possible to switch roles inside the inline sub class
  • gui vm client displays errors on start now
  • LIB:
  • std'routines'summing, std'routines'counting, std'patterns'it
  • Samples:
  • rosettacode: bitwise
  • IDE:
  • several small bugs

New in ELENA Integrated Development Environment 1.6.9 (Nov 26, 2011)

  • ELENA:
  • fixed critical errors in GCX/GCXT
  • new ecode: shiftacc
  • it is possible to switch roles inside the inline sub class
  • gui vm client displays errors on start now LIB: std'routines'summing, std'routines'counting, std'patterns'it
  • Samples:
  • rosettacode: bitwise
  • IDE: several small bugs

New in ELENA Integrated Development Environment 1.6.8 (Nov 21, 2011)

  • ELENA:
  • gcxt: pre-alpha LIB: sys'entries redesigned, sys'vm'scriptengine
  • new module: std'math'vectors, sys'threading, win32'api'threading
  • Samples: vmconsole, notepad, timer
  • rosettacode:smavg, arrayconcat, arraymode
  • IDE:
  • migrated to elenasrc2 branch
  • search history in search / replace dialogs

New in ELENA Integrated Development Environment 1.6.7 (Nov 11, 2011)

  • Features:
  • Pure polymorphic object oriented language
  • "Horizontal" multiple inheritance
  • Context dependant roles
  • Dynamic "class mutation" ("annex / switch/ cast" handler)
  • Multiple message dispatch
  • ELENA Virtual machine (in developing)
  • Command line 32-bit compiler
  • GUI IDE & Debugger
  • Unicode support
  • Complete source code
  • Number of samples, including a card game Up'N'Down (in development) Getting started tutorial
  • Simple Assembler compiler
  • Dynamic Self-Assembling Script engine
  • ELENA Virtual Machine Terminal
  • Changes:
  • ELENA: [+] project config forwards section: supports wildcards
  • [-] fixed critical error in GC_REALLOC
  • [-] fixed critical error in merger ecode
  • [-] fixed critical error in elenavm with forward symbols LIB:
  • [+] new gui dialogs: opendialog and savedialog
  • [+] new control: gui'controls'Timer
  • [+] sys'dates'Date: it is possible to set / add / subtract date members
  • [+] new symbol sts'dates'NewDate
  • [+] new role std'routines'EArrayOp: array concatenation
  • [-] fixed error in win32'dates'DateConvertor
  • SCRIPT:
  • [*] script engine redesigned: simplify inline command syntax, there may be several grammar rule sets
  • [+] bf interpreter script
  • Samples:
  • [+] new sample:timer
  • IDE:
  • [-] fixed bug with 'step over' the symbol with a parameter

New in ELENA Integrated Development Environment 1.6.6 (Oct 31, 2011)

  • Features:
  • Pure polymorphic object oriented language
  • "Horizontal" multiple inheritance
  • Context dependant roles
  • Dynamic "class mutation" ("annex / switch/ cast" handler)
  • Multiple message dispatch
  • ELENA Virtual machine (in developing)
  • Command line 32-bit compiler
  • GUI IDE & Debugger
  • Unicode support
  • Complete source code
  • Number of samples, including a card game Up'N'Down (in development)
  • Getting started tutorial
  • Simple Assembler compiler
  • Dynamic Self-Assembling Script engine
  • ELENA Virtual Machine Terminal Changes:
  • ELENA:it is possible now to provide a full subject reference
  • LIB:migration to LIB2 completed
  • new std classes:listindexer
  • new std roles:esort, estrop
  • SCRIPT: multi-dispatching is supported
  • role support is dropped
  • Samples:upndown migrated to LIB2
  • vmconsole sample: first working prototype of using script engine in ELENA

New in ELENA Integrated Development Environment 1.6.5 (Oct 17, 2011)

  • ELENA:
  • GC retired
  • ELENAVM client support redesigned
  • critical bug fixed: local variables with the same name LIB:
  • lib2 redesigned
  • new module: sys'vm SCRIPT: script engine refactored: inline script can be used to configure and start VM Tools:
  • elt: several critical bugs fixed
  • elt refactored: vl3 script type is no longer supported

New in ELENA Integrated Development Environment 1.6.4 (Sep 27, 2011)

  • Features:
  • Pure polymorphic object oriented language
  • "Horizontal" multiple inheritance
  • Context dependant roles
  • Dynamic "class mutation" ("annex / switch/ cast" handler)
  • Multiple message dispatch
  • ELENA Virtual machine (in developing)
  • Command line 32-bit compiler
  • GUI IDE & Debugger
  • Unicode support
  • Complete source code
  • Number of samples, including a card game Up'N'Down (in development)
  • Getting started tutorial
  • Simple Assembler compiler
  • Dynamic Self-Assembling Script engine
  • ELENA Virtual Machine Terminal
  • Changes:
  • ELENA:
  • GCX: stable beta LIB: console2 & gui2 templates are switched to X platform fixed bug in win32'io'console implementation
  • IDE:
  • IDE code is migrated to elenasrc2 branch

New in ELENA Integrated Development Environment 1.6.3 (Aug 2, 2011)

  • ELENA:
  • operator parsing order is changed
  • define import subjects as well
  • argument list is now possible to use with symbol parameter as well
  • new opcode: break2else, savesacc
  • nil subject is no longer supported, use nillable
  • SCRIPT:
  • script engine refactored
  • ELC:
  • binary incompatible with the previous versions
  • subject implementation overhaul
  • elenavm InterpretLVMEx is redesigned
  • gcx: beta
  • ffriend-injection mingw compiler option was removed
  • fixed bug with using #try and assigning expression
  • fixed bug in group_next primitive function
  • fixed bug in nullable option implementation
  • Samples:
  • bf interpreter: script version
  • gui samples migrated to lib2
  • Tools:
  • elt refactored
  • fixed bug in asm2binx: __arg1 is not recognized as a reference for SUB

New in ELENA Integrated Development Environment 1.6.2 (Jun 27, 2011)

  • ELENA:
  • it is possible now to switch to another role inside another one
  • new ecode: snop
  • run-time multi-dispatching
  • new argument option: nullable
  • obsolete argument option: norecc
  • ecodes are simplified, several big commands are split
  • #continue is no longer supported
  • new statement: #try
  • SCRIPT:
  • it is possible to map forward references (#map 'forward reference
  • it is possible to set package path (#package [] "path"
  • ELC:
  • new compiler option - g0
  • some basic byte code optimization rules
  • new option to turn on / off optimization
  • optimization: direct method call for constants and external roles
  • fixed bug with inline class argument hint
  • elenavm is refactored to be ready for script engine
  • LIB:
  • code refactoring
  • Samples:
  • console samples are migrated to lib2
  • rosetta stone samples are migrated to lib2
  • Tools:
  • vm terminal
  • script engine

New in ELENA Integrated Development Environment 1.6.1 (May 6, 2011)

  • ELENA:
  • alpha multi-threading support: GC is now thread-safe
  • new simplified syntax to create a group
  • it is possible to include the other module references without aliases
  • several big commands are split, highly specialized commands - dispatch
  • new simplify syntax to specify compiler options
  • hint keyword is no longer supported
  • new ecode - popn
  • expression syntax simplified
  • ELC:
  • fixed critical bug in memory management
  • fixed #group statement bug for x platform
  • fixed critical error - cannot compile class with roles in the release mode
  • fixed #00058: duplicate subjects
  • fixed #00059: win32_gui_vm_client and win32_console_vm_client applications do not work
  • fixed #00060: #var a := a verb:b should not be possible
  • LIB:
  • new classes: ext'patterns'MultiEnumerator, std'patterns'args
  • Samples:
  • hellowworld_u migrated to lib2
  • upndown bug fixed:player plays with a joker as a biggest one
  • IDE:
  • IDE debugger supports multi-threading applications
  • 64bit integer numbers are displayed correctly in the debugger watch window

New in ELENA Integrated Development Environment 1.6.0 (Jan 27, 2011)

  • ELENA:
  • $next is no longer supported, use #continue
  • the following verbs are no longer supported:shift, of, create, enum
  • new simplified method argument syntax
  • api code is significantly refactored
  • dynamic symbol loading
  • operators now have a verb synonyms
  • add possibility to import subjects on the level of the module
  • changed inline class implementation
  • ELC:
  • critical bug with nested conditional statements
  • critical bug with GC
  • new project template - guivm
  • critical bug with GC (full collect is not invoked if there is no enough memory after partial collection)
  • critical bug in bcFillR implementation code
  • fixed critical bug with long number constant
  • fixed: disabled debug mode crashes executable file
  • LIB:
  • source code is completely rewritten
  • bool protocol is dropped
  • fixed int64 operations
  • critical bug with the win32 control reference pool
  • new symbol sys'vm'loader
  • Samples:
  • fixed the issue with the focus in upndown sample
  • fixed matrix sample
  • basic up'n'down game version

New in ELENA Integrated Development Environment 1.5.6 (Oct 29, 2010)

  • ELENA:
  • x86 JIT Compiler was optimized
  • native code support overhaul
  • method call overhaul
  • ecodes: exitannex renamed to breakannex
  • new verb: takeout
  • 64bit integer constants
  • LIB:
  • std'math'MatrixEnumerator, std'math'MatrixEnum, std'math'MatrixType
  • std'math'dictionary module
  • gui'dialogs'errorbox
  • gui'controls'Menu
  • compile libary overhaul to adapt new method calling syntax
  • several small enhancements
  • new control: gui'controls'Checkbox
  • fixed a bug in 'program'output char'get
  • sys'io: BinaryFile, NewBinaryFile
  • ext'text: HexAdapter, EIntFormatter, ELiteralFormatter
  • nil'ifnot is no longer supported - nil'is should be used
  • ELC:
  • new project sections: sforwards
  • miltidispatching mechanism: some optimizations
  • drop support of sdef hint
  • migrated to gcc4
  • IDE:
  • fixed #00054: after changing encoding to unicode project template list is empty
  • Samples:
  • new sample: Matrix
  • new sample: Dices
  • new sample: eldoc
  • upndown: it is now possible to play with a chaotic (random) compiler player
  • fixed #00053: elenavm: helloworld doesn't work

New in ELENA Integrated Development Environment 1.5.5 (Aug 3, 2010)

  • ELENA:
  • 'evaluate' message name should be used instead of 'proceed' one
  • 'do' message name should be used instead of 'continue' one
  • 'nil'ifnot' should be used instead of ifnotnil
  • new #hint keyword to introduce new style class attributes / shortcuts
  • old style hints are no longer support, #hint should be used
  • elena byte codes (ecodes) are redesigned
  • elena syntax:argument list introduced
  • new keyword: #union
  • LIB:
  • new package: ext'gui
  • new class: ext'text'LineInput
  • fixed #00051: printing long string
  • ELENA library is refactored to support new language features
  • context'get is no more supported, use instead enum'content'get or indexer'content'get
  • ELC:
  • fixed #00050: empty role
  • fixed #00052: The compiler has a problem with paths where the NAME of a folder has space
  • fixed compilation of the following code: #if Test::2 ...
  • fixed #00045: now the number of warning is limited to 100
  • fixed #00046: too long quote
  • references implemented in the next module are no longer considered as unresolved
  • action expression bug is fixed
  • fixed loop implementation bug
  • Samples:
  • Samples are refactored to support new language features

New in ELENA Integrated Development Environment 1.5.4 (May 11, 2010)

  • new built-in variable $next to work with group objects
  • multiple dispatching implementation for several messages
  • Message namespace implementation overhauled
  • keyword #subject should be used instead of #scope
  • project system/type option is not supported anymore
  • ELENA library is refactored
  • a simple virtual machine support (elenavm)
  • fixed a major bug with inline symbol
  • fixed a critical bug with circular reference
  • fixed #00048: sending new message to group raises the exception
  • ELENA byte code refactored
  • Project option page is simplified
  • new sample: TextDB
  • project file format modified

New in ELENA Integrated Development Environment 1.5.1 (Feb 22, 2010)

  • Message namespace implementation overhauled
  • $invoke special message is no more supported
  • keyword #scope added
  • ELENA library is refactored
  • new component: gui'controls'Memo
  • Compiler code is refactored to be ready for ElenaVM
  • debugger implementation impoved
  • Samples are refactored to support latest language changes

New in ELENA Integrated Development Environment 1.5.0 (Dec 17, 2009)

  • ELENA Engine refactored
  • new class: ext'utilities'Date
  • fixed bug: real to literal conversion routine
  • ELC generates byte code modules instead of native ones
  • Linker speeded up
  • fixed critical bug: resource leaking in debug mode
  • new setting : Project - Options - Additional options
  • simply plugin support
  • new plugin: code auto formatter (autoform)
  • debugger implementation refactored
  • fixed bug:auto recompile functionality
  • fixed bug:the row numbers starting with 2
  • new samples: Agenda, pi, binary

New in ELENA Integrated Development Environment 1.4.6 (Sep 10, 2009)

  • This release includes a major syntax modification, a number of language enhancements, several bug-fixes aswell as refactored and extended ELENA standard library. New sample interpreter added

New in ELENA Integrated Development Environment 1.4.5 (Jul 1, 2009)

  • old style protected messages are no more supported
  • hint ns no more supported
  • for protected message it is possible to provide namespace directly
  • in the reference without any hint
  • new floating-point number syntax:it should be ending with 'r' postfix
  • $param is no longer supported
  • ELENA API refactored: number of changes including symbol / message renaming
  • message private namespace could be shared between the modules
  • belonging to the same subbranch
  • critical bag fixed in std'math module: round operation
  • new class: std'basic'LongNumber, std'basic'LongInteger
  • Coder refactored
  • Output code optimized
  • Critical bug fixed in GC (assigning local object fields)
  • fixed the bug with debugger auto watch
  • new sample: graphs
  • code refactored, several small bugs fixed

New in ELENA Integrated Development Environment 1.4.4 (Jun 1, 2009)

  • NEW SYNTAX: square brackets are used for hints instead of normal ones
  • new control: UpDown
  • new module: math
  • indexer / enumerator routines are refactored
  • gui forms support now keyboaad and mouse events
  • fixed the bug: gui application is not released from the memory after
  • the program is closed on Windows Server 2003
  • fixed the bug with invalid nil symbol offset
  • fixed the bug with annex symbol debugging
  • project namespaces section is no more supported
  • fixed GC bug: external field assigning from different generations
  • fixed #00033: the following code 453464646->memory NewLiteral raise
  • 'access vialation' exception instead of out of memory;
  • fixed the bug with sequence of operation with super / self variables
  • support of temporal objects
  • new hint dbg used by the debugger to define the object data type
  • compiler warns now if the module has incompatible structure
  • built-in variable $vself is no more supported, use self instead
  • more user-friend parser error messages for missing brackets
  • new option autocomp: automatically recompile out of date projects
  • new toolbox icon: Goto Source
  • debugger auto watch shows $vself built-in variable if it's different from self
  • new project option:command arguments
  • several small enhancements
  • fixed: Go To Line; dialog doesn't work
  • fixed #00032: invalid syntax highlighting
  • Up'n;Down sample refactored and extended
  • STD package documentation is up to date

New in ELENA Integrated Development Environment 1.4.3 (Apr 27, 2009)

  • This release includes a number of IDE enhancements, language syntax improvements, several minor bug-fixes as well as refactored and extended ELENA standard library.
  • The project includes documentation, ELENA standard library source code, samples, command-line compiler, IDE.
  • Currently only Win32 platform + I386 is supported.
  • Changes:
  • hint could be provided as postfix after an appropriate keyword
  • new keyword #if for chain branching expressions
  • new simplified syntax for initializing implicit symbols
  • new built-in message $invoke
  • symbol could have only one parameter now
  • several minor syntax changes (brackets used instead of < > characters, '->' operator used for property-symbols instead of "::&")
  • #case keyword is obsolete, use #if instead
  • keyword #hint obsolete, use new syntax postfix syntax
  • protectable hint is obsolete now
  • obsolete built-in variables $this and this are no longer supported
  • LIB:
  • refactored to support new language features
  • several new controls: gcomp'Paintbox, ggraph'ListImage
  • the library code is refactored and new functionality added
  • ELC:
  • new hint - constant
  • output code optimization: stateless objects treated as constants
  • fixed: invalid error message if the base class is declared after the inheriting class
  • config value flatmode is no longer supported, only flat mode is allowed now
  • IDE:
  • new menu option: Go To Source Code
  • new shortcut: ALT+0 - open Window List
  • new shortcut: ALT+N - switch to the tab (from 1 to 9)
  • new option: it's now possible to close the window from window list dialog
  • new option: remember last folder / last project checkboxes in Editor Options dialog
  • new project option: project template
  • new short-cut: CTRL+E to swap two symbols on either side of the cursor
  • new file option: close all but active
  • new edit options: to upper / to lower case
  • project option dialog redesigned
  • Recent projects / files lists are numerated now
  • fixed #00025: the debugger stops on the place where F4 was pressed last time even if the program was restarted
  • fixed #00026: operators are not highlighted correctly after digit
  • fixed #00015: debugger watch does not show symbol parameters

New in ELENA Integrated Development Environment 1.4.2 (Feb 3, 2009)

  • ELENA library is updated with the new classes and methods
  • std / gui / win32 v-property classes are redesigned
  • removed a number of redundant forward declarations and extensions
  • ELENA library is refactored to get rid of redundant private methods
  • VMT routine improved optimized
  • Any handler / mutation routine redesigned, syntax simplified
  • v-property routine redesigned.
  • more user friendly error message if the dot is missing
  • fixed #00021: the debugger doesn't go to the alternative chain if
  • the v-property expression fails
  • fixed #00014: match the whole word option in find dialog doesn't work
  • fixed: message is not highlighted correctly after digits followed by CR
  • new code added for up'n'down sample

New in ELENA Integrated Development Environment 1.4.1 (Dec 19, 2008)

  • this and $this built-in variable are obsolete now.
  • new built-in variable $vself introduced to be used in horizontal
  • inheritance (extension) cases
  • new keyword #hint allows to specify the compiler hint.
  • new #cast statement which allow to broadcast message in a collection
  • improved syntax for v-property expression protected methods (starting with $$)
  • new project file section - namespaces - allow to declare forward namespaces
  • #switch statement may work now with dynamic arrays as well
  • Removed a lot of redundant forwards
  • Removed a lot of redundant factory classes
  • the sample code is refactored
  • new code added for upndown sample
  • fixed bug with $vself in #annex / #switch expressions
  • fixed the critical bug in the garbage collection routine
  • fixes several minor bugs
  • fixed #00020: non-existing v-property generates confusing error
  • (error 121, with invalid line and column info)
  • fixed #00009: redirect / any handler routine works incorrectly if it's declared in the base class
  • fixed #00005: code stops at the breakpoint even after it was
  • removed sometimes
  • fixed #00018: bug in window list sub menu (several windows with the same number 9.)
  • fixed #00012: saving the last opened folder works incorrectly
  • fixed the bug with hanging on uncomment operation
  • fixed #00016: when you press ctrl+shift+k at the last document
  • line IDE hangs on.
  • fixed #00011: line program'input writeTo:a writeTo:b is not
  • highlighted correctly
  • fixed several minor bugs in words sample
  • fixed several minor bugs in textview sample

New in ELENA Integrated Development Environment 1.4.0 (Nov 10, 2008)

  • New keyword #annex and #switch which are used for "horizontal" inheritance
  • New keyword #case to be used in code branch expressions
  • It is possible to specify the inline class / collection base class with keyword #class { ... } or #class (...)
  • [+] symbol templates introduced (e.g. #symbol"Enter the number" >>"integer)
  • "=> [...]" is shortcut for "= proceed [...]"
  • A lot of language syntax improvements and refactoring
  • Expression syntax redesigned and made more consistent
  • Any handler / dynamic mutation routine implementation enhanced
  • Role implementation routine is optimized
  • Simplified syntax for inline symbol is applied now only for "=>" method
  • Possible to provide reference shortcut instead of full names in base class declaration (e.g. #define basic'* = std'basic'*. #class
  • MyInt... )
  • Inline classes class variable are the following:$self, $this, $super to distinguish from the normal class variables (self, this, super)
  • Complete refactored to implement the concepts of "open architecture" and "reduced class interface"
  • Executable debug info restructured
  • The compiler / linker source code is refactored
  • Fixed "the writer index out of range" issue for editor
  • Fixed the bug with highlighting lines containing tab characters
  • Complete refactored to implement the concepts of "open architecture" and "reduced class interface"
  • Part of the Up'N'Down code is commented out because of work on new language concept
  • ELENA API and documentation are out of date

New in ELENA Integrated Development Environment 1.3.1 (Aug 13, 2008)

  • syntax modified to be more laconic
  • syntax for inline symbols containing only one method is simplified
  • for an inline symbol a base class could be specified
  • operator @ is now used for index access instead of 'at' message
  • std'memory: DumpReader and DumpWriter
  • Ansi strings / controls are not supported
  • StringBookmark should be used for the operations with string intead of StringOperation
  • win32 & gui packages are refactored
  • xwide parameter is not supported any more (ELENA supports now only UNICODE strings)
  • several small bug-fixes
  • bsort refactored
  • replace refactored