🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
00:06
reportable6 left
00:08
reportable6 joined
00:14
Nemokosch left
|
|||
gfldex | lizmat: I can answer the question in your latest blogpost. :) I wanted to hyper stuff that was otherwise unhyperable. | 00:20 | |
00:22
euandreh left
00:23
euandreh joined
00:38
TieUpYourCamel left
01:09
Kaiepi left
01:45
deoac left
01:53
TieUpYourCamel joined
|
|||
guifa | ugexe tonyo: seems I'm still having some issues with a module getting into fez. It's about 80 MB on disk, 20 MB compressed. Could that be causing it some issues? i haven't gotten an e-mail from fez saying there's any problem, and locally it's giving me success. Only thing it's complaining about is a few files in resources not included in META6 but I don't think that should block listing, right? | 02:38 | |
leont | POST limits? | 02:45 | |
avuserow | if we want to support arbitrarily large module uploads, AWS S3 lets a service give a "ticket" of sorts to the client to upload to a specific path for a limited time. that would offload the upload work onto S3. Then you can have the client ping the service again when the upload is done and resume from there. | 02:47 | |
02:48
sortiz left
|
|||
avuserow | since S3 is a defacto standard for object storage APIs, this may work elsewhere too | 02:48 | |
I don't remember the exact APIs but I know where to find the info if that's something we want to do. I do know that it wouldn't require fez to depend on a full S3 client, so that's nice | 02:49 | ||
02:55
habere-et-disper left
|
|||
guifa | leont: maybe? I feel like I can't possibly be the largest module on fez right now though | 02:56 | |
02:56
razetime joined
|
|||
guifa | actually, I take that back. I probably can ha | 02:57 | |
03:14
euandreh left
03:19
euandreh joined
03:23
euandreh left
|
|||
tonyo | avuserow: that's what fez uses for upload, guifa I'll take a l9ok at the logs but am in a very rural so cell is not great | 03:32 | |
guifa | tonyo: no rush. My module can still exist in p6c space for the time being. I'll just update the META6 on github to use git: instead of zef: to avoid install errors via that ecosystem | 03:34 | |
guifa feels bad for being the guy that breaks things | |||
tonyo | it's fine, this issue is plaguing me at the moment and having trouble tracking it down so real time logging/response is nice | ||
03:35
bigdata joined
|
|||
tonyo | finanalyst is the other person who seems to trigger this frequently | 03:35 | |
guifa | if there's any logs on my end I can send to help, def let me know and I can do whatever. I'm around most evenings / weekends (eastern time, I think you're pacific yeah?) | 03:36 | |
03:36
razetime left
|
|||
tonyo | guifa can you drop the dist somewhere i can download? you can make it retain with `fez upload --save-autobundle`, yours looks like it's just timing out | 03:37 | |
or you can email to me? if that's preferred then i'll pm you my email | 03:39 | ||
03:51
euandreh joined
|
|||
guifa | tonyo: alrighty just made a new attempt using --save-autobundle. I'll PM you a link | 03:54 | |
04:01
razetime joined
04:45
euandreh left
04:51
euandreh joined,
Guest42 left
04:57
ToddAndMargo joined
|
|||
ToddAndMargo | anyone on newbie duty tonight? | 04:57 | |
Rakudo 2022.07 | 05:01 | ||
05:01
euandreh left
|
|||
ToddAndMargo | Is going bananas with `exit(1)` when run as and administrator. Run as a regular uses it is fine. | 05:01 | |
Cowardly Exiting. Bummer Dude ... | 05:03 | ||
Cannot resolve caller protect(Lock:U: Block:D); none of these signatures matches: | |||
(Lock:D: &code, *%_) | |||
in method setup at C:\Program Files\Rakudo\share\perl6\core\sources\A37F26876B58371B70EDD889AD69F064C90AC2C6 line 296 | |||
in method setup at C:\Program Files\Rakudo\share\perl6\core\sources\A37F26876B58371B70EDD889AD69F064C90AC2C6 line 366 | |||
in sub raku-nativecall at C:\Program Files\Rakudo\share\perl6\core\sources\A153F63283BF744FD66BF7212910E5F389384F6E (NativeCall::Dispatcher) line 46 | |||
in sub MessageBox at Windows.RaidCheck.pl6 line 129 | |||
in sub GetRaidStatus at Windows.RaidCheck.pl6 line 115 | |||
in block <unit> at Windows.RaidCheck.pl6 line 142 | |||
Is there something I should know about running as an administrator? | |||
bananas with plain old `exit` too | 05:21 | ||
`&*EXIT` does the same thing | 05:25 | ||
`die` also does the same thing | 05:27 | ||
05:41
renormalist left
05:47
renormalist joined
05:57
mykhal left,
esh left,
daxim left,
CIAvash left,
AlexDaniel left,
zups left,
esh joined,
mykhal joined,
daxim joined,
zups joined
06:00
AlexDaniel joined,
CIAvash joined
06:07
reportable6 left
06:08
xinming left,
xinming joined
06:09
reportable6 joined
06:21
perlbot left,
gordonfish left,
ecocode left,
hexology left,
Demos[m] left,
tadzik left,
ecocode joined,
perlbot joined
06:22
perlbot left,
perlbot joined,
hexology joined,
gordonfish joined,
Demos[m] joined
06:29
tadzik joined
06:53
Kaiepi joined
06:59
Kaipei joined
07:02
Kaiepi left
07:54
razetime left
08:12
Sgeo left
08:26
razetime joined
08:30
jjido joined
08:39
derpydoo joined
08:40
abraxxa-home joined
|
|||
Geth | Raku-Steering-Council/main: 79b20ea75d | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | README.md :bug: :memo: Thanks @MasterDuke17 ! |
09:08 | |
09:25
ToddAndMargo left
|
|||
bartolin | ToddAndMargo: That looks like the problem described in github.com/rakudo/rakudo/issues/5096. I'd guess that Rakudo hasn't write permissions for a precomp directory when running as administrator. | 10:08 | |
tellable6 | bartolin, I'll pass your message to ToddAndMargo | ||
10:19
sena_kun joined
10:31
euandreh joined
10:33
linkable6 left
10:35
linkable6 joined
|
|||
Nemokosch | also can be related to the thing described by Demos[m] | 11:21 | |
11:34
abraxxa-home left
11:37
habere-et-disper joined
11:46
euandreh left
11:48
abraxxa-home joined
12:07
reportable6 left
12:09
reportable6 joined
|
|||
Geth | infrastructure-doc: 037695bc02 | (Tom Browder)++ (committed using GitHub Web editor) | README.pod Update README.pod |
12:22 | |
¦ doc: edehont self-unassigned .shape is missing from the documentation github.com/Raku/doc/issues/411 | 12:25 | ||
tbrowder | hi, can anyone tell me how to get github actions badges for the three separate OS we test modules for on github? thnx. | 12:37 | |
lizmat | three different .yml files ? | ||
Anton Antonov | <@755062053282119803> Do you do (frequently) conversions from Markdown to HTML? | 12:38 | |
lizmat | tbrowder: the name: field in the test.yml is what becomes the name of the action badge ? | ||
afk& | 12:39 | ||
12:40
antononcube joined
|
|||
antononcube | tbrowder Do you do (frequently) conversions from Markdown to HTML? | 12:40 | |
tbrowder | lizmat: i'll look there, thnx | 12:42 | |
yes, i asked skaji how to get separate badges showing separate results | 12:43 | ||
for win, macos, and linux. i got that, now i just need to distinguish each | 12:44 | ||
antononcube: hm, not regularl, but to use wordpress i do | 12:45 | ||
(ugh) | |||
actually, pod to html or pod to markdown, i've never found a completely satisfactory path :-( | 12:46 | ||
antononcube | @trbrowder You can use pandoc (see pandoc.org) to do Markdown to HTML conversions, but lately I am not happy with it. So, I implemented Markdown-to-HTML in "Markdown::Grammar". | 12:49 | |
BTW, you can "just paste" Markdown code in WordPress and get fairly good results. (At least with WordPress page styles I am using...) | 12:51 | ||
12:52
lichtkind joined
|
|||
tbrowder | yes, pandoc for me has not worked so well but i was trying to get from text to .docx | 12:55 | |
12:55
epony left
|
|||
tbrowder | i think getting the styles right is part of my complaint about wp | 12:56 | |
lizmat: that did the trick, thanks! i'll make that the default in mi6-helper | 12:58 | ||
antononcube | @tbrowder Good to know. | 13:01 | |
@lizmat I think you should have a directory "notebooks" in your GitHub/lizmat/articles repository. | 13:02 | ||
tbrowder | antononcube: but i'm trying to make rakupod my text source for everything, so pod to html is or will be used more for my projects | ||
antononcube | @tbrowder I see. I have to say my publication efforts are not POD-centric. I prefer Markdown because of its ubiquitous support. (Especially on GitHub.) | 13:04 | |
13:11
abraxxa-home left
13:22
antononcube left
13:26
none joined
|
|||
none | Hi. what is the raku equivalent of htonl(3) for serialization ? Is there such a thing for 64 bits integer. linux.die.net/man/3/htonl | 13:29 | |
I want network serialization order to be architecture independant. And the serialized integers will be read in C with ntohl(3) | 13:36 | ||
13:37
bigdata left
|
|||
guifa | none: I'm not sure if there's a specific function, but buf8 objects have read/write methods that include an option for endianess | 13:38 | |
none | guifa seems to do what I want. kthx. docs.raku.org/type/Buf#Methods_on_...and_later) | 13:40 | |
guifa | also if I get some time later today that sounds like a neat module, I might put one together with a few options/optimizations | 13:41 | |
13:50
none left
14:00
epony joined
|
|||
tbrowder | antononcube: can you get a centered string in Markdown? | 14:05 | |
tellable6 | tbrowder, I'll pass your message to antononcube | ||
perryprog | tbrowder yes? | 14:08 | |
<p style="text-align: center;">Blah blah blah</p> | |||
14:10
codesections joined
14:12
epony left
14:13
lichtkind left
14:14
epony joined
14:17
habere-et-disper left
|
|||
tbrowder | yes, but how do you express that in Markdown? | 14:17 | |
14:21
codesections left
14:30
codesections joined
|
|||
Anton Antonov | <@755062053282119803> Markdown is supposed to accept all HTML code. | 14:30 | |
<@755062053282119803> Well... maybe not all HTML... Please, see here: www.markdownguide.org/basic-syntax/#html | 14:31 | ||
perryprog | daringfireball.net/projects/markdo...philosophy is probably better | ||
just since that's the basis of any other MD variant | 14:32 | ||
Anton Antonov | @perryprog Sure! | 14:37 | |
14:52
deoac joined
|
|||
tbrowder | well, rakupod allows complex attributes and its up to the rakupod renderers to use them. granted, we’re not there yet. | 15:14 | |
15:37
jjido left
|
|||
Nemokosch | tbrowder: so skaji does bother to communicate with you? 😡 | 15:46 | |
tbrowder | yes, just takes some time, i'm learning in my old age to be more patient... | 15:47 | |
Nemokosch | I created a PR for mi6 almost 2 months ago with no feedback whatsoever | 15:49 | |
tried to connect him in IRC DM's as well, nothing at all | |||
tbrowder | i am about to release another mi6-helper that creates 3 test badges. the three badges are very helpful for those modules that have windows problems. the usually good test on linux is ruined when using just one badge. | 15:50 | |
perryprog | I wonder what the age distribution of raku users is compared to other new-ish languages 🤔 | 15:53 | |
tbrowder | i think he is very busy with, for him, much more important stuff. but his mi6 code is very instructive for creating instrospective modules | ||
is that the json spacing pr? | 15:55 | ||
perryprog: sounds like a good project | 15:56 | ||
perryprog | nooo stats is scary | 15:59 | |
Nemokosch | this tbh | 16:02 | |
tbrowder: you cannot be so busy that you can't take 5 minutes to give the slightest "sorry can't deal with it in the foreseeable future feedback". I just find it disrespectful that you can't value the other person't time enough for doing that. | 16:04 | ||
perryprog | Yes, you can be that busy. | ||
Nemokosch | absolutely not | 16:05 | |
tbrowder | i’m not sure he checks the project that often | ||
Nemokosch | especially not claim to be as busy when you do bother to answer other's questions in the meantime | 16:06 | |
yeah well, 2 months is indeed not often. That's why I've been trying to take up on Ddt. However, it's also not easy to consult with someone who admittedly doesn't use Raku anymore | |||
by the way github.com/Raku/infrastructure-doc is this repository used for anything? | 16:08 | ||
tbrowder | re skaji: the big dogs here could ask skaji to release App::Mi6 to become a raku community project. | 16:25 | |
re infra: it doesn't look like it | 16:26 | ||
Nemokosch | for App::Mi6 - I wish that happened to Ddt as well originally but for now I'm trying to secure it. | 16:27 | |
Another problem is: who reviews, merges, publishes community repos? Because if it ends up at a couple of people who aren't willing to do it or don't have time, we end up with the same situation. | 16:29 | ||
16:37
evalable6 left,
linkable6 left
16:38
evalable6 joined,
linkable6 joined
|
|||
tbrowder | the advantage is it's there and under community control and easier to change the maintainer | 16:44 | |
16:46
Kaipei left
|
|||
tbrowder | we could i guess dup skaji's code but that's not a good thing. approval is the way to go imho. most of the use has been when author's have passed away i believe, or voluntarily relinquished rights | 16:46 | |
*authors | 16:54 | ||
btw, mi6-helper was created because skaji didn't want to do those mods and i really liked the module but with my own tweaks. | 16:57 | ||
16:57
sena_kun left
16:58
Sgeo joined
16:59
sena_kun joined
|
|||
guifa | my understanding is that the comcomunity repos were there to be "claimed" by someone who wanted to take over maintenance | 17:01 | |
otherwise, maybe that's a topic for the RSC to discuss — maybe a few community members could be appointed to accept PRs for as yet unadopted projects (but not be expected to do bug fixing if bugs are found — others could do that and submit a PR) | 17:02 | ||
tbrowder | guifa: that’s sounds like more the truth vs my statement, but still… | 17:05 | |
17:23
euandreh joined
17:29
razetime left
17:34
MoC joined
17:42
jjido joined
17:44
deoac left
|
|||
Nemokosch | I mean I'm not against the "socialist" approach of shared ownership, it does have advantages | 17:58 | |
The problem is, rather, that the so-called "big dogs" don't seem to be doing much management | 18:00 | ||
In which case one might ask: why do we have a steering council if not for this? | |||
To be honest, it's borderline upsetting when you see another CAT spec. Is there nothing else to do? | 18:04 | ||
18:06
reportable6 left
18:08
derpydoo left
18:09
reportable6 joined
|
|||
lizmat | The problem is that many people think there are sone so-called big dogs, while these people just happened to not step back when others did | 18:14 | |
ugexe | why would one expect a bureaucratic group to have the required expertise to merge PRs? we don't need people to click the merge button, we need people to understand the various projects as a whole, to understand the current and potentially future design considerations, etc | 18:15 | |
for instance what if openssl was in the community repos - why should one expect someone on the rsc has any of the requisite knowledge to know a PR is legit, safe, etc? | 18:16 | ||
Nemokosch | the task of RSC isn't to merge PR's, sure. It is a task of RSC, though, to make sure there are people _willing to deal with_ those PRs and _grant access_ to them | 18:17 | |
lizmat | Nemokosch: and you're thus implying that the RSC doesn't do that? | 18:18 | |
tellable6 | lizmat, I'll pass your message to Nemokosch | ||
Nemokosch | also, I do think the RSC is mostly defined as a _management_ authority, not a language design/engineering team | ||
don't take it personally because I clearly don't mean it for you in the first place - but basically yes, that's all I can see | 18:20 | ||
and while codesections was definitely among the people who inspired me to start Raku, I have to say I'm particularly disappointed by the apparent lack of his activity | |||
18:21
Kaipei joined
|
|||
El_Che | wow, lots of backlog. | 18:21 | |
What and who is the big dogs? | |||
lizmat | there's only one person on the RSC that is able to do full-time Raku, and that'd be me | ||
ugexe | be the change you want to see | ||
lizmat | all of the other people have jobs and lives outside of Raku | 18:22 | |
what ugexe said | |||
ask not what you the RSC can do for you, ask what you can do for Raku | 18:23 | ||
Nemokosch | and that's what I am doing, yes, with a job and "living outside of Raku" as much as I don't sacrifice my own time for it - which was very little recently | ||
and I am hitting walls | |||
ugexe | hitting your head against something until it works is the mark of a typical software engineer | 18:24 | |
Nemokosch | hitting walls, because I'm no authority, I can't just go ahead and write whatever I want, I can't merge my own pull requests, and so on, and so forth | ||
because I spend ours writing a comprehensive issue of a certain topic and I get no feedback whatsoever in months, and I can't just go ahead and make decisions about how hypering should work, for example | 18:25 | ||
ugexe | i used to be at that point ~10 years ago, arguing with people like nine about CUR changes, until i became an authority | 18:26 | |
Nemokosch | Mind you, I don't even want to make these decisions. But there is an apparent lack of interest and care | 18:27 | |
Also, please at least keep in mind that I have been mocked right here for not being useful enough with 1 year of presence, along with $dayjob, to do Rakudo stuff for example | 18:29 | ||
Now, vrurg doesn't have time to set off with the Rakudo-ish crashcourse. I'm not blaming him or anything but please do realize that there are limits that the average Joe can barely change at all | |||
ugexe | somehow those of us who were averages joes 10 years ago were able to persist our way into big dogness without any rakudo courses | 18:30 | |
like if you want it to be easy and fast yeah thats probably not going to happen | 18:31 | ||
but if you come up with a solid design for something, explain it well, and implement a draft then then the only thing stopping you from ultimately merging it (anyone can get a commit bit) is someone else having to grok all your work and finding issues | 18:32 | ||
tbrowder | i meant nothing but respect for the term "big docs;" referring to the known experts | 18:33 | |
*dogs | |||
of sound mind and full of community spirit | 18:34 | ||
18:38
p6steve joined
|
|||
p6steve | m: my $l := (1,(2,3),4); for $l { .say } | 18:38 | |
camelia | 1 (2 3) 4 |
||
tellable6 | 2022-09-08T12:51:13Z #raku <ugexe> p6steve: declare it in meta6 under 'resources' as `libraries/lib`, and then have Build.pm generate the file to resources/libraries/ | ||
2022-09-17T10:23:43Z #raku <lizmat> p6steve: you're creating a Proc::Async object with the Promise returned by "run" ? | |||
2022-09-17T10:29:19Z #raku <lizmat> p6steve: that feels wrong: Proc::Async.new: run | |||
2022-09-24T13:23:12Z #raku <El_Che> p6steve: you should give podman a go. You can run the same setup on mac, win and linux and no root needed on Linux to run the containers | |||
p6steve | my $l := (1,(2,3),4); for $l { .say } | ||
evalable6 | 1 (2 3) 4 |
||
p6steve | OK - that's iterating over the top level of a List | 18:39 | |
but... | |||
my $l := (1,(2,3),4); sub fn($m) { for $m {.say} }; fn($l) | |||
evalable6 | (1 (2 3) 4) | ||
p6steve | when I pass the List to a sub, it gets put in a container and then does not iterate (ie. there is only one iteration) | 18:40 | |
(i) I imagined that an argument would be passed as a (bound) reference | |||
(ii) this container now changes the single argument behaviour, what is the best idiom to prevent this? | 18:41 | ||
Nemokosch | ugexe: if your argument is "I had harder so don't ever complain", well... I don't think that's a good argument | ||
you have my respect for it but in return, do respect when I say I don't see it as a perspective to be where you are now in another 10 years | 18:42 | ||
ugexe | you're convinced the average joe cant do certain things, and I gave you evidence suggesting otherwise | 18:43 | |
lizmat | m: my $l := (1,(2,3),4); sub fn($m is raw) { for $m {.say} }; fn($l) | ||
camelia | 1 (2 3) 4 |
||
lizmat | m: my $l := (1,(2,3),4); sub fn($m) { for $m {.say} }; fn($l) | ||
camelia | (1 (2 3) 4) | ||
lizmat | m: my $l := (1,(2,3),4); sub fn(\m is raw) { for m {.say} }; fn($l) | ||
camelia | 1 (2 3) 4 |
||
lizmat | p6steve ^^ | 18:44 | |
p6steve | lizmat: thanks ... the is raw is what I need | ||
Nemokosch | not *convincing* evidence, though 😄 | ||
lizmat | p6steve: but that only works if the source is not in a container | ||
m: my $l = (1,(2,3),4); sub fn(\m is raw) { for m {.say} }; fn($l) | |||
camelia | (1 (2 3) 4) | ||
lizmat | m: my $l = (1,(2,3),4); sub fn(@m) { for @m {.say} }; fn($l) | 18:45 | |
camelia | 1 (2 3) 4 |
||
lizmat | p6steve: if you know the arg is always going to be a list, why don't say that in the signature ? | ||
18:47
MoC left
|
|||
p6steve | m: my $l := (1,(2,3),4); sub fn(List $m) { for $m {.say} }; fn($l) | 18:48 | |
camelia | (1 (2 3) 4) | ||
Nemokosch | by the way, in some sense, an @argument is decontainerized if it comes from a Positional source, no? | ||
or at least it isn't further containerized | |||
p6steve | m: my @l := (1,(2,3),4); sub fn(@m) { for @m {.say} }; fn(@l) | ||
camelia | 1 (2 3) 4 |
||
p6steve | lizmat: this is yet another occasion where raku is surprising, but on reflection does things right - so in this case, I can see that the "easy" way to pass a list of things is to follow the perl roots (ie use an Array and @) ... | 18:49 | |
lizmat | perhaps strangely consistent, yes | 18:51 | |
p6steve | lizmat: and the easy path with scalars is that the "reference" that gets passed is the container and you need is raw to suppress this | ||
lizmat | you should really not think of references in Raku :-) | 18:52 | |
now, why a $ in a signature actually creates a new ro container, is something that I've wondered as well, and asked jnthn, but am afraid I forgot the answer to that question | 18:53 | ||
instead of binding to the deconted value of the argument | 18:54 | ||
Geth | doc/lizmat-is-deterministic: 8c67799271 | (Elizabeth Mattijsen)++ | doc/Type/Iterator.pod6 Document Iterator.is-deterministic |
18:55 | |
p6steve | nemokosch: yes - I think you are right which is that the sub call will try to do stuff in a perlish way so the basic operation is to pass scalars around is a $ (and I guess that an Array is a container) | ||
Geth | doc: lizmat++ created pull request #4122: Document Iterator.is-deterministic |
18:57 | |
Nemokosch | wasn't "strangely consistent" the blog of masak? | 19:02 | |
lizmat | yes | 19:03 | |
Nemokosch | <@928301352029937715> (p6steve for IRC folks) I think terminology is a bit hard around here. An Array is a container... of some sort. It's definitely something .VAR.WHAT can return | 19:04 | |
however, from all I understood so far, it doesn't make sense to talk about the decontainerisation of an Array | 19:06 | ||
a "decontainerized Array" is still an Array, it's like a NOP | |||
the way I try to think of this is that a Scalar is like a box (like a gift box) while an Array (or a Hash) is like a grid | |||
you can unwrap a box but you cannot unwrap a grid - a grid is a topology, not an entity | 19:08 | ||
19:19
abraxxa-home joined
|
|||
lizmat | an Array is *not* a container. it is an object with containers | 19:19 | |
an array can be within a container, sure, but it is *not* a container | 19:20 | ||
m: my $a = [1,2,3]; $ an Array in a container | |||
camelia | ===SORRY!=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> my $a = [1,2,3]; $⏏ an Array in a container expecting any of: infix infix stopper statement end statemen… |
||
lizmat | m: my $a = [1,2,3]; # an Array in a container | ||
camelia | ( no output ) | ||
lizmat | m: my $a = [1,2,3]; say $a # an Array in a container | ||
camelia | [1 2 3] | ||
lizmat | m: my $a = [1,2,3]; say $a.VAR.WHAT | 19:26 | |
camelia | (Scalar) | ||
lizmat | m: my $a := [1,2,3]; say $a.VAR.WHAT | ||
camelia | (Array) | ||
Nemokosch | how to put it... Array is not a value type. Unfortunately, not even List is a value type - but there is a not-so-subtle difference: an array _provides_ mutation by managing Scalar containers, while a list just allows the presence of mutable data | 19:31 | |
(I think Array descending from List is a similar conceptual failure to Failure descending to Nil but that's beside the point now) | |||
moreover, quite importantly, Array is the default type of an @-sigilled variable, which could be rephrased as (correct me if I'm wrong with this): Array is the only type you can put into an @-sigilled variable without any binding involved | 19:33 | ||
lizmat | the Array object needs more attributes than a List object | ||
if List would inherit from Array, it would need to carry around useless attributes | |||
the Array object has an attribute for the container descriptor | 19:34 | ||
the thing that let's you say "my Int @a" to force only Ints being allowed | |||
the List object allows anything to be bound to it, including Scalar objects | 19:35 | ||
19:38
derpydoo joined
19:55
Kaipei left
19:57
deoac joined
20:04
abraxxa-home left
20:13
jjido left
|
|||
Nemokosch | I mean yeah, I think the relation of Array and List is not of child and parent but two siblings | 20:39 | |
20:46
Kaipei joined
|
|||
p6steve | well docs.raku.org/type/Array#Routines_...class_List List seems to provide a lot of routines to Array - of course they are siblings for Positional and Iterable roles - guess you could imagine a role that abstracts these instead, but both seem to be reasonable design choices... | 21:16 | |
Nemokosch | yeah but I think it's odd to model a List as someting that could or could not provide mutation-related features. It's rather a trait/characteristic of a List that it deliberately does not provide these things | 21:19 | |
You know, like the square and the rectangle in OO models | 21:20 | ||
to extend a conceptually fixed thing into a conceptually flexible thing feels like something that can cause problems every now and then | 21:21 | ||
but at the end of the day, this is not a big problem with the introduction of e.g ValueLists | 21:22 | ||
rather just an oddity that comes up every time you need to talk about "a List" _as opposed to_ "an Array" | |||
p6steve | from a user point of view, I am pretty happy that a List is a fixed length basic grid with the Routines described that can be inherited & then functionally extended to be variable length (splice, push, pop) and to have container enforcement (all items must be containers and the container type can be policed) | 21:33 | |
I agree that ValueLists which will also conceptually inherit from List, but add value enforcement (all items must not be containers all the way down) will add some more value and help with immutability / performance | 21:37 | ||
21:39
deoac left
21:47
guifa_ joined
21:49
guifa left
21:55
epony left
22:18
mykhal left
22:22
epony joined
|
|||
guifa_ | "Array is the only type you can put into an @-sigilled variable without any binding involved" eh.... you can also type it at declaration | 22:24 | |
m: my @a is List = <a b c>; say @a.WHAT | 22:25 | ||
camelia | (List) | ||
Nemokosch | fair enough. Tbh I'm not a big fan of type annotations in general, and I wouldn't say Raku encourages complex type signatures anyway | 22:27 | |
Demos[m] | does raku have an ordered associative container I can use | ||
like a self-balancing tree of some description | |||
Geth | doc: c76c09d7e9 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | doc/Type/Iterator.pod6 Document Iterator.is-deterministic (#4122) |
22:31 | |
linkable6 | Link: docs.raku.org/type/Iterator | ||
22:32
linkable6 left
22:34
linkable6 joined
22:44
Kaipei left
|
|||
guifa_ | Demos: I think lizmat has one | 22:45 | |
raku.land/zef:lizmat/Hash::Ordered | |||
22:56
sena_kun left
|
|||
Demos[m] | ah, I want them ordered by the key | 22:58 | |
not the order of insertion | |||
23:00
deoac joined
|
|||
Nemokosch | I'm a bit afraid to ask but why do you need it to be ordered by structure, rather than sorting them later on or something? | 23:02 | |
Demos[m] | I mean because that seems like the natural thing to do, and it's more efficient if I need to insert after sorting | 23:03 | |
23:05
mykhal joined
|
|||
Nemokosch | okay well... in this context, I'd assume that you wouldn't be looking for a "pure Raku" implementation of the thing but something that is about as effective as a built-in Hash. In which case, I don't know if somebody wrote such a thing. | 23:06 | |
my bet would be if liz didn't then probably noone else did either. Not many people are used to working with the underlying (sub-)language of Rakudo | |||
Demos[m] | well, I was wondering if there was some builtin | 23:07 | |
ugexe | well one reason hashes are fast is because they dont have to worry about insertion order at all | 23:08 | |
Demos[m] | I mean sure. but BTrees are also really quite fast | ||
Nemokosch | mind you, by the way, this was about key ordering | 23:10 | |
ugexe | that doesn't really matter, an insertion needs to be put somewhere specific in this request which requires figuring out where | 23:11 | |
i suppose it matters if you're looking for something implementing the order you want though | 23:12 | ||
Nemokosch | well yes I guess, you need something that reflects the order, so typically the location of the item | 23:15 | |
23:35
habere-et-disper joined
23:39
deoac left
|
|||
github.com/FCO/OrderedHash hmm | 23:43 | ||
ugexe: why didn't you mention this if you are involved? 😄 | 23:44 | ||
oh okay, it seems that was a minor change | 23:49 | ||
23:50
Sauvin left
23:54
Sauvin joined
|