Skip to content

Commit

Permalink
Merge pull request #699 from ELENA-LANG/develop
Browse files Browse the repository at this point in the history
Iteration34 (#698)
  • Loading branch information
arakov authored Oct 19, 2024
2 parents 581458e + a92df96 commit 493db41
Show file tree
Hide file tree
Showing 169 changed files with 3,959 additions and 1,969 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/msbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ env:
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: Release

BUILD_TAG: 6.4.3
BUILD_TAG: 6.5.0

permissions:
contents: read
Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
- [FIXED] ?? operator
- [ADDED] static constructor
- [ADDED] internal symbols
- [ADDED] supporting async methods
- [ADDED] supporting indexed methods
- [ADDED] indexed internal methods can be declared in a closed class

- ELC
- [ADDED] new option -el5 / -el6 (default) - specifying grammar compatible to ELENA 5.x or 6.x
Expand All @@ -19,6 +22,9 @@
- [FIXED] calling a method directly with nil argument when allowed
- [FIXED] single dispatch of a private / internal / protected method
- [FIXED] closure argument types can be specified by an expected type
- [FIXED] it is not possible to declare internal default constructor
- [FIXED] #675 - Using ++ operator with a weak type
- [FIXED] incorrect typecast handler signature for the classes inheriting template-based ones

- VM

Expand All @@ -36,18 +42,32 @@
- [ADDED] #154 : system'threading: ManualResetEvent, AutoResetEvent, CountDownEvent
- [ADDED] system'threading : Task
- [ADDED] system'io'Directory : static getFiles / getFiles<string>
- [ADDED] File : saveContent, readContent, readWideContent
- [ADDED] system'io'threading : asyncStreamOp extension
- [ADDED] system'threading.Task - sleep<int>
- [ADDED] extensions'threading : outputConcurrentOp extension
- [REDUX] all symbols must start with a capital letter
- [ADDED] system'threading : Task<TResult>
- [FIXED] system'objectOp.__getClassName[1]

- SAMPLES
- [ADDED] threadpool
- [ADDED] tasks
- [ADDED] asyncsamples
- [ADDED] task sample 2

- Tools
- [ECV][ADDED] displaying class attributes
- [FIXED][ldoc] system-threading-.html must not be generated
- [FIXED][ldoc] system-threading : generate only templates declared in the module

- IDE
- [FIXED] #679 : class already exist
- [FIXED] debug source path
- [ADDED] it is possible to set the target type for a single file project
- [FIXED] project options - debug command arguments
- [FIXED] correct debug info of the constructor self variable
- [FIXED] #413 - boxing variadic argument

## ELENA 6.3.0

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.4.3
6.5.0
4 changes: 2 additions & 2 deletions asm/aarch64/core60.asm
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// ; --- Predefined References --
define INVOKER 10001h
define GC_ALLOC 10002h
define VEH_HANDLER 10003h
define GC_COLLECT 10004h
Expand Down Expand Up @@ -118,7 +117,7 @@ structure %SYSTEM_ENV
dq data : %CORE_GC_TABLE
dq data : %CORE_SINGLE_CONTENT
dq 0
dq code : %INVOKER
dq 0
dq code : %VEH_HANDLER
// ; dd GCMGSize
// ; dd GCYGSize
Expand Down Expand Up @@ -3703,6 +3702,7 @@ labLoop:
b labLoop

labEnd:
// ; init x0, x1 with zero (and in all variants)

end

Expand Down
36 changes: 0 additions & 36 deletions asm/aarch64/core60_lnx.asm
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,12 @@
// ; ==== Overridden Command Set ==

// ; --- Predefined References --
define INVOKER 10001h
define VEH_HANDLER 10003h

define CORE_ET_TABLE 2000Bh

// ; ==== System commands ===

// INVOKER(function, arg)
procedure % INVOKER

// ; x0 - function
// ; x1 - arg

stp x19, x20, [sp, #-16]!
stp x21, x22, [sp, #-16]!
stp x23, x24, [sp, #-16]!
stp x25, x26, [sp, #-16]!
stp x27, x28, [sp, #-16]!
stp x29, x30, [sp, #-16]!

mov x3, 0
stp x3, x3, [sp, #-16]!
mov x29, sp

mov x8, x0
mov x0, x1

blr x8
mov x0, x10

add sp, sp, #16
ldp x29, x30, [sp], #16
ldp x27, x28, [sp], #16
ldp x25, x26, [sp], #16
ldp x23, x24, [sp], #16
ldp x21, x22, [sp], #16
ldp x19, x20, [sp], #16

ret x30

end

// VEH_HANDLER()
procedure % VEH_HANDLER

Expand Down
42 changes: 35 additions & 7 deletions asm/amd64/core60.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// !! NOTE : R15 register must be preserved

// ; --- Predefined References --
define INVOKER 10001h
define GC_ALLOC 10002h
define VEH_HANDLER 10003h
define GC_COLLECT 10004h
Expand Down Expand Up @@ -118,7 +117,7 @@ structure %SYSTEM_ENV
dq data : %CORE_GC_TABLE
dq data : %CORE_SINGLE_CONTENT
dq 0
dq code : %INVOKER
dq 0
dq code : %VEH_HANDLER
// ; dd GCMGSize
// ; dd GCYGSize
Expand Down Expand Up @@ -526,7 +525,7 @@ inline %17h
setl cl
cmp rbx, rax
setg ch
cmp ecx, 0
test ecx, ecx

end

Expand Down Expand Up @@ -1803,8 +1802,7 @@ end
// ; cmpr 0
inline %1C0h

mov rax, 0
cmp rbx, rax
test rbx, rbx

end

Expand Down Expand Up @@ -1970,7 +1968,10 @@ inline %0CAh
mov rsp, rbp
pop rbp

add rsp, 24
add rsp, 16
pop rbx
mov [data : %CORE_SINGLE_CONTENT + tt_stack_frame], rbx

pop rbp
pop r15
pop r14
Expand All @@ -1989,7 +1990,10 @@ inline %1CAh
mov rsp, rbp
pop rbp

add rsp, 24
add rsp, 16
pop rbx
mov [data : %CORE_SINGLE_CONTENT + tt_stack_frame], rbx

pop rbp
pop r15
pop r14
Expand Down Expand Up @@ -3023,6 +3027,8 @@ inline %0F2h
sub rsp, __arg32_1
mov rdi, rsp
rep stos
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3060,6 +3066,8 @@ inline %1F2h
push rbp
push rax
mov rbp, rsp
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3099,6 +3107,8 @@ inline %2F2h
mov rbp, rsp
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3138,6 +3148,8 @@ inline %3F2h
mov rbp, rsp
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3179,6 +3191,8 @@ inline %4F2h
push rax
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3220,6 +3234,8 @@ inline %5F2h
push rax
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3257,6 +3273,8 @@ inline %6F2h
sub rsp, __arg32_1
mov rdi, rsp
rep stos
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3289,6 +3307,8 @@ inline %7F2h

push rbp
mov rbp, rsp
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3323,6 +3343,8 @@ inline %8F2h
mov rbp, rsp
push 0
push 0
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3358,6 +3380,8 @@ inline %9F2h
mov rbp, rsp
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3395,6 +3419,8 @@ inline %0AF2h
push rax
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down Expand Up @@ -3432,6 +3458,8 @@ inline %0BF2h
push rax
push rax
push rax
mov r10, rax
mov r11, rax

end

Expand Down
49 changes: 4 additions & 45 deletions asm/amd64/core60_lnx.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// ; --- Predefined References --
define INVOKER 10001h
define GC_ALLOC 10002h
define VEH_HANDLER 10003h
define GC_COLLECT 10004h
define PREPARE 10006h

define SYSTEM_ENV 20002h
Expand All @@ -18,6 +18,9 @@ define gc_mg_start 0038h
define gc_mg_current 0040h
define gc_end 0048h
define gc_mg_wbar 0050h
define gc_perm_start 0058h
define gc_perm_end 0060h
define gc_perm_current 0068h

define et_current 0008h
define tt_stack_frame 0010h
Expand All @@ -30,50 +33,6 @@ define elObjectOffset 0010h

// ; ==== System commands ===

// INVOKER(function, arg)
procedure % INVOKER

// ; RDI - function
// ; RSI - arg
// ; save registers
push 0
push rsi
push rdi
push rbx
push rbp
push r12
push r13
push r14
push r15

// ; declare new frame
mov rax, rdi
xor rdi, rdi
push 0 // ; FrameHeader.previousFrame
push 0 // ; FrameHeader.reserved
mov rbp, rsp // ; FrameHeader
push rdi
push rsi // ; arg

call rax
add rsp, 32 // ; clear FrameHeader+arg
mov rax, rbx

// ; restore registers
pop r15
pop r14
pop r13
pop r12
pop rbp
pop rbx
pop rdi
pop rsi
add rsp, 8
ret

end

// VEH_HANDLER()
procedure % VEH_HANDLER

Expand Down
Loading

0 comments on commit 493db41

Please sign in to comment.