summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
|
* Rebrand preambles to RedotSpartan3222024-10-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | (cherry picked from commit e8542b06acca3c1bdeee4b528411771f0819f084) Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* Speed up `GDScriptLanguage::finish`Mikael Hermansson2024-07-181-4/+15
|
* Merge pull request #92609 from rune-scape/rune-relax-gds-guardsRémi Verschelde2024-06-281-125/+99
|\ | | | | | | GDScript: Partially allow member lookup on invalid scripts
| * GDScript: partially allow some functions on invalid scriptsrune-scape2024-06-021-125/+99
| | | | | | | | | | + always default initialize static variables + dont invalidate script when dependant scripts don't compile/resolve
* | Fix synchronization of global class nameHilderin2024-06-251-1/+1
| |
* | Merge pull request #92177 from KoBeWi/literally_wtfRémi Verschelde2024-06-181-1/+1
|\ \ | | | | | | | | | Fix broken built-in script reloading
| * | Fix broken script reloadingkobewi2024-05-201-1/+1
| |/
* / Fix mismatched external parser with binary exportsHilderin2024-06-141-2/+10
|/
* GDScript: fix segfault on invalid scriptrune-scape2024-05-171-0/+48
|
* Merge pull request #91909 from KoBeWi/have_fun_reviewing_thisRémi Verschelde2024-05-141-2/+3
|\ | | | | | | Use Core/Scene stringnames consistently
| * Use Core/Scene stringnames consistentlykobewi2024-05-131-2/+3
| |
* | Revert "GDScript: Implement get_dependencies()"Rémi Verschelde2024-05-131-7/+2
|/ | | | | | | | | | | | | This reverts commit dc73440f899e6f32de748787e946ad762771fda0. This commit in some form is needed to fix handling of dependencies on export, but as it's also used for import, it's exposing some pre-existing issues which we need to solve first. So reverting for now to give ourselves time to iron this out for a future Godot release. Fixes #91726.
* Add shorthand for using singleton string nameskobewi2024-05-111-3/+3
|
* Merge pull request #91472 from vnen/gdscript-default-static-variables-non-toolRémi Verschelde2024-05-031-0/+24
|\ | | | | | | GDScript: Initialize static variables with defaults in-editor
| * GDScript: Initialize static variables with defaults in-editorGeorge Marques2024-05-021-0/+24
| | | | | | | | | | | | | | | | | | | | | | When the script is not marked as `@tool` the static constructor is not called and thus the variables contain `null` by default. But since some validated operations requires a valid value, this would cause a crash. This commit solves this by initializing the static variables with a default value based on their types in the editor, when they are not marked as `@tool`, so if some `@tool` script access them, they will have a valid typed value, avoiding the crash.
* | GDScript: Call implicit ready on base script firstGeorge Marques2024-05-021-10/+13
|/ | | | | | | It is generally expected that the base class is called before the inherited clas. This commit implements this behavior for the implicit ready function (`@onready` annotation) to make it consistent with the expectations.
* Merge pull request #90860 from vnen/gdscript-get-dependenciesRémi Verschelde2024-04-291-2/+7
|\ | | | | | | GDScript: Implement `get_dependencies()`
| * GDScript: Implement get_dependencies()George Marques2024-04-181-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | The parser and analyzer now track the dependencies of the script and return the list when the resource loader ask for them. What is considered a dependency: - Any `preload()` call. - The base script this one extends. - Any identifier, including types, that refers to global scripts. - Any autoload singleton reference.
* | GDScript: invalidate GDScriptParserRef when reloadingrune-scape2024-04-181-4/+12
|/
* Add methods to get argument count of methodsA Thousand Ships2024-03-101-0/+34
| | | | | | | | Added to: * `Callable`s * `Object`s * `ClassDB` * `Script(Instance)`s
* GDScript: Fix paths in `ResourceFormatLoaderGDScript::load()`Danil Alexeev2024-02-291-2/+2
|
* Enhance cache modes in resource loadingPedro J. Estébanez2024-02-261-1/+2
| | | | | | | - Unify documentation, hoping to clear misconcepctions about about propagation of the cache mode across dependant loads. - Clarify in docs that `CACHE_MODE_REPLACE` now also works on the main resource (from #87008). - Add two recursive modes, counterparts of `CACHE_MODE_REPLACE` and `CACHE_MODE_IGNORE`, since it seems some need them (see #59669, #82830). - Let resources, even loaded with one of the ignore-cache modes, get a path, which is useful for tools.
* GDScript: Canonicalize script path in FQCNDanil Alexeev2024-02-261-9/+4
|
* Merge pull request #82554 from dsnopek/gdextension-placeholdersRémi Verschelde2024-02-201-1/+1
|\ | | | | | | Allow registering "runtime classes" from GDExtension
| * Allow registering "runtime classes"David Snopek2024-02-201-1/+1
| |
* | Merge pull request #88365 from dalexeev/gds-fix-gdc-exportRémi Verschelde2024-02-151-0/+12
|\ \ | | | | | | | | | GDScript: Fix extension comparison for exported scripts
| * | GDScript: Fix extension comparison for exported scriptsDanil Alexeev2024-02-151-0/+12
| |/
* / Add const lvalue ref to core/* container parametersMuller-Castro2024-02-141-1/+1
|/
* Merge pull request #81629 from rune-scape/more-gdscript-depsRémi Verschelde2024-02-121-26/+29
|\ | | | | | | GDScript: Include lambda dependencies
| * GDScript: Include lambda dependenciesrune-scape2023-12-261-26/+29
| |
* | GDScript: Enable compression on exportGeorge Marques2024-02-081-1/+1
| | | | | | | | | | | | | | | | Besides the regular option to export GDScript as binary tokens, this also includes a compression option on top of it. The binary format needs to encode some information which generally makes it bigger than the source text. This option reduces that difference by using Zstandard compression on the buffer.
* | GDScript: Reintroduce binary tokenization on exportGeorge Marques2024-02-081-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds back a function available in 3.x: exporting the GDScript files in a binary form by converting the tokens recognized by the tokenizer into a data format. It is enabled by default on export but can be manually disabled. The format helps with loading times since, the tokens are easily reconstructed, and with hiding the source code, since recovering it would require a specialized tool. Code comments are not stored in this format. The `--test` command can also include a `--use-binary-tokens` flag which will run the GDScript tests with the binary format instead of the regular source code by converting them in-memory before the test runs.
* | Merge pull request #86999 from AThousandShips/init_noteRémi Verschelde2024-02-081-2/+4
|\ \ | | | | | | Improve error message when a GDScript instance fails to be constructed
| * | Improve error message when a GDScript instance fails to be constructedA Thousand Ships2024-01-091-2/+4
| | | | | | | | | | | | Co-authored-by: Slashscreen <SlashScreen@users.noreply.github.com>
* | | Revert "Add UID support to GDScript files"Rémi Verschelde2024-01-291-111/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c7f68a27ec4b825302998eeb5a400f869cd21cf7. We still think GDScript files need UIDs to allow safe refactoring, but we're still debating what form those should take exactly. So far there seems to be agreement that it shouldn't be done via an annotation as implemented here, so we're reverting this one for now, to revisit the feature in a future PR.
* | | Remove unnecessary `this->` expressionsA Thousand Ships2024-01-291-10/+10
| | |
* | | Merge pull request #67132 from ↵Rémi Verschelde2024-01-181-11/+111
|\ \ \ | | | | | | | | | | | | | | | | | | | | KoBeWi/This_commit_message_is_auto-generated._Do_not_modify_it- Add UID support to GDScript files
| * | | Add UID support to GDScript fileskobewi2024-01-171-11/+111
| |/ /
* | | Merge pull request #86676 from rune-scape/sparse-script-reloadYuri Sizov2024-01-171-15/+14
|\ \ \ | |/ / |/| | | | | GDScript: Hot-reload changed scripts only
| * | Hot-reload only changed scriptsrune-scape2024-01-021-15/+14
| |/
* / GDScript: Lambda hotswap fixesrune-scape2024-01-041-91/+38
|/
* Fix missing time for some script functions in profilermsreis2023-12-191-1/+70
| | | | | | | | | 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
* Merge pull request #85603 from eldidou/speed-up-get-must-clear-dependenciesYuri Sizov2023-12-161-25/+16
|\ | | | | | | Speed up `GDScript::get_must_clear_dependencies()`
| * Speed up GDScript::get_must_clear_dependencies()eldidou2023-12-091-25/+16
| | | | | | | | | | | | | | | | get_must_clear_dependencies() has a N^3*log(N) time complexity, and this can very quickly slow down the quitting process as more gdscripts are added in a project. This change improves it to N^2*log(N). Instead of using all the inverted dependencies, we do the same with all (non-inverted) dependencies, which is N times faster. Fixes #85435
* | Remove unnecessary assignmentsWilson E. Alvarez2023-12-131-2/+1
|/ | | | Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
* Merge pull request #85373 from DmitriySalnikov/update_singletonsRémi Verschelde2023-12-041-0/+13
|\ | | | | | | Fix updating cached singletons when reloading GDScripts
| * Update cached singletons when reloading GDScriptsDmitriySalnikov2023-11-301-0/+13
| |
* | Fix GDScript thread-exit routine assuming thread-enter was calledPedro J. Estébanez2023-11-271-0/+6
|/
* Fixup thread-owned lambda bookkeeping on thread exit (take 2)Pedro J. Estébanez2023-11-231-13/+74
|