« first day (1486 days earlier)      last day (1163 days later) » 

12:32 AM
CMC: Implement . Test cases:
'abc'    ⍷ 'abcabcefgabc'
'abcabc' ⍷ 'abcabcefgabc'
'abcabc' ⍷ (5 7⍴'abcabc')
(0 3⍴'') ⍷ (5 7⍴'a')
(0 3⍴'') ⍷ (5 7⍴5)
(0 3⍴0)  ⍷ (5 7⍴5)
(0 3⍴0)  ⍷ (5 7⍴'a')
(0 3⍴⊂⍬) ⍷ (1 13⍴(3⍴⊂⍬),3⍴⊂'')
 
1 byte :P
 
12:54 AM
@Adám For vectors or all arrays?
 
looks like everything, going off the test cases
 
1:13 AM
Oh right, I didn't look too closely
 
@Wezl iphone user
 
 
3 hours later…
4:47 AM
@Wezl Appelogist?
Speaking on own APL implementations, I'm currently facing a dilemma with mine: I have a half-implemented optimisation to support typed arrays (i.e. arrays where all elements are guaranteed to have the same type). This will give a very nice performance boost for certain operations, since values don't have to be boxed and unboxed all the time.
Sounds like a no-brainer right? Problem is that the codebase will grow a lot and testing is going to be harder (since there are now generic vs. optimised code paths in many cases).
So perhaps it's too early to do this... I don't know. That's why it's such a dilemma.
 
 
1 hour later…
6:12 AM
@EliasMårtenson Every implementer faces this.
 
6:26 AM
@Adám True. I'm just not sure if now is the time to do it. On one hand I want to, but on the other I know it'll be more annoying to maintain.
 
<moon-child> heh, I started with only homogenous arrays and then added heterogenous ones. +some generic accessor functions, it's not too bad
 
6:51 AM
@Adám Another idea: manzanists or mazanists
Or mazanos
That'd be from the Spanish 'manzana' for apple and 'mazana' it's predecessor (according to Wiktionary)
@DyalogAPL Wow. AI is seriously getting out of hand : p
Why are people talking through the bot?
 
@AviFS Explained in the first paragraph of apl.wiki/APL_Orchard
 
7:08 AM
When I'm on mobile, I talk through two bots :-)
Because I use Matrix on the phone :-)
 
<razetime> @AviFS IRC is the superior messaging platform
 
RGS
7:20 AM
Is apl.cart something that we might dream of?
 
@Adám Whoops; thanks! Glad it’s working again
@RGS Crazier things have happened ; )
 
@RGS Feel free to dream. There's no .cart TLD.
 
RGS
@AviFS It would go nice with the apl.chat and apl.wiki but I don't think there's a .cart tld yet
@Adám I think yet is a keyword missing from your statement. TLDs have been increasing A LOT lately, so maybe we'll see a .cart.
 
<razetime> @RGS aplc.art is a possibility
 
@RGS There's a difference too. .wiki and .chat literally describe what they are. apl.cart wouldn't be a good hint at what it does. apl.info would be better, but that isn't available.
 
RGS
7:25 AM
apl.info is for sale. Have you tried making an offer?
 
> The current price of apl.info is 1,299 USD.
 
RGS
> You can place an offer below the seller's listing price, however the seller will only respond if they are interested in negotiating based on this offer.
 
Not worth it for 4 characters. APLcart is not a golfing library and anyway apl.golf is cheap.
 
RGS
Hurting never tried Trying never hurted
 
RGS
7:29 AM
The point wasn't golfing the URL, IMO. Domain names are like the internet's real estate and it can be the difference between being in 5th Avenue or some dark alley
Also not saying you have to buy apl.info! Just arguing in favour of it.
 
aplcart.info isn't a bad domain. dyalogaplcompetition.com is.
 
RGS
Didn't say aplcart.info was bad, just saying apl.info was better! :D
 
I should create a dhsdevelopmentskapcompetition.com :-) Great prizes to be won!
 
<razetime> what about creating a .apl domain ending?
 
razetime: Yeah, we need to petition W3 (or whomever decides this) that that's important. We need to match .python ;-)
 
RGS
7:33 AM
@Adám Maybe ICANN?
 
Somebody should totally start apl.blog
 
Set up a Pleroma server and run apl.social?
 
