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

Iteration34 (#698) #699

Merged
merged 1 commit into from
Oct 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading