Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backlog #620

Open
arakov opened this issue Sep 22, 2023 · 0 comments
Open

Backlog #620

arakov opened this issue Sep 22, 2023 · 0 comments
Labels
Milestone

Comments

@arakov
Copy link
Member

arakov commented Sep 22, 2023

  • optimization : jumping, offset aligning
  • script engine : nested grammar, regexp
  • new opcode : fexp - ppc64le
  • ppc64, aarch64 : fix loads
  • ppc64, aarch64 : xdispatchmr : 9,A
  • x86-64,ppc64, aarch64 : dispatchmr : 9,A
  • ppc64, aarch64 : fix xrefresh / xflush - use arg instead of direct values
  • execute script : https://www.reddit.com/r/elena_lang/comments/ibblff/run_elena_code_without_build_work_in_progress/
  • script samples : win x86, win x86-64, linix i386, linux amd64
  • migrate all script engine tutorials : win x86, win x86-64, linix i386, linux amd64
  • regression tests : github issues
  • elenavm : test all rosetta code samples for vm
  • Dynamic programming in ELENA : bf loop - https://www.reddit.com/r/elena_lang/comments/7nmib6/dynamic_programming_in_elena_bf_loop/
  • ELENA Script Engine : compiling JavaScript file - https://www.reddit.com/r/elena_lang/comments/6h6nyz/elena_script_engine_compiling_javascript_file/
  • for time being keep SINGLE_THREAD_CONTEXT empty, after the migrating it
    must be made empty
  • arrange action for i386 / amd64 linux release
  • new opcode : fln - ppc64le, arm64
  • new opcode : fsin, fcos, farctan, fpi - ppc64le, arm64
  • setup pipeline for linux x86 & x86-64
  • ppc64le / aarch64 : fexp - improve quality / performace
  • test fexpdp opcode
  • sm : generate advances templates from vm console
  • elena vm : helloworld sample Windows x86-64, Linux x86 / x86-64 / ppc64le / aarch64
  • elena sm : script samples Windows x86-64, Linux x86 / x86-64 / ppc64le / aarch64
  • migrate all script engine tutorials : linix aarch64, linux ppc64le
  • x86-64 : multi-threading
  • review documentation - https://github.com/ELENA-LANG/elena-lang/wiki/ELENA-in-a-nutshell
  • elena vm : aarch64, ppc64
  • elena vm : ppc64
  • ppc64le : multi-threading
  • overloading the method return, put it in the first page as a feature
  • lazy expressions, put it in the first page as a feature
  • windows executable - support manifest
  • debugger info : save the path relative to the src60 path?
  • arm : uncomment loadv opcode : using and imm
  • arm / ppc : supporting indexes bigger than arg12 or arg16
  • rename movfrm to xmovfp
  • redesign : for 64 bit:object size offset should be 8, instead of 4
  • optimization : WinEncoder.convertChar (do not use the intermediate buffer)
  • external inline template should be private / internal. Currently it is not possible because
    it cannot be resolved by template generation
  • vm : on stop : unprotected / remove executable flags, on start - reverse the action
  • do:while : both statement are matched : do{ a } while(b) and do{ a } while{ b } which is not correct?
  • aarch64 : setting mask for size (createn, ...)
  • script module template
  • fix the following code : writeDisp32Hi, writeDisp32Low, writeXDisp32Hi, writeXDisp32Low in
    vm mode - correct base should be used;
  • VEH_HANDLER should exclude the current frame if it was invoked from external code (callext - should
    store the current frame in the extra variable, and clear it after the operation end)
  • setr - 32 / 64 references (two addressing modes)
  • win64 executable: 32bit opcodes for assigning can be used
  • ARM support #386 : writeRef32Hi, writeRef32Hi - for non virtual mode - should offset the address to be correctly mapped to opcode
  • support low and high part of addresses (for ppc64) - e.g. offset 80000000h offset - low, 80000000h - high, offset <<= 2
  • repeat-until statement
  • inside the method, "$name __decl" should return the method full name?
  • ncopy / lcopy
  • module template - to include basic import statement
  • module template - probably should include meta dictionary for attributes / types / ...
  • generic extension - should the output type be set?
  • do load self for expression with ret statement
  • new unit test : dispatchmr (both function and normal one)
  • test binary file reader / writer
  • test finally block with locally allocated variables
  • asmc : raise an error if the label was not resolved
  • interprete collatz scripts
  • translit : redesign an example using multi-value literal and make it constant
  • matrix sample : review the code, it should be possible to use the lambda function without specifying the exact output type
  • calc sample - supporting function
  • calc / js - dynamic version
  • rosetta code : Return multiple values using ELENA 6.0 feature
  • corex : tests - lock test, GC test, printing in one thread / calling GC in another
  • amd64 : implement system 5
  • test all samples for win x86-64
  • for windows x86-64 allocate shadow memory
  • isCompatble - cache the results
  • for linux amd64 allocate shadow memory
  • mt : note on creating closure - lock GC
  • examples : Sockets
  • elt tutorial (stand-alone / in IDE)
  • https://github.com/ELENA-LANG/elena-lang/wiki/ELENA-in-a-nutshell
  • tutorial : Multiple inheritance in ELENA
  • examples : manboy example - till 20
  • examples : tutorials
  • test : https://www.reddit.com/r/elena_lang/comments/7oa098/dynamic_programming_in_elena_call_your_code_from/
  • test : https://www.reddit.com/r/elena_lang/comments/7o3s8b/dynamic_programming_in_elena_evaluating_a_code_in/
  • test : https://www.reddit.com/r/elena_lang/comments/7o1zvq/dynamic_programming_in_elena_conditional/
  • test : https://www.reddit.com/r/elena_lang/comments/7nmib6/dynamic_programming_in_elena_bf_loop/
  • add new variant using multi ret - https://www.rosettacode.org/wiki/Return_multiple_values#Elena
  • sm : generate some basic templates from vm console - hello world sample
  • inno setup : x86-64
  • support mta_gui, vm_mta_console
  • review ppc64le - find a better solution to deal with n16_lo > 07FFFFh (see cmpn)
  • ppc64le,aarch64 : implement xdispatch i
  • do not generate a debug info for implicit class symbols
  • race condition by unboxing (e.g. weak if-else branching)
  • use direct reference for - BoolValue#true.Inverted
  • remove temporal solution for Map<Key,T> (see retrieve(int index, TKey key))
  • nullable variable / field - should be boxed only when required, otherwise it is a normal variable / field
  • warn if a variable / field can be nil (if the option is enabled)
  • MessageLiteral tutorial (program 4)
  • test elenasm for linux : i386, amd64, ppc64le, aarch64 (calc, interpreter, js)
  • an exeption inside windProc will corrupt the frame chain, so all onWMxxx handler must have try-catch statement
  • no method call / allocating must be allowed inside external block
  • find out why agenda sample raises an exception when the open file dialog is opened first time. Maybe something related to manifests? Currently this exception is ignored. The temporal code must be removed after solving the issue
  • snake game : text / gui version, using expression trees in real-life apps (see c#)
  • why IntNumber.add<'RealNumber>[2] has no byref handler
  • new unit test - xstore sp:0, -1 / xstore sp:1, -1
  • one meta list cannot have both symbols and lists; probably better to have two separate type of meta list
  • make sure all byte code optimization for x86 are added for x64
  • doc : multiple inheritance - tutorial
  • make sure the preloaded symbols declared in another module is loaded when that module is used
  • functional test - evaluate an expression using script engine (including extension - both normal and variadic, with overloads)
  • implement ExtensionMessage.equal
  • support subexpression for "?." and "." (e.g. object.__getClass().__dto_properties())
  • support function call with double colon (e.g. ::printing() - is always a function)
  • support $len _buffer for fixed size array in compile-time
  • redesign switch statement : it should be possible to use as an expression as well (so we cannot use => anymore : e.g.
    console.printLine(x => 1 { "first" } 2 { "second" } 3 { "third" }) ) console.printLine(x $sel 1 => "first", 2 => "second", 3 => "third")
  • elenavm : warn in the allocated size is bigger than maximal reserved (see ELENAWinVMMachine)
  • vm taple : too many alloc, they must be replaced with a single one (by executing a script in elt-cli)
  • warn if typecasting method returns itself, it leads to infinite call
  • optimization : proxy dispatcher
  • VMT output type list : try to reuse existing one (especially when implementing interfaces)
  • linux elc : support project collection
  • sending a weak message with a nil strong-typed arguments - the result will be different from the direct operation
  • HttpClient
  • WebApi
  • github action : build for linux
  • IDE migration #184 : linux simplest gui (refresh textview, onDocumentUpdate ...)
  • Mixins should support interfaces #590 : vm : InjectProxyTypeLA
  • Mixins should support interfaces #590 : implementing interface injection : strong interface
  • elenavm / elt for linux, helloworld gui sample (button)
  • elenavm : CreateThreadLA / StartThreadLA / SignalStopGCLA / WaitForSignalGCLA / SignalClearGCLA / WaitForSignalsGCLA
  • InjectProxyTypeLA
  • reuse freed thread slots
  • mt : make sure that if an exception happens inside lock statement, the deadlock is not created
  • extension cannot be used directly-
  • chat sample : use strongly typed command serialization
  • elc : debug / release mode : set high level of optimization for release
  • native support for Value operator with a pointer / reference
  • ppc64 / aarch64 : fix exclude / include opcodes (see x86)
  • static symbol should be thread-safe,
  • a field must be assigned, warn if not
  • threads : clean the perm table after the thread is stopped / freed
  • nillable single dispatcher : use direct reference to nilValue symbol
  • web server - weather forecast
  • LoadExtensionDispatcherLA : currently all preloaded symbols are loaded, but should only for the used namespace
  • generate code templates : project templates
  • casting pointer as int (reading an integer from the pointer)
  • syntax : using cast for user defined literal is not very clear
  • rosetta code : add description for $ string interpolation
  • User-defined string literals
  • user defined type alias
@arakov arakov added the backlog label Sep 22, 2023
@arakov arakov added this to the Backlog milestone May 6, 2024
arakov added a commit that referenced this issue May 24, 2024
arakov added a commit that referenced this issue May 31, 2024
* #590 : implementing functional test
* #620 : introducing out ref variable
* refactoring code - using out ref parameters
* warn if out variable is not assigned in the method
* [FIXED] ?. operator
* working on ide for linux
* [ADDED] #655 : new option to keep output terminal after the program ends
* [FIXED] retrieving a source for the reference modules
* [ADDED] auto-recompile option
* [FIXED] MTA : critical exception handler
* [FIXED] recent list - only 9 elements must be in the list
* [ADDED]#69 : GC statistics
* [ADDED] support project collection file
* [FIXED] nil cannot be returned for nil object - use default instead
* #650 : Calling a named constructor from an implicit default one

---------

Co-authored-by: Alex <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant