« first day (156 days earlier)      last day (2338 days later) » 

12:10 AM
@Adám, do I understand correctly that the clients are mostly people that would like to migrate their decades of APL code off of mainframes?
 
12:27 AM
@AndrewSavinykh You mean Dyalog's clients? No, many are already off mainframes (or have never been on them) and are actively developing and running their business using APL.
Also, Dyalog APL runs on AIX...
However, quite a lot of customers are migrating from APL+Plus, APLX and APL2 to Dyalog APL, to get a modern APL which is still being developed.
 
1:04 AM
@Dennis You added ArnoldC! \o/
 
@Adám I'm just wondering what kind of businesses are interested in APL, because it feels rather niche
 
@AndrewSavinykh This really belongs in chat.stackexchange.com/rooms/52405/apl
@AndrewSavinykh Why do you feel that APL is niche? It does have a couple of very math-y primitives, but mostly, it is just a Array Programming Language. Dyalog APL is special in being quite a multi-paradigm.
 
1:59 AM
@LuisMendo I did. I also added LOLCODE and TrumpScript... I didn't really want to, but I kept seeing requests to trumpscript.tryitonline.net in the server logs...
 
@Dennis lol!
 
@Dennis Do you have statistics for which languages get the most requests?
 
Sort of. All HTTP requests are logged by httpd. All requests are logged.
 
@Dennis Is there a way the rest of us can access that data?
 
2:19 AM
Not at this point, but I'll make a stats page once I've dealt with a few more pressing issues.
 
 
2 hours later…
4:01 AM
@ConorO'Brien Sorry for the late response. Got kinda caught up in APL... I have two versions of Node: 4.6.1 and 7.2.0. The former shows the error I quoted before, the latter says this.
module.js:472
    throw err;
    ^

Error: Cannot find module 'clear'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/opt/stacked/src/funcs.js:6:11)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
 
oh, you might have to npm install clear
idk what else, lemme check
oh, wait, try npm init
 
What does that do?
 
it should install all the modules needed for the repo
 
So I do this from the stacked directory?
 
lemme check. that's what should happen
waait
I bungled my commands. It's npm install
 
4:05 AM
With -g, yes?
 
ok so actually I apparently misconfigured the modules thingy for stacked. I think if you just do npm install clear and npm install readline-sync it should work. I'll work on fixing it tomorrow.
 
Alright, executing test.js now prints nothing. Is that the expected result?
 
well, yes. test.js is a module. I've moved the actual testing functionality to node stacked.js -t
you should see something like:
λ node stacked.js -t
All checks (183) passed successfully
Number of ops tested: 74 out of 373 = 19.84%
 
Missing minimist. Let me guess: npm?
 
oh, yeah, that one too. >_>
I must have installed that one globally
 
4:16 AM
Alright, it works now.
 
\o/
I'm going to bed. just ping me if you need me
 
@Pavel I'm having some trouble with Mathics. Might not be able to install it tonight.
 
Should just be pip install mathics
 
That part went well.
 
4:31 AM
What part didn't go well?
 
Running it. It wants to access files that SELinux won't let it access.
 
Considering I have a Windows, there's not really anything I can say about that. Oh well.
 
I haven't given up yet. I just wanted to keep you updated.
 
 
2 hours later…
7:05 AM
Official request to add tinylisp. :)
The current interpreter expects one or more filenames as cmdline arguments. Does that work for TIO? If not, I can change the behavior.
 
I'm not familiar with that language. Could you link me to it?
 
Was just editing the link in when you replied.
 
Oh, it's your language.
I'm not sure I understand the question about CLAs.
 
Well, that's okay. If it works, no problem. If not, you can tell me why it doesn't work and I'll fix it.
 
There's no issue with accepting more than one filename, but I'm not sure how you could generate more than one file from the frontend.
 
7:16 AM
Ah. The "one or more" part was just me being pedantic. As long as TIO feeds it a filename on command-line, all is well.
 
I can call the interpreter in pretty much any way you need. The usual is [interpreter] .code.tio "$@" < .input.tio.
 
