the-carlisle-group / Dado

DevOps for Dyalog APL
MIT License
16 stars 3 forks source link

Bug/quad save ref to se #104

Closed norberturkiewicz closed 2 years ago

PaulMansour commented 2 years ago

I think this is/was because of the Dyalog bug of re-parenting a namespace using ⎕NS, and it is fixed in 18.2.45349. So we should not need this fix.

norberturkiewicz commented 2 years ago

I tested the latest Dyalog release and still cannot ⎕SAVE after line 20 of BuildWorkspace_

[20]  s.AcreConfig←s.⎕NS m.
     _←0 ⎕SAVE af,c._Name,'.dws'
DOMAIN ERROR: Session namespace is referenced by #
      _←0 ⎕SAVE af,c._Name,'.dws'
          ∧
norberturkiewicz commented 2 years ago

I found changing ReadConfigFile, forcing ⎕JSON to use # as the parent also fixes the issue.

 ReadConfigFile←{
     ⍝ Read JSON, NSSccipt or (trivial) APLAN.
     ⍝ ⍵ ←→ FQP of Config File Name
     ⍝ ← ←→ Config Space
     ⍝ See FormatConfigSpace for inverse.
     r←↑⎕NGET ⍵ 1
     fix←{⎕NS(0 ⎕FIX ⍵).(⎕NS ⎕NL 2)}
     ⍝ set←{⍵._FileType←⍺ ⋄ ⍵}
     set←{⍵._FileType←'JSON' ⋄ ⍵}
     t←↑↑r
     ⍝ '{'=t:'JSON'set ⎕JSON∊r
     '{'=t:'JSON'set #.⎕JSON∊r
     ':'=t:'NSScript'set fix r
     r[0]←⊂':Namespace'
     r←(¯1↓r),⊂':EndNamespace'
     'APLAN'set fix r
 }