🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku Set by ChanServ on 14 October 2019. |
|||
ben_m | I wonder why there's no Unicode variant of the feed operator? ==> looks so ugly to me | 00:00 | |
00:15
BenGoldberg left,
Ben_Goldberg joined,
Ben_Goldberg is now known as BenGoldberg
00:34
rindolf left
00:43
argent0 left
00:52
pecastro left
00:55
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:59
aborazmeh left
01:32
argent0 joined
|
|||
Xliff | How can I get DBIish to insert a null? | 01:45 | |
Type objects seem to confuse it. | 01:46 | ||
leont | r: dd CallFrame().^coerce(val("1")) | 02:02 | |
camelia | No such method 'WHICH' for invocant of type 'NQPMu' in block <unit> at <tmp> line 1 |
||
Method 'coerce' not found for invocant of class 'Perl6::Metamodel::CoercionHOW' in block <unit> at <tmp> line 1 |
|||
leont | That error makes no sense | ||
It looks like coerce is returning a value that can't be dd()ed (or actually .raku()d) | 02:06 | ||
Ah, seems the issue isn't coercion related, but calling CallFrame.new with a too high number gives a very confusing error | 02:21 | ||
02:32
evalable6 left,
linkable6 left
02:33
evalable6 joined,
tejr left
02:34
linkable6 joined,
holli__ left
|
|||
Xliff | Is there a phaser that is run even when you ^C out of a running program? | 02:36 | |
leont | ^C typically sends a SIGINT | ||
You can catch that | 02:37 | ||
Xliff | Yeah, but I want the same code to run at exit. | ||
Ah well, I guess I'll sub it. leont++ | |||
rypervenche | Actually, rakubrew.org's domain simply needs to be renewed. It expired at the DNS registrar, it seems. | 02:55 | |
03:04
Manifest0 left,
tejr joined
03:05
tejr left
03:06
Manifest0 joined
03:07
tejr joined
|
|||
leont | What can possibly go wrong if someone hijacks that… | 03:10 | |
Grinnz | i'm just imagining if someone domain squatted perlbew.pl with malicious intent... ugh | 03:11 | |
perlbrew.pl* | 03:12 | ||
03:17
Kaiepi left
03:29
leont left
03:38
Ayoub left
04:07
_jrjsmrtn joined
04:08
__jrjsmrtn__ left
04:16
jmchael left
05:16
sourceable6 left,
coverable6 left,
shareable6 left,
benchable6 left,
releasable6 left,
nativecallable6 left,
bisectable6 left,
notable6 left,
evalable6 left,
quotable6 left,
squashable6 left,
greppable6 left,
tellable6 left,
committable6 left,
linkable6 left,
bloatable6 left,
statisfiable6 left,
unicodable6 left,
squashable6 joined,
committable6 joined
05:17
tellable6 joined,
notable6 joined,
quotable6 joined,
greppable6 joined,
benchable6 joined,
releasable6 joined,
statisfiable6 joined,
coverable6 joined
05:18
unicodable6 joined,
nativecallable6 joined,
shareable6 joined,
bisectable6 joined
05:19
sourceable6 joined,
linkable6 joined,
bloatable6 joined,
evalable6 joined
05:24
tejr left
05:25
tejr joined
05:27
orinthe left,
orinthe joined
05:29
frost-lab joined
05:50
parabolize left
05:57
argent0 left
06:05
BenGoldberg left,
xinming joined
06:09
xinming_ left
06:17
ensamvarg left
06:19
ensamvarg joined
06:47
stanrifkin joined
|
|||
stanrifkin | rakubrew.org still down | 06:48 | |
rakudoc still not working | |||
06:49
cpan-raku left
06:50
cpan-raku joined,
cpan-raku left,
cpan-raku joined
06:51
defaultxr left
06:55
stanrifkin left,
stanrifkin joined,
xelxebar left
06:56
xelxebar joined
06:58
eattherich joined
07:08
stanrifkin left
07:42
defaultxr joined
|
|||
Geth | doc: 02b8c0d524 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Type/Failure.pod6 Failure.handled() is rw |
07:44 | |
linkable6 | Link: docs.raku.org/type/Failure | ||
07:53
argent0 joined
07:54
argent0 left
08:16
Yunga joined
08:22
eattherich left
08:33
wamba joined
08:35
aborazmeh joined,
aborazmeh left,
aborazmeh joined
08:42
sena_kun joined
09:07
Altai-man joined
09:10
sena_kun left
09:33
Kaiepi joined
09:35
BenGoldberg joined
09:40
wamba left
09:50
wamba joined
09:51
aborazmeh left
10:06
sjm_uk joined
10:09
BenGoldberg left
10:30
stoned75 joined
10:38
sjm left,
holli__ joined
10:54
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
Geth | doc: a01d1fbe73 | (Stoned Elipot)++ | doc/Type/Failure.pod6 Add refs to lvalue and 'is rw' routine trait |
11:10 | |
linkable6 | Link: docs.raku.org/type/Failure | ||
11:11
JJAtria[m] left,
CIAvash left
11:12
MitarashiDango[m left,
AlexDaniel` left,
ThaEwat left
11:13
matiaslina left,
unclechu left
11:18
Sgeo left
11:22
aborazmeh left,
stoned75 left
11:23
stoned75 joined
11:31
JJAtria[m] joined
11:32
CIAvash joined
|
|||
notandinus | m: sub t (Str $pass --> Int, Int) {} | 11:37 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed return value (return constraints only allowed at the end of the signature) at <tmp>:1 ------> 3sub t (Str $pass --> Int7⏏5, Int) {} |
||
notandinus | whats wrong with that ^? | ||
moritz | two return values | 11:38 | |
if you do a return 1, 2 you are actually returning a List | |||
11:40
unclechu joined,
MitarashiDango[m joined
|
|||
notandinus | i see, if i want to return a list of exactly 2 elements & both being Int then what should be used? | 11:40 | |
Geth | doc: 3bd691993c | (Stoned Elipot)++ | doc/Type/Failure.pod6 Examples rewrite Make Failure.{Bool,defined} examples certainly repetitive, but more demonstrative and hopefully more readable. |
||
linkable6 | Link: docs.raku.org/type/Failure | ||
11:44
matiaslina joined
11:45
AlexDaniel` joined
11:46
ThaEwat joined
11:51
xinming left,
xinming joined
11:52
pecastro joined
|
|||
Geth | ecosystem: e986e87e64 | (Elizabeth Mattijsen)++ | ADOPTERS.md Start keeping track of module adopters |
12:00 | |
12:02
asymptotically joined
|
|||
notandinus | or how do i return 2 Int the correct way? | 12:03 | |
lizmat | notandinus: you mean, have it type checked that you did in fact return a list with 2 Ints ? | 12:06 | |
because returning 2 Ints is as easy as: "return 42,666" | 12:07 | ||
notandinus | lizmat: yeah i want it type checked | 12:08 | |
m: sub t (--> List) {} | 12:09 | ||
camelia | ( no output ) | ||
notandinus | i changed it to ^ | ||
but say i want to make sure its returning 2 ints | |||
lizmat | you could start with: | 12:12 | |
my subset TwoInts of List where { .elems == 2 }; sub a(--> TwoInts) { 42,666 } | |||
and build from there... there isn't any easy syntactic sugar in Raku for this (yet) | |||
notandinus | oh i see, i thought i was missing something. i think for now `List' will be fine. | 12:13 | |
thanks for ^ | |||
lizmat | I was checking whether my Rake module could be helpful for that | ||
modules.raku.org/dist/Rake | |||
and ran into what looks like a bug / oversight to make it easy to use for this type of thing | 12:14 | ||
my idea was that you could say: | |||
my TwoInts = Rake[Int,Int]; sub foo(--> TwoInts) { return TwoInts(42,666) } | 12:15 | ||
but that won't work currently | |||
notandinus | hmm i see, Rake looks good, i'll check it | ||
i see, also `:` is just for immutability right? | |||
lizmat | but please not that generally when you need to return more than two values of information | ||
notandinus | m: my $k := 1; $k =2 | 12:16 | |
camelia | Cannot assign to an immutable value in block <unit> at <tmp> line 1 |
||
lizmat | you're probably better off creating a class for it | ||
:= is binding | |||
notandinus | i see, i haven't looked into class and oop things yet | ||
lizmat | when you bind a constant to a lexpad entry, it is immutable | ||
until you bind it with something else | |||
docs.raku.org/language/operators#i...g_operator | 12:17 | ||
notandinus | ah i see, thanks | 12:18 | |
masak .oO( := is binding, like a legal contract ) | 12:22 | ||
oh, so a Rake is a tuple type | 12:25 | ||
12:28
frost-lab left
12:57
jmchael joined
13:00
BenGoldberg joined
13:01
aluaces left,
leont joined
13:02
aluaces joined
|
|||
Geth | doc: 85e7630336 | (Stoned Elipot)++ | doc/Type/Test.pod6 Add ref to testing document |
13:03 | |
linkable6 | Link: docs.raku.org/type/Test | ||
13:07
sena_kun joined
13:09
Altai-man left
13:34
BenGoldberg left
14:04
sjm joined
14:11
wamba left
14:12
aborazmeh joined,
aborazmeh left,
aborazmeh joined
14:22
sjm left
14:26
aborazmeh left
14:57
nige left,
nige joined
15:02
nige left,
nige joined
15:29
parabolize joined
15:43
oddp joined
15:58
aindilis left
16:00
CIAvash left
16:02
nige left,
nige joined
16:07
nige left,
nige joined
16:26
BenGoldberg joined
16:27
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
xinming | m: my %x = :a1<a b>; my @h = (|%x<a> // Empty); @h.raku.say; | 16:33 | |
camelia | [Any] | ||
xinming | what is the right way to return "Empty" list, when the value is not defined please? | 16:34 | |
m: my %x = :a1<a b>; my @h = (|%x<a> || Empty); @h.raku.say; | 16:35 | ||
camelia | [Any] | ||
xinming | m: my %x = :a1<a b>; my @h = (%x<a> ?? |%x<a> !! Empty); @h.raku.say; | 16:36 | |
camelia | [] | ||
xinming | the last one work as expected, But a bit tedious really. | ||
stoned75 | m: my %x is default(Empty) = :a1<a b>; my @h = |%x<a>; say @h; | 16:40 | |
camelia | [] | ||
codesections | yeah, I was about to suggest `is default` too. docs.raku.org/type/Variable#index-...is_default | 16:41 | |
16:43
sena_kun left
|
|||
codesections | (if you can't change the signature for %x and want similar behavior where you declare @h, you can do something like `my Any:D @h = |%x<a> // Empty;`) | 16:46 | |
16:48
mowcat joined
16:59
BenGoldberg left
17:09
mowcat left
17:13
jmerelo joined
17:21
aborazmeh left
17:24
Doc_Holliwould joined,
holli__ left
17:43
RaycatWhoDat left
17:44
BenGoldberg joined
|
|||
Geth | doc: MorayJ self-unassigned "Regex and interpolation is a bit confusing" github.com/Raku/doc/issues/2230 287fe13012 | (Stoned Elipot)++ | doc/Type/Exception.pod6 Do not try if we want to CATCH. |
17:48 | |
17:50
aindilis joined
18:00
dataangel joined
18:08
wamba joined
18:09
jmcgnh joined
18:11
sjm joined
18:26
xinming left
18:27
xinming joined
18:38
sjm left
18:39
sjm joined
19:03
xinming left
19:04
xinming joined
19:11
onur joined
19:13
xinming left
19:14
xinming joined
|
|||
ben_m | Am I the only one who really dislikes the --> syntax for return types? Especially having it inside the parameter list | 19:18 | |
lizmat | you can also use the "returns" trait | 19:19 | |
MasterDuke | ben_m: there is also the `sub a($b) returns Int { ... }` syntax, though it's likely to be deprecated a long time from now | ||
leont | Or the of trait | ||
lizmat | sub a() returns Int { "bad" }; a | ||
m: sub a() returns Int { "bad" }; a | |||
camelia | Type check failed for return value; expected Int but got Str ("bad") in sub a at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
lizmat | the reason for --> is that you cannot specify the "returns" trait on blocks easily | 19:20 | |
m: my $a = --> Int { "bad" }; $a() | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Prefix -- requires an argument, but no valid term found. Did you mean -- to be an opening bracket for a declarator block? at <tmp>:1 ------> 3my $a = --7⏏5> Int { "bad" }; $a() expecti… |
||
lizmat | m: my $a = -> --> Int { "bad" }; $a() | ||
camelia | Type check failed for return value; expected Int but got Str ("bad") in block <unit> at <tmp> line 1 |
||
lizmat | my $a = --> Int { "bad" }; $a() # hmmm... this should probably be allowed as well? | 19:21 | |
ben_m | sub f($a, $b --> Int) {} just parses weirdly in my head | 19:22 | |
MasterDuke | i didn't like it as much either, but i've gotten used to it | 19:24 | |
19:27
onur left
19:36
nosqrt joined
|
|||
lizmat | I like it better because it can be used on subs, methods and blocks | 19:36 | |
19:37
sjm left
|
|||
lizmat | although the syntax with subs and methods might give you the idea that it is part of the signature of the sub/method, which it is **NOT** | 19:37 | |
19:40
jmerelo left
19:49
oddp left,
guifa joined
19:51
sjm joined,
sjm left
19:54
sjm joined
19:56
cognominal left
19:59
Sgeo joined
20:26
CAPTCHA_REQUIRED left
20:44
v_m_v joined
|
|||
v_m_v | Hello. I am trying to solve Euler problem with Raku (projecteuler.net/problem=12). My solution is really slow (pastebin.com/Drpq6Nsn). Can I somehow make it faster in Raku? | 20:45 | |
MasterDuke | v_m_v: well, it's probably not the most expensive thing, but you're calling is-prime twice if the number is in fact prime | 20:48 | |
also, do you have to go up to `($number div 2)`, could it be `($number.sqrt.Int + 1)`? | 20:50 | ||
20:53
xinming left,
xinming joined
20:55
ggoebel_ left
|
|||
MasterDuke | v_m_v: oh, and you don't want to do `%hash<$candidate>`, that looks for the literal string '$candidate' in the hash. you want `%hash{$candidate}`, that actually looks for the value in the $candidate variable | 20:56 | |
i'd fix that first, otherwise your code won't be doing what you want it to | 20:57 | ||
20:58
no-n joined
21:04
stoned75 left
21:05
xinming left,
xinming joined
21:07
stoned75 joined
21:08
kensanata joined
|
|||
linkable6 | Link: docs.raku.org/type/Exception | ||
21:14
chloekek joined
|
|||
chloekek | . | 21:14 | |
21:17
nige left
21:21
nige joined
21:25
nige left,
nige joined
21:37
lucasb joined
21:44
nige left
21:48
kensanata left
21:49
xinming left
21:50
xinming joined
21:58
BenGoldberg left,
Ben_Goldberg joined,
Ben_Goldberg is now known as BenGoldberg
22:24
ggoebel_ joined
22:29
ggoebel_ left
|
|||
v_m_v | @MasterDuke: Thank you. | 22:36 | |
@MasterDuke: I have removed the "prime" checking (those numbers are quite big and most of them are not primes). I have also changed $number div 2 to $number.sqrt.Int + 1. It is a way faster now. Still Raku is not the faster programming language but it is awesome. | 22:40 | ||
22:54
xinming left,
xinming joined
|
|||
guifa | v_m_v: it will take time for speed to get to Raku, but it’s been making lots of improvements. Just think how slow JS was until Google, Mozilla, and Microsoft poured literal millions of dollars int work speeding it up | 23:04 | |
(and now it’s possible for JS code to be as fast or faster than C for some stuff because of the JIT engine) | 23:05 | ||
23:06
chloekek left
23:13
guifa left
23:27
xinming left,
xinming joined
|
|||
timotimo | our good friends on the discord server found out that [+] $foo gets translated directly to $foo.sum, which is wong when $foo contains a list of some kind, since [*] and others won't iterate because scalar | 23:40 | |
23:48
xinming left
23:51
xinming joined
23:53
ggoebel_ joined
23:56
asymptotically left
23:58
xinming left,
xinming joined
|