summaryrefslogtreecommitdiff
path: root/modules/gdscript
AgeCommit message (Collapse)Author
2020-11-26Merge pull request #43894 from vnen/gdscript-some-fixesRémi Verschelde
Some GDScript fixes
2020-11-26GDScript: Don't clear depended parsers too soonGeorge Marques
It can wait until the analyzer itself is destructed, otherwise other phases might be using freed parsers.
2020-11-26GDScript: Give an error if dependency can't be parsedGeorge Marques
Otherwise this may lead to a crash when the dependency is not present.
2020-11-25fixes crash for OPCODE_CAST_TO_NATIVE opcode in gdscript disassemlberJordan Schidlowsky
2020-11-25Merge pull request #43856 from vnen/gdscript-some-fixesRémi Verschelde
A couple of GDScript fixes
2020-11-25GDScript: Fix return of cast expression on compilationGeorge Marques
It was mistakenly returning the source instead of the result.
2020-11-25GDScript: Fix range() being treated as array when optimized outGeorge Marques
The call of range() in a for loop is optimized to use int or vectors, to avoid allocating an array, however the type was set as array still. With the new typed VM this is an issue as the type mismatch the actual value, resulting in wrong instructions to be selected.
2020-11-25GDScript: Fix mishandling of stack pointersGeorge Marques
- Replace the for loop temporaries by locals. They cause conflicts with the stack when being popped, while locals are properly handled in the scope. - Change the interface for the codegen so the for loop list doesn't live through the whole block if it's a temporary. - Keep track of the actual amount of local variables in the stack. Using the size of the map is misleading in cases where multiple locals have the same name (which is allowed when there's no shadowing). - Added a few debug checks for temporaries, to avoid them being wrongly manipulated in the future. They should not live more than a line of code. - Rearrange some of compiler code to make sure the temporaries don't live across blocks.
2020-11-21GDScript: Add faster instruction for validated constructorGeorge Marques
Only for built-in types.
2020-11-21GDScript: Add typed iterate instructionsGeorge Marques
2020-11-21GDScript: Add faster call instructions for builtin methodsGeorge Marques
Methods from builtin types can be called by using the function pointer when the argument and base types are known at compile time.
2020-11-21GDScript: Add faster call instructions for native methodsGeorge Marques
2020-11-21GDScript: Add speficic set/get instructionsGeorge Marques
When the base type is known at compile-time, we can get a direct function pointer that is faster than the regular set/get paths.
2020-11-21GDScript: Add faster operator for known typesGeorge Marques
It now uses the direct operator function pointer, which increases performance in evaluation.
2020-11-21GDScript: Gather instructions arguments beforehandGeorge Marques
Almost all instructions need variant arguments. With this change they are loaded in an array before each instruction call. This makes the addressing code be localized to less places, improving compilation overhead and binary size by a small margin. This should not affect performance.
2020-11-21GDScript: Split Function code into multiple filesGeorge Marques
To improve organization and reduce the size of compilation units.
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-13GDScript: Fix native class not set with inheritanceGeorge Marques
2020-11-11Refactor variant built-in methods yet again.reduz
* Using C-style function pointers now, InternalMethod is gone. * This ensures much better performance in typed code. * Renamed builtin_funcs to utility_funcs, to avoid naming confusion
2020-11-10Minor clamp and float fixesAaron Franke
2020-11-10Fix completion for built-in load functionGustav
2020-11-10Merge pull request #43423 from Calinou/doc-assert-avoid-side-effectsRémi Verschelde
Clarify that code in `assert()` should avoid side effects
2020-11-09Variant: Sync docs with new constructors, fixups after #43403Rémi Verschelde
Change DocData comparators for MethodDoc and ArgumentDoc to get a better ordering of constructors.
2020-11-09Clarify that code in `assert()` should avoid side effectsHugo Locurcio
2020-11-09Variant: Rename Type::_RID to Type::RIDRémi Verschelde
The underscore prefix was used to avoid the conflict between the `RID` class name and the matching enum value in `Variant::Type`. This can be fixed differently by prefixing uses of the `RID` class in `Variant` with the scope resolution operator, as done already for `AABB`.
2020-11-09Refactored variant constructor logicreduz
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-11-07Refactored variant setters/gettersreduz
-Discern between named, indexed and keyed -Get direct access to functions for typed GDScript and GDNative bindings -Small changes to some classes in order to work with the new setget binder
2020-11-06Exposed randi_range to global funcs + renamed rand_range to randf_rangeYuri Roubinsky
2020-11-05Merge pull request #42724 from theoway/error_message_fix_call_recursiveRémi Verschelde
Fixes the misleading message when a non-existing function name is passed to TreeItem.call_recursive()
2020-11-03Merge pull request #41516 from Lunatoid/allow-object-newRémi Verschelde
Fixed ParseError when calling Object.new()
2020-10-25Optimize SVG using `svgcleaner --multipass`Hugo Locurcio
This decreases the editor binary size by about 8 KB.
2020-10-23Shows ColorRect in Color constants autocompletionYuri Roubinsky
2020-10-20Merge pull request #42943 from vnen/gdscript-local-scope-fixRémi Verschelde
Fix handling of scope for local GDScript variables
2020-10-20Merge pull request #41983 from ThakeeNathees/array-const-folding-bug-fixGeorge Marques
Array/Dictionary Nodes no more reduced to array/dictionary variant
2020-10-20GDScript: Fix handling of scope for local variablesGeorge Marques
2020-10-20GDScript: Add initialization for the language before debug testsGeorge Marques
This ensures that the tests will use a full environment with correct settings so global classes and autoloads can be properly found.
2020-10-19Merge pull request #42067 from ThakeeNathees/for-loop-stack-overriden-fixGeorge Marques
GDScript: for loop override stack variable bug fix
2020-10-17Fixes the misleading error message for call_recursive method for TreeItemsUmang Kalra
2020-10-14Link the Random number generation tutorial in the class referenceHugo Locurcio
2020-10-08Merge pull request #41881 from ThakeeNathees/crash-on-builtin-constructorGeorge Marques
GDScript crash on builtin type constructor fix
2020-10-04Merge pull request #42439 from Xrayez/doc-gdscript-load-and-resloader-xrefRémi Verschelde
Cross-reference GDScript `load` and `ResourceLoader.load` in classref
2020-10-03Switch from recursion to iterative for backfilling colour regionsPaulb23
2020-10-02Fixed padding bug of sprintf functionSerhat
2020-10-01Merge pull request #41829 from RandomShaper/fix_40353Rémi Verschelde
Avoid warning about harmless unfulfilled yields
2020-09-30Cross-reference GDScript `load` and `ResourceLoader.load` in classrefAndrii Doroshenko (Xrayez)
The GDScript `load` mention is moved from the class `ResourceLoader` description to the `ResourceLoader.load` method description instead, where it is more likely to be found.
2020-09-26Avoid infinite loop in GDScript at shutdownPedro J. Estébanez
2020-09-24Improve documentation related to printing error/warning messagesHugo Locurcio
2020-09-18Merge pull request #41930 from RandomShaper/fix_gdscript_leaksRémi Verschelde
Fix leaks in GDScript
2020-09-18Fix typos with codespellRémi Verschelde
Using codespell 1.17.1. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```