* Tab completion error after upgrade @ 2015-06-26 18:25 Thorsten Kampe 2015-06-26 19:06 ` Peter A. Castro ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Thorsten Kampe @ 2015-06-26 18:25 UTC (permalink / raw) To: zsh-users [Zsh 5.0.8 on Cygwin 64-bit] Hello, since the upgrade from 5.0.7 to 5.0.8 every attempt for tab completion results in `_main_complete:143: parse error near `()'`. What can I do to resolve this issue? Is this an issue for the Cygwin Zsh maintainer? Thorsten ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 18:25 Tab completion error after upgrade Thorsten Kampe @ 2015-06-26 19:06 ` Peter A. Castro 2015-06-26 20:35 ` Thorsten Kampe 2015-06-26 19:45 ` Tab completion error after upgrade Frank Terbeck 2015-06-27 12:51 ` zzapper 2 siblings, 1 reply; 13+ messages in thread From: Peter A. Castro @ 2015-06-26 19:06 UTC (permalink / raw) To: Thorsten Kampe; +Cc: zsh-users On Fri, 26 Jun 2015, Thorsten Kampe wrote: > Date: Fri, 26 Jun 2015 20:25:10 +0200 > From: Thorsten Kampe <thorsten@thorstenkampe.de> > To: zsh-users@zsh.org > Subject: Tab completion error after upgrade > > [Zsh 5.0.8 on Cygwin 64-bit] > > Hello, Greetings, , > since the upgrade from 5.0.7 to 5.0.8 every attempt for tab > completion results in `_main_complete:143: parse error near `()'`. > > What can I do to resolve this issue? Is this an issue for the Cygwin > Zsh maintainer? You should be posting this to the Cygwin email list, if you believe this is a Cygwin issue. BTW, I didn't see this issue when I built 5.0.8, but I'll look into it. Just to be sure, have you re-run compinit ? > Thorsten -- --=> Peter A. Castro Email: doctor at fruitbat dot org / Peter dot Castro at oracle dot com "Cats are just autistic Dogs" -- Dr. Tony Attwood ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 19:06 ` Peter A. Castro @ 2015-06-26 20:35 ` Thorsten Kampe 2015-06-26 20:42 ` Peter A. Castro 2015-06-26 21:52 ` Bart Schaefer 0 siblings, 2 replies; 13+ messages in thread From: Thorsten Kampe @ 2015-06-26 20:35 UTC (permalink / raw) To: zsh-users * Peter A. Castro (Fri, 26 Jun 2015 12:06:40 -0700 (PDT)) > On Fri, 26 Jun 2015, Thorsten Kampe wrote: > > > Date: Fri, 26 Jun 2015 20:25:10 +0200 > > From: Thorsten Kampe <thorsten@thorstenkampe.de> > > > > [Zsh 5.0.8 on Cygwin 64-bit] > > > > > since the upgrade from 5.0.7 to 5.0.8 every attempt for tab > > completion results in `_main_complete:143: parse error near `()'`. > > > > What can I do to resolve this issue? Is this an issue for the Cygwin > > Zsh maintainer? > > You should be posting this to the Cygwin email list, if you believe this > is a Cygwin issue. I have no idea. That's why I asked. > BTW, I didn't see this issue when I built 5.0.8, but I'll look into it. > > Just to be sure, have you re-run compinit ? `autoload -U compinit; compinit -C ` is run from my .zshrc. I also deleted .zcompdump and .zcompdump.zwc. Thorsten ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 20:35 ` Thorsten Kampe @ 2015-06-26 20:42 ` Peter A. Castro 2015-06-26 20:50 ` Thorsten Kampe 2015-06-26 21:52 ` Bart Schaefer 1 sibling, 1 reply; 13+ messages in thread From: Peter A. Castro @ 2015-06-26 20:42 UTC (permalink / raw) To: Thorsten Kampe; +Cc: zsh-users On Fri, 26 Jun 2015, Thorsten Kampe wrote: > Date: Fri, 26 Jun 2015 22:35:41 +0200 > From: Thorsten Kampe <thorsten@thorstenkampe.de> > To: zsh-users@zsh.org > Subject: Re: Tab completion error after upgrade > > * Peter A. Castro (Fri, 26 Jun 2015 12:06:40 -0700 (PDT)) > >> On Fri, 26 Jun 2015, Thorsten Kampe wrote: >> >>> Date: Fri, 26 Jun 2015 20:25:10 +0200 >>> From: Thorsten Kampe <thorsten@thorstenkampe.de> >>> >>> [Zsh 5.0.8 on Cygwin 64-bit] >>> >> >>> since the upgrade from 5.0.7 to 5.0.8 every attempt for tab >>> completion results in `_main_complete:143: parse error near `()'`. >>> >>> What can I do to resolve this issue? Is this an issue for the Cygwin >>> Zsh maintainer? >> >> You should be posting this to the Cygwin email list, if you believe this >> is a Cygwin issue. > > I have no idea. That's why I asked. Ok, let me see if I can repro it first. >> BTW, I didn't see this issue when I built 5.0.8, but I'll look into it. >> >> Just to be sure, have you re-run compinit ? > > `autoload -U compinit; compinit -C ` is run from my .zshrc. I also > deleted .zcompdump and .zcompdump.zwc. Ok, just checking. Do you happen to have any customizations for completion? I suspect not, but want to check. > Thorsten -- --=> Peter A. Castro Email: doctor at fruitbat dot org / Peter dot Castro at oracle dot com "Cats are just autistic Dogs" -- Dr. Tony Attwood ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 20:42 ` Peter A. Castro @ 2015-06-26 20:50 ` Thorsten Kampe 0 siblings, 0 replies; 13+ messages in thread From: Thorsten Kampe @ 2015-06-26 20:50 UTC (permalink / raw) To: zsh-users * Peter A. Castro (Fri, 26 Jun 2015 13:42:09 -0700 (PDT)) > Ok, just checking. Do you happen to have any customizations for > completion? I suspect not, but want to check. Lots of. Error stays the same when I delete them in .zshrc. Thorsten ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 20:35 ` Thorsten Kampe 2015-06-26 20:42 ` Peter A. Castro @ 2015-06-26 21:52 ` Bart Schaefer 2015-06-27 10:09 ` Thorsten Kampe 1 sibling, 1 reply; 13+ messages in thread From: Bart Schaefer @ 2015-06-26 21:52 UTC (permalink / raw) To: Thorsten Kampe, zsh-users On Jun 26, 10:35pm, Thorsten Kampe wrote: } } > Just to be sure, have you re-run compinit ? } } `autoload -U compinit; compinit -C ` is run from my .zshrc. I also } deleted .zcompdump and .zcompdump.zwc. If you have .zwc files, you may need to delete and rebuild those as well. There was some effort made to improve the algorithm that compares the .zwc file version to the zsh version, but it still may sometimes load a compiled function from an older shell. In particular there are no parens on line 143 of _main_complete, which makes the error suspicious. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 21:52 ` Bart Schaefer @ 2015-06-27 10:09 ` Thorsten Kampe 2015-06-27 10:12 ` Thorsten Kampe 0 siblings, 1 reply; 13+ messages in thread From: Thorsten Kampe @ 2015-06-27 10:09 UTC (permalink / raw) To: zsh-users * Bart Schaefer (Fri, 26 Jun 2015 14:52:38 -0700) > > On Jun 26, 10:35pm, Thorsten Kampe wrote: > } > } > Just to be sure, have you re-run compinit ? > } > } `autoload -U compinit; compinit -C ` is run from my .zshrc. I also > } deleted .zcompdump and .zcompdump.zwc. > > If you have .zwc files, you may need to delete and rebuild those as > well. There was some effort made to improve the algorithm that > compares the .zwc file version to the zsh version, but it still > may sometimes load a compiled function from an older shell. > > In particular there are no parens on line 143 of _main_complete, > which makes the error suspicious. The error comes from "setopt no_multifuncdef" in my .zshrc. Setting multifuncdef interactively makes the error disappear and unsetting the option again manually does not reintroduce the error. These two statements (in an otherwise empty .zshrc) will show the error on my system: ``` setopt no_multifuncdef autoload -U compinit; compinit -C # completion system ``` Thorsten ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-27 10:09 ` Thorsten Kampe @ 2015-06-27 10:12 ` Thorsten Kampe 2015-06-27 16:43 ` Peter Stephenson 0 siblings, 1 reply; 13+ messages in thread From: Thorsten Kampe @ 2015-06-27 10:12 UTC (permalink / raw) To: zsh-users * Thorsten Kampe (Sat, 27 Jun 2015 12:09:11 +0200) > The error comes from "setopt no_multifuncdef" in my .zshrc. This is the description of the option from the man page: Allow definitions of multiple functions at once in the form `fn1 fn2...()'; if the option is not set, this causes a parse error. Definition of multiple functions with the function keyword is always allowed. Multiple function definitions are not often used and can cause obscure errors. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-27 10:12 ` Thorsten Kampe @ 2015-06-27 16:43 ` Peter Stephenson 2015-06-27 18:35 ` Bart Schaefer 0 siblings, 1 reply; 13+ messages in thread From: Peter Stephenson @ 2015-06-27 16:43 UTC (permalink / raw) To: zsh-users On Sat, 27 Jun 2015 12:12:49 +0200 Thorsten Kampe <thorsten@thorstenkampe.de> wrote: > * Thorsten Kampe (Sat, 27 Jun 2015 12:09:11 +0200) > > > The error comes from "setopt no_multifuncdef" in my .zshrc. Ah. This isn't Cygwin-specific at all. MULTIFUNCDEF is turned on for completion, but that happens within _main_complete itself, and the error is during parsing, not execution, and functions are parsed to the end before executing. So the simplest thing to do is just split the definitions. I believe these deliberately don't use the trap builtin. diff --git a/Completion/Base/Core/_main_complete b/Completion/Base/Core/_main_complete index c023268..9c4cfac 100644 --- a/Completion/Base/Core/_main_complete +++ b/Completion/Base/Core/_main_complete @@ -141,11 +141,16 @@ _completer_num=1 # We assume localtraps to be in effect here ... integer SECONDS=0 -TRAPINT TRAPQUIT() { +TRAPINT() { zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s"; zle -R return 130 } +TRAPQUIT() { + zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s"; + zle -R + return 131 +} # Call the pre-functions. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-27 16:43 ` Peter Stephenson @ 2015-06-27 18:35 ` Bart Schaefer 2015-06-27 19:34 ` Assorted TRAPxxx / trap xxx observations Bart Schaefer 0 siblings, 1 reply; 13+ messages in thread From: Bart Schaefer @ 2015-06-27 18:35 UTC (permalink / raw) To: zsh-users On Jun 27, 5:43pm, Peter Stephenson wrote: } } So the simplest thing to do is just split the definitions. I believe } these deliberately don't use the trap builtin. Right; they deliberately DID use the trap builtin when I added them, but it was determined that some side-effects didn't propagate correctly if functions were not used. -- Barton E. Schaefer ^ permalink raw reply [flat|nested] 13+ messages in thread
* Assorted TRAPxxx / trap xxx observations 2015-06-27 18:35 ` Bart Schaefer @ 2015-06-27 19:34 ` Bart Schaefer 0 siblings, 0 replies; 13+ messages in thread From: Bart Schaefer @ 2015-06-27 19:34 UTC (permalink / raw) To: zsh-users On Jun 27, 11:35am, Bart Schaefer wrote: } } ... they deliberately DID use the trap builtin when I added them, but } it was determined that some side-effects didn't propagate correctly if } functions were not used. Incidentally, anonymous functions provide (inflict?) some interesting semantics for the "trap" command. torch% unsetopt debug_before_cmd torch% trap '() { print $LINENO $1 } $LINENO' DEBUG 0 2 torch% echo "What's my line?" What's my line? 0 3 torch% A couple of fun things there. 1. This is probably obvious, but it means you can get the benefits of a separate function context in the trap without side-effect of the return value acting as an interrupt. Are there other non-obvious things? Any of this worth adding to the doc? 2. Installing a DEBUG trap with NODEBUG_BEFORE_CMD in effect causes the setting of the trap to debug itself. Regarding the return value acting as an interrupt, a nonzero return from a DEBUG_BEFORE_CMD trap behaves exactly the same as "setopt ERR_EXIT" in that it prevents the upcoming command from executing. Either this is an unintentional change, or we don't need the ERR_EXIT trick any more. I also previously had not considered the interaction of $? with debug traps, specifically DEBUG_BEFORE_CMD. (Sorry, Peter, I'm about to make your eyes glaze over, again.) The upshot is that $? in the trap refers to the previous command in one case, and to the command being debugged in the second case. torch% trap '() { print ERR $? }' ZERR torch% trap '() { print DBG $? }' DEBUG torch% false DBG 0 ERR 1 torch% true DBG 1 torch% unsetopt debugbeforecmd DBG 0 torch% false DBG 1 ERR 1 torch% true DBG 0 torch% I suppose $? has to be the status of the previous command in the debug trap when it runs before, because the upcoming command has to be able to test the previous command's status. Mostly this raises documentation issues. It's not mentioned anywhere that toggling DEBUG_BEFORE_CMD inside the trap will NOT cause the trap to execute twice (something that might be interesting if you want to examine $? both before and after). It's also not explicitly called out that the value of $? always refers to whatever executed right before the trap, which differs with the state of DEBUG_BEFORE_CMD, but this may be considered obvious. That's all for now ... -- Barton E. Schaefer ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 18:25 Tab completion error after upgrade Thorsten Kampe 2015-06-26 19:06 ` Peter A. Castro @ 2015-06-26 19:45 ` Frank Terbeck 2015-06-27 12:51 ` zzapper 2 siblings, 0 replies; 13+ messages in thread From: Frank Terbeck @ 2015-06-26 19:45 UTC (permalink / raw) To: zsh-users Thorsten Kampe wrote: > Hello, Hi! > since the upgrade from 5.0.7 to 5.0.8 every attempt for tab > completion results in `_main_complete:143: parse error near `()'`. The golden rule of fixing weird compsys behaviour is this: - Remove ~/.zcompdump - Restarting the shell by issuing "exec zsh" for example. If that doesn't fix the issue, that sounds like trouble. Regards, Frank ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Tab completion error after upgrade 2015-06-26 18:25 Tab completion error after upgrade Thorsten Kampe 2015-06-26 19:06 ` Peter A. Castro 2015-06-26 19:45 ` Tab completion error after upgrade Frank Terbeck @ 2015-06-27 12:51 ` zzapper 2 siblings, 0 replies; 13+ messages in thread From: zzapper @ 2015-06-27 12:51 UTC (permalink / raw) To: zsh-users Thorsten Kampe <thorsten@thorstenkampe.de> wrote in news:mmk5do$shp$1 @ger.gmane.org: > [Zsh 5.0.8 on Cygwin 64-bit] > > Hello, > > since the upgrade from 5.0.7 to 5.0.8 every attempt for tab > completion results in `_main_complete:143: parse error near `()'`. > > What can I do to resolve this issue? Is this an issue for the Cygwin > Zsh maintainer? > > Thorsten > I use zsh 5.08 on cygwin on multiple PCs with no sign of this issue. zsh --version zsh 5.0.8 (x86_64-unknown-cygwin) -- zzapper https://twitter.com/dailyzshtip --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2015-06-27 19:34 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-06-26 18:25 Tab completion error after upgrade Thorsten Kampe 2015-06-26 19:06 ` Peter A. Castro 2015-06-26 20:35 ` Thorsten Kampe 2015-06-26 20:42 ` Peter A. Castro 2015-06-26 20:50 ` Thorsten Kampe 2015-06-26 21:52 ` Bart Schaefer 2015-06-27 10:09 ` Thorsten Kampe 2015-06-27 10:12 ` Thorsten Kampe 2015-06-27 16:43 ` Peter Stephenson 2015-06-27 18:35 ` Bart Schaefer 2015-06-27 19:34 ` Assorted TRAPxxx / trap xxx observations Bart Schaefer 2015-06-26 19:45 ` Tab completion error after upgrade Frank Terbeck 2015-06-27 12:51 ` zzapper
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).