[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-apl] Tab completion doesn't track )ERASE
From: |
David B. Lamkins |
Subject: |
Re: [Bug-apl] Tab completion doesn't track )ERASE |
Date: |
Mon, 27 Jun 2016 23:37:19 -0700 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
I see. I had assumed (incorrectly) that )ERASE and ⎕EX have the same effect.
IIUC, the names interned by any definition are available to tab completion
until they are )ERASEd, even if they are no longer associated with an APL
object in the workspace. I noticed that tab completion sees even names that
have only ever been available as localized names in a function.
Is there a portable way to unintern a name from the symbol table? The ISO
standard doesn't seem to specify whether
⍎')system_command ...'
should be supported.
On Mon, Jun 27, 2016 at 01:58:07PM +0200, Juergen Sauermann wrote:
> Hi David,
>
> ⎕EX only deletes the current-referent of a name (= the name at the
> top of the )SI stack) but not its global-referent.
>
> If you use )ERASE instead of ⎕EX then tab-completion will recognize this.
>
> /// Jürgen
>
>
> On 06/27/2016 07:05 AM, David B. Lamkins wrote:
>
> Tab completion doesn't know that a symbol has been removed.
>
> In the following, <Tab> is the tab character.
>
> ⎕fx 'foo'
> foo
> f<Tab>
> ⎕ex 'foo'
> 1
> ⎕nc 'foo'
> 0
> f<Tab>
> VALUE ERROR
> foo
> ^
>
>
>
>