7:34 AM
@Dennis I'm leaning towards going back to just doing piping in Header ∇TIO;TIO Code Footer TIO Input
 
Too many issues with the namespace? I'm not really sure what a namespace is. What isn't working but should be?
 
@Dennis A namespace is like a folder.
We can create it with functions and variables inside. Problem is that we really need to change space into that namespace, and I see no way of doing so before the prompts begin to take over.
 
OK, but what exactly is the problem with not being able to change space? Could you show me an example?
As far as I can tell, we're executing all of the code inside that namespace.
 
Code: plus←+ Input: 2 plus 3
It is as if you'd create the folder TIO with the program plus.exe inside. Then you try to run plus.exe, but you need cd TIO first.
 
Right, but do we need to be able to execute code from the input field? Couldn't that simply go in the footer?
 
7:42 AM
If the footer goes before the :endnamespace, then yes, but the user would have to be explicit about output. Maybe that's ok.
 
I figured input was more for reading stuff with ⍞ or ⎕. At least that's how it's used for other languages.
 
OK, then it's fine. Is this how it is currently?
 
Yes, header, code, and footer are all inside the namespace.
 
ok. Then my only gripe is that the name TIO should be some strange name to avoid conflicts.
 
And in case someone wants to replicate REPL behavior, all of the code can go into input.
 
7:46 AM
Right.
Heh, I can see the structure with Try it online!
 
7:58 AM
I gave it a pseudo-random name now (TIO followed by 128 bits in hexadecimal). Seems to be working. tio.run/nexus/apl-dyalog#@1@QU1qs8KhtgoL2/0d9U8EsIwWwoPF/AA
 
@Dennis Right, TIOd9a5b5a82dfb293def0212ae0e47dcbe that's good. However, you're still using ]msg←load.
 
Right. What should I use instead?
 
@Dennis, I'd appreciate your advise. I have a weird problem with my mirror, when a script is run successfully I get output as expected, but when the script times out I'm getting a generic message instead of the timeout one. I trace the problem down, that backend receive stream with extra linefeed on the front, and thus cannot unzip. Any idea how possible could I have screwed it up? I'm not asking you for the exact reason obviously, but any idea could help ;)
 
The httpd configuration file I posted here increases httpd's timeout. Did you add that to yours?
 
@Dennis Try 2⎕FIX'file:///tmp/TIO.dyalog' Note that the file and the namespce do not need to have the same name.
 
8:08 AM
no! thank you, I'll do that now and see if ti helps
 
If that works, you can get rid of SALT.
 
That works indeed. :) It prints the name of the namespace though. tio.run/nexus/apl-dyalog#@1@QU1qs8KhtgoL2/0d9U8EsIwWwoPF/AA
 
Silence it with {}2⎕FIX'file:///tmp/TIO.dyalog'
 
Perfect!
I think that means I don't need the command cache anymore.
 
Right. ({} is a dfn which takes one or two arguments and does not return a value)
 
8:13 AM
Hey, that is a lot faster than SALT.
 
@Dennis yep, that made all the difference. I knew you know the answer! thank you again ;)
 
No problem. I remembered having exactly the same issue.
 
SALT is almost 4000 lines of APL, ⎕FIX is written in optimized C.
 
That explains the difference.
 
Does it slow things down to have the cache?
Having it means fast access to user commands. E.g. turning boxing on.
 
8:15 AM
Quite a bit, roughly 300ms. Also, the cache is not persistent. We'd have to pre-build it to the useful.
Right now, the cache only contains whatever came with the SALT ws.
 
hm, leave it out then. Speed is everything.
 
It's really snappy now. 0.06 seconds for Hello World.
Compared to ~5 seconds w/SALT and w/o user cache.
 
:-D
Nice, handles a crash.
 
It should. One of the esolangs (Half-Broken Car in Heavy Traffic) tends to crash frequently and badly, but nothing managed to break the arena server so far.
 
I can read the disk contents. That's fine, right?
 
