»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:20 _thou left, _thou joined 00:21 kurahaupo_mobile joined, JumpingJackeroo joined 00:23 skids joined 00:24 rurban1 joined 00:33 simcop2387 left 00:36 simcop2387 joined 00:37 dmol left, water joined, hoverboard left, water is now known as hoverboard 00:39 fhelmberger left, Exodist joined, fhelmberger joined 00:40 slavik left, kaare_ left, slavik1 joined, kaare__ joined, FROGGS left, xenoterracide left, FROGGS joined, avuserow joined, yath joined 00:58 ilogger2 joined, ChanServ sets mode: +v ilogger2 00:59 yves_ joined, japhb_ left, BooK joined, bonsaikitten joined, japhb_ joined 01:00 awwaiid joined
JumpingJackeroo when should i use the bind operator := instead of = 01:02
shouldn't perl6 knows if a list is going to be infinite
any scenario where := is necessary 01:03
?
01:06 eternaleye joined 01:07 araujo joined 01:08 japhb_ left, japhb_ joined 01:26 colomon_ joined, lee__ joined 01:27 clsn_ joined 01:29 lee_ left, japhb_ left, awwaiid left, awwaiid joined, japhb joined, colomon_ is now known as colomon, japhb left, japhb joined 01:31 araujo left, rurban joined
TimToady JumpingJackeroo: the halting problem implies that we can't always know whether a list is infinite 01:32
01:32 araujo joined, simcop2387 joined
TimToady it knows in the obvious cases, but not all cases are obvious 01:32
JumpingJackeroo thank you 01:33
TimToady anyway, P5 programmers will expect = to be eager regardless of whether we know
r: my @foo = 1..*; # knows
camelia ( no output )
TimToady r: my @foo = 1..*; say @foo[^20]; # knows
camelia rakudo-parrot 3c80d3, rakudo-jvm 3c80d3, rakudo-moar 3c80d3: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20␤»
TimToady but as soon as you put a gather and some generating code, the halting problem arises 01:34
01:53 dayangkun joined 02:01 FROGGS_ joined
BenGoldberg I know in perl5, if I do $x = delete $h{$y}, it will remove key $y from hash %h, and will assign to $x the value that had been in $h{$y} before the deletion occured.... how do I do this in perl6? 02:04
my $x = %h{$y} :delete; ?
(doesn't seem to do the right thing)
BenGoldberg is attempting a sieve of eratosthenese, as follows: 02:05
r: my %sieve; my @primes; my $p_i = 0; my $p = 2; my $q = 4; my $n = 5; @primes := gather { take 2; take 3; OUTER: loop { while ( my $s = %sieve{$n} :delete ) { push %sieve{$n + $_}, $_ for $s; $n += 2 }; while $n < $q { take $n; $n += 2; next OUTER if %sieve{$n} :exists; }; push %sieve{$q + $p * 2}, $p * 2; $p = @primes[++$p_i]; $q = $p*$p; $n += 2; } };
camelia rakudo-jvm 3c80d3: OUTPUT«Unhandled exception: This representation can not unbox to a native str␤ in delete_key (gen/jvm/CORE.setting:8973)␤ in delete_key (gen/jvm/CORE.setting:8969)␤ in (gen/jvm/CORE.setting:1915)␤ in (gen/jvm/CORE.setting:1908)␤ in SLICE_ONE (gen/…»
..rakudo-parrot 3c80d3: OUTPUT«This type cannot unbox to a native string␤current instr.: 'delete_key' pc 370776 (src/gen/p-CORE.setting.pir:156357) (gen/parrot/CORE.setting:8993)␤called from Sub 'delete_key' pc 370699 (src/gen/p-CORE.setting.pir:156300) (gen/parrot/CORE.setting:89…»
..rakudo-moar 3c80d3: OUTPUT«Unhandled exception: This type cannot unbox to a native string␤ at src/gen/m-CORE.setting:8973 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:delete_key:72)␤ from src/gen/m-CORE.setting:8969 (/home/p6eval/rakudo-inst-1/lang…»
BenGoldberg n: my %sieve; my @primes; my $p_i = 0; my $p = 2; my $q = 4; my $n = 5; @primes := gather { take 2; take 3; OUTER: loop { while ( my $s = %sieve{$n} :delete ) { push %sieve{$n + $_}, $_ for @$s; $n += 2 }; while $n < $q { take $n; $n += 2; next OUTER if %sieve{$n} :exists; }; push %sieve{$q + $p * 2}, $p * 2; $p = @primes[++$p_i]; $q = $p*$p; $n += 2; } }; 02:07
camelia ( no output )
BenGoldberg n: my %sieve; my @primes; my $p_i = 0; my $p = 2; my $q = 4; my $n = 5; @primes := gather { take 2; take 3; OUTER: loop { while ( my $s = %sieve{$n} :delete ) { push %sieve{$n + $_}, $_ for @$s; $n += 2 }; while $n < $q { take $n; $n += 2; next OUTER if %sieve{$n} :exists; }; push %sieve{$q + $p * 2}, $p * 2; $p = @primes[++$p_i]; $q = $p*$p; $n += 2; } }; say @primes[^5];
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/pq2BxZQpL8 line 1 (ANON @ 28) ␤ at /tmp/pq2BxZQpL8 line 1 (ANON @ 9) ␤ at <unknown> line 0 (KERNEL dogather @ 1) ␤ at /home/…»
BenGoldberg Hmm... I think that the "cannot unbox" is a rakudobug. 02:26
With niecza, the following works ok: 02:27
n: my %sieve; sub addit($start is copy, $step) {$start+=$step while %sieve{$start};%sieve{$start}= $step;}; my @primes;my$p_i=1;my$n=5;my$p=3;my$q=9;@primes:=gather {take 2; take 3; loop { if ( my $s = %sieve{$n} :delete ) { addit($n + $s, $s) } elsif $n < $q { take 0+$n } else { addit($q + $p*2, $p * 2); $p = @primes[++$p_i]; $q = $p*$p; }; $n += 2 } }; say @primes[^20];
camelia niecza v24-109-g48a8de3: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71␤»
BenGoldberg But with rakudo, it dies with the "This type cannot unbox to a native string" exception.
TimToady I believe loop labels are NYI 02:34
BenGoldberg I rewrote it to not need the label. 02:37
02:37 rurban left, rurban joined
BenGoldberg Well, actually I made it more like the original python code :), but same difference. 02:37
02:39 go|dfish joined 02:41 jnap joined 02:44 timotimo joined 02:45 jnap1 joined, jnap left 02:47 klapperl joined
TimToady a workaround, when you say %sieve{$x}, say %sieve{~$x} instead 02:49
02:49 jnap1 left
TimToady it apparently can't figure out how to hash an integer 02:49
BenGoldberg Ok :) 02:50
rn: my %sieve; sub addit($start is copy, $step) {$start+=$step while %sieve{$start};%sieve{$start}= $step;}; my @primes;my$p_i=1;my$n=5;my$p=3;my$q=9;@primes:=gather {take 2; take 3; loop { if ( my $s = %sieve{~$n} :delete ) { addit($n + $s, $s) } elsif $n < $q { take 0+$n } else { addit($q + $p*2, $p * 2); $p = @primes[++$p_i]; $q = $p*$p; }; $n += 2 } }; say @primes[^100]; 02:51
camelia rakudo-parrot 3c80d3, rakudo-jvm 3c80d3, rakudo-moar 3c80d3, niecza v24-109-g48a8de3: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257…»
BenGoldberg \o/
Does anyone besides me think that an infinite lazy list of primes, with roughly constant time for each additional prime, is really cool? 02:52
02:55 alc joined 03:08 _thou joined
lue That bugfix from a while ago fixed the issue of getting panda to run at all, but the bootstrap process now gets stuck on ==> Fetching panda :( 03:11
03:13 _thou left
lue My panda is getting stuck because of that recursive .work/* problem. Using the 'absolute' branch (which seemed like a good choice) doesn't work either. 03:40
03:46 jnap joined 03:51 jnap left, _thou joined 04:07 hoverboard joined 04:35 awwaiid_ joined 04:36 __thou joined 04:37 japhb_ joined, awwaiid left, rurban left, japhb left, _thou left 04:39 rurban joined 04:42 klapperl left, go|dfish left, FROGGS_ left, simcop2387 left 04:46 go|dfish joined 04:47 FROGGS_ joined 04:48 xenoterracide joined 04:49 simcop2387 joined, rurban left 04:50 rurban joined, klapperl joined 04:56 rurban1 joined 05:01 skids joined 05:02 lee_ joined, rurban_ joined, rurban left, awwaiid joined 05:06 awwaiid_ left, clsn_ left 05:08 dayangkun left 05:11 lee__ left 05:15 skids left, rurban1 left, awwaiid left
lue Hrm. I'm trying to write a routine tracer (similar to Grammar::Tracer); I've got the various Dispatcher metamodel classes set up, but apparently I can't do the EXPORTHOW trick Grammar::Tracer does with EXPORT :/ 05:16
05:16 skids joined 05:18 awwaiid joined 05:20 rurban joined 05:25 awwaiid_ joined 05:27 awwaiid left 05:28 raydiak left, Yappo__________7 left, lue joined, tadzik joined, Yappo__________7 joined 05:29 raydiak joined 05:35 raydiak_ joined 05:48 raydiak left 05:49 jnap joined 05:53 jnap left
dalek ast: 10afb2d | larry++ | S02-lexical-conventions/unicode-whitespace.t:
MONGOLIAN VOWEL SEPARATOR moved from Zs to Cf

So don't test it for being whitespace already.
06:03
06:05 tadzik left, ingy left, ingy joined, tadzik joined 06:07 rurban left, xinming_ joined 06:12 telex joined 06:17 __thou left
dalek ecs: 43477ea | larry++ | S05-regex.pod:
bring <cntrl> in line with <:Cc>
06:24
06:30 [Sno] joined 06:31 xinming_ left
FROGGS_ .tell lue You need this: github.com/tadzik/panda/pull/69 06:34
lue heh, I was just about to leave my computer for the night too :) . I'll check it tomorrow, ♘ #perl6 o/ 06:35
TimToady m: say "\c[PILE OF POO]" 06:41
camelia rakudo-moar 3c80d3: OUTPUT«􁝫␤»
TimToady m: say "\c[PILE OF POO].ord.base(16)"
camelia rakudo-moar 3c80d3: OUTPUT«􁝫.ord.base(16)␤»
TimToady m: say "\c[PILE OF POO]".ord.base(16) 06:42
camelia rakudo-moar 3c80d3: OUTPUT«10176B␤»
TimToady not yet
FROGGS_ gnight lue 06:43
FROGGS_ is eager to run the regex spectests 06:48
06:49 jnap joined 06:53 jnap left
FROGGS_ gosh how I love that list: 06:57
Using /home/froggs/dev/nqp/install/bin/nqp-p (version 2014.02-1-g8aab212 / Parrot 6.1.0).
Using /home/froggs/dev/nqp/install/bin/nqp-j (version 2014.02-1-g8aab212 / OpenJDK 1.7.0_51).
Using /home/froggs/dev/nqp/install/bin/nqp-m (version 2014.02-1-g8aab212 / MoarVM 2014.02-5-g6653722).
06:58 berekuk joined
FROGGS_ I just miss this one: 06:59
Using /home/froggs/dev/nqp/install/bin/nqp-js (version 2014.02-1-g8aab212 / node.js 10.7.3).
dalek ast: ced837a | larry++ | S05-mass/rx.t:
MONGOLIAN VOWEL SEPARATOR moved from Zs to Cf
07:00
ast: 42a12c5 | larry++ | S05-mass/charsets.t:
º and ª moved from Ll to Lo
TimToady haven't been able to figure out where <cntrl> is defined; <:cntrl> properl aliases <:Cc>, but <cntrl> doesn't 07:01
maybe we should just delete <cntrl>
07:02 xinming joined
FROGGS_ MoarVM/UNIDATA/PropertyValueAliases.txt:561:gc ; Cc ; Control ; cntrl 07:02
moritz +1
FROGGS_ and it seems like cntrl has a property code (14) and a property value code 07:03
moritz (to removing cntrl)
FROGGS_ moritz: but it seems to be still a valid alias 07:04
TimToady m: say so "\x80" ~~ /<cntrl>/; say so "\x80" ~~ /<:cntrl>/
camelia rakudo-moar 3c80d3: OUTPUT«False␤True␤»
TimToady where's the first def coming from? 07:05
FROGGS_ m: say "\t" ~~ /<:cntrl>/
camelia rakudo-moar 3c80d3: OUTPUT«「 」␤␤»
FROGGS_ ahhh
now I read correctly about <:cntrl>/<cntrl> 07:06
TimToady: I guess it is a method in nqp somewhere
TimToady: nqp/src/QRegex/Cursor.nqp:650: method cntrl() {
TimToady haven't been able to grep it out
ah 07:07
FROGGS_ we're even using it: nqp/src/QRegex/Cursor.nqp:653: $cur."!cursor_pass"($!pos+1, 'cntrl')
07:09 Alina-malina joined 07:11 clsn joined
TimToady needs to be fixed in MoarVM/src/strings/ops.c and should probably just delegate to the Cc class 07:12
or, as I say, we should just delete the non-: form 07:13
it's not all that useful
FROGGS_ if :cntrl is way slower than we might leave <cntrl> it as an internal thing in nqp 07:15
TimToady 1) probably not even used, and 2) if we defer to Cc, it's the same speed 07:16
looks like it's only used in tests :) 07:17
nothing in rakudo-star uses it 07:18
and frankly, all those categories are just in there only because posix had [:cntrl:] or some such 07:20
FROGGS_ cool
(about checking star)
TimToady (well, except the same tests)
FROGGS_ /home/froggs/dev/ecosystem/gge/STATUS:58: <xdigit>, <space>, <cntrl>, <punct> 07:21
/home/froggs/dev/ecosystem/gge/lib/GGE/Match.pm:214: method cntrl() { self.cclass: /<cntrl>/ }
/home/froggs/dev/ecosystem/gge/t/perl6regex/rx_subrules:43:<cntrl>\t\n\r !"#$%&'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij/mob<cntrl>: <\t @ 0>/<cntrl>
whatever gge is, it uses it
TimToady m: say "\c[PILE OF POO]".ord.base(16) 07:23
camelia rakudo-moar 3c80d3: OUTPUT«10176B␤»
TimToady nope
FROGGS_ perl6-m -e 'say "\c[PILE OF POO]".ord.base(16)'
1F4A9
my box is happy :o)
(very happy)
because this fixes like about 50 spectests? 07:24
TimToady I didn't count
FROGGS_ TimToady: ahh, we need to bump moar and nqp revision
camelia does not build head
07:25 darutoko joined
TimToady how...conservative... 07:25
FROGGS_ that is from [Coke]++'s roast log: S05-mass/named-chars.rakudo.moar................... 284 53 0 94 431 07:27
and now it passes on my boc 07:28
box*
07:28 Yappo__________7 left
FROGGS_ TimToady++ # so there are already 53 more passing tests :o) 07:28
TimToady: are you going to bump revision or shall I? 07:29
dalek ecs: bf45e2f | larry++ | S05-regex.pod:
recommend <:alpha> for no underscore
TimToady you may do it 07:30
moritz FROGGS_: if it's a valid Unicode alias, it should be available as <:cntrl>; no need to make it available as <cntrl>
TimToady that's what we were discussing above 07:31
FROGGS_ moritz: yes, I've understand it in between :o)
moritz ok -)
TimToady except if peopel expect all the posixy [:foo:] things to turn into <foo>
dalek p: 5796e43 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev to get unicode fixes, TimToady++
moritz TimToady: then we need to teach them to look for <:foo> instead; shouldn't be too hard, the posixy thing contains colons too, after all :-) 07:32
dalek kudo/nom: 1726c7d | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp (moar) rev to get unicode fixes, TimToady++
FROGGS_ now we have to wait an hour :o)
TimToady or two
07:39 hoverboard left 07:46 xinming_ joined 07:49 xinming left, jnap joined 07:54 jnap left 07:55 kaleem joined 07:56 bjz joined
FROGGS_ masak: I PR'd you :o) 08:00
TimToady: that said PR removes the only usage of <cntrl> in the ecosystem 08:01
commute &
08:01 FROGGS_ left 08:03 dmol joined
moritz I was just wondering why rakudo rebuild on camelia's server was so slow 08:08
turns out there was a JVM process from camelia using 100% CPU 08:09
m: say "\c[PILE OF POO]".ord.base(16) 08:14
camelia rakudo-moar 3c80d3: OUTPUT«10176B␤»
nwc10 rn: say "\c[PILE OF POO]".ord.base(16) 08:26
because I'm curious 08:27
camelia rakudo-jvm 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name PILE OF POO␤at /tmp/tmpfile:1␤------> say "\c[PILE OF POO⏏]".ord.base(16)␤»
..rakudo-parrot 1726c7, rakudo-moar 1726c7, niecza v24-109-g48a8de3: OUTPUT«1F4A9␤»
08:27 sqirrel joined 08:29 virtualsue joined, virtualsue left 08:30 kaleem left 08:33 FROGGS joined 08:37 pdcawley joined 08:41 zakharyas joined 08:46 xinming joined 08:49 xinming_ left 08:50 jnap joined, alc left 08:54 jnap left 08:56 berekuk left
timotimo o/ 09:01
FROGGS o/ 09:03
09:09 denisboyun joined 09:14 pdcawley left 09:18 pdcawley joined 09:23 xinming_ joined 09:27 xinming left 09:28 Yappo__________7 joined 09:47 pdcawley left 09:49 pdcawley joined 09:51 jnap joined 09:55 jnap left
nwc10 [Coke]: oh woe, no automated spectest runs. So we won't know how much closer to JVM ++TimToady's commit got us 10:01
10:01 pdcawley_ joined 10:03 pdcawley left
nwc10 I hope you're able to find a new home for that soon. 10:05
I have none to offer 10:06
10:13 Ven joined 10:16 sqirrel left
Ven r: class A { has $.a; submethod init($.a) { } }; my A $a .= new; say $a.perl; $a.init(5); say $a.perl; 10:25
camelia rakudo-parrot 1726c7, rakudo-moar 1726c7: OUTPUT«A.new(a => Any)␤Cannot assign to a readonly variable or a value␤ in submethod init at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 1726c7: OUTPUT«A.new(a => Any)␤java.lang.RuntimeException: $.x parameters NYI␤ in submethod init at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
Ven oh, omly the :$ with (a =>) form is implemented I guess 10:26
10:29 yoleaux joined, ChanServ sets mode: +v yoleaux
Ven `is`, `will` and kinda `but` 10:38
10:41 mavcunha joined 10:43 kaleem joined 10:52 jnap joined 10:56 jnap left 11:04 Sqirrel joined 11:24 rindolf joined
dalek nda: b89cd24 | (Donald Hunter)++ | lib/Panda/Fetcher.pm:
Use eager for loop to resolve recursing into .work directory.
11:26
nda: d6f8a3a | tadzik++ | lib/Panda/Fetcher.pm:
Merge pull request #69 from donaldh/eager-for

Use eager for loop to resolve recursing into .work directory.
Ven r: sub f(:(::T $ where Int | Bool --> T) $x) { ($x(3), $x(True)) } 11:39
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> sub f(:(::T $ where Int | Bool --> T) ⏏$x) { ($x(3), $x(True)) }␤ expecting a…»
dalek nda/moar-support: 934a4f3 | tadzik++ | ext/File__Find:
Update File::Find
11:40
panda/moar-support: 1b8e421 | tadzik++ | ext/File__Find:
panda/moar-support: Update File::Find
11:40 dalek left
tadzik I killed it 11:40
but, moar-support is merged, panda is now workings :)
11:40 dalek joined, ChanServ sets mode: +v dalek
Ven r: sub f(:(::T $ where Int | Bool --> T) $x) { return ($x(3), $x(True)) } 11:41
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> sub f(:(::T $ where Int | Bool --> T) ⏏$x) { return ($x(3), $x(True)) }␤ expe…»
Ven err 11:43
11:43 Guest26732 joined
Ven not sure about that one 11:47
r: sub f(&x:(::T $ where Int | Bool --> T)) { return (x(3), x(True)) } 11:50
camelia rakudo-jvm 1726c7: OUTPUT«===SORRY!===␤Can not invoke this object␤»
..rakudo-moar 1726c7: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque, cs = 0)␤»
..rakudo-parrot 1726c7: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::WVal'␤»
11:53 jnap joined 11:57 jnap left
timotimo Ven: the problem with your init method is that you were trying to set a value to $.a, which isn't defined as "is rw" 12:00
if you want to set a value for $.a you need to access it via the attribute storage, not via the accessor 12:01
so you want to have method init($!a) { } rather than init($.a} { }
Ven timotimo: ah, I was trying that code from S06 12:06
any idea for my second code ?
(but I don't get why I need to use $!a for $.a :o) 12:08
r: class A { has $.a; submethod init($!a) { } }; my A $a .= new; say $a.perl; $a.init(5); say $a.perl; 12:09
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«A.new(a => Any)␤A.new(a => 5)␤»
Ven Well~ timotimo++ 12:10
r: class A { has $.a is rw; submethod init($.a) { } }; my A $a .= new; say $a.perl; $a.init(5); say $a.perl; 12:14
camelia rakudo-jvm 1726c7: OUTPUT«A.new(a => Any)␤java.lang.RuntimeException: $.x parameters NYI␤ in submethod init at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 1726c7, rakudo-moar 1726c7: OUTPUT«A.new(a => Any)␤A.new(a => 5)␤»
Ven alright.
FROGGS tadzik++
tadzik FROGGS++ 12:40
12:41 bluescreen10 joined
tadzik for some reason panda can't connect to feather though 12:41
Could not download module metadata: Failed to connect: host is unreachable
12:43 xenoterracide left
dalek nda: 026cd23 | (Tobias Leich)++ | / (7 files):
use absolute paths where possible
12:43
nda: d37c017 | tadzik++ | / (7 files):
Merge pull request #71 from tadzik/absolute

use absolute paths where possible [based on moar-support branch]
colomon tadzik: I don't seem to be having difficulty here?
tadzik moar commits
colomon: must be something with my conneciton then :/
12:43 mtk joined
colomon though ABC build just failed. or… ==> Installing ABC from a local directory 'ABC' ? 12:44
None of the parametric role variants for 'ABC::Pitched' matched the arguments supplied. 12:45
colomon now wonders if the Parrot version will work. He's already got a full module smoke test on Parrot underway…
12:53 jnap joined 12:58 jnap left
colomon huh 12:59
If I just run straight from the ABC .pm files, all tests pass.
It's compiling ABC::BrokenRhythm that triggers the None of the parametric role variants for 'ABC::Pitched' matched the arguments supplied messae 13:00
Ven can you do something like c++ template specialization ?
ie `multi class a [::T] {}; class a [Int]` or something 13:01
13:03 spider-mario joined, skids left 13:04 kaleem left 13:05 kaleem joined 13:16 kbaker_ joined 13:22 denisboyun left 13:25 denisboyun joined
TimToady roles dispatch like multis, if that's what you're asking 13:29
13:31 FROGGS left
TimToady role a[::T] { method foo() { say "::T" } }; role a[Int] { method foo() { say "Int" }}; class aInt does a[Int] {}; class aT does a[Str] []; say aInt.new.foo; say aT.new.foo 13:33
r: role a[::T] { method foo() { say "::T" } }; role a[Int] { method foo() { say "Int" }}; class aInt does a[Int] {}; class aT does a[Str] []; say aInt.new.foo; say aT.new.foo
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse class definition␤at /tmp/tmpfile:1␤------> nt does a[Int] {}; class aT does a[Str] ⏏[]; say aInt.new.foo; say …»
TimToady r: role a[::T] { method foo() { say "::T" } }; role a[Int] { method foo() { say "Int" }}; class aInt does a[Int] {}; class aT does a[Str] {}; say aInt.new.foo; say aT.new.foo
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«Int␤True␤::T␤True␤»
TimToady like that? 13:34
Ven: ^^
Ven TimToady: something like that :-) 13:35
I actually realize what I'd want needs type inference
TimToady we don't quite do that yet 13:36
Ven TimToady: Hindley-Milner for Perl 7, ha ! 13:37
r: role Semigroup[::T]; role Monoid[::T] is Semigroup[T] {}; role Functor[::T]; role Applicative[::T] is Functor[T]; role Monoid[::T] is Monoid[T] is Application[T] {} 13:41
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!===␤Cannot type check against type variable T␤»
Ven something like that I guess
TimToady r: role Semigroup[::T]; role Monoid[::T] does Semigroup[T] {}; role Functor[::T]; role Applicative[::T] does Functor[T]; role Monoid[::T] does Monoid[T] does Application[T] {} 13:43
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Too late for semicolon form of role definition␤at /tmp/tmpfile:1␤------> oes Semigroup[T] {}; role Functor[::T]; ⏏role Applica…»
Ven I guess it was bound to be does
I just wondered whether between role and role it'd be inheritance
TimToady r: role Semigroup[::T] {}; role Monoid[::T] does Semigroup[T] {}; role Functor[::T] {}; role Applicative[::T] does Functor[T] {}; role Monoid[::T] does Monoid[T] does Application[T] {}
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse role definition␤at /tmp/tmpfile:1␤------> }; role Monoid[::T] does Monoid[T] does ⏏Application[T] {}␤ …» 13:44
Ven mmh ?
TimToady r: role Semigroup[::T] {}; role Monoid[::T] does Semigroup[T] {}; role Functor[::T] {}; role Applicative[::T] does Functor[T] {}; role Monoid[::T] does Monoid[T] does Applicative[T] {} 13:45
camelia rakudo-moar 1726c7: OUTPUT«Unhandled exception: Could not instantiate role 'Monoid':␤Not enough positional parameters passed; got 1 but expected 2␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295)␤ from src/gen/m-Met…» 13:46
..rakudo-jvm 1726c7: OUTPUT«Unhandled exception: Could not instantiate role 'Monoid':␤Not enough positional parameters passed; got 1 but expected 2␤ in specialize (gen/jvm/Metamodel.nqp:2025)␤ in (gen/jvm/Metamodel.nqp:2465)␤ in (gen/jvm/Metamodel.nqp:2461)␤ in compose…»
..rakudo-parrot 1726c7: OUTPUT«Could not instantiate role 'Monoid':␤Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'specialize' pc 22132 (src/gen/perl6-metamodel.pir:10426) (gen/parrot/Metamodel.nqp:2102)␤called from Sub '' pc 27863 (src/gen/perl6-…»
Ven role Monoid[::T] does Monoid[T]
r: role Semigroup[::T] {}; role Monoid[::T] does Semigroup[T] {}; role Functor[::T] {}; role Applicative[::T] does Functor[T] {}; role Monad[::T] does Monoid[T] does Applicative[T] {} 13:47
camelia rakudo-parrot 1726c7: OUTPUT«Could not instantiate role 'Monad':␤Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'specialize' pc 22132 (src/gen/perl6-metamodel.pir:10426) (gen/parrot/Metamodel.nqp:2102)␤called from Sub '' pc 27863 (src/gen/perl6-m…»
..rakudo-jvm 1726c7: OUTPUT«Unhandled exception: Could not instantiate role 'Monad':␤Not enough positional parameters passed; got 1 but expected 2␤ in specialize (gen/jvm/Metamodel.nqp:2025)␤ in (gen/jvm/Metamodel.nqp:2465)␤ in (gen/jvm/Metamodel.nqp:2461)␤ in compose …»
..rakudo-moar 1726c7: OUTPUT«Unhandled exception: Could not instantiate role 'Monad':␤Not enough positional parameters passed; got 1 but expected 2␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295)␤ from src/gen/m-Meta…»
TimToady well, looks like it's close to doing what you want
Ven type-inference is what I want, but replicating the typeclassopedia in p6 would be a nice start :) 13:48
maybe by 2025, perl 6.5 will have type inference, eh :[
s/'['/')'/ 13:49
TimToady we'd have to find some smart people who can figure out how to do it without requiring the user to be just as smart as they are :)
13:50 FROGGS joined
Ven TimToady: I think HM works nicely in Haskell 13:50
I love static type check, so that probably doesn't fit a scripting language -- which is fine
TimToady well, Haskell is definitely aimed at a different target audience than Perl 6 13:51
daxim bartoszmilewski.com/2014/02/26/c17-...ur-future/ # compare the syntax here with jnthn's talk series about futures
TimToady The only question is how much of the Promethian Fire we can put into the Procrustean Bed. 13:52
Ven TimToady: I do believe that's a task perl 6 is trying to tackle, though ? Mixing what probably shouldn't be mixed ;) 13:53
TimToady *Promethean
indeed, we're too stupid to know it's impossible :)
13:53 stevan_ joined
Ven "They didn't know it was impossible, so they did it", eh ? I guess I just like breed mixing :) 13:54
13:54 jnap joined
TimToady one can call it either "bastardization" or "hybrid vigor" :) 13:55
Ven If I liked stuff to be "pure" or something called like that I'd probably do lisp all day
(not "pure" in the functional sense. Else I'd do Agda or something)
TimToady well, the purity of lisp is a bit overstated at times
13:56 kbaker_ left
TimToady but yeah, lisp definitely uses its circularity saw at a very low level 13:57
Ven oh, it definitely is. I guess I can't really say I only do cool-looking stuff though, because "^^[]{}@@=>->|..=><[]>+~>%"#@".>>.&*$~_?\\`°" is a valid expression in a language I'm working on :P
(it's a no-op though ...) 13:58
TimToady looks a bit like Teco :)
13:58 jnap left
TimToady which, one recalls, the first emacs was built upon, which says...something... 13:59
Ven TimToady: Hahahhaa ! The whole language doesn't look like that, though. I guess you can show a really crazy perl example and scare people off, when really ...
[Coke] m: "^^[]{}@@=>->|..=><[]>+~>%"#@".>>.&*$~_?\\`°"
camelia ( no output )
[Coke] (it's valid here, too. :P) 14:00
Ven oh wow :D
[Coke]++
TimToady he cheated
geekosaur note the string quotes :p
Ven oh yeah
[Coke] what, I pasted his code verbatim. :)
Ven well
there's #@ inbetween though
[Coke] I thought -he- was cheating.
Ven [Coke]: livescript.net, I'll let you try it :p 14:01
(as I said, it's a no-op, `->` is a function, and it's never called
14:01 jnap joined
TimToady curious now 14:02
m: ^^[]{}@@=>->|..=><[]>+~>%"#@".>>.&*$~_?\\`°
camelia rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/hRiuIeQw1F␤Two terms in a row␤at /tmp/hRiuIeQw1F:1␤------> ^^[]{}⏏@@=>->|..=><[]>+~>%"#@".>>.&*$~_?\\`°␤ expecting any of:␤ postfix␤ subscript␤ …»
Ven Could you add methods to the grammar to make it work,though :)?
I guess you can
TimToady every other langauge is just a dialect of Perl 6
including Perl 7 :)
Ven oh, I guess that goes for everything. I once met a guy saying lisp's reader macros where available in every language, and pasted a C example to modify the source code as an argument :) 14:03
but Perl 7 will be too godly for Perl 6 :p. 14:04
or I guess "holy" should be the word here, I can't english !
TimToady well,just think of it as a form of 'use strict;'
Ven I'd love a use stricttypes; with a more static type checking 14:05
(gradual typing is cool and all, though)
TimToady that's the big bet 14:06
Ven (so long you're not dart and you're not typechecking anything ..)
14:06 ajr joined
TimToady gotta keep people honest occasionally 14:06
Ven TimToady: are type annotations more of a burden (perf-wise) right now ?
TimToady depends 14:07
14:07 ajr is now known as Guest21395
TimToady on assignment, yes 14:07
on multi signatures, no
Ven something like int VS something like subset Duck of Mu where *.^can('quack')
TimToady since you'd have to be writing switches or doing dispatch anyway
Ven and on simple signatures ? 14:08
TimToady sure, constraints quickly run into halting problems if you try to be analytical
Ven mmh ?
TimToady you generally have to run the constraint to figure out whether it's true or not 14:09
Ven yes, but on the error hand, it leaves room for optimization
TimToady and your duck example is potentially optimizable
Ven with `sub (Dog $d) { $d.barf; }` you know which method to call (almost)
(because it allows for Dog subtyping IIRC) 14:10
TimToady probably more so than 'subset Even of Int where * %% 2;'
Ven that shouldn't allow much optimizations though
I don't know of many methods that take longers on Odds 14:11
TimToady well, you can prove it's true right after a left shift :)
Ven TimToady: yes ! but it's still overhead compared to "Int"
whereas knowing statically $d will always be a Dog object makes it easier to generate more efficient code 14:12
TimToady sure, which is why we call it "nominal typing"
Ven I've seen atrocious perf hits in some languages because the JIT had to back off a method (suddenly, a single call with a Duck after 10k calls with a Dog)
TimToady: well, ^.can allows for kinda-structural typing, which is nice 14:13
TimToady imagines a constraint that is enforced randomly, so you eventually catch the error, but not at the expense of much runtime, course that doesn't help with constraint-based dispatch
Ven (static analysis ?)
TimToady which is why I said your example was somewhat optimizable
14:13 xragnar_ joined, xragnar_ is now known as xragnar
Ven TimToady: In a few years, maybe 14:16
or if moar gets a JIT with GSoC
14:17 bluescreen10 left
TimToady one imagines a CanQuack role that automatically composes itself into anything that can quack 14:18
presuming that can be determined without an instance 14:19
Ven TimToady: that's structural typing
can you do that yet ?
TimToady not the automatic part
it's kind of an AOPish thing
needs something like a global COMPOSE phaser 14:20
Ven r: say &infix:<@#> 14:21
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ &infix:<@#> used at line 1␤␤»
Ven No way this operator doesn't exist
TimToady whazzit do?
Ven No idea, that's just from earlier, when trying to compiling my snippet. it was like `r: "lots of stuff"#@"other stuff"` and I wondered how it worked 14:22
when [Coke] cheated
TimToady I see a #@ 14:23
Ven True that, I messed the order :). Whazzit do? 14:24
TimToady r: say 42 #@ "eels";
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«42␤»
Ven OH
hahahaha
++<<[ TimToady, [Coke] ] 14:25
TimToady it's more of an infix macro, which has the unfortunate ability to eat your semicolons
along with your right argument :) 14:26
because it takes the entire rest of your line as the right argument 14:27
Ven don't push it :p 14:28
TimToady ;)
14:34 stevan_ left
FROGGS TimToady: have you seen this? github.com/rakudo/rakudo/commit/3c80d3ae0e 14:34
I wonder what is needed to do to fix this issue... 14:35
r: my @j; my int $j = 42; @j.push($j); say @j # RT #121349
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121349
camelia rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«42␤»
..rakudo-parrot 1726c7: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in method REIFY at gen/parrot/CORE.setting:8407␤ in method reify at gen/parrot/CORE.setting:7279␤ in method gimme at gen/parrot/CORE.setting:7724␤ in method push at gen/parrot/CORE.setti…»
14:38 skids joined 14:42 benabik joined
TimToady p: my @j; my int $j = 42; @j.push(+$j); say @j # RT #121349 14:43
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121349 14:44
camelia rakudo-parrot 1726c7: OUTPUT«42␤»
TimToady fixed it fer ya :P
FROGGS :P
I have no positive feeling about that^^ 14:45
colomon ADT and Sum modules started failing sometime in the last week (Parrot) 14:47
timotimo: ^
FROGGS when was you last test?
TimToady Sum could be related to X or Z changes 14:48
or [Z+]
or the [] as a list bug
FROGGS ADT also: github.com/timo/ADT/blob/master/lib/ADT.pm6#L30 14:49
TimToady that looks like it should work, unless >> is returning a [] rather than a () 14:51
say <1 2 3>».Str.WHAT
FROGGS p: say (<a b c>>>.Str).perl
camelia rakudo-parrot 1726c7: OUTPUT«("a", "b", "c")␤»
TimToady r: say <1 2 3>».Str.WHAT 14:52
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Parcel)␤»
TimToady r: say <1 2 3>».Str.VAR.WHAT
FROGGS there is a Z=> also: github.com/timo/ADT/blob/master/li...T.pm6#L140
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Parcel)␤»
FROGGS but Z=> should work too, at least it does for panda
14:53 btyler joined
colomon FROGGS: my last smoke run prior was the 23rd 14:55
TimToady well, but it's autoviving an Array, so maybe it needs a .list
14:55 molaf joined 14:56 rurban joined
FROGGS colomon: and the latest run? because I think we fixed something yesterday 14:56
TimToady Z=> is fine, but not if you expect [] to flatten
colomon FROGGS: latest run was this morning.
masak why would you expect [] to flatten?
FROGGS I guess the right answer is to never expect [] to flatten, right? 14:57
colomon about an hour ago
FROGGS colomon: okay
I was hoping for something differently
TimToady r: my @a; @a.push: 42; say @a.VAR.WHAT 14:58
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Array)␤»
TimToady r: my %a; %a<foo>.push: 42; say %a<foo>.VAR.WHAT 14:59
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Scalar)␤»
TimToady there you go
it's itemized
FROGGS I see
so it should be this? self.bless(|($name.lc => $type.new(|(%handlers{$name}.list Z=> @args).hash))) 15:00
TimToady r: my %a; %a<foo>.push: 42; say %a<foo>[].VAR.WHAT
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Array)␤»
TimToady or that 15:01
FROGGS or @(), but there are enough parens :o)
15:03 __thou joined
FROGGS p: say "\x[FF62]" 15:09
camelia rakudo-parrot 1726c7: OUTPUT«「␤»
FROGGS nqp: say "\x[FF62]"
camelia nqp-parrot: OUTPUT«Confused at line 2, near "say \"\\x[FF"␤current instr.: 'panic' pc 15934 (gen/parrot/stage2/NQPHLL.pir:5941) (gen/parrot/stage2/NQPHLL.nqp:425)␤» 15:10
..nqp-jvm: OUTPUT«Confused at line 2, near "say \"\\x[FF"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:378)␤ in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤ in TOP (gen/jvm/stage2/NQP.nqp:820)␤ in parse (gen/jvm/stage2/QRegex.nqp:1290)␤ in parse (gen/jvm/stage2/NQPHLL.nqp:1377)␤ …»
..nqp-moarvm: OUTPUT«Confused at line 2, near "say \"\\x[FF"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:120)␤ from gen/moar/stage2/NQP.nqp:917 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:346)␤ f…»
FROGGS nqp: say "\c[FF62]"
camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say \"\\c[FF"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:120)␤ from gen/moar/stage2/NQP.nqp:917 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:346)␤ f…»
..nqp-jvm: OUTPUT«Confused at line 2, near "say \"\\c[FF"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:378)␤ in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤ in TOP (gen/jvm/stage2/NQP.nqp:820)␤ in parse (gen/jvm/stage2/QRegex.nqp:1290)␤ in parse (gen/jvm/stage2/NQPHLL.nqp:1377)␤ …»
..nqp-parrot: OUTPUT«Confused at line 2, near "say \"\\c[FF"␤current instr.: 'panic' pc 15934 (gen/parrot/stage2/NQPHLL.pir:5941) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
FROGGS nqp: say("\x[FF62]") 15:11
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«「␤»
15:17 virtualsue joined
timotimo thank you colomon 15:23
15:24 araujo left 15:32 zakharyas left
FROGGS colomon: we really need your stats on a public server :/ 15:32
colomon and need them for jvm and moar, too. 15:33
FROGGS timotimo: you've seen the discussion about the possible fix?
colomon: ohh, yes
colomon if someone could just mail me a large supply of tuits... 15:35
FROGGS wendy++ could do that *g* 15:37
15:37 araujo joined
colomon then I could burn them to stay warm (-19F when I woke up this morning) and use the savings to spend an extra hour working on p6! 15:38
FROGGS -19F?? 15:39
colomon yup
FROGGS that is kinda crazy
btyler multiple days with air temperature in that range here in MN: with windchill it got down to more like -40F/C 15:40
really tough winter this year
geekosaur I wake up kinda late (0900ish local) and it was still 0°F today
colomon This has been a pretty extreme winter
timotimo FROGGS: no, not yet
i was on ym phone
i'm now on my notebook, though, so i can have a look
colomon we've only gotten above freezing for maybe four days in the last six weeks.
geekosaur (we haven't quite reached -19 at any point this winter)
FROGGS - self.bless(|($name.lc => $type.new(|(%handlers{$name} Z=> @args).hash))) 15:41
+ self.bless(|($name.lc => $type.new(|(%handlers{$name}.list Z=> @args).hash)))
timotimo: something like this --^
timotimo oh, that is from my code?
FROGGS timotimo: yes, ADT that is 15:42
github.com/timo/ADT/blob/master/li...T.pm6#L140
15:42 kivutar joined
FROGGS I dunno how long our winter was in germany, it it was not very long and it was not very cold even 15:42
timotimo thank you :) 15:43
15:44 kaleem left
colomon we've had 10+ cm of snow on the ground since mid-December. And if the 10-day forecast is even close to right, we will have it well into March. 15:44
FROGGS timotimo: we just patched it in theory, you must do the hard testing work :o)
15:44 kaleem joined
colomon and we've been lucky, they got another meter of snow just a couple hours' drive south of us. 15:44
15:44 kaleem left
timotimo hehe 15:47
will do it when i've reached my destination
i think i'm getting a bit sick from using my laptop on the train right now
FROGGS yeah, the same happens to me 15:52
15:59 treehug88 joined 16:03 mtk left 16:04 mtk joined
nwc10 TimToady: in perl 1, why does it have EXT struct stat statbuf; and EXT struct tms timesbuf; in perl.h, rather than using local variables in functions? Was there some compiler back then that screwed up allocating structs on the stack? 16:05
TimToady Don't recall, but I suspect it's just because the stat manpage had 'extern struct stat statbuf' 16:09
nwc10 aha thanks
geekosaur nwc10: for what it's worth, early versions of the original pcc (the cc on v7/2bsd/4bsd) couldn't return structs, so you needed to allocate and return a pointer or write to an external buffer somewhere. which is why so much stuff takes a struct pointer parameter that is written into 16:13
16:16 denisboyun left 16:31 rindolf left 16:32 [Sno] left, [Sno] joined, [Sno] left
timotimo FROGGS: how did you become a #perl6 member if you can't code on a train? :) 16:35
geekosaur did so by not having a train to code on... 16:36
FROGGS timotimo: I am not that often on a train obviously, so they tolerate me :o) 16:37
16:38 molaf_ joined 16:41 molaf left
colomon has never coded on a train 16:44
masak :) 16:45
timotimo :) 16:46
PerlJam Have you coded on a bus? Did you code without much fuss? 16:55
masak :)
yes.
though that's probably the vehicle I've coded on where I'm the most likely to get carsick. 16:56
PerlJam wouldn't that be bus-sick?
:)
masak :P
timotimo bad bus factor ...
colomon has actually spent a good bit of time coding in a car or minivan… 16:58
17:02 yves_ left 17:17 isBEKaml joined 17:22 grondilu joined
grondilu rn: grammar Foo { rule TOP { <expr> }; rule expr { <symbol> '[' ~ ']' [ <symbol>+ % ',' ]? }; token symbol { <.alpha>+ } }; say Foo.parse('Foo[bar,buz]'); 17:25
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7, niecza v24-109-g48a8de3: OUTPUT«「Foo[bar,buz]」␤ expr => 「Foo[bar,buz]」␤ symbol => 「Foo」␤ symbol => 「bar」␤ symbol => 「buz」␤␤»
grondilu rn: grammar Foo { rule TOP { <expr> }; rule expr { <symbol> | <expr> '[' ~ ']' [ <expr>+ % ',' ]? }; token symbol { <.alpha>+ } }; say Foo.parse('Foo[bar,buz]'); 17:26
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«「Foo」␤ expr => 「Foo」␤ symbol => 「Foo」␤␤»
..niecza v24-109-g48a8de3: OUTPUT«(Any)␤»
grondilu desperately notices that he never manages to correctly write recursive rules :/ 17:27
rn: grammar Foo { rule TOP { <expr> }; token expr { <symbol> | <expr> '[' ~ ']' [ <expr>+ % ',' ]? }; token symbol { <.alpha>+ } }; say Foo.parse('Foo[bar,buz]'); 17:28
camelia rakudo-moar 1726c7, niecza v24-109-g48a8de3: OUTPUT«(timeout)» 17:29
..rakudo-parrot 1726c7: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 139569 (src/gen/p-CORE.setting.pir:59493) (gen/parrot/CORE.setting:10965)␤called from Sub 'defined' pc 9129 (gen/parrot/stage2/NQPCORE.setting.pir:4209) (gen/parrot/stage2/NQPCORE.…»
..rakudo-jvm 1726c7: OUTPUT«pr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤ in expr␤…»
17:30 virtualsue left
FROGGS rn: grammar Foo { rule TOP { <expr> }; token expr { <symbol> | <expr> {} '[' ~ ']' [ <expr>+ % ',' ] }; token symbol { <.alpha>+ } }; say Foo.parse('Foo[bar,buz]'); 17:31
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«「Foo」␤ expr => 「Foo」␤ symbol => 「Foo」␤␤»
..niecza v24-109-g48a8de3: OUTPUT«(Any)␤»
FROGGS m: grammar Foo { rule TOP { <expr> }; token expr { <symbol> | <expr> {} '[' ~ ']' [ <expr>+ % ',' ] }; token symbol { <.alpha>+ } }; say Foo.parse('Foo[bar,buz[zer]]');
camelia rakudo-moar 1726c7: OUTPUT«「Foo」␤ expr => 「Foo」␤ symbol => 「Foo」␤␤»
17:41 rurban left 17:42 isBEKaml left, __thou left, benabik left, Guest21395 left, Guest26732 left, Sqirrel left, mavcunha left, dmol left, grondilu left, treehug88 left, araujo left, btyler left, skids left, xragnar left, dalek left, pdcawley_ left, Yappo__________7 left, xinming_ left, clsn left, Alina-malina left
timotimo looking forward to the daily roast commit :3 17:44
[Coke] timotimo: probably won't happen until sunday 17:45
and I'm not going to rerun missing days.
timotimo ah, that's okay
it's just that we're expecting a big jump up in rakumoar's pass rate 17:46
[Coke] will oblige asap.
colomon timotimo: what exactly was done? 17:48
FROGGS TimToady++ fixed unicode character-by-name lookups
which are worth >50 tests AFAIK
timotimo he fixed PILE OF POO 17:49
FROGGS and we are at about 150 failing tests the last time roast_pass_data worked
exactly
17:50 Guest26732 joined, Yappo__________7 joined, araujo joined, Alina-malina joined, kurahaupo_mobile joined, dalek joined, clsn joined, skids joined 17:51 treehug88 joined, Alina-malina left, ChanServ sets mode: +v dalek 17:52 dmol joined, araujo is now known as Guest60107, xinming joined, Alina-malina joined 17:56 ajr_ joined, Alina-malina left 17:58 Alina-malina joined 17:59 dmol left, Yappo__________7 left, Yappo__________7 joined, dalek left 18:01 Guest26732 left 18:03 treehug88 left 18:04 kurahaupo_mobile left, Guest26732 joined, isBEKaml joined, kivutar left, dmol joined, Guest60107 left, stevan_ joined, Yappo__________7 left, Yappo__________8 joined 18:05 ajr joined, mtk left, ajr is now known as Guest81693 18:06 hoverboard joined 18:07 mtk joined 18:08 ajr_ left 18:10 Rotwang joined, rindolf joined 18:12 araujo_ joined 18:14 pdcawley joined 18:16 xenoterracide joined 18:19 treehug88 joined 18:20 mavcunha joined 18:21 isBEKaml left 18:22 Guest81693 left 18:24 araujo_ left 18:27 mtk left 18:31 Sqirrel joined 18:39 mtk joined 18:40 molaf_ left 18:43 berekuk joined 18:48 bjz left 18:51 hoverboard left 18:52 zakharyas joined 18:53 benabik joined 19:00 Sqirrel left 19:02 stevan_ left 19:04 [Sno] joined 19:08 genehack joined 19:12 hoverboard joined 19:13 stevan_ joined 19:16 stevan_ left, stevan_ joined 19:17 hoverboard is now known as hypnedward 19:18 hypnedward is now known as hoverboard
colomon is finished cooking, backlogs, and .... 19:20
timotimo is not sure what to do next 19:21
colomon FROGGS, timotimo: so TimToady++ eliminated more than 1/3 of the "passing" tests moar was failing in one blow?
FROGGS colomon: that is what I think, yes 19:22
colomon woah
FROGGS but [Coke]++'s smoke testing will have to prove that :oO)
-0
timotimo colomon i think so, yes 19:23
ah, i should fix ADT 19:24
19:25 stevan_ left 19:29 darutoko left
timotimo the suggested fix is probably good. i'll run the tests which should prove it to be right :P 19:30
except my tests are not really extremely thorough
colomon well, we know they were breaking as of this morning. 19:31
so if you make them stop breaking, it's got to be an improvement
even if it still isn't right.
19:32 hoverboard is now known as TrueCajun, bjz joined
timotimo :) 19:33
i might make more tests at some point
we need a test coverage analysis tool :P
not yet working :| 19:36
ah 19:37
it helps to get the latest commits from nom
19:41 raiph joined 19:42 __thou joined
timotimo (at least i hope so) 19:50
19:54 arnsholt joined
arnsholt o/ 19:54
timotimo heyo arnsholt :) 19:55
i didn't actually do anything for nativecall on moar yet
but jnthn said something about starting with that a few days ago
arnsholt 'sok, neither did I =)
FROGGS :o)
timotimo i'm getting into Qt Creator plugin development 19:56
i see, people are excited 19:58
arnsholt Tool support for people who aren't already vi/emacs brainwashed sounds like a very good thing 20:05
You can have my vi when you pry it from my cold, dead hands, but more tools sounds good to me =) 20:06
timotimo qt creator has a fakevim plugin 20:08
which i'd like to improve, if i can at all
20:10 zakharyas left 20:11 mtk0 joined, raiph left, Ven left
arnsholt clones iperl6kernel 20:11
20:12 mtk left
timotimo but i'd probably only work on that in order to familiarize myself more with the codebase 20:15
so that i can build perl6 related stuff ;)
and at some point i'll want to improve fakevim because i'm using qt creator all the time ;)
arnsholt timotimo: In ChattyRepl.interactive, it says that it's copied from HLL::Compiler, but since it's been copied I assume some bits have been changed (since HLL::Compiler.interactive wasn't used). Do you remember roughly which bits?
Quom donaldh++ github.com/tadzik/panda/commit/b89cd2
timotimo arnsholt: no, that's pretty long ago now :( 20:16
Quom is glad to see that issue resolved
arnsholt Not a problem
timotimo i think i only copied the parts that take care about making lexicals available to future invocations
Quom and tadzik++ and FROGGS++
arnsholt I'll just diff agains HLL::Compiler and see what falls out =)
But asked you first in case you remembered, 'cause that's even easier =)
Quom for making Panda awesomesauce
timotimo right :) 20:17
arnsholt Oh, and the iPython messaging docs are a bit confusing >.< 20:23
timotimo a bit, aye.
20:24 mavcunha left
FROGGS hi Quom :o) 20:28
Mouq hi :)
timotimo need to go catch a train now
FROGGS ahh Mouq!
FROGGS puts away his mirror 20:29
timotimo ah hey Mouq
i wouldn't have minded a new member, but Mouq is just as good :3
Mouq doesn't like Mouq_
timotimo: Daww, well I should have tuits later this weekend, should probably spend it getting Pod tables working 20:30
properly
Mouq & for now though 20:38
20:47 araujo joined, araujo left, araujo joined
timotimo cool! :) 20:50
20:52 raiph joined, mavcunha joined
FROGGS I can't tell how much I hate this msg: Missing or wrong version of dependency 'src/gen/m-CORE.setting' 20:54
lue FROGGS: "Uninitialized value of type Any used in string context" is far worse, as well as any other error message that fails to supply a backtrace :) 20:58
FROGGS that is bad too, yes :o) 20:59
20:59 raiph_ joined, raiph left 21:00 raiph joined
lue (perl6-p does provide a backtrace for that error though, which is one of the reasons it's still nice to have around ☺) 21:00
timotimo adds methods to ADT to treat ADTs like lists of their "positional" parameters 21:02
21:03 raiph_ left
[Coke] ADT? 21:04
oh.
FROGGS lue: that is what I do too when I get an error in the setting or so... I'll check with other backends, because often you get different error messages for the same problem
masak FROGGS: what would need to change in order for people not to get that version dependency message? or what would need to change for you/them to hate it less? 21:05
FROGGS masak: I'd let fall back to the pm file if it is present 21:06
21:06 mavcunha left
FROGGS or perhaps recompile the .moarvm/.pbc/... 21:06
because it is just a cached version
masak: in the module loader it checks for both the existence of .pm and .moarvm, so we'd just need to check for the workability of the .moarvm before we are trying to load it 21:10
m: say v1 ~~ v2 21:11
camelia rakudo-moar 1726c7: OUTPUT«False␤»
FROGGS m: say v2 ~~ v1
camelia rakudo-moar 1726c7: OUTPUT«False␤»
FROGGS m: say v1.2.3.4 ~~ v1.2.3.4
camelia rakudo-moar 1726c7: OUTPUT«True␤»
FROGGS m: say v1.2.3.4 ~~ v1.2.3
camelia rakudo-moar 1726c7: OUTPUT«True␤»
FROGGS m: say v1.2.3.4 == v1.2.3
camelia rakudo-moar 1726c7: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in method Numeric at src/gen/m-CORE.setting:1010␤ in sub infix:<==> at src/gen/m-CORE.setting:4068␤ in sub infix:<==> at src/gen/m-CORE.setting:4066␤ in block at /tmp/k1…»
FROGGS :/
m: say v1.2.3 ~~ v1.2.3.4
camelia rakudo-moar 1726c7: OUTPUT«True␤»
FROGGS versions/versioning is never intuitive, ehh? 21:12
TimToady I see that dalek is MIA 21:14
FROGGS yeah, he took a day off
masak FROGGS: that sounds incredibly sane to me. why aren't we doing it like that? 21:20
FROGGS tuits? priorities? I dunno
lue FROGGS: wait, you're running modules from previous versions of Rakudo (or at least trying to)? I've always experienced the versioning of rakudo to be way too granular for that to happen by default. 21:22
masak question to the people: would you write ^$0.elems without hesitation? (it means (0 ..^ $0.elems) -- or would you parenthesize it to ^($0.elems) ? 21:23
oops, missing ')' in there. sorry 'bout that :)
FROGGS lue: I am playing with panda, which precompiles modules like File::Find 21:24
21:24 LordV joined 21:25 moritz joined
FROGGS masak: since I write prefix:<+> without parens, I'd also write prefix:<^> without 21:25
lue masak: depends on how familiar I am with the precedence table by that point :) 21:26
Mouq r: say ^+(1,2,3) 21:27
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«0..^3␤»
21:28 arnsholt left, simcop2387 left
masak lue: I think I'm aiming for a style that doesn't depend too much on the level of proficiency of the reader. 21:28
so I guess what I'm asking is how shocking ^$0.elems looks to the lowest common denominator. 21:29
21:29 grep0r joined, stevan_ joined
lue masak: I see there's potential for someone's brain to think the smallest operator (^ vs. .elems) should go first. 21:29
FROGGS a bit shocking, yes
masak right. 21:30
FROGGS because you have to read from the middle to the end to the front
masak decides to write it as $0.keys, which is better anyways.
21:30 integral joined, integral left, integral joined 21:31 avar joined, raydiak_ left, avar left, avar joined
lue If relevant and possible, you could put an aside somewhere saying "you don't need the parens, but we're doing it for clarity" 21:31
21:31 raydiak_ joined
timotimo i kind of like ^+... 21:32
21:32 ingy left
lue couldn't you also write it as ^+$0 though? :) 21:32
21:32 simcop2387 joined
timotimo r: my @a = <foo bar baz>; say ^+@a; 21:32
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«0..^3␤»
timotimo well, in that case it'd have to be ^+@$0, which seems kind of line noisy ... 21:33
there's no non-parethesized way to get something like ^5.perl to mean (^5).perl, right? 21:34
FROGGS .oO( ^+($0[]) )
timotimo .perl is less good for an example, but pick and roll are
Mouq timotimo: +$0 == +$0.elems != +@$0 21:35
oh, wait
*== +@$0
timotimo r: say pick ^5
FROGGS well, there are traits about precedence
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«Nil␤»
timotimo ..oh?
hah 21:36
21:36 stevan_ left 21:37 sjn joined, rindolf left
FROGGS m: prefix:<^>(|) is prec('y>') { 42 }; say ^1.perl 21:37
camelia rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/nu47ItmFUt␤Preceding context expects a term, but found infix | instead␤at /tmp/nu47ItmFUt:1␤------> prefix:<^>(|⏏) is prec('y>') { 42 }; say ^1.perl␤»
timotimo i know what it does
it flattens the arguments to figure out how many there are
and the npicks from the nonflattened argument list 21:38
FROGGS m: prefix:<^>(*@) is prec('y>') { 42 }; say ^1.perl
camelia rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/y4icyoVbVs␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/y4icyoVbVs:1␤------> prefix:<^>(*⏏@) is prec('y>') { 42 }; say ^1.perl␤ expec…»
Mouq FROGGS: You need a space between > and (
No, wait
FROGGS m: multi prefix:<^>(*@) is prec('y>') { 42 }; say ^1.perl
camelia rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/oIJNQBfBPD␤Can't use unknown trait 'is prec' in a sub declaration.␤at /tmp/oIJNQBfBPD:1␤------> ␤ expecting any of:␤ rw parcel hidden_from_backtrace␤ pure default DEPREC…»
Mouq is dumb
timotimo haha 21:39
Mouq was remembering that you can't do "sub type:thing($param) {*}"
timotimo no i'm silly
r: say pick 5, ^5
camelia rakudo-parrot 1726c7: OUTPUT«4 2 0 3 1␤»
..rakudo-moar 1726c7: OUTPUT«0 4 3 2 1␤»
..rakudo-jvm 1726c7: OUTPUT«0 1 2 4 3␤»
timotimo gotta get off my train now
FROGGS m: multi prefix:<^>(*@) is tighter(&postcirumfix:<[ ]>) { 42 }; say ^1.perl 21:40
camelia rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/Dh7kpKqII8␤Can't use unknown trait 'is tighter' in a sub declaration.␤at /tmp/Dh7kpKqII8:1␤------> ␤ expecting any of:␤ rw parcel hidden_from_backtrace␤ pure default DEP…»
21:41 treehug88 left 21:42 kurahaupo_mobile joined
FROGGS m: sub prefix:<^> (|) is tighter(&postfix:<++>) { 42 }; say ^1.perl # there we go 21:43
camelia rakudo-moar 1726c7: OUTPUT«42␤»
FROGGS hmmm, no 21:44
n: sub prefix:<^> (|) is tighter(&postfix:<i>) { 42 }; say ^1.succ # there we go 21:45
camelia niecza v24-109-g48a8de3: OUTPUT«43␤»
FROGGS m: sub prefix:<^> (|) is tighter(&postfix:<i>) { 42 }; say ^1.succ # there we go
camelia rakudo-moar 1726c7: OUTPUT«42␤»
FROGGS r: sub prefix:<^> (|) is tighter(&postfix:<i>) { 42 }; say ^1.succ # there we go
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«42␤»
FROGGS rakudobug
21:46 rurban joined
Mouq m: proto prefix:<^> (|) is tighter(&postfix:<++>) { 42 }; say ^1.perl 21:48
camelia rakudo-moar 1726c7: OUTPUT«42␤»
Mouq That error message is LTA; ought to say "Did you mean to use a proto" or likewise, /me thinks 21:49
21:51 kurahaupo_mobile left
FROGGS I think my error msg above is because there is no &postcirumfix:<[ ]> 21:51
m: say &postcirumfix:<[ ]>
camelia rakudo-moar 1726c7: OUTPUT«===SORRY!=== Error while compiling /tmp/iFiYPzkQI4␤Undeclared name:␤ &postcirumfix:<[ ]> used at line 1␤␤»
21:53 raydiak__ joined, [Sno] left, rurban left, dmol left, xinming left, integral left, moritz left, raydiak_ left, bjz left, Guest26732 left, telex left, xinming_ joined, integral joined, integral left, integral joined, clsn left 21:54 genehack left, bjz joined, araujo left, rurban joined, genehack joined, [Sno] joined
Mouq r: $(1,2,3).WHAT.say 21:54
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Parcel)␤»
Mouq r: (1,2,3).WHAT.say
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Parcel)␤»
21:55 simcop2387 left, kaare_ joined, simcop2387 joined 21:56 araujo joined 21:57 rurban left, LV joined 21:58 raiph left
Mouq github.com/rakudo/rakudo/commit/7c12a 21:58
^^ product of my debugging from a couple days ago; I don't know why it wasn't working then (I think maybe I just hadn't hit save), but it works now 21:59
22:01 sjn_ joined
Mouq p6: "a b c d" ~~ /[(\w) \s*]+/; say $0.WHAT 22:02
camelia niecza v24-109-g48a8de3: OUTPUT«(List)␤» 22:03
..rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«(Parcel)␤»
Mouq p6: "a b c d" ~~ /[(\w) \s*]+/; say $0.caps
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«No such method 'caps' for invocant of type 'Parcel'␤ in block at /tmp/tmpfile:1␤␤»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method caps in type List␤ at /tmp/tmpfile line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ …»
Mouq p6: "a b c d" ~~ /[(\w) \s*]+/; say $0[].caps
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method caps in type List␤ at /tmp/tmpfile line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ …»
..rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«No such method 'caps' for invocant of type 'List'␤ in block at /tmp/tmpfile:1␤␤»
22:03 berekuk_ joined
Mouq p6: "a b c d" ~~ /[(\w) \s*]+/; say $0>>.caps 22:03
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7, niecza v24-109-g48a8de3: OUTPUT« ␤»
Mouq p6: "a b c d" ~~ /[(\w) \s*]+/; say $0.caps
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7: OUTPUT«No such method 'caps' for invocant of type 'Parcel'␤ in block at /tmp/tmpfile:1␤␤»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method caps in type List␤ at /tmp/tmpfile line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ …»
Mouq p6: "a b c d" ~~ /[(\w) \s*]/; say $0.caps
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7, niecza v24-109-g48a8de3: OUTPUT«␤» 22:04
Mouq changes a single element to not be an Array, Mouq--
FROGGS p6: "a b c d" ~~ /[(\w) \s*]/; say $0
22:04 telex joined
Mouq *a single capture 22:04
camelia rakudo-parrot 1726c7, rakudo-jvm 1726c7, rakudo-moar 1726c7, niecza v24-109-g48a8de3: OUTPUT«「a」␤␤»
22:04 integral_ joined 22:08 genehack left, bjz left, integral left, sjn left, LordV left, mtk0 left, berekuk left, pdcawley left, skids left, bjz_ joined 22:10 xragnar joined, moritz joined, mtk0 joined 22:12 BenGoldberg joined, clsn joined, ty joined 22:13 ty is now known as Guest71152 22:14 pdcawley joined
masak 'night, #perl6 22:15
22:15 genehack joined 22:16 dmol joined
FROGGS gnight masak 22:16
Mouq o/ 22:17
is there an easier way to say 'nqp::elems(nqp::list($var))'? 22:18
timotimo er, i don't think that will actually flatten for you 22:20
22:20 kurahaupo_mobile joined
Mouq Hm 22:22
timotimo there's a nqp:: op that does flatten
i forgot what it's called :( 22:23
p6list perhaps?
Mouq just wants to know if $var is list-y or Match-y
FROGGS nqp::islist?
nqp::istype($var, NQPMatch)?
timotimo ah
Mouq Thank youuus 22:24
22:26 tgt joined 22:31 tgt left 22:35 denis_boyun joined 22:36 virtualsue joined, rurban joined 22:38 pdcawley left, dmol left 22:39 dmol joined 22:40 pdcawley joined 22:43 dmol left 22:44 rurban left 22:46 Guest71152 left, clsn left
timotimo i wonder if i should be pushing for adt to get into star at some point 22:50
Mouq r: 'aaaaa' ~~ /\w+/; say $¢
camelia rakudo-jvm 7c12aa: OUTPUT«(timeout)»
..rakudo-parrot 7c12aa, rakudo-moar 7c12aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unsupported use of $¢ variable␤at /tmp/tmpfile:1␤------> 'aaaaa' ~~ /\w+/; say ⏏$¢␤ expecting any of:␤ argument list␤ …»
timotimo r: 'aaaa' ~~ /\w+/; say $/.CURSOR 22:51
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«Cursor.new()␤»
timotimo r: 'aaaa' ~~ /\w+/; say $/.CURSOR.DUMP
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«Cursor<1>(:$!ast(Any))␤»
timotimo good night! 22:58
lue timotimo o/ 22:59
Mouq o/ timotiom 23:02
mo
r: 'aaaaa' ~~ /\w+/; EVAL 'say $¢'; CATCH $!.WHAT.say 23:04
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> 'aaaaa' ~~ /\w+/; EVAL 'say $¢'; CATCH ⏏$!.WHAT.say␤ expecting any of:␤ …»
Mouq r: 'aaaaa' ~~ /\w+/; EVAL 'say $¢'; CATCH { $!.WHAT.say }
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«===SORRY!=== Error while compiling eval_0␤Unsupported use of $¢ variable␤at eval_0:1␤------> say ⏏$¢␤ expecting any of:␤ argument list␤ prefix or…»
Mouq r: 'aaaaa' ~~ /\w+/; try { EVAL 'say $¢'; CATCH { $!.WHAT.say } } 23:05
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«Nil␤===SORRY!=== Error while compiling eval_0␤Unsupported use of $¢ variable␤at eval_0:1␤------> say ⏏$¢␤ expecting any of:␤ argument list␤ pre…»
Mouq r: 'aaaaa' ~~ /\w+/; try { EVAL 'say $¢'; } CATCH { $!.WHAT.say } #?
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> aaaaa' ~~ /\w+/; try { EVAL 'say $¢'; } ⏏CATCH { $!.WHAT.say } #?␤ expe…»
Mouq r: 'aaaaa' ~~ /\w+/; try { EVAL 'say $¢'; }; CATCH { $!.WHAT.say } #?
camelia ( no output )
Mouq r: 'aaaaa' ~~ /\w+/; try { EVAL 'say $¢'; }; $!.WHAT.say
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«(X::Syntax::Perl5Var)␤»
Mouq ^^ that
r: constant \term:<$¢> = macro { $/.CURSOR }; 'aaaaa' ~~ /\w+/; say $¢ 23:08
camelia rakudo-moar 7c12aa: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤»
..rakudo-parrot 7c12aa, rakudo-jvm 7c12aa: OUTPUT«===SORRY!===␤No such method 'has_compile_time_value' for invocant of type 'NQPMu'␤»
Mouq r: constant \term:<$¢> = macro { quasi { $/.CURSOR } }; 'aaaaa' ~~ /\w+/; say $¢
camelia rakudo-moar 7c12aa: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤»
..rakudo-parrot 7c12aa, rakudo-jvm 7c12aa: OUTPUT«===SORRY!===␤No such method 'has_compile_time_value' for invocant of type 'NQPMu'␤»
23:09 denis_boyun left
lue $¢ isn't supposed to exist anymore(?) 23:10
Mouq r: macro term:<$¢> () { $/.Cursor }; "aaaaa" ~~ /\w+/; say $¢
lue: Oh?
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«No such method 'Cursor' for invocant of type 'Match'␤ in macro term:<$¢> at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
lue still wants the ¢ sigil for sheer -Ofun-ness, by the way.
Mouq r: macro term:<$¢> () { $/.CURSOR }; "aaaaa" ~~ /\w+/; say $¢ 23:11
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«Cursor.new()␤»
Mouq It was never removed from S05 23:12
lue I could be wrong on $¢, but I know the ¢ sigil is tragically gone.
Mouq And STD.pm6 uses it heavily IIRC… 23:13
But adding `macro term:<$¢> { $/.CURSOR }` somewhere in the setting should hypothetically fix that error 23:14
lue Hang on, S08 (Under "Context Deferral") mentions that Capture and Parcel are sufficient to avoid coercing captures into something else. Since \vars are Parcel (IIRC), does that mean \foo is the replacement for ¢foo ?
23:15 kurahaupo_mobile left 23:16 Rotwang left
lue .ask TimToady if I read the last section of S08 correctly (and correctly understand that \foo operates on a Parcel basis), does that mean \foo is considerable as a replacement for ¢foo ? 23:18
yoleaux lue: I'll pass your message to TimToady.
23:19 spider-mario left
Mouq There should definitely be some sort of documentation *just* on parameters 23:19
lue Mouq: That means I should finish my parameter intro/tutorial/thing sometime soon, then? :) [and possibly remove/condense the introductory stuff in Signature] 23:20
23:22 tgt joined, TrueCajun is now known as hoverboard
Mouq class S06 is Int { method addto (|args, $self: @x) { say(args); $self += [+] @x } }; S06.new.addto(5); 23:22
r: class S06 is Int { method addto (|args, $self: @x) { say(args); $self + [+] @x } }; S06.new.addto(5); 23:23
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Cannot put required parameter $self after variadic parameters␤at /tmp/tmpfile:1␤------> S06 is Int { method addto (|args, $self⏏[…»
Mouq n: class S06 is Int { method addto (|args, $self: @x) { say(args); $self + [+] @x } }; S06.new.addto(5);
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Only the first parameter may be invocant at /tmp/KRIVsK2col line 1:␤------> is Int { method addto (|args, $self: @x⏏) { say(args); $self + [+] @x } }; S06.n␤␤Unhandled exception: Illegal …»
Mouq lue: perlcabal.org/syn/S06.html#Parcel_binding 23:24
lue Mouq: try ($self: @x, |args)
Mouq lue: I know, I was just testing a line from S06 that I didn't think would work 23:25
lue Alright :)
Mouq lue: I'm not sure what ¢var was supposed to do, but between \var and |var I don't know what other Capture semantics you want 23:26
\var isn't so much Parcel as gimme *exactly* whatever that argument passed to me was, AIUI 23:27
lue Mouq: AFAIU, ¢foo was/is meant to hold Captures without, say, itemizing them, or any other sort of coercion $ and friends would do. Which is why I wonder if \foo is the suitable replacement.
Mouq lue: That's exactly what \foo does
lue (Or if we want something specifically Capturesque and bring back ¢foo. I want this option for increased Unicodeness ☺) 23:28
If (*if*) we brought back ¢foo, then perhaps \foo would be the ASCII alternative, instead of the weird $@foo (or was it @$foo) thing we had before. 23:29
Mouq p6: $#var 23:30
camelia rakudo-parrot 7c12aa, rakudo-jvm 7c12aa, rakudo-moar 7c12aa: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unsupported use of $#variable; in Perl 6 please use @variable.end␤at /tmp/tmpfile:1␤------> $#var⏏<EOL>␤»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Unsupported use of $#var variable; in Perl 6 please use @var.end at /tmp/tmpfile line 1 (EOF):␤------> $#var⏏<EOL>␤␤Parse failed␤␤»
23:30 mattp_ joined 23:31 ingy joined 23:32 hoverboard left 23:38 ingy1 joined 23:39 tgt_ joined
Mouq lue: And also yes, parameter intro/tutorial/thing would be awesome :) 23:40
lue :) 23:41
23:43 ingy left, tgt left 23:47 felipe joined 23:51 hoverboard joined