<razetime> apl.blog if it's created should have a lot of contributors
 
I was about to register it, but apl.blog is over 800 dollars/year.
 
@RGS When I set up aplcart.info, I considered neo-TLDs not well-known enough, so I went with a more traditional TLD. However, today, funky TLDs are becoming quite common, so I felt more confident about .chat and .wiki
@EliasMårtenson Bad registrar. Mine offers it for $546.33
 
7:36 AM
Cheapest I can find is apl.education and apl.technology. Both at 38 dollars.
 
RGS
@Adám Yeah, I would say you did well.
 
@Adám Singapore dollars :-)
 
Oh.
 
(I just noticed my registrar decided to use my local currency)
 
@EliasMårtenson I see way cheaper apl. domains.
 
7:38 AM
apl.cart may not be available, but you can get apl.cars for 3k/year
 
apl.monster: USD 1.51
 
NIce :-)
apl.dealer :-)
 
Maybe a portal for learning materials could be apl.training?
 
Yes.
I still like the blog idea.
 
And the tips page: apl.tips
Hehe, apl2000.org (sounds dated) which sells APL+Win → apl.win
 
RGS
7:42 AM
@EliasMårtenson It is still somewhat expensive for an individual to buy
IMO
 
apl.recipies perhaps.
Or apl.ist
 
@EliasMårtenson I think it'd be better to populate aplcart.info/pub and let it include the published blog posts (which then don't need a cool domain). If it takes off, I'll buy aplpub.info
 
I think I've written a total of 2 blog posts about kap
Sometimes I get creative and write a post about some technical topic that I'm working on, but it's not very often.
I's probably time to write one now though.
 
RGS
Is there a place to submit content to aplcart.info/pub or is it just a standard PR against the aplcart repo?
 
@RGS just regular PRs.
 
7:58 AM
<razetime> TLDs seem to be really costly
 
RGS
@razetime only some of them.
 
<razetime> and they seem to take a decade to actually come up
<razetime> $250,000 plus a yearly fee
 
RGS
Ah wait, maybe I misunderstood. You mean the creation of a TLD?
 
<razetime> yep
<razetime> I'm interested in knowing why people can't have any extension they want
<moon-child> razetime: plus a ton of infrastructure to support the tld
<moon-child> google has their own tld (see e.g. com.google), as do a few other companies iirc
<razetime> the internet is a "free place right"
<razetime> why are domain names restricted by an organizatino
 
RGS
@DyalogAPL if I'm not mistaken, the TLD is one of the first things used when trying to figure out where in the internet the URL should point to.
 
8:01 AM
<razetime> why are domain names restricted by an organization
<moon-child> ips are too. Icann
<moon-child> also there was a project to make an open domain registrar with open tlds. opennic, I think
 
RGS
The TLD points towards one of many bookkeepers, who should then be able to point you in the right direction.
Turns out the bookkeepers don't work for free :P
 
<moon-child> so it's not a matter of 'have to', it's just that that's convention, and it's hard to get people to trust new authoritative domain servers
<razetime> ah well
<razetime> that makes more sense
 
razetime: People can have any extension they want, but others won't be able to find the server. E.g. at Dyalog, we use .bramley (the town HQ is in) for our internal network.
 
<razetime> neat
 
> Like all alternative root DNS systems, OpenNIC-hosted domains are unreachable to the vast majority of Internet users, because they require a non-default configuration in one's DNS resolver.
 
RGS
8:20 AM
Are dfns and tradfns "user-defined functions" or "user defined functions"? It's "user-defined", right?
 
I agree, though I'm no native speaker
 
RGS
top of page 14 here ox.ac.uk/sites/files/oxford/… makes it look like so
 
@RGS I think so, but Fiona is the authority on English in general and on Dyalog nomenclature in particular.
 
RGS
Alright, thanks!
 
I often ask her in chat “Is it ‘abc’ or ‘xyz’?”
 
RGS
8:38 AM
I did ask her.
 
9:11 AM
This was fun:
0
A: Print a string without using quotes in your source code