8:26 AM
Yes, all sensitive areas are blocked by SELinux.
Alright, time to get ready for bed.
Thanks again for everything. Last week, having Dyalog APL on TIO was just a dream. Now it's not only up, it's working nicely. :)
 
8:49 AM
@Dennis My pleasure. This is a dream come true for me too. Time to do some QA on it.
 
@Dennis you might want to pull ngn apl
it changed in december
 
 
1 hour later…
10:08 AM
@Dennis PigeonScript is ready for now, if you would be so kind as to add it to TIO
 
Anonymous
@TrojanByAccident You should probably make the request in the TIO chat room. This room is active enough that pings can get missed easily.
 
11:32 AM
@Dennis which Aubergine implementation are you using?
 
12:02 PM
And axo...
This works
mkdir -p axo
cd axo
wget http://web.archive.org/web/20070423184121/http://www.harderweb.de/jix/langs/axo/axopp.0.1.0.cc
sed -i 's/sranddev();/unsigned int time_ui = static_cast<unsigned int>(time(NULL));srand( time_ui );/g' axopp.0.1.0.cc
g++ axopp.0.1.0.cc
mv a.out axo
cd ..
but you probably did something different?
 
12:19 PM
@Dennis Would it be possible to display STDOUT as it is generated, instead of waiting for everything to finish: Try it online!
 
 
1 hour later…
1:27 PM
@Dennis Jay wrote: Looks pretty cool to me! Morten wrote: I think this is VERY COOL INDEED!
 
1:52 PM
@Dennis Add )off to the end of Input to shut down the interpreter cleanly, avoiding the exit code 2.
 
 
3 hours later…
5:02 PM
@AndrewSavinykh This one.
@AndrewSavinykh I just replaced sranddev(); in line 135 with srand(time(NULL));.
@Adám Glad to hear they approve. :)
@Adám Not at this point. There are a few conflicts with real-time output and TIO's new features: 1. The response is compressed. 2. The response is (supposed to be) cached. 3. STDOUT and STDERR are separated.
@Adám That might cause strange behavior for, e.g., a cat program. Would it be possible to add )off inside the namespace declaration?
2 messages moved from The Nineteenth Byte
@AndrewSavinykh Right. I pulled it.
 
5:22 PM
@Dennis I don't understand what the problem with a cat program would be. Adding ⎕OFF inside the namespace would prevent execution of small statements in Input.
@Dennis In fact, Andy (COO) asked me to arrange a free lifetime DSS membership for you tomorrow, in recognition of your contribution to the APL community.
 
@Adám That's very nice of him. :)
@Adám Well, the cat program would print the ⎕OFF line. tio.run/nexus/apl-dyalog#@1/9qKP9Ud/UR20THvXOqzX8/…
Btw, →1 isn't working within the namespace. tio.run/nexus/apl-dyalog#@/@ob@qjtgmPeudxPWqbZPj/f2JSMldKahoA
 
5:37 PM
@Dennis No, because you are not inside a function, line numbers are meaningless, It needs to be: tio.run/nexus/apl-dyalog#e9TRnvb/Ud/UR20THvXO43rUNsnw/6OOdq60/…
@Dennis OK, then leave it as it is. It doesn't really matter that it exits with code 2.
(btw, code 2 means APL was terminated by SIGHUP or SIGTERM (UNIX). APL has done a clean exit.)
 
6:09 PM
@Adám If that's the only case in which it would terminate with exit code 2, I could just translate 2 to 0 in the wrapper.
 
Yes, and as such it isn't really an error.
 
Alright, then it's probably less confusing to just leave it as it is.
It strikes me as odd that it exits with 0 when there are errors though.
 
@Dennis Well, it kind of is an error. When running scripted, there is no visible session, so if a script ends, and has not closed down APL, APL is stuck.
... So APL is clever, and closes itself cleanly, but lets the environment know what happened.
 
Ah, right. The same thing would happen from a Python REPL.
 
