š¦ 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:00
reportable6 left
00:01
reportable6 joined
00:33
andydude left
00:45
kjp left
00:51
derpydoo joined
00:52
kjp joined
00:58
andydude joined
01:58
coverable6 left,
greppable6 left,
benchable6 left,
notable6 left,
statisfiable6 left,
evalable6 left,
shareable6 left,
tellable6 left,
linkable6 left
01:59
statisfiable6 joined,
linkable6 joined,
greppable6 joined,
notable6 joined
02:00
shareable6 joined,
tellable6 joined,
benchable6 joined
02:01
coverable6 joined,
evalable6 joined
|
|||
[Coke] | m: (4...1).List.say | 02:08 | |
camelia | (4 3 2 1) | ||
02:20
teatwo joined,
teatwo left
02:21
teatwo joined,
teatwo left
02:22
teatwo joined
02:23
tea3po left
02:24
teatwo left
02:25
teatwo joined
02:35
Maylay left
02:40
teatwo left
02:41
teatwo joined
02:49
Maylay joined
03:49
linkable6 left,
evalable6 left,
releasable6 left
03:50
evalable6 joined
03:51
linkable6 joined,
releasable6 joined
04:51
statisfiable6 left,
squashable6 left,
sourceable6 left,
benchable6 left,
evalable6 left,
linkable6 left,
committable6 left,
bloatable6 left,
reportable6 left,
bisectable6 left,
unicodable6 left,
reportable6 joined
04:52
unicodable6 joined,
benchable6 joined,
evalable6 joined,
sourceable6 joined,
bisectable6 joined,
statisfiable6 joined
04:53
linkable6 joined,
bloatable6 joined,
squashable6 joined
04:54
committable6 joined
05:10
jpn joined
05:14
jpn left
05:33
jpn joined
05:40
jpn left
05:56
jpn joined
06:00
reportable6 left
06:02
reportable6 joined
06:55
jpn left
07:09
jpn joined
07:13
jpn left
07:16
jpn joined
07:29
sena_kun joined
07:35
jpn left
07:38
andydude left
07:39
jpn joined
07:49
sena_kun left
|
|||
Nemokosch | 4..1 is an empty range | 07:56 | |
08:00
grondilu joined
|
|||
Voldenet | I confirm, 4..1 is an empty range, I'd expect obvious 2**32-2 elements | 08:02 | |
08:37
teatime joined
|
|||
grondilu | Hi all. | 08:44 | |
08:46
derpydoo left
|
|||
grondilu | Earlier I tried to compile rakudo/MoarVM with zig, using --moar-option='--compiler="zig cc"' | 08:47 | |
that failed, but today I tried --moar-option='--cc=zig cc' and that worked. | |||
Voldenet | is it any different though? | 08:48 | |
grondilu | for some reason, --moar-option='--cc="zig cc"' (mind the double quotes) did not | ||
Voldenet: it seems similar | |||
the main reason I'm interested in zig is that it compiles to WASM | |||
Voldenet | it'll probably be very similar to clang ātarget=wasm32 | 08:50 | |
grondilu | does that work, though? | 09:01 | |
Voldenet | not at all, apparently standard libs can't be used in that case | 09:09 | |
09:14
jpn left
|
|||
Voldenet | amazing if wasm target works on zig cc ootb | 09:14 | |
09:40
Sgeo left
10:34
lonewolf-dev joined
10:35
m_athias left
10:36
camelia left
|
|||
lonewolf-dev | why is raku so slow? | 10:36 | |
10:36
nine left
|
|||
lonewolf-dev | how can i make it faster? | 10:36 | |
a simple for loop that counts to a 100k in perl is so much faster than in raku. | 10:37 | ||
10:37
m_athias joined
|
|||
lonewolf-dev | how do i compile raku to the jvm? | 10:38 | |
10:38
nine joined
10:40
camelia joined
|
|||
lizmat | lonewolf-dev: answering your questions in reverse order | 10:45 | |
1. by selecting the JVM as backend | 10:46 | ||
10:46
camelia left,
nine left,
m_athias left,
nine joined
|
|||
lizmat | 2. generally, if you are using with integers, things will go faster if you're using native integers (what perl does by default) | 10:48 | |
10:48
m_athias joined
|
|||
lizmat | 3. you could help by showing what constructs are slower than you expect, and then hope an easy solution can be found | 10:48 | |
4. because it doesn't have 30+ of optimizations under its belt yet | 10:49 | ||
10:56
camelia joined,
oodani_ left
10:57
oodani joined
11:05
grondilu left
11:08
MoC joined
|
|||
lonewolf-dev | is rakudo on jvm backend faster than moarvm? | 11:11 | |
lizmat | I guess for some tasks, I wouldn't know: my focus is on MoarVM as backend | 11:15 | |
lonewolf-dev | Isnt it possible to port all perl modules to raku? No need to reinvent the wheel. | 11:17 | |
lizmat | it is possible, and I've done quite a few of them, but perl is no longer of interest to me | 11:23 | |
as my efforts were seen as trying to devalue perl by many (prominent) Perl community members | |||
so my taste in doing that, has soured significantly | |||
Nemokosch | Please be aware that the "jvm backend" is not like Kotlin, Clojure, Scala and the likes, it does not actually target the JVM the way these languages do | 11:24 | |
The term itself is rather unfortunate. It's rather a backend that runs on top of the JVM | 11:25 | ||
lizmat | lonewolf-dev: raku.land/tags/cpan5 | ||
Nemokosch | It's as if you called MoarVM the "C backend" | ||
lizmat | lonewolf-dev: raku.land/zef:lizmat/P5built-ins | 11:26 | |
Nemokosch | Also, let's call things by their name, at least here: Perl is a language that only hobbyist hipsters learn in 2023. One might say that the same is true for Raku as well but if you look at both languages, I doubt there is any question which one you'd rather enjoy using | 11:28 | |
11:32
jpn joined
|
|||
lonewolf-dev | ok | 11:33 | |
11:33
lonewolf-dev left
11:39
jpn left
12:00
reportable6 left
12:01
reportable6 joined
|
|||
tbrowder__ | .ask tonyo thnks, inside that example sub will smartmatching work (don't have time to try it, gotta run for a while) | 12:15 | |
tellable6 | tbrowder__, I'll pass your message to tonyo | ||
tonyo | tbrowder__: it should | 12:26 | |
tellable6 | 2023-05-20T12:15:40Z #raku <tbrowder__> tonyo thnks, inside that example sub will smartmatching work (don't have time to try it, gotta run for a while) | ||
tonyo | m: enum A <A1 A2 A3>; sub a (A:D $a) { say $a ~~ A2; }; a(A1); a(A2); # tbrowder__ (smartmatching) | ||
camelia | False True |
||
12:27
jpn joined
12:33
jpn left
12:36
jpn joined
12:52
jpn left
|
|||
tbrowder__ | tony: so cool! thnx. that's what i was trying to do but must have murfled the syntax somehow. | 13:01 | |
13:04
peder left
|
|||
tbrowder__ | m: enum btype <afm ff>; sub f(btype $typ) { if $typ ~~ afm { say "do afm stuff } else { say "do ff stuff"}}; f(afm); f(ff); | 13:06 | |
camelia | ===SORRY!=== Error while compiling <tmp> Unable to parse expression in double quotes; couldn't find final '"' (corresponding starter was at line 1) at <tmp>:1 ------> se { say "do ff stuff"}}; f(afm); f(ff);ā<EOL> expecting ā¦ |
||
tbrowder__ | crud, typo :-( | ||
13:07
peder joined
|
|||
tbrowder__ | m: enum btyp <afm ff>; sub f(btype $t) { if $t ~~ afm { say "do afm"} else { say "do ff"}}; f(afm); f(ff); f(bad) | 13:09 | |
camelia | ===SORRY!=== Error while compiling <tmp> Invalid typename 'btype' in parameter declaration. Did you mean 'btyp'? at <tmp>:1 ------> enum btyp <afm ff>; sub f(btypeā $t) { if $t ~~ afm { say "do afm"} else |
||
tbrowder__ | doing this back at home in my own REPL | 13:10 | |
13:24
jpn joined
13:29
jpn left
13:31
sivoais left
13:36
jpn joined
13:42
sivoais joined
13:46
jpn left
|
|||
tbrowder__ | m: enum btyp <a b>; class f { has btyp $.t}; my $o = f.new: :t(a); | 13:48 | |
camelia | ( no output ) | ||
13:49
guifa joined
|
|||
tbrowder__ | m: enum btyp <a>; class f { has btyp $.t = a; }; my $o = f.new; say $o.t | 13:50 | |
camelia | a | ||
tbrowder__ | hm, that's cool, it ought to work the same at home then... | 13:52 | |
ok, can we iterate over an enum? | 14:00 | ||
m: enum btyp <a b>; for btyp.kv -> $k,$v { say $k.WHAT; say $v.WHAT; last} | 14:03 | ||
camelia | (Str) (Int) |
||
tbrowder__ | aha | 14:05 | |
m: enum btyp <a b>; for btyp.pairs { say $_. | 14:06 | ||
camelia | ===SORRY!=== Error while compiling <tmp> Malformed postfix call at <tmp>:1 ------> num btyp <a b>; for btyp.pairs { say $_.ā<EOL> |
||
tbrowder__ | m: enum btyp <a b> ; for btyp.pairs { say $_ ~~ a } | 14:07 | |
camelia | False False |
||
tbrowder__ | ?? | 14:09 | |
m: enum btyp <a b> ; for btyp.pairs { say $_ } | 14:10 | ||
camelia | a => 0 b => 1 |
||
14:17
teatwo left,
teatwo joined,
tea3po joined
14:20
tea3po left,
teatwo left,
tea3po joined,
teatwo joined,
teatime left
15:08
Henry151_ left
15:14
jpn joined
15:17
andydude joined
15:21
jpn left
15:22
sena_kun joined
16:16
Manifest0 left
16:18
Manifest0 joined
16:25
xinming left
16:28
xinming joined
16:34
Henry151 left
16:35
rf joined
16:43
euandreh left
16:48
euandreh joined
|
|||
rf | Morning folks | 16:51 | |
16:54
euandreh left
16:55
euandreh joined
17:40
jpn joined
17:46
jpn left
18:00
reportable6 left
|
|||
librasteve | on my machine its 0.14s (raku on MoarVM) vs. 0.02s (perl) | 18:00 | |
18:01
reportable6 joined
|
|||
took me a lot longer than that to remember how to write perl | 18:02 | ||
lizmat | librasteve: and a bare startup for raku is probably around .11 for you, right? | ||
librasteve | 0.08s | 18:03 | |
lizmat | hmmm.. and what was the code you ran? | 18:04 | |
librasteve | for the startup? | ||
time raku -e "say 0" | 18:05 | ||
m: my $counter; for 0..^100000 {$counter++} say $counter; | 18:07 | ||
Raku eval | Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku Strange text after block (missing semicolon or comma?) at /home/glot/main.raku:1 ------> my $counter; for 0..^100000 {$counter++}ā say $counter; | ||
lizmat | time raku -e '' | ||
and with: my int $counter ? | 18:08 | ||
librasteve | my $counter; for 0..^100000 {$counter++} say $counter; | 18:09 | |
^^^ that's 0.14s | |||
my int $counter; for 0..^100000 {$counter++} say $counter; | 18:10 | ||
^^^ that's 0.13s | |||
raku -e 'say 2**64 + 1' 0.12s | |||
^^^ so not much gain at this scale for native int ... but showing raku uses BigInt vs. perl native int that is one source of slower runtime | 18:12 | ||
gfldex | Does the JIT acutally got enough time to kick in? | 18:13 | |
librasteve | probably not | ||
lizmat | hmmm... feels like we lost an optimization somewhere | 18:18 | |
ah no the difference becomes pronounced at ^1000000 (.16 vs .21) or 10000000 (.39 vs .91) | 18:20 | ||
18:22
Bronco_Creek joined
|
|||
Bronco_Creek | I've hit a snag trying to install Rakudo on my new Mac w/ M2 chip. Ā The install command produces the error rakudo/lib/main.bash: line 30: declare: -A: invalid option | 18:25 | |
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] | |||
Any advice on fixing this? | |||
lizmat | Bronco_Creek: which version of Rakudo ? | ||
Bronco_Creek | Latest source for the star bundle | 18:26 | |
lizmat | hmmm... that *should* have all of the M2 fixes | ||
Bronco_Creek | Maybe I should just try again. Ā Delete everything in my /rakudo and start from scratch? | 18:29 | |
lizmat | nuking the install dir is usually enough :-) | 18:38 | |
18:44
andydude left
|
|||
Bronco_Creek | Well, still got the same failure. | 18:47 | |
main.bash: line 30: declare: -A: invalid option | |||
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] | |||
fatal: not in a git directory | |||
This is on a Mac Mini, if that matters. | 18:48 | ||
librasteve | hi Bronco_Creek - have you tried rakubrew? | ||
18:48
jpn joined
|
|||
(that's my goto on my M1) | 18:48 | ||
Bronco_Creek | No, haven't tried rakubrew. | 18:49 | |
I will give that a whirl. | 18:50 | ||
18:55
jpn left
19:11
andydude joined
|
|||
Bronco_Creek | Rakubrew seems to have worked. Ā Thanks lizmat and librasteve. | 19:11 | |
19:27
MoC left
19:29
Bronco_Creek left
19:34
euandreh left
19:38
zara joined
19:41
euandreh joined
19:59
jpn joined,
andydude left
20:02
zara left
20:03
jpn left
20:05
euandreh left
20:08
euandreh joined
20:29
Sgeo joined
21:02
MoC joined
|
|||
librasteve | š | 21:02 | |
21:21
jpn joined
21:26
zara joined,
jpn left
21:53
MoC left
22:02
jpn joined
22:08
jpn left
|
|||
tbrowder__ | .tell rf a belated 'hi' | 22:20 | |
tellable6 | tbrowder__, I'll pass your message to rf | ||
rf | Hey tbrowder__ :) | 22:22 | |
22:22
zara left
22:29
sena_kun left
22:42
zara joined
23:42
evalable6 left,
releasable6 left,
linkable6 left
23:43
linkable6 joined,
evalable6 joined,
releasable6 joined
23:44
zara left
|