🦋 Welcome to the main IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs can be inspected at colabti.org/irclogger/irclogger_log/raku Set by lizmat on 21 April 2021. |
|||
00:00
Black_Ribbon joined
|
|||
raydiak | japhb: I don't see anything in the docs to explain it, would take some deeper digging. --target=parse shows some possibly relevant things, but I don't know enough about internals to tell you the difference between an xblock and a pblock and a blockoid, or even if that's relevant | 00:04 | |
japhb | Fair enough. :-) | 00:09 | |
raydiak | looks like maybe something to do with spesh, possibly a bug. it blows up with --optimize=0 | ||
it probably optimizes the when block away somehow, turns it into something faster and simpler than a block | 00:10 | ||
00:11
neshpion left
00:15
neshpion joined
|
|||
japhb | Interesting. | 00:22 | |
I was wondering if it was intentional in order to make succeed and proceed magically work or something | |||
raydiak | seems not, --optimize=0 gives "Too many positionals passed; expected 0 arguments but got 1" | 00:24 | |
(after "Odd", of course) | |||
japhb | Interesting! | 00:49 | |
00:54
kurahaupo_ joined
00:56
kurahaupo left
01:02
kvw_5 joined
01:05
kvw_5_ left
01:22
stoned75 joined
01:34
stoned75 left
|
|||
kawaii | I made a little slot machine script thingy, maybe someone has some optimizations or improvements but it's cute. :) www.irccloud.com/pastebin/BFWwVwP0/slots.raku | 01:35 | |
I feel like the multipliers hash and wheel array can be merged somehow, maybe a hash of pairs? | 01:36 | ||
01:43
aborazmeh joined
|
|||
raydiak | heh, cool | 01:53 | |
01:59
kvw_5_ joined
02:02
kvw_5 left
|
|||
raydiak | kawaii: here are some simplifications: gist.github.com/raydiak/59350a9171...4a76d6667b | 02:25 | |
updated it, arguably a bit easier to read this way | 02:32 | ||
02:51
aborazmeh left
02:54
MasterDuke left
03:11
neshpion left
03:13
neshpion joined
03:18
neshpion left
04:18
shareable6 left,
bloatable6 left,
notable6 left,
unicodable6 left,
quotable6 left,
committable6 left,
bisectable6 left,
linkable6 left,
nativecallable6 left,
benchable6 left,
releasable6 left,
statisfiable6 left,
tellable6 left,
greppable6 left,
unicodable6 joined
04:19
committable6 joined,
statisfiable6 joined,
greppable6 joined
04:20
shareable6 joined,
benchable6 joined,
quotable6 joined
04:21
releasable6 joined
04:25
xinming_ joined
04:28
xinming left
05:02
coverable6 joined
05:31
sno joined
05:47
parabolize left
05:57
stoned75 joined
06:16
japhb left
06:18
Sgeo left,
Sgeo joined
06:19
japhb joined
06:31
Sgeo left
06:32
Sgeo joined
06:55
aluaces joined,
kurahaupo_ left
07:31
stoned75 left
07:46
dotdotdot left
07:50
dotdotdot joined
07:54
MasterDuke joined
07:57
kurahaupo joined
08:05
Manifest0 joined
08:10
pecastro joined
08:18
Xliff joined
|
|||
Xliff | jj? | 08:18 | |
08:38
Sgeo left
08:54
natrys joined
09:00
Guest6079 left
09:06
wamba joined
09:18
andinus` joined,
andinus` left
09:35
rindolf joined
09:57
kurahaupo left,
kurahaupo joined
10:01
crose joined
10:03
crose left
10:06
spacekookie left
10:07
spacekookie joined
10:15
shlomif joined
10:16
rindolf left
10:18
shlomif is now known as rindolf
10:21
stoned75 joined
10:22
aborazmeh joined
|
|||
demostanis[m] | Does Raku have a quoting constructs for junctions? Something like `qj[a b]` that would make a Junction. | 10:44 | |
lizmat | any(<a b>) | 10:46 | |
demostanis[m] | Thanks | 10:47 | |
Xliff | What is the .Int operator in Raku? Like + is for .Num | 10:48 | |
lizmat | note that this is just a combination of existing expressiveness -) | ||
Xliff: there is none, .Int it is | |||
Xliff | I prever <a b>.any, myself | ||
Aww... why didn't .Int get any love, lizmat? | 10:49 | ||
( Prolly run out of symbols? ;-> ) | |||
lizmat | lack of suitable characters to use as prefix? | ||
yup | |||
Xliff | Should find one in Unicode. | ||
I have .XCompose and WinCompose. I yam not afraid! | |||
𝕚, maybe? | 10:51 | ||
method prefix:<𝕚> (\v) { v.Int } | 10:52 | ||
m: multi sub prefix:<𝕚> (\v) { v.Int }; say 𝕚3.14169 | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed postfix call at <tmp>:1 ------> 3i sub prefix:<𝕚> (\v) { v.Int }; say 𝕚3.7⏏0514169 |
||
Xliff | m: multi sub prefix:<𝕚> (\v) { v.Int }; say 𝕚(3.14169) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: 𝕚 used at line 1 |
||
Xliff | Huh. Thought that would work. | 10:53 | |
m: multi sub prefix:<𝕚> (\v) is equiv(&prefix:<+>) { v.Int }; say 𝕚(3.14169) | 10:55 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: 𝕚 used at line 1 |
||
Xliff | raku say 𝕚 | ||
m: raku say 𝕚 | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routines: raku used at line 1 𝕚 used at line 1 |
||
Xliff | Huh! The one symbol I pick and it's usable as an op! | 10:56 | |
Ah, well. To bed I am. Good night, #raku. | 10:57 | ||
lizmat | Xliff: nighty night! | 11:01 | |
kawaii | raydiak: sorry for late reply, just woke up, but I agree! thank you! | 11:16 | |
11:22
[Sno] joined
11:25
sno left,
aborazmeh left
11:26
[Sno] left
|
|||
Xliff | Lizmat: are there any documentation pages for attribute traits? | 11:36 | |
I know you introduced some new ones a while back that I haven't had a chance to familiarize myself with. | |||
lizmat | docs.raku.org/type/Attribute ? | 11:37 | |
Xliff | Ah! Thanks! | ||
lizmat: Is there any way to have rakudo generate positional new from traits? | 11:38 | ||
I was thinking "is built". | |||
lizmat | is built indicates that it will be accepted as a *named* param with .new | 11:39 | |
Xliff | Right. | ||
lizmat | so you'd want something like "is built(Positional)" ? | 11:40 | |
Xliff | Was hoping to save keystrokes. | ||
lizmat | well, that would be a major overhaul of default handling of classes / objects | ||
Xliff | m: class A { has $!b; has $!c; submethod BUILD (:$!b, :$!c) { }; method new ($b, $c) { self.bless( :$b, :$c ) }; }; | ||
camelia | ( no output ) | ||
lizmat | but it *is* an interesting idea | ||
why the BULD in that case ? | 11:41 | ||
Xliff | Would LOVE to drop the BUILD and new with a trait. | ||
Can BUILD be dropped? | |||
m: class A { has $!b; has $!c; method new ($b, $c) { self.bless( :$b, :$c ) }; }; A.new(1, 2); | 11:42 | ||
camelia | ( no output ) | ||
lizmat | m: class A { has $!b is built; has $!c is built; method new ($b, $c) { self.bless( :$b, :$c ) }; }; | ||
camelia | ( no output ) | ||
lizmat | that should work ? | ||
Xliff | m: class A { has $!b; has $!c; submethod BUILD (:$!b, :$!c) { }; method new ($b, $c) { self.bless( :$b, :$c ) }; method Str { $!b ~ '/' ~ $!c }; }; ~A.new(1, 2_ | 11:43 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1) at <tmp>:1 ------> 3Str { $!b ~ '/' ~ $!c }; }; ~A.new(1, 27⏏5_ expecting any … |
||
Xliff | m: class A { has $!b; has $!c; submethod BUILD (:$!b, :$!c) { }; method new ($b, $c) { self.bless( :$b, :$c ) }; method Str { $!b ~ '/' ~ $!c }; }; ~A.new(1, 2) | ||
camelia | WARNINGS for <tmp>: Useless use of "~" in expression "~A.new(1, 2)" in sink context (line 1) |
||
Xliff | m: class A { has $!b; has $!c; submethod BUILD (:$!b, :$!c) { }; method new ($b, $c) { self.bless( :$b, :$c ) }; method Str { $!b ~ '/' ~ $!c }; }; say ~A.new(1, 2) | ||
camelia | 1/2 | ||
Xliff | m: class A { has $!b; has $!c; method new ($b, $c) { self.bless( :$b, :$c ) }; method Str { $!b ~ '/' ~ $!c }; }; say ~A.new(1, 2) | ||
camelia | Use of uninitialized value element of type Any in string context. Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful. / in method Str at <tmp> line 1 Use of uninitialized value element of type Any in st… |
||
Xliff | m: class A { has $!b is built; has $!c is built; method new ($b, $c) { self.bless( :$b, :$c ) }; method Str { $!b ~ '/' ~ $!c }; }; say ~A.new(1, 2) | 11:44 | |
camelia | 1/2 | ||
Xliff | \o/ | ||
Now just have to get rid of new! | |||
lizmat | PRs will be considered :-) | ||
Xliff | RakuAST would make short work of it. | ||
lizmat | not so sure: this would affect all of the BUILDPLAN logix | 11:45 | |
*logic | |||
and that's carefully optimized for fun and profit | |||
Xliff | Would have to override CLASSHOW.^compose so that I could .^add_method at the last minute. | ||
lizmat | and nudging that runs the risk of slowdowns across the board | 11:46 | |
ok, if you're thinking like that... hmmm | |||
that would leave the BUILDPLAN logic untouched | |||
Xliff | No, I would be punning all attributes with a Role. new() would be created from .^attribute order with all attributes having that trait. | ||
And yes, that would be the hope. | |||
lizmat | still wonder if that would be a net performance gain | 11:47 | |
but then you're interested in fewer keystrokes, right ? | |||
Xliff | Was more concerned with O(fun) than gain. | ||
I have strange ideas of Fun, these days. | |||
lizmat | yeah, sure... :-) | 11:48 | |
could be done in a module then :-) | |||
Xliff | github.com/Xliff/p6-EDS | ||
lizmat: True. Could be done in a module. | |||
Above link is the start of bindings for EvolutionDataServer | |||
lizmat | Xliff: perhaps rename the repo? | ||
:-) | |||
looks cool! | 11:49 | ||
Xliff | developer.gnome.org/eds/stable/ | ||
lizmat: Hrm. Maybe. I think EvolutionDataServer is too long, though. | |||
You think that's bad? | |||
lizmat | I was more thinking "raku-EDS" :-) | ||
instead of "p6-EDS" :-) | 11:50 | ||
Xliff | github.com/Xliff/p6-GOA (GNOME Online Accounts) | ||
lizmat: Yes. Prior to release there will be a prefix change. | |||
lizmat | ++Xliff :-) | ||
Xliff | BTW - 530,000 lines and climbing. | ||
lizmat | wow | 11:52 | |
11:54
Black_Ribbon left
|
|||
Xliff | Huh! Constants can support dashes, but enums can't? | 11:54 | |
lizmat | example? | 11:55 | |
Xliff | One second. Trying to get a clean parse before commit. | ||
Oh... and this isn't valid, either! | 11:56 | ||
m: sub test-vcard-qp-2-1-parsing { } | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3sub test-vcard-qp7⏏5-2-1-parsing { } expecting any of: new name to be defined |
||
Xliff | m: our enum VCardVersion is export ('ver2-1', 'ver2_1' => 0, 'ver3', 'ver4'); ver2-1.say | 11:57 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: ver2 used at line 1 |
||
Xliff | Numerics-following-dashes gets interpreted as subtraction | ||
lizmat | ah, yes | ||
Xliff | Grr... | ||
lizmat | kebabcase needs an alpha *after* the dash | 11:58 | |
that's been documented that way | |||
because of ambiguity otherwise | |||
Xliff | Ohh! Significant improvement of compile times! | 12:00 | |
All p6-Projects compile in 93% of the time it took last-week | |||
20201-4-11 was slower. | 12:01 | ||
Total time single-instance was 13658 for this week. Last week it was 14579, the weeb before 12760 | |||
Oddly enough... parallel times increased from 3640s to 3725s | 12:03 | ||
lizmat | well, some race condition was fixed in the scheduler, that may have affected taht | 12:04 | |
Xliff | Oh. Good. | 12:06 | |
raydiak | m: sub term:<a-1> { constant $ = sub ($a=1) { say $a } }; a-1("this works in a small number of very specific cases, but please don't do it. like ever.") | 12:22 | |
camelia | this works in a small number of very specific cases, but please don't do it. like ever. | ||
raydiak is a bad example | |||
and on that note...g'night all \o | |||
lizmat | gnight raydiak | ||
12:24
[Sno] joined
|
|||
El_Che | so far 2021.04 is building fine | 12:27 | |
lizmat looks forward to be doing "apt-get upgrade" on her Debian box | 12:28 | ||
El_Che | fedora 32 is the only one still running | ||
lizmat | the fastest / easiest way to run Raku in production so fae | ||
*far | |||
El_Che | then tag and release | ||
lizmat | at least for me :-) | ||
El_Che | I always do a round of check before releasing it | 12:29 | |
I don't expect fedora to fail, so the package soon be up in around 20 minutes or so | 12:30 | ||
(the upload is also automated when tagged) | |||
tonyo | those changes in master? maybe time i should rebuild | 12:33 | |
12:35
epony left
12:41
frost-lab joined
|
|||
El_Che | lizmat: packages now being build github.com/nxadm/rakudo-pkg/runs/2431595098 | 12:44 | |
lizmat | El_Che++ | 12:45 | |
12:54
[Sno] left
12:56
ctilmes joined
|
|||
ctilmes | rakudo 2021.04 is ready on alpine edge | 12:56 | |
12:56
ctilmes left
13:00
domidumont joined
13:01
frost-lab left
13:07
mscha joined
|
|||
mscha | I've just (finally) installed the latest Rakudo Star, and doing some benchmarking... | 13:08 | |
my @primes = (^∞).grep(&is-prime); say “@primes[1_000_000] ({ (now - INIT now).fmt(‘%.2f’) }s)” | 13:09 | ||
raku-2020.10: 15485867 (6.55s) | |||
raku-2021.02.1: 15485867 (9.56s) | 13:10 | ||
Significantly slower?? | |||
(Still quite a bit faster than raku-2020.05, which took about 38 minutes.:-) ) | 13:11 | ||
m: my @primes = (^∞).grep(&is-prime); say “@primes[1_000_000] ({ (now - INIT now).fmt(‘%.2f’) }s)” | 13:12 | ||
camelia | 15485867 (8.39s) | ||
lizmat | m: say (^∞).grep(&is-prime).skip(1_000_000).head; say "({(now - INIT now.fmt(‘%.2f’)}s)” | 13:15 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in parenthesized expression; couldn't find final ')' (corresponding starter was at line 1) at <tmp>:1 ------> 3head; say "({(now - INIT now.fmt(‘%.2f’)7⏏5}s)”… |
||
lizmat | m: say (^∞).grep(&is-prime).skip(1_000_000).head; say "({(now - INIT now).fmt(‘%.2f’)}s)” | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in double quotes; couldn't find final '"' (corresponding starter was at line 1) at <tmp>:1 ------> 3 say "({(now - INIT now).fmt(‘%.2f’)}s)”7⏏5<EOL> expe… |
||
lizmat | m: say (^∞).grep(&is-prime).skip(1_000_000).head; say "({(now - INIT now).fmt(‘%.2f’)}s)" | 13:16 | |
camelia | 15485867 (7.28s) |
||
lizmat | mscha: it pays not to have to cache | 13:17 | |
13:19
[Sno] joined
|
|||
mscha | lizmat: still a lot faster on 2020.10 (5.43s) than on 2021.02.01 (8.19s) | 13:21 | |
lizmat | mscha: can't disagree with that | ||
oddly enough the is-prime handling was supposed to have been made faster in the past 6 months | 13:22 | ||
or was that before 2020.10? hmmm... can't remember for sure | |||
mscha | It's certainly many magnitudes faster than in 2020.05 (38 minutes). | ||
lizmat | mscha: would appreciate if you could find out what made this change | 13:23 | |
mscha | lizmat: I don't think I'm able to do that. I just install Rakudo Star once in a while and don't really follow the development provess. | 13:25 | |
process | |||
lizmat | mscha: no worries :-) | ||
13:27
[Sno] left
13:30
MasterDuke left
13:40
[Sno] joined
|
|||
El_Che | github action is action up, launched a new tagged build :/ | 13:42 | |
(nothing to do with the rakudo release or rakudo-pkg, just github) | |||
13:45
[Sno] left
13:48
codesect` joined
|
|||
demostanis[m] | github.com/demostanis/rakudostarplus | 13:49 | |
lizmat | afk for a few hours& | ||
13:50
codesections left
|
|||
El_Che | demostanis[m]: you should add a plus | 13:55 | |
13:57
[Sno] joined
13:59
MasterDuke joined
|
|||
MasterDuke | the recent slow down in mscha's example is the new coercion protocol merge (and then some optimizations after the initial merge, but it's still slower than before). i don't think it's related to is-prime | 14:01 | |
14:02
[Sno] left
|
|||
El_Che | weekly: rakudo-pkg for rakudo 2021.01 released, added packaged for newly released *buntu 21.04 | 14:03 | |
lizmat: ==^ | |||
14:06
titsuki left
14:13
[Sno] joined
14:14
mscha left
14:18
[Sno] left
|
|||
demostanis[m] | <El_Che "demostanis: you should add a plu"> What do you mean? | 14:18 | |
El_Che | github.com/demostanis/rakudostarplusplus would be a cooler name | 14:20 | |
demostanis[m] | Rakudo Star+ isn't that bad, and ++ sounds like it's written in C++ | 14:24 | |
Also why isn't rakudo.org written in Raku? | |||
14:26
kurahaupo left
|
|||
El_Che | the ++ is a reference to augementing a variable in many languages | 14:29 | |
$var++ | |||
masak | "incrementing" | ||
El_Che | better | ||
damn thesaurus | |||
:) | |||
masak | language is, what's the word, hard | 14:30 | |
El_Che | yet, not rigid | ||
masak | probably something to be thankful for, though | 14:31 | |
demostanis[m] | "Rakudo Star, INCREMENTED" | ||
masak | if we could only speak in formally correct utterances, then not much would get said | ||
14:34
parabolize joined
14:35
[Sno] joined
14:40
[Sno] left
14:46
b2gills left
|
|||
El_Che | "correct" is a very normaive stance on language | 14:55 | |
14:56
timlegge left
14:57
kurahaupo joined
15:05
mscha joined
15:07
mscha left
15:08
b2gills joined
15:10
aborazmeh joined
15:27
kurahaupo left
15:47
[Sno] joined
15:52
[Sno] left
|
|||
lizmat | El_Che: $ raku -v | 15:57 | |
Welcome to Rakudo(tm) v2021.04. | |||
:-) | |||
16:10
[Sno] joined
16:13
aborazmeh left
|
|||
El_Che | :) | 16:13 | |
16:15
[Sno] left
16:16
[Sno] joined
16:23
[Sno] left
16:26
aborazmeh joined
16:30
aborazmeh left
16:36
[Sno] joined
16:38
Marcool joined
16:40
timlegge joined
16:44
[Sno] left
|
|||
Marcool | Hi all, is there a hard limit on the length that a constant list can be? | 16:45 | |
I'm hitting a compile time error trying to gobble a large wordlist into a constant (to save time on runtime) | |||
Bytecode validation error at offset 4741598, instruction 388958: argument index 63404 not in range 0..63403 | 16:46 | ||
the code is something like: | |||
lizmat | interesting! nine ^^ | ||
Marcool | unit module Dict; constant @dict is export = (loooooong list of words); | ||
and in the executable: | 16:47 | ||
use Dist; say @dict[25000] #for example; exit; | |||
use Dict* of course | |||
lizmat | do you actually have to do the @dict[25000] to get the error, or is "use Dict" enough ? | 16:48 | |
Marcool | lizmat: I'll give it a try | 16:49 | |
16:49
stoned75 left
|
|||
Marcool | it takes a while, it obviously gets quite far in the precomp, and fails, clearly, on attempting to insert item number 63404 into (something?) (native struct of some kind?) | 16:50 | |
lizmat | 63404 is a bit of an odd number | ||
close to 64K but not quite | 16:51 | ||
Marcool | yeah I was trying to see if there was a power of 2 anywhere there but there isn't that I can see | ||
that's right, 64K is the closest, but not exactly off by one or anything | |||
nope, same error without the say @dict[whatever] | 16:54 | ||
just use Dict; is enough | 16:55 | ||
wc -l Dict.rakumod -> 325552 | |||
one array entry per line | 16:56 | ||
incidentally parsing that in a text file a _runtime_ works fine, like a classic my @lines="dict.txt".IO.lines; | |||
lizmat | interesting | 17:04 | |
I think this is worth making an issue about | 17:05 | ||
Marcool | thanks for the interest :) | 17:06 | |
do you want me to do so or would you rather do it? | |||
lizmat | Marcool: if you could do it, please ! | ||
Marcool | I have also run it with --ll-exception and have a trace if that's helpful | ||
sure no problem | 17:07 | ||
lizmat | yes, that would be helpful, thank you! | ||
Marcool | github.com/rakudo/rakudo/issues | ||
? | |||
or moarvm ? | |||
lizmat | feels like a Rakudo issue atm to me | ||
Marcool | ok thanks, I'll do that right away | ||
lizmat | ++Marcool | ||
17:09
domidumont left,
[Sno] joined
17:11
epony joined
|
|||
Marcool | done | 17:26 | |
github.com/rakudo/rakudo/issues/4344 | |||
let me know if there's anything else I can do to help | |||
17:36
aborazmeh joined
|
|||
[Coke] | the only place 63403 or 63404 appear in the source is in nqp/MoarVM/src/strings/gb2312_codeindex.h, in an unlikely location. | 17:41 | |
17:49
[Sno] left
18:01
patrickb joined
18:04
[Sno] joined
18:12
[Sno] left
18:24
asymptotically joined
18:30
abraxxa joined
18:42
sena_kun left
18:43
sena_kun joined
18:52
draco100[m] left,
uzl[m] left
18:53
draco100[m] joined,
uzl[m] joined
18:56
stoned75 joined
19:01
squashable6 joined
19:08
domidumont joined
19:10
domidumont left
19:17
defaultxr left
19:27
aborazmeh left
19:32
_jrjsmrtn joined
19:33
epony left
19:34
__jrjsmrtn__ left
19:49
[Sno] joined
19:53
aborazmeh joined
19:54
[Sno] left
20:00
[Sno] joined
20:01
Marcool left
20:05
[Sno] left
20:30
epony joined
20:33
[Sno] joined
|
|||
gfldex | m: class NotNil is Nil {}; class C { method NotNil() { NotNil.new } }; sub s(NotNil()) {}; s(NotNil.new); | 20:36 | |
camelia | Impossible coercion from 'Nil' into 'NotNil': method NotNil returned a type object Nil in sub s at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
gfldex | I'm almost certain that NotNil is not Nil. | 20:37 | |
20:37
[Sno] left
|
|||
gfldex | m: class NotNil is Nil {}; class C { method NotNil() { NotNil.new } }; sub s(NotNil()) {}; s(C.new); | 20:45 | |
camelia | Impossible coercion from 'C' into 'NotNil': method NotNil returned a type object Nil in sub s at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
gfldex | And I'm sure NotNil did not return Nil. | ||
C.NotNil that is | |||
moon-child | m: class NotNil is Nil {}; say NotNil; say NotNil.new | 20:48 | |
camelia | Nil Nil |
||
gfldex | m: class NotNil is Nil {}; dd NotNil; dd NotNil.new | 20:49 | |
camelia | Nil Nil |
||
gfldex | o.0 | ||
20:49
[Sno] joined
|
|||
gfldex | m: class NotNil is Nil {}; my \nocontainer = NotNil.new; dd nocontainer; | 20:50 | |
camelia | Nil | ||
lizmat | m: m: class NotNil is Nil {}; my \nocontainer = NotNil.new; dd nocontainer =:= Nil | 20:56 | |
camelia | Bool::True | ||
lizmat | interesting | ||
you need to provide your own .new for the NotNil class, as Nil.new =:= Nil | |||
m: dd Nil.new =:= Nil | |||
camelia | Bool::True | ||
20:57
[Sno] left
|
|||
gfldex | m: class NotNil is Nil {}; my \nocontainer = NotNil.new; dd nocontainer.WHAT; | 20:58 | |
camelia | Nil | ||
gfldex | m: class NotNil is Nil {}; my \nocontainer = NotNil.new; dd NotNil.WHAT; | ||
camelia | Nil | ||
gfldex | m: say Failure.new.WHAT; | ||
camelia | (Failure) | ||
21:00
rindolf left
|
|||
gfldex | m: class NotNil is Nil { method new { use nqp; nqp::create(self)} }; class C { method NotNil() { NotNil.new } }; sub s(NotNil()) {}; s(C.new); | 21:03 | |
camelia | ( no output ) | ||
gfldex | m: class NotNil is Nil { method new { self.CREATE }; class C { method NotNil() { NotNil.new } }; sub s(NotNil()) {}; s(C.new); | 21:04 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3l.new } }; sub s(NotNil()) {}; s(C.new);7⏏5<EOL> |
||
gfldex | m: class NotNil is Nil { method new { self.CREATE } }; class C { method NotNil() { NotNil.new } }; sub s(NotNil()) {}; s(C.new); | 21:05 | |
camelia | ( no output ) | ||
gfldex | We may want to write that down somewhere … | ||
21:08
wamba left,
parabolize left
21:10
parabolize joined
21:13
asymptotically left
21:25
natrys left
21:26
dogbert17 joined
21:27
abraxxa left
21:28
dogbert11 left
21:32
[Sno] joined
21:37
[Sno] left
21:39
neshpion joined
|
|||
neshpion | what does Str.fc do? docs say it's for doing caseless comparisons but `$thing.fc.contains("SeArCh")` keeps returning false for me | 21:39 | |
21:40
dogbert11 joined
|
|||
neshpion | m: my $thing = "my STRING!"; say "string? ", $thing.fc.contains("string"); | 21:40 | |
camelia | string? True | ||
neshpion | o.o | ||
21:40
dogbert12 joined
|
|||
neshpion | actually i'm trying it on a heredoc not a regular string | 21:41 | |
21:41
dogbert12 left
21:42
dogbert12 joined
|
|||
neshpion | m: my $thing = "YEET"; say $thing.fc.contains("yeet"); | 21:42 | |
camelia | True | ||
neshpion | m: my $thing = "yeet"; say $thing.fc.contains("YEET"); | 21:43 | |
camelia | False | ||
neshpion | that's what my problem is, i'm checking using upper case | ||
lizmat | m: say "YEET".fc eq "yEeT".fc | ||
camelia | True | ||
lizmat | you need to use the .fc on both sides of the eq | ||
.fc is not guaranteed to give you anything you can do a reliable .contains on | 21:44 | ||
21:44
dogbert17 left,
dogbert11 left
|
|||
neshpion | m: say "yeet".fc.contains("YEET".fc) | 21:45 | |
camelia | True | ||
neshpion | ok | ||
lizmat | well, even that could cause false positives | 21:46 | |
21:47
[Sno] joined
21:52
[Sno] left
21:55
MasterDuke left
21:57
MasterDuke joined
22:07
patrickb left
22:09
MasterDuke left,
MasterDuke joined
22:15
epony left
22:18
aluaces left
22:27
Xliff left
22:28
Xliff joined
22:31
epony joined
22:34
guifa2 joined
22:37
dogbert17 joined
22:39
pecastro left,
[Sno] joined
22:41
dogbert12 left
22:44
[Sno] left
22:50
oneeggeach joined
22:51
cooper left
22:53
cooper joined
23:01
epony left
23:06
Xliff left
23:21
oneeggeach left
23:39
epony joined
23:43
epony left
23:48
[Sno] joined
23:52
[Sno] left
23:56
MasterDuke left
|