summaryrefslogtreecommitdiffstats
path: root/stdlib/doc-syms.tl
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-10-25 07:54:39 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-10-25 07:54:39 -0700
commit02a73c7785f5cdd7975cf10f83b430dfcc6778a3 (patch)
tree1255f56579ab82d05b164415e9bbcea1d4f2f15f /stdlib/doc-syms.tl
parent76b97f2c904c4e52d11e89406a9491aef77ef438 (diff)
downloadtxr-02a73c7785f5cdd7975cf10f83b430dfcc6778a3.tar.gz
txr-02a73c7785f5cdd7975cf10f83b430dfcc6778a3.tar.bz2
txr-02a73c7785f5cdd7975cf10f83b430dfcc6778a3.zip
repl: bugfix: half-baked source auto loading in completion.
The following behavior is observed. When we clean the compiled files using "make clean-tlo", then autoloading during completion does not work reliably for some symbols like dissassemble and compile. The symbols don't complete, and afterward, the functions remain undefined, and no longer autoload. The root cause is that when some modules are loaded form source, deferred warnings occur, due to code referring to symbols that are defined later. But the provide_completions function installs a catch for all exceptions, including deferred warnings. It thereby abruptly terminates loads which trigger deferred warnings, leaving them half-complete. The fix is to catch only errors. * parser.c (catch_error): New global variable. (load_rcfile): Use catch_error from now on instead of locally consing this. (provide_completions): Use catch_error instead of catch_all. (parse_init): gc-protect catch_error and initialize it.
Diffstat (limited to 'stdlib/doc-syms.tl')
0 files changed, 0 insertions, 0 deletions