»ö« 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.
dalek rl6-roast-data: d6c0fbf | coke++ | / (6 files):
today (automated commit)
00:22
rl6-roast-data: d38223d | coke++ | / (6 files):
today (automated commit)
masak morning, #perl6 05:39
FROGGS morning 05:49
jnthn morning, #perl6 08:00
lizmat good UGT, #perl6! 08:04
from the PLPW
nwc10 good UGT, * 08:08
please could someone be fixing the test count in the failing NQP test 08:09
s/53/54/ IIRC
sergot_ morning ! o/
nwc10 t/nqp/19-file-ops.t
FROGGS I am about to 08:10
t/nqp/19-file-ops.t (Wstat: 0 Tests: 54 Failed: 2)
Failed tests: 36, 54
nwc10 they all pass for me, but then the wrong test count correctly causes the test to fail
dalek p: 65e4e41 | (Tobias Leich)++ | t/nqp/19-file-ops.t:
fix test plan, nwc10++
08:11
FROGGS hmmm, 36 still fails :/ 08:12
nwc10 works on "my" machine. Not sure why 08:15
woolfy Just did my presentation on marketing Perl for the Polish Perl Workshop. 117 slides in 20 minutes (10 seconds per slide). Went well. Liz said I was just a bit hyper. :-) 08:37
I mentioned Perl 6 several times.
sergot_ woolfy: that was really motivating!!! \o/ 08:38
woolfy Thanks... was it? really? 08:39
sergot_ it was :)
woolfy \o/
tadzik yeah, it was great :) 08:40
woolfy Hehe, sergot asked me to not mention his name. Of course I did mention his name. D'oh.
tadzik I now have 40-ish slides for 20 minutes
that should be fine :)
lizmat tadzik: and a live demo? 08:41
sergot_ You have very interesting stuff there tadzik.
woolfy tadzik: maybe you will fall asleep halfway? We will keep you awake!!!
tadzik lizmat: yeah, there'll be a short live demo 08:41
tadzik but some of the slides are just the pictures of The Good, The Bad and The Ugly 08:41
and memes
sergot_ tadzik: with xbox cotroller I hope :) 08:42
tadzik of course :)
lizmat memememememememememememememememememe (beaker impression)
.oO( isn't one troller enough? )
tadzik TIL: entering "gode" instead of "doge" in google images in unpleasant 09:13
vendethiel tadzik: french says sorry 09:16
tadzik oooh 09:20
this explains so many things
FROGGS jnthn: I hit a spesh bug, and I think that is the one tadzik++ already have seen 09:55
instead of throwing this: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'
I get a segfault in: MVM_interp_run (tc=tc@entry=0x6035e0, initial_invoke=initial_invoke@entry=0x7ffff7a03222 <toplevel_initial_invoke>, invoke_data=<optimized out>) 09:56
at src/core/interp.c:4292
4292 if (IS_CONCRETE(check) && STABLE(check) == want_c) {
(check is NULL)
jnthn Are you using MoarVM HEAD? 09:57
tadzik oh yes, that's what I was getting too 09:58
FROGGS jnthn: yes
jnthn OK
I assume you weren't doing the Panda install?
FROGGS weird is, I made clean in v5, but still get this
jnthn: no panda involved
so I am removing my Perl5/ in install.. 09:59
jnthn ah, ok
FROGGS yeah, it continues now.... so is MoarVM+spesh messing with --libpath? should be very unlikely 10:01
Error while compiling op setcodeobj: QAST::Block with cuid cuid_1_1400407321.74398 has not appeared 10:02
make: *** [lib/Perl5/if.moarvm] Fehler 1
:o(
so, that seems to come from something that changed in rakduo/nqp/moarvm since This is perl6 version 2014.04-36-g87a6833 built on MoarVM version 2014.04-11-g4749729 10:03
jnthn oh, so that wasn't a regression introduced by my attempted refactors after all?
nwc10 bisect! 10:04
FROGGS jnthn: at least does not look like...
but wait, I was able to build that yesternight
nwc10 (it is not obvious to me how to automate a reliable bisect of the threesome)
FROGGS to me neither 10:05
nwc10 as moarvm is supposed to be backwards compatible, and also nqp, I think the start is to hold moarvm and nqp constant and attempt earlier rakudo revisions until a good point is found
then keep rakudo and moarvm constant and bisect nqp
and then moarvm 10:06
FROGGS jnthn: stripping '$*ACTIONS := %*LANG<Perl5-actions>;' from Perl5.nqp triggers the setcodeobj problem 10:12
masak hm, I think we shouldn't start with the question "what's the percentage of *all* the CPAN modules that are pure?" 10:53
FROGGS .oO( 0%? ) 10:55
shouldn't? 10:56
masak maybe start with the smaller question "how do the dependency trees look for these popular modules (like DBIx::Class, Moose, Mojolicious, App-cpanminus, Plack)?"
masak just found metacpan.org/lab/dependencies?module=Moose
"(...Moo, DateTime, Dist-Zilla, Dancer, App-perlbrew, Try-Tiny, Catalyst, Test-Simple...)" 10:57
FROGGS yeah
masak I'm picturing the resulting graphs. they're pretty. 10:58
yes, I will do this.
tadzik++ # "We're good at libraries, but not at products"
FROGGS masak: deps.cpantesters.org/?module=DBIx%3A%3AClass 10:59
masak FROGGS++
woolfy PLPW is heavy with Perl 6... 11:00
masak \o/
masak ooh -- deps.cpantesters.org/static/purity.html 11:04
so deps.cpantesters.org can already show this information.
deps.cpantesters.org/?module=Moose&...pureperl=1 11:05
moritz \o 11:14
lizmat moritz o/ 11:15
masak moritz! \o/ 11:16
moritz: we just saw tadzik demo Space Invaders!
er, tadzik++
moritz tadzik++ 11:17
FROGGS hi moritz 11:19
masak "we are not a spam company. [...] we send over 1e8 emails per day." :P 11:20
flussence good *, * :)
masak *, flussence 11:24
huh -- the hackathon topic list has only Perl 6 things.
dalek kudo/nom: 4ea6b62 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Mention optimizations in grep/first and friends
tadzik :) 11:26
flussence I've made a nice, self-contained, readable, installable... nondeterministic threading crash :D 11:27
(try running `TEST_CORPUS_THREADED=1 panda install Test-Corpus` if you have nothing better to do :) 11:28
(but be warned one of the failure modes is eating all your memory) 11:30
jnthn om nom nom memory 11:35
tadzik Sterods slides uploaded feather.perl6.nl/~tjs/talks/plpw14/
masak suggestion: move throws_like from Test::Util to Test 11:36
vendethiel tadzik++
flussence tadzik++ 11:46
nwc10 FROGGS: ooh, curious. On "my" other machine: not ok 36 - seekfh with invalid whence fails 12:02
(passes on x86_64 Linux, fails on pp64 Linux) 12:03
FROGGS hmmm 12:10
weird
colomon tadzik++ # slides
masak moritz: would you be fine with moving throws_like into Test.pm ? 12:19
huh. Test::Util isn't on modules.perl6.org/
oh, it's in t/spec! 12:20
masak colomon: Test::Junkie could probably be updated to use jnthn++'s new IO::Notification stuff. 12:22
(removing the sleep .5 in the core of the module) 12:23
colomon intended for [Coke] ?
colomon tries to remember if he ever had anything to do with Test::Junkie
masak colomon: github.com/colomon/Test-Junkie/ 12:27
colomon ah, yes, before we got the idea of moving modules that desperately needed a bug fix to perl6 ownership. :) 12:37
does IO::Notification work everywhere?
masak dunno 12:40
jnthn colomon: On MoarVM we use the libuv abstractions for it, which should work in a range of place,s though htere rae quickr
s
there are quirks
oops
colomon by everywhere, I meant, moar, jvm, parrot
masak hm, is there a way to indicate "import module M, and also pass all of its exports along as exports from this module"?
jnthn colomon: oh 12:41
colomon: No, then just Moar.
lizmat r: use lib "t/spec/packages"; use Test::Tap; ok 1
camelia rakudo-moar 4ea6b6: OUTPUT«===SORRY!===␤Could not find Test::Tap in any of: t/spec/packages, /home/p6eval/.perl6/2014.04-261-g4ea6b62/lib, /home/p6eval/rakudo-inst-1/languages/perl6/site/lib, /home/p6eval/rakudo-inst-1/languages/perl6/vendor/lib, /home/p6eval/rakudo-inst-1/languag…»
..rakudo-jvm 4ea6b6: OUTPUT«(timeout)»
..rakudo-parrot 4ea6b6: OUTPUT«===SORRY!===␤Could not find Test::Tap in any of: t/spec/packages, /home/p6eval/.perl6/2014.04-261-g4ea6b62/lib, /home/p6eval/rakudo-inst-1/lib/parrot/6.1.0-devel/languages/perl6/site/lib, /home/p6eval/rakudo-inst-1/lib/parrot/6.1.0-devel/languages/perl…»
jnthn colomon: None of the async stuff works on Parrot
colomon: We can do it on JVM, but not yet ported, afaik
colomon p6: say $*VM.name 12:44
camelia rakudo-moar 4ea6b6: OUTPUT«moar␤»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method name in type Any␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) ␤ …»
..rakudo-jvm 4ea6b6: OUTPUT«jvm␤»
..rakudo-parrot 4ea6b6: OUTPUT«parrot␤»
colomon so we can easily do VM specific code now... 12:45
masak r: say "Hi from a $*VM VM!" 12:46
camelia rakudo-jvm 4ea6b6: OUTPUT«Hi from a jvm VM!␤»
..rakudo-moar 4ea6b6: OUTPUT«Hi from a moar VM!␤»
..rakudo-parrot 4ea6b6: OUTPUT«Hi from a parrot VM!␤»
masak :D
vendethiel would really use labels here :) 12:49
lizmat r: say $*PERL.perl 12:51
camelia rakudo-jvm 4ea6b6: OUTPUT«{"name" => "rakudo", "compiler" => {"build-date" => "2014-05-18T12:12:02Z", "name" => "rakudo", "codename" => "", "ver" => "2014.04-261-g4ea6b62", "release-number" => ""}}␤»
..rakudo-moar 4ea6b6: OUTPUT«{"compiler" => {"ver" => "2014.04-261-g4ea6b62", "codename" => "", "build-date" => "2014-05-18T12:21:04Z", "release-number" => "", "name" => "rakudo"}, "name" => "rakudo"}␤»
..rakudo-parrot 4ea6b6: OUTPUT«{"name" => "rakudo", "compiler" => {"release-number" => "", "build-date" => "2014-05-18T12:27:00Z", "codename" => "", "ver" => "2014.04-261-g4ea6b62", "name" => "rakudo"}}␤»
lizmat for some reason, the current implementation of $*PERL has a compiler sub-hash (object)
lizmat is that something we want to keep? or should the fields in $*PERL<compiler> be moved up one level? 12:52
(like I specced yesterday)
masak lizmat: well, $*PERL<compiler><ver> feels kinda different from $*PERL<ver>... 12:56
jnthn yeah, it's language spec version vs. rakudo version 12:57
masak lizmat: spec/S17-OLD.pod has been sitting still and doing nothing since the day I resurrected it, on 2013-11-03. can I remove it now? 12:57
dalek ecs: ecfddec | masak++ | S17-concurrency.pod:
[S17] spec :expires named for .uniq
12:59
masak lizmat: the spec for uniq/squish makes it seem that the :expires named has 1 second as a default, but the Rakudo implementation shows that that's not the case. can I change the spec to look like 1 is not the default? 13:00
jnthn masak: yeah, I don't think having a default there is useful 13:01
moritz back from celbrating 200 years Norway 13:03
masak happy 200 years without Sweden, Norway! \o/ 13:07
jnthn: oh -- there's nothing to fix. the thing in the spec is just a usage example.
jnthn oh :) 13:11
moritz masak: if it confused you, maybe it'll confuse others too 13:11
masak moritz: maybe. 13:13
masak moritz: I'm just used to S32 giving signatures, I think. 13:13
lizmat++ # teaching people Perl 6
dalek ecs: 94cb8d8 | masak++ | S17-concurrency.pod:
[S17] improve the description of squish/uniq :expires
13:14
masak how was it again -- can I match a named argument against a positional parameter? 13:17
and under what conditions?
tadzik r: [0..2, 2..0].perl.say # that's... unexpected
camelia rakudo-{parrot,jvm,moar} 4ea6b6: OUTPUT«[0, 1, 2]␤»
masak tadzik: no, it's not. 13:18
tadzik: backwards ranges are *empty*. that's a *feature*. ;)
r: say [0..2, reverse 0..2].perl 13:19
jnthn use le sequence operator if you want to go the other way
camelia rakudo-{parrot,jvm,moar} 4ea6b6: OUTPUT«[0, 1, 2, 2, 1, 0]␤»
jnthn r: say 2...0
camelia rakudo-{parrot,jvm,moar} 4ea6b6: OUTPUT«2 1 0␤»
masak tadzik: if this is surprising to you, you haven't felt the pain of accidentally reversing a range and having it contain things.
tadzik oh
alrighty 13:20
masak m: sub numcmp ($x, $y) { return $x <=> $y }; say numcmp(x=>2, y=>7) 13:22
camelia rakudo-moar 4ea6b6: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in sub numcmp at /tmp/UNnhoXhp6N:1␤ in block at /tmp/UNnhoXhp6N:1␤␤»
moritz we got rid of that feature.
masak ladies and gentlebots, we have either a spec fossil, or a fairly serious NYI.
moritz spec fossil
masak moritz: right, so fossil.
masak removes it
moritz it used to be a feature, but was removed
masak there's a guy sitting next to me who was very disappointed that he couldn't get this example to run. :/ 13:23
moritz tell him to put a : before the parameters 13:24
and that $x and $y are lexicals, and thus *private*, including the am^Hname
dalek ecs: 25eb879 | masak++ | S06-routines.pod:
[S06] remove fossil

