Dyalog / link

Source code for Link – the built-in component that enables the use of text files as the primary storage mechanism for APL source code
https://dyalog.github.io/link
MIT License
19 stars 10 forks source link

Classic Dyalog: ]link.import of an exported namespace which has a non-standard ⎕AVU fails with an error #510

Open dyavc opened 1 year ago

dyavc commented 1 year ago

Describe the bug Classic Dyalog: ]link.import of an exported namespace which has a non-standard ⎕AVU fails with an error

To Reproduce )load TestAVUv1.dws ]link.export #.Test c:\tmp\test123 )clear ]link.import #.Test c:\tmp\test123

Expected behaviour Expect the import to happen without failure.

But, there does not seem to be much help or hints about what the cause of the problem is.

ERRORS ENCOUNTERED: 1 import(s) failed: c:\tmp\test123\SomeFunctionWithSpecialSign.aplf

OR: Should the user modify the old ⎕AVU[60] to be 8866? The user is happy to do that,

I know the issue is with ⎕AVU because the user mentioned there is an old ⎕AVU in #.Test.

Desktop (please complete the following information): ]tools.version Dyalog 18.2.46656 64-bit Classic, BuildID a40c29d2
OS Windows 10 or Windows Server 2016 (10.0.19045) 64-bit
Link 3.0.19
SALT 2.9
UCMD 2.51
.NET .NET Framework 4.8.4515.0
WS 18.2
mytestavu.zip

More info: I think this issue is related to #406

  Test.⎕AVU[60]

164 ⎕avu[60] 8866

⎕cr 'Test.SomeFunctionWithSpecialSign' r←SomeFunctionWithSpecialSign FileName ⍝

⍝ ⊢

13.0 release notes say: The implementation of the function "Right" in Version 13.0 led to the discovery that ⎕AVU incorrectly defined ⎕AV[59+⎕IO] as ¤ (⎕UCS 164) rather than ⊢ (Right Tack, ⎕UCS 8866). This error has been corrected in the default ⎕AVU and in workspace AVU.dws. If you are operating in a mixed Unicode/Classic environment, this error will have caused earlier Classic editions to map ⎕AV[59+⎕IO] to the wrong Unicode character (¤). This may cause TRANSLATION ERRORs when a Version 13.0 Classic system attempts to read the data, as it will not be able to represent ¤ in the Atomic Vector.