🦋 Welcome to the former MAIN() IRC channel of the Raku Programming Language (raku.org). This channel has moved to Libera (irc.libera.chat #raku) Set by lizmat on 23 May 2021. |
|||
00:01
chrysanthematic joined
00:02
reportable6 left
00:03
jess joined,
reportable6 joined
00:04
chrysanthematic left
01:04
nativecallable6 left,
bloatable6 left,
evalable6 left,
benchable6 left,
notable6 left,
reportable6 left,
squashable6 left,
unicodable6 left,
greppable6 left,
linkable6 left,
shareable6 left,
releasable6 left,
tellable6 left,
coverable6 left,
bisectable6 left,
quotable6 left,
committable6 left,
sourceable6 left,
statisfiable6 left
01:05
sourceable6 joined,
quotable6 joined,
bisectable6 joined,
shareable6 joined,
coverable6 joined,
notable6 joined,
releasable6 joined,
greppable6 joined
01:06
nativecallable6 joined,
squashable6 joined,
linkable6 joined,
bloatable6 joined,
tellable6 joined
01:07
committable6 joined,
evalable6 joined,
unicodable6 joined,
benchable6 joined,
statisfiable6 joined,
reportable6 joined
02:07
notable6 left,
unicodable6 left,
bisectable6 left,
linkable6 left,
nativecallable6 left,
quotable6 left,
bloatable6 left,
shareable6 left,
committable6 left,
reportable6 left,
sourceable6 left,
evalable6 left,
tellable6 left,
benchable6 left,
statisfiable6 left,
releasable6 left,
coverable6 left,
greppable6 left,
squashable6 left
02:08
releasable6 joined,
committable6 joined,
tellable6 joined,
linkable6 joined,
sourceable6 joined,
quotable6 joined,
statisfiable6 joined
02:09
coverable6 joined,
benchable6 joined,
unicodable6 joined,
nativecallable6 joined,
greppable6 joined,
bloatable6 joined,
shareable6 joined
02:10
evalable6 joined,
notable6 joined,
reportable6 joined,
squashable6 joined,
bisectable6 joined
02:59
melezhik left
|
|||
xinming | releasable6: status | 03:22 | |
releasable6 | xinming, Next release in ≈15 hours. There are no known blockers. 1 out of 37 commits logged | ||
xinming, Details: gist.github.com/1a717b1779cb3d0e1b...b36fe781b2 | |||
03:59
evalable6 left,
linkable6 left
04:01
linkable6 joined
04:02
evalable6 joined
05:02
benchable6 left,
statisfiable6 left,
linkable6 left,
tellable6 left,
committable6 left,
coverable6 left,
bisectable6 left,
releasable6 left,
quotable6 left,
evalable6 left,
reportable6 left,
squashable6 left,
nativecallable6 left,
shareable6 left,
sourceable6 left,
greppable6 left,
notable6 left,
unicodable6 left,
bloatable6 left,
greppable6 joined,
statisfiable6 joined,
reportable6 joined
05:03
nativecallable6 joined,
tellable6 joined,
unicodable6 joined,
quotable6 joined
05:04
coverable6 joined,
releasable6 joined,
notable6 joined,
benchable6 joined,
evalable6 joined,
bisectable6 joined,
linkable6 joined,
committable6 joined,
squashable6 joined
05:05
sourceable6 joined,
bloatable6 joined,
shareable6 joined
05:14
RandalSchwartz left
|
|||
guifa | codesections: lol @ reddit post | 05:18 | |
codesections | :D I've been listening to www.arraycast.com/ and was feeling inspired | 05:19 | |
Why should APL have all the fun? | |||
moon-child | lol | 05:20 | |
once we get user-defined metaoperators, it'll be possible to implement the entirety of apl syntax in raku | |||
codesections | well, sort of. You'd need to change the language semantics quite a bit to _really_ support the full syntax. | 05:21 | |
(And are user-defined metaoperators on the roadmap/in the synopses?) | 05:22 | ||
moon-child | well, you wouldn't get stranding, but you can just define new multis for the existing +-×÷ | ||
I guess no trains either | 05:23 | ||
my understanding is that user-defined metaoperators are desired, but no one has done the work to make them happen; and that rakuast is perhaps a bridge in that direction | |||
codesections | Unless your multis totally overide the existing +-×, etc, you wouldn't get pure right-to-left order of operations either | 05:26 | |
moon-child | good point | 05:27 | |
codesections | and I don't think there's any way to make our functions infix-by-default (though we do have the [&fn] form) | 05:28 | |
05:31
Xliff left
05:33
Doc_Holliwood joined
|
|||
moon-child thinks about making an apl implementation in raku | 05:39 | ||
I don't think you could ever make it fast, even with nqp. But you could probably get a quite nice, clear expression of semantics | 05:40 | ||
guifa | I think I'm the only one who's theorized about custom metaops | 05:42 | |
but I also don't know what said metaop would do | |||
like we have them for crossing, zipping, reducing (two ways!), reversing, assigning, inverting, and mapping. What else is there really? | 05:44 | ||
moon-child | apl operators: key, commute, at, atop, beside/bind, over, power, rank, stencil | 05:46 | |
all the metaops are just higher-order functions which are implemented elsewhere, so you could say: why bother with metaoperators at all? | |||
or, conversely: every higher-order function could be a metaoperator | 05:47 | ||
codesections | moon-child: I was thinking about that list too, but I think many of those could be regular Raku operators (rather than meta, I mean) | ||
e.g., stackoverflow.com/questions/673469...or-in-raku | 05:48 | ||
guifa | I guess I'd need to look up how those modify an operator | ||
Um, wow. NQP lists are crazy faster than Raku arrays | 05:50 | ||
moon-child | codesections: yeah, but then you'd only be able to pass functions to them. (Or &[stuff].) I mean, you can do everything with functions; that's numpy | 05:51 | |
guifa: buf is also fast if you're working with packed ints | |||
guifa | I actually tried doing some work with buf once but I don't remember it feeling too terribly much faster. But maybe at the NQP level it will get similar speed bumps | 05:52 | |
compare | |||
m: my @a; my $b = DateTime.now; for ^1000000 { push @a,$b }; say @a[999999]; say now - BEGIN now; | |||
camelia | 2021-06-19T07:52:37.717169+02:00 0.197872629 |
||
guifa | whoa, did something get changed? TIO has that taking a solid 10 seconds | 05:53 | |
m: use nqp; my $a := nqp::list(); my $b = DateTime.now; for ^10000000 { nqp::push($a,$b) }; say nqp::atpos($a,9999999); say now - BEGIN now; | |||
camelia | 2021-06-19T07:53:34.796108+02:00 0.187050531 |
||
guifa recalls… was it lizmat? doing something with speeding up arrays. I guess that's the effect of it | 05:54 | ||
codesections | moon-child: You mean "only functions" as opposed to "functions & operators"? You'd be able to pass Str, List, etc just fine to the non-meta versions, right? | ||
moon-child | yeah | 05:55 | |
eh...this is strange. ix.io/3qpx the raku version takes 4.1s; the nqp version 1.5s; and the buf version 2.5s | 05:58 | ||
guifa | try mixing up the order: when I've done perf tests like that, the order can be significant (first one is almost always the slowest, for instance) | 06:01 | |
06:02
kylese joined
|
|||
moon-child | reversed them; the specific numbers change, but the order stays the same | 06:02 | |
(actually buf gets faster) | 06:03 | ||
06:03
reportable6 left
06:05
reportable6 joined
|
|||
moon-child | why is there no write-num32 for buf32, nor write-num64 for buf64? | 06:35 | |
I guess ieee has undefined endianness, completely aside from byte order | 06:36 | ||
07:05
evalable6 left,
linkable6 left
07:06
linkable6 joined,
evalable6 joined
07:19
Doc_Holliwood left
08:19
shareable6 left,
greppable6 left,
benchable6 left,
sourceable6 left,
committable6 left,
bloatable6 left,
notable6 left,
linkable6 left,
reportable6 left,
squashable6 left,
quotable6 left,
nativecallable6 left,
bisectable6 left,
tellable6 left,
statisfiable6 left,
coverable6 left,
unicodable6 left,
evalable6 left,
releasable6 left,
reportable6 joined,
nativecallable6 joined
08:20
notable6 joined,
unicodable6 joined,
committable6 joined,
sourceable6 joined,
evalable6 joined,
tellable6 joined
08:21
quotable6 joined,
bisectable6 joined,
coverable6 joined,
greppable6 joined,
shareable6 joined,
benchable6 joined,
linkable6 joined,
bloatable6 joined
08:22
statisfiable6 joined,
releasable6 joined,
squashable6 joined
08:46
MoC joined
08:48
lizmat left
08:50
LizBot_ joined
08:51
lizmat joined,
RakuIRCLogger_ joined
08:52
LizBot left,
RakuIRCLogger left
08:53
RakuIRCLogger_ left,
RakuIRCLogger joined
09:20
Manifest0 left
09:21
Manifest0 joined
09:25
Sgeo left
|
|||
Manifest0 | Morning. | 09:30 | |
How can i find my local ip address and if i'm under NAT using raku? | |||
10:21
sono left
|
|||
El_Che | parse the output of the OS netwerktool like ipconfig or parse /proc and then check if the ip is of a private range? | 10:24 | |
NAT is something done on the router machine, not on the machine itsel | |||
f | |||
10:26
supersecant joined
10:33
slu joined
10:36
supersecant left
10:37
supersecant joined
10:38
supersecant left
10:49
neula joined
11:08
neula left
11:16
chrysanthematic joined
11:18
guifa left
11:22
guifa joined
11:24
kylese left
11:34
Doc_Holliwood joined
12:02
reportable6 left
12:03
reportable6 joined
12:19
rassoc joined
12:21
yewscion_ joined
|
|||
rassoc | Oi! newbie question: how do i coerce and assign a bunch of ints of ints to this type upon initialization? `my Array[Array[Complex]] @a = ...`. Nothing works, can't figure out the syntax. | 12:22 | |
Geth | doc: michaelruigrok++ created pull request #3903: clarify sentence, fix typo |
12:37 | |
CIAvash | m: my Array[Complex(Int)]() @a = [[1, 2, 3], [4, 5, 6]]; dd @a; | 12:39 | |
camelia | Array[Array[Complex(Int)](Any)] @a = Array[Array[Complex(Int)](Any)].new(Array[Complex(Int)].new(<1+0i>, <2+0i>, <3+0i>), Array[Complex(Int)].new(<4+0i>, <5+0i>, <6+0i>)) | 12:40 | |
CIAvash | rassoc: is this what you want? ↑ | ||
rassoc | If i try to do that locally, i'm getting hit with: "Coercion 'Array[Complex(Int)](Any)' is insufficiently type-like to qualify a variable. Did you mean 'class'?" | 12:43 | |
Guess i'll have to wait for a compiler update then. thanks | |||
lizmat | rassoc: yeah, that looks like you're before the coercion protocol changes | 12:47 | |
12:49
cognominal joined
|
|||
rassoc | seem like it. still on 2020.07. will prolly install a more recent version by hand | 12:52 | |
13:00
lucerne left,
RandalSchwartz joined,
chrysanthematic left
13:01
lucerne joined
|
|||
lizmat | rassoc: yup, that's too old for doing that :-) | 13:04 | |
13:05
Doc_Holliwood left
13:06
Doc_Holliwood joined
13:28
yewscion_ left
|
|||
codesections | m: use variables :U; my $a = 42; | 13:58 | |
camelia | Type check failed in assignment to $a; expected Any:U but got Int (42) in block <unit> at <tmp> line 1 |
||
13:59
njm joined
|
|||
codesections | ha, that would be awful, and I'm kind of surprised the pragma lets you create an _un_defined constraint | 13:59 | |
14:00
njm left
14:10
monkey_ joined
|
|||
Geth | doc: 24c0b55cdd | Coke++ | 3 files add description to modules |
14:26 | |
doc: c236309a1e | Coke++ | META6.json remove provides list These libs are only intended for internal use for testing & utils, and should not be installed. |
|||
doc: f4e8731098 | Coke++ | 6 files Use preferred rakumod extension. |
|||
[Coke] | does "raku --doc" theoretically do more work than "raku -c --doc" ? | 14:42 | |
(if nothing else, it outputs the POD, wondering if it does anything else extra) | |||
14:51
Altai-man_ joined
|
|||
codesections | [Coke]: well, there's a DOC INIT phaser -- if there's any code in it, that'd be run with --doc but not -c --doc. docs.raku.org/language/phasers#DOC | 14:52 | |
not sure I've seen one of those in the wild, though | |||
masak | back in the day, there was a really interesting discussion about how to make Pod processing not-fully-Turing-complete. not sure if that ever led to something conclusive, though | 15:02 | |
(hi, #r) | 15:03 | ||
[Coke] | apparently it was slow enough over 400+ instances that adding the -c got the test runtime down to 3m from 5m+ | 15:19 | |
er, to 4m. | 15:20 | ||
so, 20% savings | |||
Geth | doc: d2fd3ddb96 | Coke++ | t/02-pod-valid.t add more diagnostic output |
||
doc: 10f5588d8a | Coke++ | t/02-pod-valid.t Do less work With this change, test runs in 4m instead of 5m locally, still catches pod errors |
|||
15:34
Doc_Holliwood left
15:37
holyghost joined
|
|||
Geth | doc: 0a87972362 | Coke++ | META6.json Add prereq for 'make bigpage' Without this, this make target fails immediately. |
15:38 | |
gfldex | weekly: Discord was joined by an eval bot prototype ready for testing. | 15:49 | |
notable6 | gfldex, Noted! (weekly) | ||
[Coke] | is there a way in META6.json to say "This isn't meant to be installed" other than having an empty "provides" ? | 15:50 | |
(for example raku-doc is not currently installable. Trying to install it will basically just get you the pre-reqs needed for the build - but we still want the META6.json to list those pre-reqs so we can work on it) | 15:54 | ||
codesections | m: say &[-]; # there's not a similar shorthand for prefix/other operators, right? | ||
camelia | &infix:<-> | ||
ugexe | give instructions to run `zef install Foo --deps-only`. Having a META6.json implies its meant to be installed, so there is no such way to say otherwise | 15:56 | |
[Coke] | So how does one manage their requirements if they don't want to be installed? | ||
by hand? | 15:57 | ||
ugexe | does `zef install Foo --deps-only` not work? | ||
[Coke] | I can do that, yes. I'm concerned about someone else not working on the project. I suppose the answer is, "remove it from the modules list" | ||
and then there's no confusion. (raku-docs was on the modules list from ages ago because it did install things. then the install broke for the docs and was left for the bin. and then the bin was removed.) | 15:58 | ||
ugexe | ah yeah, if its not intended to be installed there is little reason for it to be in the module list | ||
[Coke] | should just remove it from the ecosystem, at this point. | ||
ugexe++ | |||
added a comment to docs#3819 | 16:00 | ||
16:01
linkable6 left
16:03
linkable6 joined
|
|||
Geth | doc: 198ab0c230 | Coke++ | util/missing-methods.p6 Remove broken script Needed p6doc which is no longer part of this repo. Superseded by xt/check-signatures.t Resolves #3812 |
16:08 | |
16:08
Altai-man_ left,
linkable6 left
16:11
linkable6 joined
16:17
chrysanthematic joined
16:19
chrysanthematic left
16:23
chrysanthematic joined,
Altai-man left
16:26
sena_kun joined
|
|||
codesections | m: say map {[×] $_}, ^5; # works | 16:26 | |
camelia | (0 1 2 3 4) | ||
codesections | m: say map [×] *, ^5; # doesn't work | 16:27 | |
camelia | Cannot resolve caller Numeric(Whatever:D: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1 |
||
[Coke] | yup, I wouldn't expect that to work. | ||
codesections | is there a reason why ^^^^ doesn't produce a WhateverCode? That seems like term position to me | ||
why's that? | 16:28 | ||
[Coke] | if you want a grammar-based explanation, I can't help there. :) | 16:29 | |
codesections | m: dd + * | ||
camelia | WhateverCode.new | ||
[Coke] | m: [×] *, ^5 | 16:30 | |
camelia | Potential difficulties: Useless use of [×] in sink context at <tmp>:1 ------> 3<BOL>7⏏5[×] *, ^5 Cannot resolve caller Numeric(Whatever:D: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp>… |
||
[Coke] | m: say [×] *, ^5 | ||
camelia | Cannot resolve caller Numeric(Whatever:D: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1 |
||
[Coke] | I think the map is a red herring there. | ||
Geth | doc: 0f80469f59 | Coke++ | util/xt-recent.sh Add .t files & update overview Part of #3906 |
||
codesections | I thought a prefix op and a * created a WhateverCode? And that [×] is a prefix op (or produces one) | 16:31 | |
ok, set the map aside, then | |||
16:31
linkable6 left
|
|||
codesections | m: my &f = [×] *; | 16:31 | |
camelia | Cannot resolve caller Numeric(Whatever:D: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1 |
||
codesections | I'd expect that to be the same as | ||
m: my &f = {[×] $_} | 16:32 | ||
camelia | ( no output ) | ||
16:34
linkable6 joined
|
|||
masak | my &f = - *; | 16:37 | |
m: my &f = - *; | |||
camelia | ( no output ) | ||
masak | codesections: well, it _parses_. yours, I mean. | 16:38 | |
it just doesn't seem to behave like you want. it wants to numify the `*` | |||
16:40
Sgeo joined
|
|||
guifa | codesections: what's going on is the […] metaop expects a list after it. So [+] * is parsed as op=[+], arg=[list(*)] | 17:09 | |
And then it's just a plain old whatever | 17:10 | ||
17:12
lgtaube left
17:28
monkey_ left
17:30
holyghost left
|
|||
codesections | guifa: Thanks, that's helpful. But doesn't | expect a list too? This works: | 17:30 | |
m: my &f = |*; dd f (1, 2) | 17:31 | ||
camelia | slip(1, 2) | ||
sena_kun | m: EVAL("1", :lang<Perl5>) | 17:32 | |
camelia | Could not find Inline::Perl5 in: inst#/home/camelia/.raku inst#/home/camelia/rakudo-m-inst-1/share/perl6/site inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-1/share/perl6/core ap#… |
||
sena_kun | can anyone with not so recent rakudo run github.com/Raku/roast/blob/master/...oundtrip.t please? | 17:33 | |
17:33
pragma- joined
17:41
chrysanthematic left
|
|||
rassoc | sure! getting this on 2020.07: | 17:48 | |
not ok 4 - | |||
# Failed test at roundtrip.t line 37 | |||
# expected: $("foo", "hate") | |||
# got: $("ARRAY(0x5621674d0310)",) | |||
17:50
Altai-man joined
17:58
Altai-man left
18:02
reportable6 left
18:04
reportable6 joined
|
|||
sena_kun | rassoc, thank you! | 18:11 | |
18:19
Doc_Holliwood joined
18:37
Altai-man joined
18:40
Altai-man left
18:50
m6locks joined
18:53
chrysanthematic joined
|
|||
guifa | No, see: | 18:56 | |
my @a = 1,2,3; my @b= 4, 5, 6; say |@a, @b | 18:57 | ||
evalable6 | 123[4 5 6] | ||
guifa | codesections: ^^ | is a prefix operator, just takes a single value | ||
or maybe better put, it's a higher precedence than the list up | |||
[…] is a lower precedence than list op | |||
codesections | aha! That's the key I was missing. ty guifa++ | 18:59 | |
19:06
b2gills left,
rassoc left
|
|||
guifa | codesections: any thoughts on my Datish.fmt module/code? I need to finish the test files that would go into roast and try a few more ways to break it, but otherwise, if the RSC approved on it, it'd be basically ready to go. | 19:08 | |
19:17
holyghost joined
19:36
holyghost left
|
|||
Geth | doc: 3f9ed6d81a | Coke++ | doc/HomePage.pod6 Remove link to currently broken bigpage. We can add it back once we fix that feature. Remove text about reporting issues/submitting patches; this is in the footer, and, IMO, doesn't need to be emphasized. |
19:45 | |
guifa | I was just thinking: with RakuAST, it should be possible for Callables to potentially survive serialization, assuming they've got their own lexical variables and/or dynamic variables. | ||
Geth | ¦ problem-solving: coke assigned to JJ Issue Separate Community Resource pages github.com/Raku/problem-solving/issues/286 | 19:51 | |
¦ problem-solving: coke unassigned from JJ Issue Separate Community Resource pages github.com/Raku/problem-solving/issues/286 | 19:52 | ||
doc: a34b1bdbd5 | Coke++ | doc/Language/faq.pod6 Remove references to .perl .raku is mentioned already in both places, and we don't need to clutter the FAQ with an aliased method name when the preferred version is listed. |
19:59 | ||
doc: eddff45a99 | Coke++ | doc/Language/faq.pod6 remove unneeded use v6 |
|||
linkable6 | Link: docs.raku.org/language/faq | ||
doc: c651c61df6 | Coke++ | writing-docs/EXAMPLES.md clarify |
20:02 | ||
[Coke] | lizmat: looks like you did a conversion of ":ok-test<perl>" to raku in the docs and changed the sample from perl to raku as well... but the ok-test exception is to allow .perl, specifically. | 20:08 | |
Will remove all the ok-test's that are not needed now. | |||
lizmat | [Coke]++ | 20:09 | |
[Coke] | m: say 3.perl | 20:10 | |
camelia | 3 | ||
Geth | doc: bab14801aa | Coke++ | 8 files Remove ok-test<raku> The original was to allow .perl to be mentioned; .raku is the recommended method, so no care needs to be taken; none of these samples mention perl anymore. |
20:15 | |
[Coke] | github.com/Raku/doc/blob/master/wr...HATHONS.md - does this still happen monthly? | 20:17 | |
Doc_Holliwood | can we have a $*TAKEN variable which points to the taken values of the current gather block? | 20:20 | |
20:20
cbk joined
20:22
cbk left
|
|||
Geth | doc: 134cc2fe01 | Coke++ | writing-docs/SQUASHATHONS.md Show actual oldest. (Previous link was page 8 of 20...) |
20:22 | |
[Coke] | Doc_Holliwood: what's the use case? | 20:24 | |
Doc_Holliwood | every piece of code that would use an intermediate @result array | 20:33 | |
[Coke] | Would you expect to be able to un-take values by manipulating the array? add more without using take? | 20:39 | |
I get that you want it "in the middle", still don't get why | 20:40 | ||
(depending on what you want it for, it'd have to be thread safe) | 20:42 | ||
20:46
MoC left
20:47
holyghost joined
|
|||
[Coke] | (not trying to shoot down the idea, just curious) | 21:02 | |
ugexe | seems like a nightmare considering gather is creating a sequence and that would more easily allow users to try and iterate over things more than once | 21:12 | |
lizmat | feels like something in module space overriding "take" :-) | 21:13 | |
Juerd | I've had one use case where I wanted to access the previous thing, basically for a reduce-like solution, but that was easily fixed by actually using reduce :) | ||
lizmat calls it a day on the last day of her 65th year | 21:14 | ||
Juerd | Gefeliciteerd!! :) | ||
ugexe | or use rotor with appropriate backtracking and consider the last value the current value | 21:15 | |
well i guess that isnt equivilent | 21:16 | ||
since you could very well transform the values before taking them | |||
Doc_Holliwood | just one of the random ideas that pop up in my head, really | 21:17 | |
Coke | |||
21:22
silug left,
silug joined
21:23
esh left
21:24
chrysanthematic left
21:25
esh joined
|
|||
[Coke] | Happy Juneteenth to our US hackers. | 21:31 | |
El_Che | lizmat: gelukkige verjaardag | 21:36 | |
Manifest0 | El_Che: thanks for the reply. | 21:37 | |
What's the equivalent to getsockname() in raku? | 21:38 | ||
El_Che | Manifest0: is there is no module, nativecall should be pretty straightforward for that kind of calls | ||
guifa | lizmat: Happy birthday! | 21:58 | |
22:01
b2gills joined
|
|||
m6locks | is there a way to read keyboard input without any Term:: * module? | 22:17 | |
MasterDuke | m6locks: if you just want text input there's prompt(), if you want to read keystrokes and such you'll probably need/want a module | 22:20 | |
m6locks | thanks, prompt will probly do just finr | ||
holyghost | lizmat++ | 22:42 | |
23:01
evalable6 left,
linkable6 left,
linkable6 joined
23:03
evalable6 joined
23:42
holyghost left
|