We no longer map named arguments to positional parameters.
moritz s/am//
jnthn Yeah, that decision dates back some years now...certainly fossil 13:25
masak *nod* 13:26
masak guy next to me solved it with multis, the named multi delegating to the positional one. 13:29
masak but he's also disappointed. in his opinion, S06 was right before I removed the fossil :) 13:30
the best I can offer him is a maybe-future module that restores the old behavior, but that's not much consolation now.
(he seems to have a Python background, and Python does the named-to-positional mapping)
jnthn It works great until you improve/correct a parameter name, release a new version of your module, and then find you broke folk's code... 13:31
*folk's 13:32
masak aye. 13:33
jnthn: I remember us walking along a Russian river and discussing this :)
jnthn aye 13:41
masak grrr 13:43
jnthn ?
masak turns out .squish(:expires) is hard to write tests for.
jnthn I'll bet
masak because it's so *boring*
jnthn We could use a TestScheduler
masak tries again, in a better mood :)
jnthn: I'll get to the TestScheduler, I promise. 13:44
after I implement .squish(:expires)
yes, that works better. 13:45
turns out I only need two tests.
jnthn No, no, you supply it, not promise it :P
masak m: say get 13:54
camelia rakudo-moar 4ea6b6: OUTPUT«There were three men came out of the West␤»
masak m: say get(2)
camelia rakudo-moar 4ea6b6: OUTPUT«No such method 'get' for invocant of type 'Int'␤ in sub get at src/gen/m-CORE.setting:14233␤ in block at /tmp/kt24kd3jSJ:1␤␤»
masak m: my @lines := gather { take get; take get; take get }; say "OH HAI"; say @lines.elems 13:55
camelia rakudo-moar 4ea6b6: OUTPUT«OH HAI␤3␤»
masak guy-next-to-me just ran into the fact that lines() isn't lazy :/ 13:57
rt.perl.org/Public/Bug/Display.html?id=112716
but he wrote a gather which a loop in it, and he seems happy.
jnthn masak: huh, TimToady fixed that quite a while ago, I thought...
moritz masak: gist.github.com/moritz/08274d7e01ef4ff2c244 for the guy next to you 13:58
how to write a primitive binder, part 1 :-) 13:59
jnthn m: for lines() { say $*IN.ins } 14:00
camelia rakudo-moar 4ea6b6: OUTPUT«0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤0␤»
jnthn Hm
moritz $*ARGS, not $*IN
m: for lines() { say $*ARGS.ins }
camelia rakudo-moar 4ea6b6: OUTPUT«===SORRY!===␤Dynamic variable $*ARGS not found␤»
moritz m: for lines() { say $*ARGFILES.ins }
camelia rakudo-moar 4ea6b6: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤»
jnthn Ah, yes 14:01
masak: And perl6-m -e ".say for lines()" works and would not if it weren't lazy
masak: So I suspect some other misunderstanding
moritz or ancient-ish rakudo version 14:01
masak m: class C { has $.foo }; .say for C.^attributes 14:02
camelia rakudo-moar 4ea6b6: OUTPUT«Mu $!foo␤»
masak jnthn: the guy ran some process thing and saw that it read all the lines of the file up front.
jnthn: do you have a good example of creating an attribute dynamically through the MOP? 14:03
masak I'm talking to dexter++, by the way :) 14:03
jnthn masak: Yes, thus why I'm asking what was done ;) 14:06
Remember assignment is mostly eager
masak: timo's ADT module may well do that
masak oh right, that's where it was. 14:08
jnthn: the code was `my @w := $fh.lines` 14:09
timotimo++ # ADT 14:10
jnthn masak: I still don't see the issue 14:13
>perl6-m -e "my $fh = open('README.md'); my @b := $fh.lines; say $fh.ins; say @b[0]; say $fh.ins"
0
# Rakudo Perl 6
1
masak: How did he ascertain it read ahead?
masak jnthn: strace 14:14
jnthn: you can come over here and look if you want :)
(he did.) 14:16
masak ...turns out it was a sinking issue with the last statement of the program. 14:18
vendethiel moritz++ # cool gist 14:28
dalek p: b85f70e | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev for bigint fixes
14:32
dalek kudo/nom: 70ca03e | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp/moar rev for bigint fixes
14:35
vendethiel FROGGS: will that make a huge difference ? 14:38
dalek ast: a4f8732 | (Tobias Leich)++ | S32-num/rat.t:
unfudge test about bigints, RT 121527
14:44
masak moritz: yes, cool gist. I think it went mostly unappreciated in this case, though :) 14:45
FROGGS vendethiel: fixing a bug always makes a difference :o) 14:46
vendethiel definitely underappreciated!
moritz The Underappreciated 10-Minute Hack! 14:48
FROGGS++ 14:49
dalek kudo/eleven: 8bb2c46 | (Tobias Leich)++ | src/core/terms.pm:
assign to PROCESS.WHO instead of bind, so we can "temp" things
kudo/nom: 834a415 | (Tobias Leich)++ | src/core/terms.pm:
assign to PROCESS.WHO instead of bind, so we can "temp" things
14:50
FROGGS more free karma \o/
masak hm, Heroku seems to have undocumented support for Perl 5. 14:55
dalek nda/depends: bdbe638 | (Tobias Leich)++ | lib/Panda/Bundler.pm:
do not try to jsonify match objects
masak I would like to do Perl 6 in Heroku, but I'm not 100% sure where to start. still researching :) 14:59
masak aha. 15:03
we need to be a "Third-Party Buildpack". devcenter.heroku.com/articles/thir...buildpacks 15:04
miyagawa++ # for the Perl 5 buildpack
so it seems that the proximal goal is to create such a buildpack for Rakudo Moar. 15:05
jnthn yay :) 15:07
masak wow, this looks pretty easy, actually. 15:08
masak mainly need to write a setup script like this one: github.com/miyagawa/heroku-buildpa...in/compile 15:11
and one can try it out using `heroku create myapp --buildpack github.com/some/buildpack.git` while experimenting. 15:12
yep, this feels eminently doable.
lizmat hmmm... seems #118601 is fixed :-) 15:13
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118601
dalek ast: 064ab9a | (Elizabeth Mattijsen)++ | S32-str/sprintf.t:
Unfudge #118601 test
15:14
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118601
dalek ast: 09d0bc5 | (Tobias Leich)++ | S01-perl-5-integration/basic.t:
skip code that tries to "use v5"
15:17
tadzik somebody claimed today that you can't fork more than 7 times in rakudo or it will crash. I checked. I can run 10000 forked rakudo processes and generate a load of 3600 without crashing :) 15:20
flussence were they using an OS without a real fork()? :) 15:21
dalek kudo/nom: 3216e73 | (Tobias Leich)++ | src/Perl6/ (2 files):
allow to switch to Perl 5 module by switching to a foreign statementlist