AdámAPL (Dyalog Unicode), 60 bytes (SBCS) Anonymous prefix lambda taking (and ignoring) a dummy argument. {0::43↑22↓2⊃⎕DM⋄The quick brown fox jumps over the lazy dog} Try it online! { dfn:  0:: if any error happens:   ⎕DM get the Diagnostic Message (a list of three strings; the error message, the o...

 
9:28 AM
0::43↑34↓∊⎕DM works
 
Oh, of course. Thanks!
 
9:50 AM
@rak1507 Found a different way to shorten, but requires 2⊃
 
ah, clever
 
<moon-child> finally started working on apl cas. Mathematica documentation helpful at times, but also contains horrifying gems like ‘Expression formatting uses several thousand pages of C++ code’
<moon-child> pages
<moon-child> what is consistent syntax?
 
10:10 AM
Expression formatting? Are they referring to rendering of mathematical expressions?
The entirety of LaTeX is smaller than that by a large degree.
 
<moon-child> even the tex book, which is the literate version of the implementation (~ more prose than code) is only 500 pages
 
 
4 hours later…
2:30 PM
moon-child: Regarding the question of 64-bit INTs in Dyalog APL, we could declare them to be part of the "big tower" that you select in Dyalog APL by setting ⎕FR (floating-point representation) to 1287 (meaning 128-bit Decimal Float). What ⎕FR actually selects in Dyalog APL is the type that will be used for ANY COMPUTATION that requires floating-point.

Dyalog APL already automatically promotes and demotes between 1-bit, 1- 2- and 4-byte integers, so we could declare that (⎕FR=1287) ALSO means that I32 will blow up to I64 before going floating-point. On the other hand, one could argue that
 
@MortenKromberg ouch. Needing to suffer the slowness of 128-bit floats for int64s seems just awful
 
@dzaima well, if all you do is convert them back and forth it is not so bad, and this is not very widely used functionality (getting a handle and handing it back again). It also only happens (I think) if the I64 actually has a magnitude that requires it.
 
(i've been thinking about having explicit types, but still allowing the internal type to be a smaller one if that's better. Seems quite a bit more complex, but the actual implementation overhead isn't that much more than of the regular single tower afaict)
 
@dzaima Yup, writing an APL interpreter is a one-semester project. Writing an efficient one can take several lifetimes. But it is fun when some chief actuary in an insurance company can write a line of code that runs faster than C code which is hand-optimised by a pro :D.
 
(might try to make a quick&dirty very-prototype frontend thing for this thing over the weekend in java+antlr)
 
2:43 PM
@dzaima Been working more on BQN music scripts and at this point not having sine and cosine available is a problem. Do you think you can add a •Math or •Import"•Math" object that provides these? It's probably best for it to eventually include all of libc's real computations as scalar functions, but of course people (me) will mostly use trig.
 
@Marshall sure
 
FFT would be helpful too, since it's pretty hard to implement if the length isn't a power of two. Right now I just need it for reverb (convolution), which I can implement with power-of-two lengths but would rather not.
 
@Marshall implementing fft seems a bit more complicated than copy-pasting sin&cos&co
 
@dzaima If it's not convenient to use a library, don't bother.
 
@Marshall right; BQN is currently using a total of 0 libraries and I quite like that (no need of java package managers or jar files in the repo)
 
2:49 PM
@MortenKromberg they must not be that much of a pro then
 
@rak1507 They may just not be able to justify putting as much effort into solving a single trivial application problem as an APL vendor can justify spending on something that will speed up a thousand different solutions.
(which I think is a point that Marshall makes in that talk)
 
Fair enough
 
@dzaima Makes sense. Looks like FFTW is really messy too. It would probably be a better use of time to add an FFI so it's possible to call the shared object like J does, not that there's any pressing need to work on that either.
 
@Marshall it probably wouldn't be too hard to have a way to load a jar file and get an object instantiated from a java class name
@Marshall added sin/cos/tan/asin/acos/atan into •math
hmm, destructuring assignment only works on Namespaces, which •math isn't
 
3:04 PM
@dzaima That would explain why Sin‿Cos‿Tan ← •math fails.
 
@Marshall pushed fix (and another to make it actually work). Was annoyingly trivial
 
@dzaima Looks good. native-image takes so long to build...
@dzaima Wait, no it doesn't! I was testing the script with the workaround!
 
indeed it doesn't. i was testing ⟨s⇐Sin,c⇐Cos⟩←•math :|
pushed more fix (of the same triviality as before, but in a different file)
 
3:57 PM
@Marshall that:
https://dzaima.github.io/paste/#0lVLLbtswELzrKxY@UWlDuT7atwQx4CA1UKTopehhTa1suRQpkKvIQWGgp577Df20fElJyfKjDQpUgIDlanZmNcMsA8xzyqE0bOFR2ZrkmniaKPQEo5fvv7baYj6agiNunAFDLczNTVNqLo1I4VsCUDcrXSp4ZFeaNWgj5hUvTGGhCN@Hwch1/xC5ZrA/DX1C3RAo1Fr05a7nBGD3fKhg4OghKdxq9F4W1i2xIrGT6HttkaZx@1trPLtGsXUilWHjRTijUSTSWUe4D4KsNiA@bpxtcaUJKD2KcWx2P7qoak0VGUYurblzLhDSwJHEdz9LkiyDux2TM6jlFp9wmiQ1qq@4JmDyHBBlVVvHcPNhKSmSeHk1O2@ytfqv3nNNr/eiWXFnuepT6FDJwU8VrTnuAxQKk/tTZP8RWFw@mBEgh8j@kVr7Fv6I7@y@LJtKtCGkhWGRXu2G6s2x6iy9VPDRcwVPtsyhwnDV@mU/fwF0az@I9BkkXQbRegXXqoYaeZOxzaJlW3RwnYMEmV2E1E84UMV5eK5L7ITs3IxQ
@dzaima (actually no need of void main(String[]) there)
 
4:19 PM
looks neat! any plan to have math fns in the self-hosted version?
 
@cannadayr it doesn't even have -things yet (and i doubt its namespaces will like a •math object much)
 
@semperos Welcome back. Interested in APL now?
 
@dzaima could theoretically be in a stdlib
 
@cannadayr it doesn't have any library support either ¯\_(ツ)_/¯
 
@dzaima never underestimate the value of copy and paste
 
5:18 PM
@cannadayr Yes, eventually you'll definitely be able to use either •math or something like •Import"•math" in the same way dzaima's implemented. The reason I haven't yet added namespaces to the spec is that I'm not sure how things like trying to modify a member variable should work.
 
 
2 hours later…
RGS
7:17 PM
I just want to say that I have successfully created my first user command, wed, that opens the editor for (tra)dfns and (tra)dops in such a way that the whitespace is NOT squashed
 
:O
 
RGS
@rak1507 It's just a wrapper around some magic code @Adám gave me repeatedly already
 
Cool
 
RGS
The only "tricky" thing was dealing with the fact that the interpreter was getting hung up because the cmd was only finished when I closed the edit window, but some & magic fixed that.
 
ngn comes in to say to store source code in files :)
 
RGS
7:26 PM
@dzaima I do save it, but I generally create the dfn/dop inside the interpreter
and then I save it
 
right, that's what i do too
 
RGS
Alright
But in the meantime, I'll have fixed the function 43524 times
And it is just annoying that it doesn't preserve things like I prefer, so instead the incantation, now I do ]wed fname
 
ngn
@dzaima nah. do what thou wilt.
 
 
1 hour later…
RGS
8:48 PM
@ngn A changed man??
 
 
1 hour later…
9:50 PM
If I want to add / propose something to APLcart, I need to go here, right? github.com/abrudz/aplcart/blob/master/table.tsv
I need to somehow get the trick from this slide there... Searching for it every now and then... youtu.be/Hln3zryunsw?t=2157
 
RGS
@MartinJaniczek Yes.
You edit the table to add the entry(ies) you want to propose, and then make a PR.
That PR will have things written, with instructions on a little test you have to run, to ensure you didn't screw up the formatting of the .tsv.
Then you submit the PR and wait for Adám to review it.
 
Thanks. Is there an adjective for something that is both an operator and a function?
 
@MartinJaniczek yep :D
 
"overloaded" is probably less tongue-in-cheek. Anyways we can discuss in the PR
 
note that these are already on APLcart
 
10:00 PM
Hm, perhaps I don't need to add a new entry but to suggest keywords to the existing one(s) instead.
lol although some of the existing ones are great. functionize, functionify
      ]link.import # .
* Command Execution Failed: INDEX ERROR
      ]link.import # ../aplcart
Imported: # ← ../aplcart
meh
(../aplcart is .)
 

« first day (1486 days earlier)      last day (1163 days later) »