»ö« 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.
timotimo what's the standard answer to someone saying "perl6 destroyed perl5 because people started saying 'i'll wait for perl6 before i continue doing stuff'"? 00:03
TimToady "no, perl6 resurrected interest in perl5" 00:04
the reason perl6 was started in the first place is that people *already* recognized that perl5 was stagnating 00:05
that was precisely Jon Orwant's point with the mugs 00:06
lizmat read the backlog
TimToady and that's the nice answer :)
lizmat will see if there is a solution for %<a><b>:exists that would not need Any.exists, and which would not slow down all {} accesses 00:08
lizmat but not today 00:08
gnigt #perl6!
jnthn lizmat: For now we could constraint it to :U on the invocant
jnthn gets some rest also
'night o/
TimToady nighty
lizmat no, that doesn't work, because the U: is exactly what we need for %h<a><b> 00:09
ah, me is sleepy
yes, you're right: U: should do it, but then the error message gets confusing
"Invocant requires a type object, but an object instance was passed" for 42.delete(42) 00:10
LTA error message
and oddly enough, if I add the U:, I get spectest errors with exactly that error
not sure what is going on there, will check after some sleep 00:11
eyes closing&
raiph TimToady: Do you still have the slides that went with Camelot #6? (p6 announcement talk in 2000) 00:14
TimToady there were no slides, it was, as I recall, a demonstration of many different musical instruments
raiph oh. heh. maybe this is a later talk then. I'm reading www.mail-archive.com/perl6-meta@per...00409.html 00:20
er, s/Camelot/Camel Lot/ 00:21
TimToady: I mean whatever went with the talk I linked 00:23
TimToady if I have it, it's probably on an old SCSI drive sitting out in my garage :) 00:51
Mouq files Rakudo PR #204 01:27
Mouq always does stuff after all the perl6ers are offline :p 01:32
[Coke] not all of us. 01:46
yoleaux 31 Aug 2013 08:56Z <lizmat> [Coke]: I have no idea: 114 is *all* tests. on parakudo it says: Files=1, Tests=114, 3 wallclock secs ( 0.03 usr 0.00 sys + 2.75 cusr 0.17 csys = 2.95 CPU)
[Coke] ... but that's outside of my comfort zone at the moment, sorry. 01:49
Mouq It's np. I'm happy enough you looked at it 01:50
TimToady Mouq: yes, some of us are even further west than you are...how was your first week of school? 02:07
Mouq Excellent, thank you. Being a senior kinda rocks. I woulda' gotten this PR in sooner but I've spent most of my time not in school recovering from cross country practice 02:10
TimToady remembers his senior year fondly 02:11
any idea what you're doing next year yet?
Mouq …not particularly. ATM I'm wishfully thinking something in Engineering at UPenn 02:13
diakopter that's, like, ivy league and stuff 02:14
TimToady I'm sure there'd be plenty of worse choices
though you get more personal attention at a smaller school--it's all tradeoffs
Mouq Really? I don't think of UPenn as ivy league. 02:15
TimToady yes, well, diakopter is from Texas, so you have to cut him some slack :P
diakopter heh.
ivy league is well-defined... 02:16
Mouq I'm a PA resident, so it's a little different
TimToady schools with ivy on them, I know...
yeah, I figured you was in PA from the traceroute that stopped somewhere in the middle of PA
but I didn't want you to think I was stalking you, so forget I mentioned that :)
Mouq heh, nah, traceroute's fun 02:18
TimToady mostly I just wanted to know which timezone you're in
so's I could properly claim to be west of you 02:19
geekosaur you're west of them, of course. just possibly less far east of them....
TimToady well, even if PA is a country code, it's only Panama... 02:22
diakopter Mouq: my point was, upenn is one of the hardest to get into that exists, so, "impressive.."
Mouq Oh, yeah, we'll see about that whole "actually getting in" thing 02:23
Mouq TimToady: is $var.:<∃> always a call to prefix ∃? 03:13
err, &prefix:<∃>($var) 03:14
TimToady supposed to be; don't need it for postfixes, which already know how to attach after 03:17
Mouq Okay. The spec implies as much, but I wasn't sure if it had wider applications 03:18
colomon TimToady: what is bless supposed to look like now? instead of self.bless(*, coefficients => @x); it's self.bless(coefficients => @x); ? 03:22
TimToady yes, just drop the * 03:23
colomon I have to make that work in niecza, and then change a lot of modules… :) 03:24
TimToady HTAAOF 03:25
colomon ?
TimToady have the appropriate amount of fun 03:26
colomon btw, here's a quick one for you:
use Math::Polynomial;
constant x = Math::Polynomial.new(0, 1);
my @pf := 0, 1, -> $a, $b { $a + x * $b } ... *;
lazy sequence of Fibonacci polynomials. :)
TimToady kewl 03:27
diakopter TimToady: heh, add a RosettaCode entry... that's how you'll surpass the others... 03:28
Teratogen I still have my decoder ring 03:29
ml Do junctive operators work with types? Like: sub f ( Int | Rat $a) {...} 03:52
TimToady nope
hafta do that with a subset type now
subset IR where Int | Rat; sub f (IR $a) {...} 03:53
ml Hmmm...mislead by Wikipedia again. Thanks!
TimToady was an old idea that didn't work out
in particular, it'd be terribly ambiguous now that we have |c to bind captures 03:54
likewise we have &foo to bind routines, so & doesn't work either
alternately, you want sub f (Real $a) {...} there
since Int and Rat share that role 03:55
(I believe)
r: say Int ~~ Real; say Rat ~~ Real;
camelia rakudo 1fca64: OUTPUT«True␤True␤»
ml But Real would allow inexact numbers as the argument? 03:56
TimToady well, most numbers are 03:57
ml That's true :-)
TimToady and even Rats won't maintain their exactness if you overflow their denominator 03:59
and FatRats that do keep precision have performance issues when they keep precision
(unless you keep them on a diet) 04:00
ml Life is good as long as we have choices.
TimToady I choose to believe that. :)
moritz masak: got an example where my t3 solution behaves suboptimal? 06:28
sorear o/ moritz 06:35
moritz \o sorear 06:43
www.techempower.com/blog/2013/03/26...ut-java-8/ java 8 allows default implementations in interfaces 06:52
which means you can now use interfaces for code reuse too 06:53
which makes them kinda similar to Perl 6 roles :-)
dalek kudo/nom: ce3ea39 | Mouq++ | src/Perl6/ (2 files):
Get $var.++ and $var.() working.

  $var.:<++> etc is also parsed now, but is not functional.
