Rather than describe it, I have written you verbs to convert symbols into a list of boxed strings and vice versa.  It is up to you to apply the verbs, save results, etc.:

NB. Returns currently-defined symbols, as (list of characters);(list of symbol lengths)
getsyms =: {{
indexes =. 0 0 -.~ 2 {."1(0) s: 2   NB. (index,length) of each symbol
symchars =. (,"0 indexes) ;@:(<;.0) 0 s: 3   NB. fetch each symbol and run them together
symchars ; {:"1 indexes
}}

NB. Applies to result of getsyms, to create boxed strings.  Apply s: to result if desired
setsyms =: {{
'chars lens' =. y
((,:~"0   [: |.!.0 +/\) lens) <;.0 chars  NB. create start,:length of each string and box them
}}

The documentation of /what/ s: does is at https://www.jsoftware.com/help/dictionary/dsco.htm .  /How/ it does it is to be learned from the source code, and you are own your own there.  There are a few comments.

Henry Rich

On 3/14/2023 1:04 AM, Ak O wrote:
lol a few, and I expect many more.

What command restores each in their correct position
Store is?
      (3!:1)  (0 s: 3) 1!:2<...'
      (3!:1) (2 {."1(0) s: 2) 1!:2 <...'
Restore?
      ???(3!:2) 1!:1<...'
      ???(3!:2) 1!:1<...'

Also, I  wonder if there is a resource I can consult
to understand  better how the Symbols Interpreter works?

Thanks again

Ak.



On Mon., Mar. 13, 2023, 20:15 Henry Rich, <henryhr...@gmail.com> wrote:

You must have a lot of symbols.

A symbol represents a list of characters.  If you are trying to
save/restore the symbols, 0 s: 10 is giving much more information th
you need.  All you need is the list of strings run end-to-end (0 s: 3)
and the index/lenpgth of each (2 {."1 (0) s: 2) .

Henry Rich.m

On 3/13/2023 9:02 PM, Ak O wrote:
I hope you are all well.

Is there a mechanism for storing the Global Symbols Data in parts? Also
restoring from those parts?

The documented methods of:
       ((3!:1) 0 s: 10) 1!:2<'symb_tbl_dat.dat'
       10 s: (3!:2)1!:1<'symb_tbl_dat.dat'

had been working well but now seems to have hit a limit.
When I try to store the GST, I  now trigger the out of memory error.

I thought about storing the columns individually.
       ((3!:1)0{(0 s: 10)) 1!:2<'symb_tbl_col_0.dat'
       ...7{(0 s: 10)...

I cannot seem to 'install' the columns to restore the whole table.

Is there some way chunking the Global Symbols Data into pieces?
Or pack it more tightly?

Or some other thing I might not have considered?


Thanks

Ak
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to