... so too on Windows, if it gets a close request because Windows needs to update itself (again!), APL will make sure to terminate cleanly, but lets the sysadmin know what happened.
 
6:22 PM
Are there any plans to support scripts/full programs in the future? It would be kinda neat to be able to do dyalog -f whatever.apl.
 
@Dennis I had to do ln -sf ../apl.js apl/lib/apl.js to make the update work. Did you do the same or did you change the wrapper to point to the new location?
 
Huh, I just pulled.
 
and it worked?
 
@Dennis Yes, we have a long-standing plan to make this easy.
 
because there is no /lib folder now
 
6:26 PM
I still have one.
 
but repo does not! how come you do?
 
Executing ./build creates the lib folder.
That probably means I'm still using the old apl.js.
 
weird ./build has errored out on me, I assumed they forgot to update it. Since hello world works without running ./build
 
@Dennis We already have .dyapp files, see section 3.4.1 of docs.dyalog.com/14.0/…
They can contain a single bootstrap function, but :namespace is not allowed inside a function.
I'd rather that we allowed :ControlWords in the session (including blocks) so that scripting could be done just by piping (except for /:GoTo)
and allowed
f←{
something
}
instead of needing
∇f←{
something
}∇
 
I just think allowing to simply write code that would work in a REPL into a file would make APL look less "alien" to newcomers.
 
6:35 PM
@Dennis But that already works.
 
As long as you don't have to take input, yes. It's just a bit unusual coming from other programming languages that you cannot simply pass a filename to the interpreter.
 
No, even if you want to take input.
If you were to type `⎕←'Hello ',⍞' into the session (followed by Enter), the next line would be your response to the prompt.
The real problem is that ⎕ and ⍞ take input from STDIN.
 
If you interleave code and input as you would in the REPL, yes. Those are usually separated when you execute a script though.
@Adám Yeah, that's what I mean. Passing a filename to the interpreter would leave STDIN for actual input rather than code.
 
Ah.
 
Save ⎕←'Hello ',⍞ to greeter.apl, and run dyalog -f greeter.apl <<< World.
That's how it works in most languages, anyway. I'm sure there's a good reason why APL behaves the way it does. J does something quite similar.
 
6:44 PM
@Dennis This is Dyalog Project 170.
@Dennis Because scripting was implemented wrong initially, we have been stuck. However, Jay (CTO) has just begun to look at this again.
 
@AndrewSavinykh The error comes from test/rundoctests.js. It builds apl.js just fine, but there's an error with the test suite. Just ignore the error and use the lib/apl.js it generated.
@Adám That's good to hear. :)
 
@Dennis the read me now says to use the top level apl.js not the lib one. sorry to be pedantic
 
All this stems from a time when the only I/O method was a typewriter that someone had glued electromagnets to.
... Later, specialized typewriters were made with another I/O method; the Attn button, which would ring a bell on the mainframe.
 
7:11 PM
@Dennis May we feature TIO on our social media next week?
 
@Adám Yes, of course. :)
 
@Dennis are you using this one for beatnik? esolang that is linked from languages.js has a few different links
 
@AndrewSavinykh Huh, package.json still points to lib/apl.js.
 
@Dennis let me check it
 
@AndrewSavinykh I can't check right now. I'll get back to you in a few minutes.
 
7:20 PM
@Dennis no worries
@Dennis okay, fair enough I was just wondering what's the difference between using the top level versus the ./lib one. probably it's not important
 
7:38 PM
In the list of "debug" information should be an Output Size: <count> bytes item
 
8:07 PM
@AndrewSavinykh Beatnik was cloned from github.com/catseye/Beatnik.
@mbomb007 I can add it, but I'm wondering why that would be important.
 
8:28 PM
There are challenges where the goal is based on output size. If the output contains unprintables, it can be hard to copy-paste into a byte-counter.
 
Right. That would be solved by implementing the hex-output option I've been wanting to implement. It will only work up to a certain file size though.
 
@mbomb007 In APL, just prepend to your solution ;-)
 
Anonymous
@Dennis What's up?
 
Anonymous
Oh, the invite was because you moved messages here. Nevermind :)
 
Ah, sorry about that. Your suggestion would have looked out of place with the original message gone.
 
Anonymous
8:38 PM
It's alright, I was just momentarily confused/concerned that you needed something from me
 
@Dennis if you didn't see my other message, PigeonScript is ready for now
 
@TrojanByAccident I did (I migrated it here), but I didn't have a change to add it yet. Looking at it right now though. How do you provide code and input? I can't see any part of the interpreter that reads a file or from STDIN.
 
Ah
@Dennis I just run it using run(code)
 
Yeah, but I execute the code on the server, not in the browser.
 
8:50 PM
I'm going to need a version that works with Node.js for TIO.
 
@Dennis yep, thanks
 
@Dennis I just created my own golfing language. Can you add it to TIO?
 
Sure! Let me guess: it's interpreted in Dyalog APL.
 
@Dennis ;)
 
9:01 PM
@Dennis No, compiled.
It's called "APL (Dyalog APL – CG encoded)"
Here is the compiler: {(⍺⎕NCREATE(⍺⎕NERASE⍺∘⎕NTIE)⍣(⎕NEXISTS⍺)⊢0)('"¥£¡¢§'⎕R'⍤⌸⍠⍸⊆⌺')⍵⎕NTIE 0}
It takes input filename as right arg, output filename as leftarg.
 
Oh, so it transpiles to APL?
 
Yes.
You can also write your own transpiler if you want: Just replace the six chars "¥£¡¢§ with the six chars ⍤⌸⍠⍸⊆⌺.
 
And then execute the result in the same way as the "normal" Dyalog APL?
 
yes
Technically, the output should maybe be translated backwards, but those six characters are very unlikely to appear in output.
 
So encoding would be ISO 8859-1?
 
9:11 PM
The problem is that those six primitives' glyphs are not in the character set, and we don't want to modify the set, as that wreaks havoc with existing applications.
So on Dyalog Classic, they have to be written as ⎕Uxxxx.
But that's 6 bytes, and doesn't work in the Unicode edition.
 
I don't have the Classic interpreter anyway.
 
It isn't fun to use, but it is still around for legacy purposes.
 
I don't have access to it. Only the Unicode edition appears in MyDyalog.
 
You don't need it. It is pretty much identical to the Unicode edition, except that it is hard to enter APL chars, unicode strings are not allowed, and 82=⎕DR''.
... oh and those six glyphs have ⎕ names.
 
If you're looking for something sound as far as PPCG byte counts go, we can simply whip up a thin wrapper that uses a custom code page and keep the actual characters in it.
 
9:18 PM
@Dennis Ooh, that would be the best.
 
"APL (Dyalog APL – CG encoded)" is quite a mouthful though. I liked your other idea better. APLINAGL or something like that.
 
When eventually I get around to making a real golfed cover for APL, I'll call it ''.
 
Publish the wrapper on GitHub with the code page and Bob's your uncle.
 
(Pronounced: KuoteKuote)
 
:D
 
9:21 PM
(i.e. the name is 0 chars long, which in APL is written '')
 
Eh, time to learn node.js
 
you know, I was wondering earlier today why nobody made a language with a 0-byte name
 
@TrojanByAccident Or better yet, don't!
 
Dibs. Why KuoteKuote, and not QuoteQuote? Because ' is on the K key.
 
after I finish copying my files from my school computer, and wiping the rest
 
9:21 PM
howver, the solution to the encoding problem is surely just to define your own codepage that's similar to Dyalog Classic but contains the characters in question?
 
@Pavel have to, to submit to TIO
 
Anonymous
@ais523 Because people will think the language name is ,
 
@Mego but it would be‮
 
But if that interpreter is published, I wonder if it can actually have "Dyalog" in its name. I'm guessing that's a trademark or some other legal term.
 
just give it an unrelated name
 
9:23 PM
DAPL
 
my favourite example here is Mesa; the license they have from the OpenGL developers is basically "you can do what you like except you're not allowed to mention you're connected with OpenGL at all"
 
APL'd
 
Anonymous
APPLE
 
@Mego MIght be a trademark.
 
Anonymous
Only for hardware
 
9:24 PM
It's a fruit...
 
@Adám there was actually a famous trademark war over that, between Apple Music and Apple Computers
 
Confusable with applescript
 
then another one once the computer company came up with iTunes
 
I'm confused
Doesn't Apple own iTunes, Apple Music, everything with the word "Apple" in it?‮
or starts with "i"‮
 
(trademarks only apply in a certain context; IIRC the original lawsuit decided it was OK for them to coexist as long as one stayed a music company and the other stayed a computer company, but then iTunes kind-of blurred the boundary)
 
Anonymous
9:25 PM
@Adám Oh no, you might confuse the one person on the planet who uses AppleScript
 
@TrojanByAccident they weren't the first people to use the name, the music company came first (and was also pretty major at the time IIRC)
 
@Dennis Isn't it enough if I publish the codepage on the Meta page?
@TrojanByAccident iWatch
 
@Dennis how does Jelly have a 257 character code page?
 
@Adám It still has to be implemented. You have to be able to pass an X-byte file to an interpreter to claim a score of X bytes.
 
@Pavel It was well preserved
 
9:27 PM
@Pavel two of the characters are encoded by the same byte
thus can't be distinguished within a program
 
@Pavel Because two characters are aliases. You can use the pilcrow or a linefeed in Unicode mode; it diesn't matter which one you use.
 
in one golfing language idea I was working on, I had a 128-character codepage in which each codepoint encoded exactly two possible characters (the language distinguished between them by context), thus using 6 bits per character; I assume that would have driven Dennis mad
 
Ah, got it.
 
@ais523 Interesting idea.
 
@ais523 That's awful.
 
9:29 PM
it lets you make the program more readable/self-documenting
would you prefer a language where digits are sometimes keywords? (admittedly I'm working on one of those too)
IIRC 7 and 6 could be parentheses, depending on context (I picked those because it was nicely mnemonic and I was already used to those being parentheses from programming in 7)
 
@Dennis How is this: if you have an empty workspace where ⎕LX is ⎕FIX(⊂':namespace AGL_',(⎕d,⎕a)[?32⍴16]),('AGL.dyalog'{('"¥£¡¢§'⎕R'⍤⌸⍠⍸⊆⌺')⍵⎕NTIE 0}⍞),':endnamespace'
Then you put Header Code Footer into a file, and pipe filename\nInput intp dyalog wsname.dws
 
9:47 PM
Does that convert from the Dyalog code page to Unicode?
 
Yes.
All the other code was I/O to modify files.
A trick to assign any text to ⎕LX (or any variable for that sake) without having to double quotes, is executing ⎕LX←⍞ and then entering the literal text.
 
@Adám I was wondering about license subjects. You arranged a license for Dennis, not for tryitonline.net I'm currently in the process of automating/documenting a mirror setup as a contingency. So far Dyalog APL is the only language I won't be able to include due to the license. Your opinion?
 
@AndrewSavinykh It is obviously not a problem, but if you are running Dyalog locally, you need a license.
Is tryitonline.net an organization that can hold a license?
 
@Adám probably not
Dennis would know
 
@AndrewSavinykh Do you have a license?
 
9:59 PM
@AndrewSavinykh Not at this point. It didn't seem necessary when it was just a place to verify PPCG answers, but I'll look into it now.
 
@Adám Well I don't need one since I'm not using Dyalog APL. But a mirror would not work without it. One way to resolve it is to leave it as is and address this when contingency condition actually happens. I just wanted to know your opinion
 
@AndrewSavinykh You can just get a license.
You can write to sales@dyalog.com or use the form and explain what you are doing.
 
@Adám Good. Thank you.
 
@Dennis How can TIO stay online when you have a power outage. Is it running on a server that is not in Asunción?
 
@Adám Dennis doesn't own the server, Digital Ocean does.
 
10:08 PM
@AndrewSavinykh If TIO is on a cloud server, why do you need to mirror it?
 
@Adám so that @Dennis does not have to share access. He is paying his own money for the hosting
 
@AndrewSavinykh I see.
 
in any case I think it would be good for disaster recovery - so that realitevely easy to put it back up
currently it's requires quite a bit of efforts.
 
@Adám Hm, I tried that, but I seem to be doing something wrong. I saved the workspace (clear, assigning the ⎕FIX string to ⎕LX, then saving with )save AGL.dws), put \x0dHW\x0d in hw.agl (Dyalog CLassic for 'HW'), but this happened.
$ echo "hw.agl" | dyalog AGL.dws
Dyalog APL/S-64 Version 15.0.29007 Unicode
For i86_64
Created: Jan 17 2017 at 01:52:21
Copyright (c) Dyalog Limited 1982-2017
./AGL.dws saved Wed Jan 25 18:54:47 2017
hw.agl
line(2,0) : error AC0505: error (VALUE ERROR) executing line "HW"
                                                              ^
line(3,1) : error AC0534: unrecognised keyword encountered ":"
                                                             ^
line(4,0) : error AC0505: error (VALUE ERROR) executing line "e"
 
10:23 PM
@Dennis My bad: ⎕FIX(⊂':namespace AGL_',(⎕D,⎕A)[?32⍴16]),('AGL.dyalog'{('"¥£¡¢§'⎕R'⍤⌸⍠⍸⊆⌺')⍵ ⎕NTIE 0}⍞),(⊂':endnamespace')
@Dennis I don't understand what you were putting into hw.agl.
 
Oh, so it doesn't use the Classic encoding but UTF-8?
Alright, that works indeed.
 
I forgot to enclose the last line.
Why are you using 13 for newline?
 
0x0D in Classic is single quote according to your table.
 
Yes, but you can leave the file as UTF-8.
Even Classic can read Unicode files, but once the code is imported, it is single-byted.
 
But if we executed this code in Classic mode, we could use the Classic encoding in hw.agl, yes?
 
10:33 PM
I think so. Never actually use Classic unless I have to.
If we were using Classic, ⎕R might need a special option to tell it what encoding is being used.
 
Any chance I could get access to that as well? I'm curious.
 
@Dennis Absolutely. Morten already gave his approval for your lifetime DSS membership. And Andy already asked me if you need access to other versions, e.g. Windows.
I'll tell them to let you have the whole bunch. (Maybe except AIX...)
Actually, you raise an interesting point. This code wouldn't work in Classic.
Because I combined transpiler and interpreter, we need Unicode.
Otherwise, how can we translate to chars that are not in the codepage?
What do you do for Jelly?
It actually handles Jelly-encoded files, no?
 
Well, the easiest way would be to write a Bash/Python script that does the transliteration, then calls the DWS file.
 
@Adám Yes but Jelly can also read UTF-8
I think for TIO he just works with it in UTF-8
 
How does it know what you are feeding it?
 
10:39 PM
Command line switch
 
@Adám It does. Unless you specify u, the first step is to transliterate from the Jelly code page to Unicode characters.
 
@quartata That was my intention for AGL too.
Locally, I can trivially run things in classic, but using that codepage online would be an utter mess.
@Dennis Why call the DWS file? You can just feed it to the Dyalog interpreter.
 
Yeah, that's what I meant. By the way, I don't seem to be able to specify both -script and a DWS file. Is that intended?
Nevermind, dyalog -script -ws AGL.dws works.
 
I don't know. Never used it before now.
oh.
 
Um, so does dyalog -script -script AGL.dws. That might not be intentional.
 
10:44 PM
but you really don't need that workspace, it is just a translation to APL of what you were doing last night.
prepend :namespace AGL_128bitsinhex ... :endnamespace
 
Ah, alright.
 
11:07 PM
Are ⍸⊆⌺ for Dyalog 16?
 
@Dennis Yes.
 

« first day (156 days earlier)      last day (2338 days later) »