08:07
dalek ast: 4318de8 | moritz++ | S02-lexical-conventions/unspace.t:
Rakudo unfudges, Mouq++
08:59
dalek kudo/nom: a0d7cec | moritz++ | tools/autounfudge.pl:
[autounfudge] do not unfudge rakudo.parrot fudges on JVM, or vice versa
09:06
jnthn morning o/ 09:22
yoleaux 02:26Z <JimmyZ> jnthn: if you get segfault with `../moarvm nqp.moarvm t/nqp/57-construction.t`, hope this will help you gist.github.com/zhuomingliang/6401...tfile1.txt
02:41Z <JimmyZ> jnthn: and gist.github.com/zhuomingliang/6401...tfile1.txt
03:14Z <JimmyZ> jnthn: ignore 666e0d27126409f55489b98bb7fdd04942b28a05 one
03:29Z <JimmyZ> jnthn: I fixed the segfault by this patch: gist.github.com/zhuomingliang/6402151
04:17Z <JimmyZ> jnthn: but the largest item->size number I got is 200
04:50Z <JimmyZ> jnthn: I got the weird thing. with MVMuint16 size, any item->size greater than 184 will be changed to 184
07:44Z <nwc10> jnthn: if I run `../moarvm nqp.moarvm t/nqp/53-knowhow.t` it passes (reliably) but it fails reliably (Non-zero wait status: 11) if run by the harness. To me this is suspicion, but I have no idea what it's telling me.
jnthn hah, and all of those were sent on another channel... 09:23
moritz good antenoon jnthn 09:25
nwc10 moritz: it's not that bad *yet*. Unless Sweden has defected to EEST 09:32
masak good almost-noon, #perl6 09:34
nwc10 gah. my fingers *And* my eyes have auto-correct
nwc10 "antenoon" ne "afternoon" 09:35
nwc10 gives up and goes back to cooking
masak moritz: a few cases: gist.github.com/masak/c56a8607c112a9c83829
moritz 9514268073 11 9 09:40
that's not good :-)
masak moritz: I'm currently building the graph induced by all best moves, so that I can do analysis on it. 09:42
maybe something'll fall out.
r: say (^512)>>.fmt("%09b").grep({ $_ !~~ /11/ }).elems 09:49
camelia rakudo a0d7ce: OUTPUT«89␤»
masak sometimes Perl 6 is just so much more expressive than Perl 5.
is there a nicer way to write that { $_ !~~ /11/ } ?
moritz I guess that ~~ doesn't autocurry with * 09:50
!*.match(/11/) ?
masak I initially tried { !/11/ }, but that didn't fly. 09:51
moritz but why not? 10:03
masak r: say (^512)>>.fmt("%09b").grep({ !/11/ }) 10:06
camelia rakudo a0d7ce: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D : $target, *%adverbs)␤ in method match at src/gen/CORE.setting:3155␤ in method Bool at src/gen/CORE.setting:11944␤ in method Bool at src/gen/CORE.setting:805␤ in sub prefix:<!> at src/gen/CORE.settin…
masak I dunno, a regression perhaps?
r: say (^512)>>.fmt("%09b").grep({ /11/ }).elems 10:07
camelia rakudo a0d7ce: OUTPUT«423␤»
masak feels like if { /11/ } works, then { !/11/ } should.
masak r: say (^512)>>.fmt("%09b").grep({ ?/11/ }).elems 10:21
camelia rakudo a0d7ce: OUTPUT«Cannot call 'match'; none of these signatures match:␤:(Cool:D : $target, *%adverbs)␤ in method match at src/gen/CORE.setting:3155␤ in method Bool at src/gen/CORE.setting:11944␤ in method Bool at src/gen/CORE.setting:805␤ in sub prefix:<?> at src/gen/CORE.settin…
masak interesting.
masak I'm not submitting a rakudobug yet on this, because I don't even know if this is supposed to work. 10:29
I *think* it is, but I'm not sure.
moritz r: say True ~~ /11/ 10:37
camelia rakudo a0d7ce: OUTPUT«Nil␤»
moritz that's not it then
moritz has the feeling that some $_ setup is wrong there 10:38
r: (^2).grep: { !.perl.say }
camelia rakudo a0d7ce: OUTPUT«0␤1␤»
cognominal I wish Perl 6 had a very low function application operator and a function composition operator à la haskell to support functionnal style in Perl 6 10:39
if we used . for function composition as haskell, we could not have the unsupporte use of . 10:42
moritz and we wouldn't have . for method calls 10:43
cognominal But I am sure there is an haskell symbol used by mathematecian for function composition even if I don't know it
nope, that would be . with spaces around
moritz eeks!
dalek ast: 13f3908 | moritz++ | S03-operators/set.t:
rakudo unfudges, lizmat++
10:45
cognominal I have even a wilder idea, but coherent with the previous one. Binary operators with two spaces around would have lower precedence than binary operators with one space around. 10:46
The name of the game is to get rid of clippred nails in the oatmeal, I mean to get read of spurious parentheses 10:48
www.fileformat.info/info/unicode/ch.../index.htm 10:50
cognominal .U2218 10:51
I forgot the syntax to ask about a unicode char 10:52
.u ring 10:53
yoleaux U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE [Lu] (Å)
U+00E5 LATIN SMALL LETTER A WITH RING ABOVE [Ll] (å)
U+016E LATIN CAPITAL LETTER U WITH RING ABOVE [Lu] (Ů)
moritz .u 2218
yoleaux U+2218 RING OPERATOR [Sm] (∘)
cognominal a ∘ a
looks nice 10:54
this bot proves that people don't think enough about spaces 10:55
masak r: sub infix:<∘>(&f, &g) { -> $x { f(g($x)) } }; say (&sin ∘ &log)(1.0) 11:30
camelia rakudo a0d7ce: OUTPUT«0␤»
masak \o/
masak cognominal: I don't think the "spaces around operators" rule belongs in plain Perl 6. in a dialect, sure, but not in the default. 11:32
cognominal I am porting the perl6 expression engine to js (really coffeescript) to experiment with dynamical highlighting in codemirror. I will see how it goes. 11:35
masak ooh 11:37
cognominal I already some experiments with dynamical highlighting with manually created asts but that was useless if not editable. So I learned codemirror. 11:39
masak in other news, I'm enjoying pipeline.corante.com/archives/thing...work_with/ today. if you're looking for good, engaging writing about dangerous chemical compounds, this is it. 11:42
I wish I knew how to write like that. I also wish my chemistry classes were a bit more like that.
cognominal I anticipate that eventually the AST will be the reference and people will deparse them as they see fit. So everyone can have his own private language (syntax wise) without bothering the others. In a sense, that will be an answer to a Wittgenstein argument. en.wikipedia.org/wiki/Private_language_argument
masak what better way to make a schoolchild interested in chemistry than by telling about all the horrible ways it's possible to screw things up?
cognominal: if we ever reach the "everyone can have a slang of their own" state with Perl 6, it will be an interesting thing indeed. 11:43
like a CPAN but on the language level. 11:44
I'm curious about how feasible it'll be to combine/compose slangs.
we already do that with routine and type definitions, for example.
cognominal I don't think they will combime because they are very unlike haskell grammar combinators 11:46
what is strange is that everyone is speaking DSL these days and I am not sure people provide tools to do that (except haskellish combinators) 11:48
perl 6 will.
perl6, the buzzword free language. We just do it. 11:49
lizmat good *, #perl6! 11:52
colomon \o
moritz o/ 11:54
cognominal \o/
moritz masak++ # nice link. "The paper tells you how to make small crystals of the alpha form, which is not too bad, as long as you keep it moist and in the dark, and never, ever, do anything with it."
"Explosions are definitely underappreciated as a mixing technique" 11:55
moritz notices that he really wants to quote every second sentence from that article, but refrains 11:57
colomon is finding bless extremely simple to fix in Niecza. :) 11:58
moritz it was pretty easy to fix in rakudo too 12:02
dalek ast: 59a518a | (Elizabeth Mattijsen)++ | S02-lexical-conventions/unspace.t:
Unfudge 2 now passing tests: Mouq++
12:04
ecza: d49208e | (Solomon Foster)++ | lib/CORE.setting:
Conform to the current spec for bless.
12:12
moritz is anybody going through the test suite to remove the * from bless? 12:15
if not, I can do that
colomon is working on ABC right now 12:18
masak moritz: my favorite sentence so far:
'At any rate, its odor is variously described as "foul", "unpleasant", "metallic", "disagreeable", and (wait for it) "characteristic", which is an adjective that shows up often in the literature with regard to smells, and almost always makes a person want to punch whoever thought it was useful.'
tadzik let me guess: mustard gas?
or is that totally unrelated? :) 12:19
masak tadzik: dimethylcadmium. 12:21
lizmat typical 12:22
dalek ecza: 3961d5d | (Solomon Foster)++ | lib/Test.pm6:
Fix bless in testing code.
12:24
tadzik that doesn't tell me much :) But that reminded me of a forum post when someone posted a picture of crystals and said "here's how you do it", followed by a recipe for some deadly toxine
moritz tadzik: most of the gases containing metal are toxic to highly toxic, fwiw 12:35
tadzik that sounds about right 12:39
dalek ast: d2a9e62 | moritz++ | S (21 files):
remove * from bless
colomon Okay, so here's weird. 12:51
With all the bless warnings in ABC, processing a 25-tune ABC file took 11 minutes in parrakudo, 1 minute in jakudo. 12:52
dalek kudo/nom: 39024d8 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
Make Any.exists|delete only work on undefined values
12:54
lizmat colomon: creating warnings is a lot of work
that's even true in Perl5
arnsholt Output to screen is a real bottleneck. IIRC terminal emulators are known to mostly be a bit slow 12:55
moritz arnsholt: I guess in Perl 6 the bottleneck is that warn() are resumable exceptions 12:56
which walk the call chain to find the handler, print, and then resume
arnsholt Oh, right. That's gonna slow it down as well, yeah
moritz and walking the call chain isn't the fastest, iirc
dalek kudo/nom: 9a63ead | (Elizabeth Mattijsen)++ | src/core/ (4 files):
Remove exist_key and delete_key: they are not specced and not used in core
12:57
colomon With the bless calls fixed, it takes 53s in parrakudo, 32s in jakudo. 13:04
sorry, my second line of that comparison never showed up. but you guys anticipated it nicely!
colomon so the warnings aren't just slow, they're much slower (relatively) in parrakudo. 13:05
moritz so, warnins are *really* slow on parakudo?
colomon seems like
moritz too slow
might also depend on the stack depth
colomon BTW, same task runs in 12s on Niecza, so jakudo still has room for improvement. :) 13:06
moritz colomon: jnthn said at YAPC::EU that there aren't really any optimizations for the JVM yet, just a performance-aware approach at factoring things 13:07
so, I still hope for better performance :-) 13:08
colomon oh, absolutely.
dalek kudo/nom: 7a71ec7 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Hide Set|Bag.delete from backtrace, no point in showing exception from within
13:09
Mouq r: .++; .say 13:11
camelia rakudo a0d7ce: OUTPUT«1␤»
Mouq does a dance 13:12
moritz Mouq: was that your first rakudo patch? 13:17
Mouq The first that actually did anything. I had one that gave NYI on tr/// and an open one with NYI on $str +< $num 13:19
moritz let me just say "welcome to the club" :-) 13:20
Mouq \o/ 13:22
Thank you
lizmat Mouq o/
Mouq o/ 13:25
dalek kudo/nom: e7d2175 | (Elizabeth Mattijsen)++ | src/core/Key (2 files):
Add KeyBag|KeySet.delete, so that :delete works on KeyBag|KeySet
13:28
kudo/nom: 0aafe9e | (Elizabeth Mattijsen)++ | src/core/KeySet.pm:
Simplify KeySet.exists: if a keys exists with value 0, we have a bug!
kudo/nom: 6fb0651 | (Elizabeth Mattijsen)++ | src/core/Key (2 files):
Simplify KeyBag|KeySet.at_key
dalek ast: 4df345b | (Elizabeth Mattijsen)++ | S02-types/key (2 files):
Unfudge now passing KeyBag|KeySet<>:delete tests
13:29
masak Mouq++ 13:31
dalek ast: b4ac4f3 | (Elizabeth Mattijsen)++ | S02-types/ (2 files):
Add tests for delete failing on Set|Bag
13:43
diakopter lizmat++ # shearing a hundred un-tasty yaks and running a few marathons of legwork to iron out keybag/set shtuff
lizmat ;-) if only I could put Sets in a Bag :-) 13:44
masak lizmat++ # doin' stuff 13:49
lizmat r: say [==] () 14:02
camelia rakudo 9a63ea: OUTPUT«True␤»
lizmat r: say [!==] () # by consequence, should this be False ?
camelia rakudo 9a63ea: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in block at src/gen/CORE.setting:15659␤ in sub at src/gen/CORE.setting:15791␤ in block at /tmp/OKR3d5Sol8:1␤␤»
jnthn lizmat: Yes 14:03
Mouq #perl6: To add some basic NQP support in github, I can add it into it's own language category, or I can put the .nqp extension under the Perl category 14:04
My inclination is the latter
*its
lizmat what would be the advantage of having an own language category ? 14:05
Mouq I believe it would then say project dd% NQP rather than dd% Perl 14:06
But it would still be parsed with the Perl syntax highlighter they use. 14:07
lizmat jnthn: the spectest says: is ([!==] ()), Bool::True, "[!==] () eq True";
jnthn hmm 14:08
masak lizmat: that is correct. 14:09
let me explain.
"innocent until proven guilty"
you start by assuming all things are unequal, and then iterate until you find a case that disproves this.
empty list; zero iterations.
the truth holds.
lizmat ok, so any bool reducing metaop with an empty list should return True 14:10
masak you cannot argue "by consequence, [the opposite of [==]()] should be false" -- all [op]() where op is a comparison op are True.
right.
(I'm on a train -- slight lag) :)
lizmat ok, just getting some clarity is good
masak *nod* 14:11
dalek ast: 817927f | (Elizabeth Mattijsen)++ | S03-operators/reduce-le1arg.t:
Only skip the actually failing reducing metaops
14:17
dalek kudo/nom: e3b73d8 | (Elizabeth Mattijsen)++ | src/core/metaops.pm:
Make many metaops with ! on empty lists return True
14:42
ast: 9d26888 | (Elizabeth Mattijsen)++ | S03-operators/reduce-le1arg.t:
Unfudge now passing metaops tests
14:43
lizmat r: [||] () # huh? 14:44
camelia rakudo 6fb065: ( no output )
lizmat r: say [||] () # huh?
camelia rakudo 6fb065: OUTPUT«False␤»
lizmat shouldn't that be True?
masak correct.
no, False.
|| is not a comparison op.
so the above rule doesn't hold. 14:45
in the case of ||, we're looking for a True value.
so the algorithm is "False until found True".
FROGGS if [||] () would be True it could never be false
masak well. "False until found truthy", to be exact. 14:46
lizmat guilty until proven innocent :-)
but yeah, gotcha 14:47
lizmat is && implemented in regexes ? 14:55
jnthn I think && and & are currently synonyms 14:55
lizmat trying to fix [!~~] 14:56
apparently, it doesn't get an op passed 14:57
: say [!~~] ()
r: say [!~~] ()
camelia rakudo 6fb065: OUTPUT«Nominal type check failed for parameter 'op'; expected Any but got Mu instead␤ in sub METAOP_REDUCE_CHAIN at src/gen/CORE.setting:15797␤ in block at /tmp/ZHE_UjacTz:1␤␤»
lizmat suspecting some kind of grammar issue
lizmat r: say True ~~ () 15:02
camelia rakudo 6fb065: OUTPUT«False␤»
lizmat r: say () ~~ True
camelia rakudo 6fb065: OUTPUT«Potential difficulties:␤ Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead␤ at /tmp/xfL9dc1JM8:1␤ ------> say () ~~⏏ True␤True␤»
lizmat r: try {() ~~ True; CATCH { say $! }} 15:05
camelia rakudo 6fb065: OUTPUT«Potential difficulties:␤ Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead␤ at /tmp/mEjQTvYNEV:1␤ ------> try {() ~~⏏ True; CATCH { say $! }}␤»
lizmat n: say () ~~ True 15:18
camelia niecza v24-92-g3961d5d: OUTPUT«True␤»
lizmat r: say () ~~ True
camelia rakudo e3b73d: OUTPUT«Potential difficulties:␤ Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead␤ at /tmp/55F_Z0Jmb8:1␤ ------> say () ~~⏏ True␤True␤»
lizmat It seems we not have a spectest for this case
also, this behaviour does not seem to be specced 15:19
FROGGS std: say () ~~ True 15:20
camelia std 27326bc: OUTPUT«Potential difficulties:␤ Smartmatch against True always matches; perhaps you should use :so or *.so or ?* instead at /tmp/ynHp8z7Grq line 1:␤------> say () ~~⏏ True␤ok 00:00 44m␤»
lizmat ah, yes 15:21
FROGGS there is your spec *g*
lizmat so I guess this should be specced then
jnthn thought that was in S03 somewhere... 15:25
dalek ecs: 3c81edd | (Elizabeth Mattijsen)++ | S05-regex.pod:
Add paragraph about literally smartmatching True/False
15:26
lizmat jnthn: you mean this 15:27
Any True ~~ True (parsewarn on literal token)
Any False ~~ False match (parsewarn on literal token)
jnthn Yes
lizmat hmmm… that says "parsewarn" and not "parseerror" 15:28
jnthn Both impls are warning?
"Potential difficulties:" are warnings...note it outputs True at the end.
And STD says ok 15:29
lizmat ack 15:29
dalek ecs: 7cc75e8 | (Elizabeth Mattijsen)++ | S05-regex.pod:
Smartmatching True/False *is* mentioned in S03

