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

Iteration20 #640

Merged
merged 1 commit into from
Mar 21, 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
65 changes: 65 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,68 @@
## ELENA 6.0.8
*21.03.2024*

- ELENA
- [ADDED] an opcode LNEG

- ELC
- [ADDED] native negate operation for long integers
- [ADDED] #588 - Operation with int constant
- [ADDED] multi-profiles per a single project file; new option -l<profile-name>
- [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

- API
- [ADDED] sqlite module
- [FIXED] string.toUpper() : returns a string with an incorrect length
- [FIXED] windproc
- [ADDED] xforms

- SAMPLES
- [ADDED] sqlite_test
- [FIXED] Rosetta Code : Interactive programming (repl), Vigen�re cipher
- [ADDED] c_a_g sample
- [ADDED] agenda sample
- [ADDED] graph sample

- Tools
- [ADDED] support for stdcall for win32

- IDE
- [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

## ELENA 6.0.7
*11.02.2024*

- ELENA
- [ADDED]meta command #load, #clear
- [ADDED]#563:Extended statement templates
- [FIXED]#508 - working on multi-value assigning
- [FIXED]#86 - primitive operations : int + long
- [FIXED]"this self" for an extension
- [ADDED]system : Int8Number, UShortNumber
- [ADDED]#629 - Read-only fields
- [FIXED]#613 - bytecode optimization
- [FIXED]#623 - Overriding property set accessor
- [FIXED]#601 - bytecode optimization
- [ADDED]evaluate an expression in compile-time if possible
- [ADDED]#562 - Nullable support

## ELENA 6.0.6
*19.10.2023*

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2017 ELENA Language Project
Copyright (c) 2017-2024 ELENA Language Project

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.0.7
6.0.8
8 changes: 8 additions & 0 deletions asm/aarch64/core60.asm
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,14 @@ inline %1Eh

end

// ; lneg
inline % 1Fh

mov x17, 0
sub x9, x17, x9

end

// ; coalesce
inline % 20h

Expand Down
21 changes: 21 additions & 0 deletions asm/amd64/core60.asm
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,13 @@ inline %1Eh

end

// ; lneg
inline % 1Fh

neg rdx

end

// ; coalesce
inline % 20h

Expand Down Expand Up @@ -2909,6 +2916,20 @@ inline %7F1h

end

// ; xstoresir :0, -1
inline %9F1h

mov r10, -1

end

// ; xstoresir :1, -1
inline %0AF1h

mov r11, -1

end

// ; extopenin
inline %0F2h

Expand Down
7 changes: 7 additions & 0 deletions asm/ppc64le/core60.asm
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,13 @@ inline %1Eh

end

// ; lneg
inline % 1Fh

neg r14, r14

end

// ; coalesce
inline % 20h

Expand Down
63 changes: 54 additions & 9 deletions asm/x32/core60.asm
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,13 @@ labYGCollect:
push esi
push ecx

// ; save perm roots
mov esi, [data : %CORE_GC_TABLE + gc_perm_start]
mov ecx, [data : %CORE_GC_TABLE + gc_perm_current]
sub ecx, esi
push esi
push ecx

// ; collect frames
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
mov ecx, eax
Expand Down Expand Up @@ -485,7 +492,7 @@ end

// ; exclude
inline % 10h

push ebp
mov [data : %CORE_SINGLE_CONTENT + tt_stack_frame], esp

Expand All @@ -494,7 +501,7 @@ end
// ; include
inline % 11h

add esp, 4
add esp, 4

end

Expand Down Expand Up @@ -635,6 +642,16 @@ inline %1Eh

end

// ; lneg
inline % 1Fh

not edx
not eax
add eax, 1
adc edx, 0

end

// ; coalesce
inline % 20h

Expand Down Expand Up @@ -2034,6 +2051,9 @@ inline %0CAh
pop ebp

add esp, 8
pop eax
mov [data : %CORE_SINGLE_CONTENT + tt_stack_frame], eax

pop ebp

end
Expand All @@ -2045,6 +2065,10 @@ inline %1CAh
pop ebp

add esp, 8

pop eax
mov [data : %CORE_SINGLE_CONTENT + tt_stack_frame], eax

pop ebp

end
Expand Down Expand Up @@ -3210,13 +3234,22 @@ inline %6F1h

end

// ; xstoresir :0, -1
inline %9F1h

mov esi, __ptr32_2

end

// ; extopenin
inline %0F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand All @@ -3239,9 +3272,11 @@ end
inline %1F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand All @@ -3255,9 +3290,11 @@ end
inline %2F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand All @@ -3272,9 +3309,11 @@ end
inline %3F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand All @@ -3291,9 +3330,11 @@ end
inline %4F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand All @@ -3311,9 +3352,11 @@ end
inline %5F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand All @@ -3332,9 +3375,11 @@ end
inline %6F2h

push ebp
mov eax, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push eax

mov ebp, eax
xor eax, eax
mov ebp, [data : %CORE_SINGLE_CONTENT + tt_stack_frame]
push ebp
push eax
mov ebp, esp
Expand Down
Loading