Thanks for the enlightening insights into some detail
of the workings of JE internal address management.
Much appreciated.
Am 05.04.22 um 04:29 schrieb Henry Rich:
I should have said 'the J symbol AREA is a contiguous array...' The
symbol tables are separate structures (closed-address hashtables whose
chains are symbols from the J symbol area).
I do allocate symbols for the known named variables when an explicit
definition is first scanned. But:
* names can be synthetic, so there's no way to guarantee that symbols
are available
* when a definition is recursive, it needs to get a new set of symbols
for each level
So: yes, creating any symbol, local or global, may relocate all symbols
everywhere. Should I have said DEPRECATED!!!?
'Managing' the risk that another thread will delete your symbol is
possible only if you can control everything that is executing. Otherwise
you're whistling past the graveyard when you use a pointer to a block
that may have been relocated.
Henry Rich
--
----------------------
mail written using NEO
neo-layout.org
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm