Remove real-time search for routines names and more - #2216
Merged
GillesDuvert merged 28 commits intoJul 30, 2026
Merged
Conversation
…d on name. Rewrite all procedure related to finding a FUN or PRO to avoid old loops and simplify/factorize code Also, rewrote the overload code to simplify/factorize and use the new mechanism. Could be simpler, but I kept the list of PRO and FUN separate for OBJECTS (probably a bad idea, to change in future) I save this intermediate state before fiddling with the interpreter to have compiled procedures call directly the functions, not use a searched index.
…th STRICTARR, this type of construct implies a function)
…RO or FUN type (and call an expensive search-by-name) since SearchCompilePro knows what type of routine it has compiled.
…e_remove_search_for_routines
…loopvar is overwritten uses a lot of inefficient name search (and IDL does not do it).Removed test, that can be however set by flag --warn-loop replaced search for !ERR (inefficient search that cannot be made static due to .RESET) by a pointer function. solved a few crashing bugs when .RESET was called small optimisations using static int for index to defined functions/procedures removed GDLDelete in ~GDLWidget due to a valgrind-detected invalid free (only for Widget_Table, probably in GetTableValueAsStrings, but needs to be well understood) "followers" widget were not removed (regression)
…ary search and is faster. I should test if a direct BS on sorted keywords is possible as it should be faster yet.
This reverts commit 0625ba6.
This reverts commit 3e7706d.
This reverts commit 1aaf87a.
…ed arraus and indexes actually penalize the execution time!
…ve_search_for_routines
Contributor
Author
Contributor
Author
|
successful Windows build is obtained by removing the cache. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
!ERRwas frequently searched in the code, now a specialzed function removes this need.--warn-loopswitch is set when calling gdl..RESETor.RESET_SESSIONare cured.WIDGET_CONTROL,/RESET