Commit Graph

153 Commits (dec5a373d97cbadce5e1fabe6095ae9957ff3aa6)

Author SHA1 Message Date
Lukas Tenbrink acefbbbbcd Add support for profiling GDScript with tracy.
This adds macro `GodotProfileZoneGroupedFirstScript`, and uses interning for speedy lookups.

Co-authored-by: Samuel Nicholas <nicholas.samuel@gmail.com>
2025-11-28 16:36:36 +07:00
Thaddeus Crews f50d7fa1e8
Merge pull request #110709 from DeeJayLSP/dict-reserve
Add `reserve()` to `Dictionary`, apply to constructors on GDScript VM
2025-10-20 18:09:58 +07:00
Lukas Tenbrink 1db0a60dc0 Replace `std::size` usage with `std_size` to avoid `<iterator>` include. 2025-10-05 00:26:11 +07:00
Danil Alexeev 5f0ecf4c8c
GDScript: Remove some unnecessary booleans
Co-authored-by: HolonProduction <holonproduction@gmail.com>
2025-10-02 13:36:03 +07:00
DeeJayLSP 8a7a0faa75 Add `reserve()` to `Dictionary`, apply to constructors on GDScript VM 2025-09-23 16:57:52 +07:00
Shadows_of_Fire b18beb2cc2 Elide unnecessary copies in `CONSTRUCT_TYPED_*` opcodes 2025-09-20 00:00:18 +07:00
Serhii Snitsaruk a095c5e3fa
GDScript call stack as reverse linked list with fixed coroutines
* GDScript call stack as reverse linked list with issues fixed
(originally proposed in 91006).
* Fix coroutine issues with call stack by resuming async call chain
inside `GDScriptFunction::call()`.
* This fixes corrupted line numbers for coroutines in the debugger and
backtrace (106489).

Co-authored-by: Juan Linietsky <reduzio@gmail.com>
2025-06-30 11:37:42 +07:00
Mikael Hermansson 1b7b44390a Fix errors not being emitted when debugger breaks on script errors 2025-06-18 11:52:26 +07:00
Rémi Verschelde d1083c9722
Improve error messages for method calls expecting only 1 argument 2025-06-12 17:02:59 +07:00
Thaddeus Crews 0f05e91889
Merge pull request #82808 from dalexeev/gds-vararg
GDScript: Add support for variadic functions
2025-06-09 17:08:48 +07:00
Danil Alexeev a13fbc6e3e
GDScript: Optimize non-constant `for`-`range` 2025-06-09 22:04:39 +07:00
Danil Alexeev ee121ef80e
GDScript: Add support for variadic functions 2025-06-09 21:53:05 +07:00
Thaddeus Crews 86415f1732
Merge pull request #99150 from dalexeev/gds-fix-callable-call-errror-text
GDScript: Fix `Callable` call error text
2025-06-09 12:31:39 +07:00
Yufeng Ying 5484ec0be2 Remove deadcode in GDScript function CallState. 2025-05-09 19:07:50 +07:00
Danil Alexeev 2b30f23595
GDScript: Fix `Callable` call error text 2025-05-02 18:30:35 +07:00
Thaddeus Crews 28089c40c1
Merge pull request #91006 from reduz/live-backtrace
Ability to print and log script backtraces
2025-04-24 17:18:52 +07:00
reduz d1dcb40d56 Ability to print and log script backtraces
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2025-04-24 18:54:41 +07:00
Thaddeus Crews 5edb235018
CI: Bump various pre-commit hooks 2025-04-07 08:23:35 +07:00
kobewi 75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +07:00
Lukas Tenbrink e34f1f504c Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase. 2025-02-07 14:57:48 +07:00
Yufeng Ying a43f90b89d Remove unused variable in GDScriptLanguage. 2024-12-20 00:48:06 +07:00
Yevhen Babiichuk (DustDFG) 8c29ef38fc Add some comments to #endif's where it will easier life
Also added some new line to improve readability

Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: Danil Alexeev <danil@alexeev.xyz>
2024-10-21 14:31:45 +07:00
SlugFiller f14af8b2d5 Enable use of Labels as Values feature in Clang when not wrapped by GCC 2024-10-02 15:22:37 +07:00
Thaddeus Crews 9853a69144
Implement typed dictionaries 2024-09-04 10:27:26 +07:00
Danil Alexeev 2d8f6c1b1d
GDScript: Fix message when calling non-tool function in tool mode 2024-08-27 12:30:15 +07:00
Rémi Verschelde ab67408390
Merge pull request #94238 from RandomShaper/ref_is_now_rc
Make errors on `RefCounted.free()` more accurate
2024-07-17 11:43:32 +07:00
Pedro J. Estébanez 76bfe8e0fd Make errors on RefCounted.free() more accurate 2024-07-15 08:51:42 +07:00
Danil Alexeev b4cb7ec2bb
GDScript: Fix implicit cast to typed array when passing parameter 2024-07-07 13:43:09 +07:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +07:00
kobewi a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +07:00
K. S. Ernest (iFire) Lee f9b488508c
Add PackedVector4Array Variant type
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +07:00
A Thousand Ships c4e24d2b3b
[GDScript] Correctly report invalid read-only access 2024-05-01 12:28:47 +07:00
Rémi Verschelde 731ea17dd4
Merge pull request #91192 from vnen/gdscript-validated-native-static-calls
GDScript: Perform validated calls with static methods
2024-05-01 09:55:04 +07:00
Danil Alexeev 2778069025
GDScript: Fix object iterator opcodes 2024-04-26 09:21:55 +07:00
George Marques 7ca038effa
GDScript: Perform validated calls with static methods
When the types are validated at compile time, this type of call runs
faster. It is already used for instance methods, this adds this
optimization to native static methods as well.
2024-04-25 21:19:40 +07:00
Danil Alexeev 27d7760f41
GDScript: Fix uninitialized local variables not being reset 2024-03-30 23:25:30 +07:00
Juan Linietsky 24fe0715b5 Promote CowData to 64 bits
Fixes a lot of bugs, please help me fill the list.
2024-01-19 17:41:10 +07:00
Rémi Verschelde 2bffa3cbc5
Merge pull request #82639 from golfinq/gdscript-improve-indexing-error
GDScript: Improve error messages for invalid indexing
2024-01-04 16:38:58 +07:00
msreis f1cc14d525 Fix missing time for some script functions in profiler
Fixes the issue by adding a mechanism by which the functions that were
previously disappearing can be profiled too. This is optional with
an editor setting, since collecting more information naturally slows the engine
further while profiling.