This reverts commit 3c81eddad88114a5f7377d55e9685496d9b57491.
15:30
lizmat hmmm…. can we test for warnings at compile time ? 15:31
dalek ast: e64b224 | (Elizabeth Mattijsen)++ | S03-operators/reduce-le1arg.t:
Missed that these metaops are passing now as well
15:34
Mouq r: 1.++() 15:38
camelia rakudo e3b73d: OUTPUT«Cannot modify an immutable value␤ in sub postfix:<++> at src/gen/CORE.setting:4000␤ in sub postfix:<++> at src/gen/CORE.setting:2216␤ in block at /tmp/Ipput8Jp1R:1␤␤»
lizmat r: say my $a.++ 15:43
camelia rakudo e3b73d: OUTPUT«===SORRY!=== Error while compiling /tmp/DVVIqlpVEa␤Two terms in a row␤at /tmp/DVVIqlpVEa:1␤------> say my $a⏏.++␤ expecting any of:␤ scoped declarator␤ constraint␤ postfix␤ infix stopper␤ in…
lizmat r: my $a; say $a.++
camelia rakudo e3b73d: OUTPUT«0␤»
lizmat r: my $a; say $a.++; say $a 15:44
camelia rakudo e3b73d: OUTPUT«0␤1␤»
dalek ast: 6f2280d | (Elizabeth Mattijsen)++ | S03-operators/reduce-le1arg.t:
Giving up on [!~~] for now
15:45
Mouq r: my $a; $a.++.say 15:50
camelia rakudo e3b73d: OUTPUT«0␤»
lizmat still correct 15:52
jnthn aye
Mouq r: my $a; $a.:<++>.say # alas 15:53
camelia rakudo e3b73d: OUTPUT«===SORRY!===␤No such method 'name' for invocant of type 'QAST::Want'␤»
Mouq r: my @l = ^10; @l».say; @l.».say # :( 15:58
camelia rakudo e3b73d: OUTPUT«9␤7␤5␤3␤1␤8␤6␤4␤2␤0␤9␤7␤5␤3␤1␤8␤6␤4␤2␤0␤»
Mouq r: my @l = ^10; @l.».say # Oh
camelia rakudo e3b73d: OUTPUT«9␤7␤5␤3␤1␤8␤6␤4␤2␤0␤»
Mouq Awesome 15:59
r: (1, 4, 9).»++
camelia rakudo e3b73d: OUTPUT«Cannot modify an immutable value␤ in sub postfix:<++> at src/gen/CORE.setting:4000␤ in sub postfix:<++> at src/gen/CORE.setting:2216␤ in sub hyper at src/gen/CORE.setting:15885␤ in sub hyper at src/gen/CORE.setting:15840␤ in sub METAOP_HYPER_POSTFIX at src/gen…
Mouq r: (my @r = (1, 4, 9)).»++ 16:00
camelia rakudo e3b73d: ( no output )
lizmat TimToady: wrt to S06:2861: shouldn't that be "say TEMP next()' ? 16:03
synopsebot Link: perlcabal.org/syn/S06.html#line_2861
lizmat ah no, it's clear now, but still a bit confusing 16:05
dalek kudo/nom: 6fddda1 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp:
Added TEMP block stub, so that we can make TEMP tests "todo" rather than "skip"
16:23
felher lizmat: regarding the rakudo/nqp internals workshop: Will there be any recordings, material, slides, ... ? I really would like to attend the workshop myself, since I'm from Germany, but my current heart condition probably doesn't allow me to travel. 16:37
lizmat we're not planning on recording anything, but material and slides may come out of it
felher lizmat: okay, nice. Thanks :)
lizmat and hopefully, it won't be the last time the workshop is given
felher lizmat: yeah, I truly hope that too :) 16:38
lizmat is travel the only problem, or the intensity of 2 days in a workshop as well?
if travel is the only pb, from where would you need to travel ?
felher lizmat: the intensity would be a problem too, yes. So even without travelling it might not be a good idea :) 16:40
lizmat ok, otherwise we could have maybe fixed the travelling issue 16:41
felher lizmat: thanks for trying anyway :)
lizmat yw!
r: my $a=42; say $$$$$$$$$$$$$$$$$$$$a # huh? 16:43
camelia rakudo e3b73d: OUTPUT«42␤»
masak lizmat: generally, "huh?" does not count as a bug report, or even a call for explanation. :)
lizmat: what do you observe, what did you expect to see?
lizmat WAT?
well, I'm looking at t/spec/S04-declarations/state.t
where the test says it's returning a reference to a state var 16:44
that in itself is weird, and seems outdated
but the test also does $$a++
masak o.O
lizmat and doesn't complain about that at compile time 16:45
masak that's Perl 5-think.
jnthn $$$$$a is like $a.item.item.item.item
lizmat perhaps
aha… indeed
ok]
jnthn And .item is just identify here I suspect :)
lizmat well, that test is suffering from Perl5 think 16:45
# Return of a reference to a state() var
state $svar = 42; 16:46
\$svar;
so, can you return a reference of a var out of a sub? 16:48
my mind seems to have blanked out on that now
jnthn Well, it'll just be a Capture I guess... 16:49
lizmat starting to think all of those tests in t/spec/S04-declarations/state.t are bogus 16:50
dalek ast: bf3ad8c | (Elizabeth Mattijsen)++ | S04-declarations/state.t:
Removed bogus reference to state variable tests
16:54
pmurias jnthn: how does nqp::callercode determin which blocks it skips? 16:59
jnthn: QAST::Block's with :blocktype('immediate') are ignored by nqp::callercode? 17:00
jnthn pmurias: Nope, just immediate caller. 17:04
Nothing skipped
pmurias jnthn: right 17:14
jnthn: that means "my $caller;if 1 {$caller := nqp::callercode()}" and "if 1 {my $caller := nqp::callercode()}" work differently 17:15
jnthn pmurias: Right. 17:19
pmurias: For the things its presently used for, it's fine with the current semantics (it's used directly in a sub) 17:20
pmurias jnthn: the case I'm debugging is that it's called from !cursor_start_cur which is called from !INTERPOLATE and it's capturing the block used for an if statement 17:22
all methods in NQPCursor 17:23
pmurias jnthn: github.com/perl6/nqp/blob/master/s...r.nqp#L761 17:25
jnthn: btw is convinient if I post github links to a particular source code line or should I use something else? 17:27
jnthn That's convenient 17:29
!INTERPOLATE can't be backtracked into, so I guess in the end it works out OK?
It's not been an issue on other backends, at least... 17:30
(will only be kinda here for the next while; cooking, but can drop by IRC a bit :))
dalek ast: 3bfca3a | (Elizabeth Mattijsen)++ | S04-phasers/in-eval.t:
Bring tests back from bitrot since 2009
17:39
kudo/nom: 53d1083 | (Elizabeth Mattijsen)++ | t/spectest.data:
Make t/spec/S04-phasers/in-eval.t part of the spectest
17:40
ast: 198b4c6 | (Elizabeth Mattijsen)++ | S0 (10 files):
Various unfudges and skip->todo changes
17:42
lizmat Lone Ranger&
masak amazing. not only does lizmat make all these commits all the time; when she goes offline, she's the Lone Ranger. 18:31
moritz std: trs/a/b/ 18:34
camelia std 27326bc: OUTPUT«===SORRY!===␤Bogus term at /tmp/JDRacHDt2j line 1 (EOF):␤------> trs/a/b/⏏<EOL>␤Undeclared routines:␤ 'a' used at line 1␤ 'b' used at line 1␤ 'trs' used at line 1␤Parse failed␤FAILED 00:00 42m␤»
masak 'trs'?
jnthn
.oO( translit stuff? )
18:35
geekosaur trs/80? :p 18:36
masak .oO( trèz quatre-vingt ) 18:37
GlitchMr std: my int$num=42;my Str$str=~$num;say$str 18:38
camelia std 27326bc: OUTPUT«===SORRY!===␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/f1OcXkJfim line 1:␤------> my int$num=42;my Str$str=~$num;say⏏$str␤Two terms in a row (listop w…
GlitchMr Bare say? That isn't a real problem.
benabik std: say(1) 18:38
camelia std 27326bc: OUTPUT«ok 00:00 42m␤»
benabik std: say 1
camelia std 27326bc: OUTPUT«ok 00:00 42m␤»
GlitchMr std: my int$num=42;my Str$str=~$num;say $str
masak GlitchMr: you'll note you also got TTIAR.
camelia std 27326bc: OUTPUT«ok 00:00 43m␤» 18:39
GlitchMr std: my int$num=42;my Str$str;$str=~$num;say $str
camelia std 27326bc: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at /tmp/D9Hukln_ut line 1:␤------> my int$num=42;my Str$str;$str=~⏏$num;say $str␤Parse failed␤FAILED 00:00 43m␤»
masak GlitchMr: so yes, the warning is bogus, but there's also an error in there.
GlitchMr So, =~ is fine with declarations, but it isn't with standard assignments.
masak wfm. 18:40
why would you ever want to pattern match on a variable you just declared?
GlitchMr Good question. 18:41
std: my $val = "abc"; $val =~= /def/
camelia std 27326bc: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at /tmp/qTZiBQHo9Y line 1:␤------> my $val = "abc"; $val =~⏏= /def/␤Parse failed␤FAILED 00:00 43m␤»
GlitchMr Perl 5 doesn't have =~= operator. 18:42
masak GlitchMr: neither does Perl 6.
moritz masak: the rakudo grammar for tr/// allows a trailing 's', so I wanted to see if it's in STD too 18:43
r: trs/a/b/
camelia rakudo 53d108: OUTPUT«===SORRY!=== Error while compiling /tmp/6heUMIkMmt␤tr/// not yet implemented. Sorry. ␤at /tmp/6heUMIkMmt:1␤------> trs/a/b/⏏<EOL>␤»
GlitchMr What does trs mean? 18:44
moritz nothing. 18:45
r: say Pair.new('a', 'b')
camelia rakudo 53d108: OUTPUT«Too many positional parameters passed; got 3 but expected 1␤ in method new at src/gen/CORE.setting:7965␤ in block at /tmp/7KP2vbbTgk:1␤␤»
masak moritz: any clues as to why in the commit that added 'trs'?
moritz masak: presumably it was cargo-culted over from s///, which does allow a ss/// form 18:47
I'll remove it soonish 18:48
(I also hope to give tr/// some semantics too)
masak oh! 18:50
cargo-culting would explain it.
moritz and I missed it while reviewing the pull request. 18:52
dalek rl6-roast-data: 79b1e4a | coke++ | / (5 files):
today (automated commit)
18:57
rl6-roast-data: 5f5f6b5 | coke++ | / (5 files):
today (automated commit)
masak r: say "foo bar" ~~ ms/foo bar/ 19:33
camelia rakudo 53d108: OUTPUT«「foo bar」␤␤»
pmurias jnthn: it's not something that I can't workaround (by making nqp::callercode returning null it this case), but something that seemed strange enough to ask about 19:49
dalek kudo/nom: 152a539 | moritz++ | src/Perl6/ (2 files):
wire up tr/// to .trans
20:21
kudo/nom: 5aeaca0 | moritz++ | src/Perl6/Actions.nqp:
NYI error for tr/// adverbs
masak rn: for "o thanks", 3, "its so much easier to write now", 7 -> $_, $n { say .uc, "!" x $n } # bash.org/?835030 20:34
camelia rakudo 53d108, niecza v24-92-g3961d5d: OUTPUT«O THANKS!!!␤ITS SO MUCH EASIER TO WRITE NOW!!!!!!!␤»
lizmat and Tonto are back 21:08
woolfy is not as crazy as Tonto 21:09
lizmat true
masak .oO( non tanto folle come Tonto ) 21:13
dammit, there are too many languages in my skull... :P
lizmat ah, maar nederlands is daar gelukkig niet een van 21:14
masak no, fortunately :)
but I've been considering taking it up.
lizmat what, and get a sore throat ? :-) 21:15
masak ...I live in Skåne.
too late for such concerns.
timotimo what caused the rakudo.jvm pass rate to drop to 0?
masak timotimo: Oracle finally started charging for the JVM? :P
lizmat on the brighter side: +62 tests passing on parakudo 21:17
jnthn Probably somebody commiting lots of stuff and never testing it doesn't break JVM? :)
jnthn wishes we had automated smoking of each commit 21:18
On all the backends
tadzik you wish. You commit too fast
jnthn It's the only sustainable way in the long run :)
tadzik: Yes but not 24/7! :D
tadzik yeah, right ;)
lizmat could it be the TEMP block stub I added ? 21:19
jnthn lizmat: It's hard to guess.
Maybe if I read the commits I could...
lizmat NQP revision bump ?
jnthn But been debugging Moar stuff today, and preparing teaching...
lizmat "less syntactic sugar for TypedHash/Array" 21:20
ah, but that was Friday, so that would have been caught by yesterday's run 21:21
t/spec/S03-binding/hashes.t failing now with HEA 21:23
D
weird, if I run it with perl6, it generates the correct output for all 38 tests 21:25
$ make t/spec/S03-binding/hashes.t
t/spec/S03-binding/hashes.t .. No subtests run
Test Summary Report
-------------------
t/spec/S03-binding/hashes.t (Wstat: 11 Tests: 0 Failed: 0)
Non-zero wait status: 11
tadzik fudging?
oh, no
lizmat no rakudo fudges 21:26
jnthn: "wishes we had automated smoking of each commit" that's called Jenkins, no? 21:27
jnthn lizmat: Well, could do it with that, yes. 21:29
r: say :16(182)
camelia rakudo 5aeaca: OUTPUT«Nominal type check failed for parameter '$str'; expected Str but got Int instead␤ in sub unbase at src/gen/CORE.setting:6179␤ in block at /tmp/5enSo2fZ6P:1␤␤»
jnthn r: say 182.base(16) 21:30
camelia rakudo 5aeaca: OUTPUT«B6␤»
jnthn aha
pmurias jnthn: re smoking on all backends for every commit, something like that would be great for nqp 21:42
jnthn pmurias: That also 21:43
NQP is at 2 backends in the repo ATM, but with the third and forth already in sight... 21:45
dalek ast: aa9255d | (Elizabeth Mattijsen)++ | S0 (6 files):
Some more unfudges and skip->todo changes
22:05
lizmat gnight, #perl6! 22:06
masak 'night, lizmat
'night, #perl6
jnthn 'night, #perl6 22:41
[Coke] jenkins++ or something like it++ 23:58