This makes "use v5" work, though this is not the ideal patch for slangs implemented in Perl 6 itself. We only do it this way for now to have something at all. jnthn++ for reviewing
15:22
tadzik maybe :)
masak rn: say sprintf "%x %x", 301281685344656640, 301281685344656669 15:23
camelia rakudo-moar 4ea6b6: OUTPUT«42e5e18b84c9d00 42e5e18b84c9d00␤»
..rakudo-{parrot,jvm} 4ea6b6, niecza v24-109-g48a8de3: OUTPUT«42e5e18b84c9d00 42e5e18b84c9d1d␤»
masak lizmat: doesn't look fixed on moar :/ 15:24
lizmat does the test file "S32-str/sprintf.t" work for you ? 15:25
moritz masak: note that camelia's rakudo version doesn't yet include FROGGS++'s patch
FROGGS true 15:26
lizmat I pulled, rebuild from scratch and got a TODO passed on that file
that's all I know :-)
FROGGS perl6-m -e 'say sprintf "%x %x", 301281685344656640, 301281685344656669'42e5e18b84c9d00 42e5e18b84c9d1d 15:27
LF missing, but yeah, one get the idea :o)
masak ok, FROGGS++ lizmat++ then :) 15:28
woolfy1 What? What? says lizmat. Answer from jnthn: huh? oh... hmmm... What? What? to which lizmat responds: exactly, "WHAT???" 15:51
WAT?
lizmat told me I should say "WAT?"
tadzik I'd like some kind of DESTROY :/ 15:52
woolfy1 sergot_ listens to all this and smiles (what else can you do)
but we have chocolate cookies 15:53
sergot_ Yes, we have! :)
woolfy1 tadzik: I can walk over to you and destroy you, if you really want! 15:53
tadzik woolfy1: can I hire you? I have a lot of objects that need destroying at semi-random moments :) 15:54
woolfy1 Hmm. I am offered a job at destroying tadzik's notebook, than he tells me I also should destroy the notebooks of FROGGS and jnthn and lizmat and sergot 15:55
tadzik why do you think yours is safe :o 15:57
captain sinking with her ship, or something?
masak wow, cool. evening-atoll-4752.herokuapp.com/ -- my first Heroku app deployed. 16:02
it's kinda cool to have something be deployed on `git push`.
(disappointment warning: this is Ruby/Sinatra, not Perl 6)
jnthn aww :P
masak :)
but I don't believe the step to Perl 6 will be that big. 16:03
jnthn
.oO( To be Frank, I'm disappoint... :P )
16:03
masak need to have it install Moar, nqp, Rakudo, panda, and Bailador.
xfix std: null 16:06
camelia std ec3d853: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'null' used at line 1␤Check failed␤FAILED 00:01 120m␤»
xfix std: NULL
camelia std ec3d853: OUTPUT«===SORRY!===␤Undeclared name:␤ 'NULL' used at line 1␤Check failed␤FAILED 00:01 120m␤»
xfix Hm, I wonder, could it be possible to have a special error for null? 16:07
tadzik why? 16:08
it is an undeclared name :)
masak xfix: why do you feel the need for a special error? 16:09
vendethiel just crashed his perl5 by typing (-v)
xfix std: undef 16:10
camelia std ec3d853: OUTPUT«===SORRY!===␤Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ an undefined type object such as Any or Int,␤ :!defined as a matcher,␤ Any:U as a type constraint,␤ Nil as the absense of an expected valu…»
xfix Because undef has a special error.
masak yes. because undef has a history in Perl 5. 16:11
NULL and null don't.
xfix std: if (True) { } else if (False) {}
camelia std ec3d853: OUTPUT«===SORRY!===␤Please use 'elsif' at /tmp/JYhJLEy2BT line 1:␤------> if (True) { } else if ⏏(False) {}␤Confused at /tmp/JYhJLEy2BT line 1:␤------> if (True) { } else if ⏏(False) {}␤ expecting …»
xfix else if doesn't exist in Perl 5.
tadzik heh 16:12
xfix I personally think that errors should help moving from other languages.
flussence p5: ping
eval ping
eval: ping?
vendethiel ENOP5
flussence :( 16:13
moritz p5eval is down due to lack of hardware by its maintainer, I've heard
masak xfix: drop it. there's no use case for someone coming from another language and being confused because Perl 6 doesn't have a custom error message for it. :)
xfix std: <?php phpinfo(); ?> 16:15
camelia std ec3d853: OUTPUT«ok 00:01 121m␤»
xfix Hm, I guess this helps with polyglots.
(if someone is crazy enough to make polyglot with PHP) 16:16
flussence std: <!DOCTYPE HTML 2.0> <P/Hello world/> 16:17
camelia std ec3d853: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix > instead at /tmp/PNotHxzXjj line 1:␤------> <!DOCTYPE HTML 2.0> <P/Hello world/⏏>␤Undeclared name:␤ 'P' used at line 1␤Undeclared routine:␤ 'world' …»
flussence ack, caught...
xfix You probably meant <P/Hello world/
If you want to use SHORTTAGS.
flussence it's been a while since I actually wrote SGML...
std: <foo/bar/> 16:18
camelia std ec3d853: OUTPUT«ok 00:01 121m␤»
flussence std: <foo/bar baz/>
camelia std ec3d853: OUTPUT«ok 00:01 121m␤»
flussence LTA ttiar error? 16:19
std: <foo> <bar>
camelia std ec3d853: OUTPUT«===SORRY!===␤Bogus term at /tmp/drCGnGo7EH line 1 (EOF):␤------> <foo> <bar>⏏<EOL>␤Undeclared routine:␤ 'bar' used at line 1␤Parse failed␤FAILED 00:01 123m␤»
flussence r: <foo> <bar>
masak flussence: no, because the second '<' is read as an operator. 16:20
camelia rakudo-jvm 834a41: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 834a41: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> <foo> <bar>⏏<EOL>␤ expecting any of:␤ argument list␤ postfix␤ infix stopper…»
flussence r-pm gets it :)
masak don't really know how.
vendethiel LTM ? 16:21
moritz LTM, I guess
vendethiel *the magical word*
moritz there's a 'term' infix for generating the error message
masak waves the magical LTM explanation
flussence r-m: <foo> < bar>
camelia rakudo-moar 834a41: OUTPUT«===SORRY!=== Error while compiling /tmp/6hQZJjKlcH␤Two terms in a row␤at /tmp/6hQZJjKlcH:1␤------> <foo> < bar>⏏<EOL>␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ …»
moritz and it parses more than the infix operator itself
xfix flussence: Also, you are probably aware of that, but practically to HTML web browser (no, W3C Validator is not web browser) implements SGML SHORTTAG.
(well, technically emacs-w3 supports SGML SHORTTAG, but that's all) 16:22
flussence I wonder if that Amaya thing does it "correctly"...
xfix No. 16:23
Even W3C doesn't care. 16:24
Also, these days many browsers implement HTML5 parsing, which forbids SGML SHORTTAG support.
And SGML SHORTTAG support is incompatible with XHTML1 Appendix C, which recommends using syntax like <br /> (with SGML SHORTTAG support, it's parsed as <br>&gt;). 16:25
FROGGS m: class Foo { method bar { my regex baz { . }; "a" ~~ /<baz>/ } }; say Foo.bar 16:27
camelia rakudo-moar 834a41: OUTPUT«Type check failed in binding <anon>; expected 'Foo' but got 'Cursor'␤ in regex baz at /tmp/DSUtikOSXt:1␤ in method INDRULE at src/gen/m-CORE.setting:13063␤ in method ACCEPTS at src/gen/m-CORE.setting:13136␤ in method bar at /tmp/DSUtikOSXt:1␤…»
FROGGS why?? ó.ò
jnthn It probably took the surrounding class as the cursor type for the regex... 16:27
xfix Appendix C shouldn't have been written IMO. It allows writting XHTML with text/html, which is just wrong. And this HTML is invalid HTML that just happens to work in many web browsers. 16:28
jnthn I guess for my scoped ones it maybe should not do that.
xfix It also annoys me that Perl 6 website claims to be XHTML from doctype, but sends itself as text/html, and if it would be parsed as actual XHTML, the browser would simply fail to parse the website. 16:32
dalek ecs: b7de316 | (Elizabeth Mattijsen)++ | S28-special-names.pod:
More precisely spec $?PERL / $*PERL
16:34
moritz xfix: you're welcome to implement content negotiation that serves it as application/xml+xhtml if the browser accepts it 16:34
xfix That's not the thing. 16:35
moritz that's exactly the thing.
xfix The website uses &nbsp;, and none of browsers load entities for XML documents.
The validator may claim that &nbsp; is valid, but browsers won't download DTD just to get entities.
moritz you can only serve xhtml with the proper content-type, because $older_browsers 16:36
xfix: so what?
xfix: they have integrated the (now immutable) DTD into the html parser
that's a valid optimization.
dalek kudo/nom: 0a6c98c | (Elizabeth Mattijsen)++ | / (7 files):
Properly implement $*PERL according to spec

This introduces the Perl and Compiler classes
16:37
xfix Hm, ok.
Well, I guess I confused it with something else.
xfix <link rel="icon" href="/favicon.ico" type="favicon.ico" /> 16:39
There is also that.
type="favicon.ico" is not valid relation type, but XHTML validator depends on DTD which cannot tell that.
moritz wha' abou' it?
xfix Not that this causes parse errors, but it's still invalid XHTML.
moritz what's invalid? 16:40
xfix type="favicon.ico"
moritz what's invalid?
xfix favicon.ico is not MIME type. 16:40
dalek kudo/nom: 0a2f0cd | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Mention $*PERL upgrade
16:41
moritz and the DTD say it must be?
xfix CDATA 16:42
Which means anything.
dalek kudo/nom: 57a08ad | (Tobias Leich)++ | src/Perl6/Actions.nqp:
fix my scoped regexes in classes

Regexes tried to install itself into the class, and then exploded by getting a Cursor instead of the type of the class.
moritz so, what's invalid? 16:44
xfix www.w3.org/TR/html401/struct/links....def-type-A 16:45
dalek ast: 6fac9f4 | (Elizabeth Mattijsen)++ | S17-supply/interval.t:
We're using Perl 6 here!
xfix Proper MIME types have `/` character. For example, `text/html`. 16:46
flussence I'll be travelling for the next 4h or so; I'll go through and WHATWG-HTMLify the source in the meantime to fix any lingering problems :)
itz is there any sort of beer meeting on Monday in Prague? I don't see anything on the website apart from a food event on the Tuesday night
moritz xfix: "This attribute gives an advisory hint as to the content type of the content available at the link target address." doesn't say it must be a content type 16:47
jnthn itz: I didn't see anything on the website either
moritz xfix: only that it provides a hint towards the content type
xfix 21<moritz>21 xfix: "This attribute gives an advisory hint as to the content type of the content available at the link target address." doesn't say it must be a content type 16:48
As for definition of "advisory hint", it means that it doesn't have to be specified, not that you may write anything here.
moritz xfix: where is that defined? 16:49
xfix www.w3.org/TR/html401/types.html#ty...ntent-type 16:50
moritz I read "advisory" as "the UA shouldn't consider it definitive, but rather use it only to decide whether to download the resource, and take the content type from that second request as definitive"
xfix To be honest, DTD defines it as %ContentType;, except %ContentType; is alias for CDATA. 16:51
Anyway, I wonder, would it be possible to move from XHTML sent as text/html to HTML5 for Perl 6 webpage?
moritz it's a spec. If the spec wants it to be a content type, it could just state clearly that it needs to be a content type 16:52
jnthn dinner &
moritz since it doesn't, authors have some liberties
xfix: what would be the benefit?
xfix Sure, if you think this way, let's all write <META http-equiv="Content-Type" content="I don't know">. 16:54
moritz if the content type is the main concern, fix the content type
xfix DTD allows that.
dalek href="https://perl6.org:">perl6.org: a763f62 | (Konrad Borowski)++ | includes/header:
Remove type="favicon.ico"

It's not valid according to XHTML standard, and doesn't mean anything. Therefore, it can be easily removed.
16:59
xfix karma Konrad Borowski 16:59
moritz xfix: that's not quite true. If user agents understand it, it has value. 17:00
xfix Yes, it's represented in DOM.
moritz and no, the xhtml standard does not forbid it.
xfix But it doesn't mean anything.
moritz it means whatever the communication partners agree on that it means
xfix Well, XHTML expects content type here (according to DTD). While it's true that %ContentType is aliased to CDATA, it's still content type. 17:01
moritz gives up
dalek href="https://perl6.org:">perl6.org: 3f0dcf6 | flussence++ | includes/header:
Change doctype to WHATWG-HTML
href="https://perl6.org:">perl6.org: 5993415 | flussence++ | includes/header:
Fix cosmetic errors in <head>

   - Add correct mime type to favicon <link>
   - Remove redundant <style> type attribute
   - Fix a template variable name typo (but it was unused anyway)
flussence &
xfix <link rel="icon" href="/favicon.ico" type="favicon.ico" /> 17:02
At this point I wonder why I even bother.
favicon.ico is not MIME type.
dalek href="https://perl6.org:">perl6.org: 75b4f5d | flussence++ | includes/header:
Fix duplicate line typo
17:03
xfix On 25/Dec/2010, Perl 6 website had 4636 unique visits. Interesting... 17:09
masak dinner & 17:12
dalek href="https://perl6.org:">perl6.org: acea17d | (Konrad Borowski)++ | source/index.html:
Use alt which accurately describes download image
17:20
timotimo much hackathon? 19:21
tadzik timotimo: feather.perl6.nl/~tjs/talks/plpw14/#/16
hackathon's over; I'm on the train home, everyone else is dinnering afaik 19:22
timotimo i take it the conference is over as well? 19:51
i spent the day renovating the future apartment of friends
tadzik yes, it's over 19:52
it was really good
better than the last year's PLPW
we're evolving \o/
timotimo way cool :)
tadzik and a new PM group has formed and volunteered to organize the next year's workshop in Gdańsk 19:53
timotimo we started out thinking we'd be replacing the wallpaper in one room and paint over the existing wallpaper in all other rooms
tadzik so, awesome :)
timotimo now we've taken the wallpaper off of the walls in three different rooms and one room is still to be done
tadzik and the steroids talk was well received, I like that :)
timotimo yays :)
moar is only going to get better for stuff :)
tadzik it is getting better all the time :) 19:54
so, no wallpaper after all? :)
timotimo we're only keeping half of the kitchen and three quarters of the bedroom and we are not doing any of the ceilings 19:55
it would have been over really quickly if the wallpaper would have come off in one layer 19:56
tadzik :D
timotimo but there was quite a lot of residue we had to remove "manually" with spatulas
and the people who did the renovation last time(s) weren't very good at it
there were many WTF per hour
tadzik sounds like an extra layer of abstraction has been solving problems before :)
timotimo yeah, at least one party was contempt with just painting over the existing layer 19:57
in some parts it seemed like there were three layers of (distinct) paint
and there was wallpaper and paint behind the radiators
tadzik well, that was your initial plan too :)
timotimo you're right. we got a spark of sanity, though 19:58
also, in the kitchen there was actually a layer of paint below the wallpaper
which is just ... wtf?
tadzik so, soemone was content with just wallpapering over the existing paint :P
so, the apartment is a bit bigger now, no? :P
timotimo aye, we've certainly won a few cubic centimeters 19:59
but the paint that was under the wallpaper had been applied directly to the wall
you know anchor bolts, right? 20:01
what do you do with them if you no longer need the hole the screw used to be in?
apparently someone thought it would be a great idea to leave the anchor bolts in and fill them with filling mass stuff 20:02
tadzik uh
well, I just leave them be, I'll probably want to hang something in the future
and they don't look all that bad, at least in the quantity that I have them
timotimo you have hundreds? :)
tadzik no, I may have like, 10 ;) 20:03
timotimo OK
well, at least you wouldn't leave them in and fill them up with putty
tadzik nah
timotimo you'd keep them or pull them out before filling the hole
tadzik unless I wanted to hide them from a landloard or something
timotimo anyway, i'm going to take a shower and unwind my stack at the local hackspace
that makes no sense :)
tadzik well, you'd still want to pull them out probably :) 20:04
unless they were stuck or something, I dunno
the idea of being forbidden from keeping a dog by a landlord is insane enough to me
and having it written down in a contract that a gecko is okay
timotimo %) 20:25
awwaiid are hyper-operators (allowed to) run in parallel if the implementation wants? 20:29
skids As long as the results are ordered correctly.
Side effects need not be ordered.
awwaiid cool. that is the programmer's problem for depending on side-effects in such a world, eh? 20:30
skids Well, it's the programmer's fault for relying on side-effect ordering when the specification says you cannot. 20:31
I don't generally hate on side effects to the extent that the heavy FP folks do, personally. 20:32
timotimo m: (1, 2, 3, 4, 5, 6)>>.&say 20:33
camelia rakudo-moar 57a08a: OUTPUT«6␤4␤2␤5␤3␤1␤»
timotimo we actually shuffle around the values if you do a hyperop, even though we don't parallelize yet 20:34
just to make extra sure the programmer doesn't rely on the ordering 20:35
though it is still deterministic in our implementation
awwaiid timotimo: why did you do &say instead of (1,2,3,4)>>.say ? 20:38
timotimo oh 20:39
i forgot there's a say method :)
you can .& any sub in scope
awwaiid I can do 3.^methods, but I don't see "+" as a method -- is there a way to see that through introspection?
I'm going to give a talk or two on perl6 and I'm brushing up :)
skids + is a sub.
timotimo you can go through SETTING::.pairs
skids or &infix:<+>.candidates.say if you already know the name. 20:43
skids tries to fathom how to go about debugging a moar "inconsistent bind result" 20:45
timotimo well, if you go through the SETTING::.pairs (or is it CORE::?) you can look at the signatures and find anything that matches your type or parent types 20:46
skids timitimo: SETTING::.pairs worked for me.
awwaiid what do I do with SETTING::.pairs? I see some stuff about Mu that isn't too helpful 20:48
I like that &infix:<+>.candidates.say, it's pretty interesting 20:49
skids
.oO(HOWTO curried introspection)
awwaiid &infix:<+>.candidates>>.perl>>.say even :) 20:50
awwaiid I like to know some of this basic introspection stuff, makes it easier to poke around on the REPL without looking at documentation or source :) 20:52
dwarring r: &infix:<+>.candidates>>.perl>>.say 20:53
camelia rakudo-parrot 57a08a: OUTPUT«sub infix:<+> (Int:D $x, Date:D $d) { #`(Sub|-6805760002719140261) ... }␤sub infix:<+> (Duration:D $a, Duration:D $b) { #`(Sub|-6805760002719122110) ... }␤sub infix:<+> (Duration:D $a, Real $b) { #`(Sub|-6805760002719105715) ... }␤sub infix:<+> (In…»
..rakudo-jvm 57a08a: OUTPUT«sub infix:<+> (Int:D $x, Date:D $d) { #`(Sub|780530416) ... }␤sub infix:<+> (Duration:D $a, Duration:D $b) { #`(Sub|2044305003) ... }␤sub infix:<+> (Duration:D $a, Real $b) { #`(Sub|1107153240) ... }␤sub infix:<+> (Instant:D $a, Duration:D $b) { #`(Su…»
..rakudo-moar 57a08a: OUTPUT«sub infix:<+> (Int:D $x, Date:D $d) { #`(Sub|72812848) ... }␤sub infix:<+> (Duration:D $a, Duration:D $b) { #`(Sub|72570432) ... }␤sub infix:<+> (Duration:D $a, Real $b) { #`(Sub|72570144) ... }␤sub infix:<+> (Instant:D $a, Duration:D $b) { #`(Sub|72…»
skids m: &infix:<+>.assuming(3).candidates.say # ? 20:57
camelia rakudo-moar 57a08a: OUTPUT«sub CURRIED (*@pos, *%named) { #`(Sub|140328309456552) ... }␤»
dwarring r: &infix:<+>.candidates>>.signature>>.say 21:01
camelia rakudo-{parrot,jvm,moar} 57a08a: OUTPUT«:(Int:D $x, Date:D $d)␤:(Duration:D $a, Duration:D $b)␤:(Duration:D $a, Real $b)␤:(Instant:D $a, Duration:D $b)␤:(Instant:D $a, Real:D $b)␤:(Complex:D \a, Real \b --> Complex)␤:(Int \a, Rational \b)␤:(Rational \a, Rational \b)␤…»
skids wonders at the '&bark:(Dog)' syntax in S06 priming section. 21:04
skids I can too adverb that. Stop being such an adverb! :-) 21:11
awwaiid hah 21:12
awwaiid what is Int:D ? 21:15
skids A defined Int.
As opposed to Int:U which onli matches (Int) (and children classes) 21:16
awwaiid interesting. Is ':' part of the name directly, or does ':D' mean 'defined-thing' always?
(feel free to link me somewhere if this is documented)
skids I think that syntax is in signatures only.
awwaiid ah 21:18
skids perlcabal.org/syn/S12.html#Abstract...rete_types 21:19
So I guess there is more to it than signatures. 21:20
timotimo (a happy int) 21:23
vendethiel still thinks :D should be the default, if :_ exists 21:24
timotimo :_?
oh, i see 21:25
timotimo In standard Perl 6, Int is generally assumed to mean Int:_, except for invocants, where the default is Int:D. - that's not how rakudo does it 21:28
skids m: 3.new(:VALUE(2)).say # case in point. 21:29
camelia rakudo-moar 57a08a: OUTPUT«0␤»
timotimo that's not what i meant, though 21:30
you can call any method on the type object as long as they don't try to $ 21:31
access $! variables
jnthn, can i reach you at the moment? 21:45
skids Oddly, FROGGS++ patch for bigint literals fixes rakudo but not nqp, unless something got strangely hosed with my builds. 21:50
dalek kudo/nom: 4a8eb3d | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Fix advent test fail caused by grep optimization

MMD candidates for grep and friends where selected on Callable and Regex, instead of the more correct Callable:D and Regex:D. This caused grep expecting to smartmatch on Callable type to fail.
22:24
timotimo i don't know enough about the innards of Array.pm to build a proper assign_pos for the typed arrays 22:31
what is p6bindattrinvres for, for example?
timotimo for assign_pos, i'll always have to create a container with p6scalarfromdesc? 22:34
dalek rl6-roast-data: 69cb7d5 | coke++ | / (6 files):
today (automated commit)
22:40
timotimo well, it seems like i can just copy the way the supertype's assign_pos works 22:45
though in that case it may already have that implementation inherited from Array itself
timotimo p6: my Int @foo; say @foo.WHAT; 22:50
64MAAITRZ rakudo-{parrot,jvm,moar} 57a08a: OUTPUT«(Array[Int])␤»
..niecza v24-109-g48a8de3: OUTPUT«Rebuild in progress␤»
camelia rakudo-{parrot,moar} 57a08a: OUTPUT«(Array[Int])␤»
..niecza v24-109-g48a8de3: OUTPUT«(Array)␤»
..rakudo-jvm 57a08a: OUTPUT«Rebuild in progress␤»
timotimo p6: my int @foo; say @foo.WHAT;
64MAAITRZ rakudo-{parrot,jvm,moar} 57a08a: OUTPUT«(Int)␤»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/tmpfile line 1:␤------> my⏏ int @foo; say @foo.WHAT;␤␤Parse failed␤␤»
camelia rakudo-{parrot,jvm,moar} 57a08a: OUTPUT«(Int)␤»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/tmpfile line 1:␤------> my⏏ int @foo; say @foo.WHAT;␤␤Parse failed␤␤»
timotimo LTA error, IMHO
dalek href="https://perl6.org:">perl6.org: ae390ec | flussence++ | / (16 files):
Replace LHF anon divs with semantic counterparts
22:58
flussence (couldn't find anything else to nitpick :( )
(did remember to test IE8, don't panic) 22:59
timotimo cool :)
can we get a meta generator and generation date+time? 23:00
timotimo flussence: perl6.org/about/ - do you see the "if you want to contribute" text getting split into two pieces, one of which is located in an awkward spot near the top? 23:08
perl6.org/documentation/ - holy fuck, this looks b0rked
oh, full refresh fixed it
never mind in that case
flussence yeah, that's the one downside 23:12
the files are static, so they get cached "properly" :)
timotimo aye
dalek href="https://perl6.org:">perl6.org: 628cfa8 | flussence++ | README.md:
Fix indents so code block renders correctly
23:17
tadzik wow, Poznaniers are still drinking :D 23:29
jsn_ (sorry for the off-topic spam: new AI project) drive.google.com/folderview?id=0Bx...sp=sharing 23:40