Fixes #23715, #40251, #29049
2023-12-19 19:42:21 +07:00
Thaddeus Crews 5cf0d772bc
Change container_element_type to vector container 2023-12-05 08:51:49 +07:00
George Marques 08e3f30299
GDScript: Don't optimize division and modulo on debug
Since the validated operators don't have checks for division by zero,
use the regular evaluator in debug which has those checks.
2023-10-18 14:12:51 +07:00
Danil Alexeev 0c2202c56e
GDScript: Fix incorrect error message for utility functions 2023-10-16 14:09:57 +07:00
George Marques 4a7d49a89a
GDScript: Replace ptrcalls on MethodBind to validated calls
This improves the performance of typed calls to engine methods when the
argument types are exact.

Using validated calls delegate more of the work the core instead of
doing argument unpacking in the VM. It also does not need different
instructions for each return type, simplifying the code.
2023-10-06 11:15:44 +07:00
Rémi Verschelde 5efbed51cc GDScript: Improve error messages for invalid indexing
These errors are very common when using an invalid property name
or calling on an object of the wrong type, and the previous message
was a bit cryptic for users.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Co-authored-by: golfinq <golfinqz@gmail.com>
2023-10-02 14:23:11 +07:00
Danil Alexeev aff767ef07
Fix expected argument count for `Callable` call errors 2023-09-29 20:00:10 +07:00
Rémi Verschelde 7a29189858
Merge pull request #81200 from RandomShaper/gd_vm_msvc
Optimize GDScript VM codegen for MSVC
2023-09-25 17:18:19 +07:00
Pedro J. Estébanez 9c15e2f24b Optimize GDScript VM codegen for MSVC 2023-09-25 16:32:36 +07:00
Danil Alexeev b1eb737719
GDScript: Fix some lambda bugs 2023-09-14 14:22:23 +07:00
Danil Alexeev 462d8f4752
GDScript: Fix `get_*_list()` methods return incorrect info 2023-09-04 00:21:03 +07:00
Yuri Sizov f6e02dc437 Merge pull request #79990 from vnen/gdscript-assume-op-types
GDScript: Optimize operators by assuming the types
2023-08-01 17:25:52 +07:00