»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moderator on 10 October 2009.
00:00 jrtayloriv joined 00:01 ihrd left 00:06 frew joined
cognominal rakudo: say "\\c[LATIN CAPITAL LETTER A, COMBINING RING ABOVE]" 00:13
p6eval rakudo 54cfe4: OUTPUT«Å␤»
jnthn \\o/
OK, sleep time... 00:15
o/ 00:16
pmichaud Your score: 506 CPM (that is 101 WPM) 00:21
Your score: 562 CPM (that is 112 WPM) 00:23
cognominal rakudo: say ord \\c@ 00:24
p6eval rakudo 54cfe4: OUTPUT«Confused at line 2, near "@"␤in Main (file <unknown>, line <unknown>)␤»
pmichaud rakudo: say ord "\\c@"
p6eval rakudo 54cfe4: OUTPUT«0␤»
cognominal oops 00:25
00:25 shinobi-cl left 00:29 rhr joined 00:41 synth joined 00:49 payload joined 00:50 eternaleye joined 00:59 rhr_ joined 01:01 revdiablo joined 01:03 Confield left
avuserow hugs hugme 01:08
01:22 athomason joined
diakopter shuffles groggily around 01:32
dalek p-rx: 4d50dbc | pmichaud++ | src/PAST/Compiler-Regex.pir:
Adjust zerowidth handling slightly in enumcharlist.
01:33
p-rx: 8c37aa5 | pmichaud++ | src/Regex/P6Regex/ (2 files):
Refactor backtracking modifiers, add :ratchet modifier.
01:38 nihiliad joined 01:40 mikehh_ joined 01:45 rhr joined 01:50 Confield joined 02:12 hercynium joined 02:17 shinobi-cl joined 02:19 FOAD_ joined 02:20 PZt joined 02:23 rhr_ joined 02:27 nbrown joined 02:28 KyleHa joined 02:37 shinobi-cl left 03:04 rhr joined 03:17 s1n joined, ShaneC joined 03:28 aerio joined
pugs_svn r28783 | kyle++ | [t/spec] Test for RT 65658 03:32
03:33 envi^home joined
diakopter hi channel 03:50
avuserow hello diakopter 03:51
03:55 iblechbot joined 04:02 envi^office joined 04:17 FOAD_ joined 04:28 eternaleye_ joined 04:37 zloyrusskiy joined
dalek p-rx: b9ea370 | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Factor out creation of regex sub for <nibbler> nodes.
04:44
p-rx: 3af996e | pmichaud++ | src/Regex/P6Regex/ (2 files):
Add regex parameters to named assertions.
p-rx: 9ca78a9 | pmichaud++ | (2 files):
Add <before> builtin subrule.
04:44 schemer999iphone joined 04:49 schemer999ipho-1 joined 04:55 schemer999ipho-2 joined
dalek p-rx: a3bc5aa | pmichaud++ | (2 files):
Add <?> (null) and <!> (fail) assertions.
04:55
05:00 schemer999iphone joined 05:05 schemer999ipho-1 joined 05:10 schemer999ipho-2 joined 05:16 schemer999iphone joined
sjohnson im in your channel, readin yer messages 05:19
05:21 schemer999ipho-1 joined 05:26 schemer999ipho-2 joined 05:31 schemer999iphone joined 05:33 eternaleye joined
colomon Juerd: I believe they've moved several Newfoundland towns in the last fifty years. 05:33
05:37 schemer999ipho-1 joined
sjohnson is from Canada too 05:37
colomon is not from Canada (unless you mean ancestrally) but grew up on Michigan/Ontario border. 05:47
05:50 FOAD_ joined 05:57 JimmyZ joined 06:01 agentzh joined
diakopter std: my (%, $, $) 06:08
p6eval std 28783: OUTPUT«ok 00:02 105m␤»
06:11 edgar joined 06:31 kst joined 06:40 rfordinal joined, NorwayGeek joined 06:44 FOAD_ joined
moritz_ japhb: feel free to commit your changes, I'll review them and update the server as soon as I have Calendar::Simple installed (have to wait for my admin) 06:48
phenny moritz_: 13 Oct 22:35Z <japhb> tell moritz_ I have a version of channel-index.pl that produces *much* cleaner output, but: 1) It requires Calendar::Simple (should be easy, it's even packaged on Debian), and 2) To make testing easier, I reorganized some of the code, so the diff is most of the file. Should I commit, send you a patch, send you the file, ...?
japhb Oh drat, I've forgotten my pugs repo auth info 06:53
06:55 NorwayGeek joined
japhb a-ha! Think I've found it! 06:56
Double drat. Appears to be old password 06:57
Anyone here have the power to reset my Pugs repo password (or have the correct URL to do so myself, the URL seems to have rotted) 06:59
moritz_ commitbit.pugscode.org/admin/project/Pugs/people 07:00
commitbit.pugscode.org/prefs actually
japhb Wow, crazy slow 07:01
Can't log in here, and no obvious way to request a reset 07:02
JimmyZ yes
It's really slow.
moritz_ japhb: are you 'geoffb' in the pugs repo? 07:03
japhb moritz_, yup
moritz_ japhb: ok, passwort re-sent
japhb moritz_, thanks ... now waiting for it to arrive on my end. :-) 07:04
07:09 iblechbot joined
pugs_svn r28784 | geoffb++ | [irclog] cgi/channel-index.pl: Redesign calendar HTML generation 07:15
japhb Wheee
finally
Thanks again, moritz_
sjohnson can i have a small perl 6 task that would contribute to the cause? 07:17
i was thinking of reading the camel book from cover to cover, if that might help
but don't want to waste time if the paradigm has shifted considerably
07:19 payload joined
sjohnson i work fulltime, do quality check on anime, learn japanese and play pool on my freetime, but would like to squeeze some perl 6 work in 07:20
07:23 rfordinal joined
moritz_ sjohnson: it depends on what kind of task you want 07:24
sjohnson: I usually recommend writing tests as a start
and learn Perl 6 along the way
07:24 donaldh joined
moritz_ other options include writing mailing list summaries 07:24
or writing modules, and reporting/discussing bugs along the way 07:25
07:26 rfordinal left 07:33 bigpresh_ joined 07:40 donaldh left
sjohnson moritz_: will do 07:47
Matt-W Morning 07:48
sjohnson hi matt 07:50
07:58 mariuz joined
mathw That's better. I never liked that hyphen. 07:59
sjohnson they don't call you math for nothing 08:04
( `ー´)
mathw Umm
sjohnson mathw == good at math
mathw Some parts of it
Like... what's 2+"
(a type error)
08:05 szabgab joined
mathw (har har. I'm so amusing at 9am on a boring meeting day) 08:06
sjohnson it's okay mathw , i've been there for those boring meets
i try to spice it up anyway i can
sjohnson has been there
i feel asleep when i was hired as a programmer for a provincial power company 08:07
and i actually fell asleep during it
moritz_ japhb: irclog.perlgeek.de/perl6/ that's a wee bit empty now...
mathw It's not so much boring as frustrating. We're going to go in there and there'll be pointless bickering. 08:08
sjohnson and then someone directed the vonersation at me, and i tried my best to regain my composure
mathw I'm going to do my usual strategy and sit in the corner and doodle
sjohnson you need to fire the capgun off 08:12
and pretend you didn't do it
08:12 rfordinal3643 joined
sjohnson i was working at a ski hill as a programmer, and when my buddy who knows a lot more than i do about electricity took apart an electrical panel to install a power surge 08:12
i planned a week in advance to bring a capgun to work with the red circular ammo, and when the box was off, i pretended to meddle around with a screwdriver at the live wires 08:13
and fired the capgun using a bit of sleight of hand
mathw That sounds like far too much effort 08:14
sjohnson probably, but i don't regret it
... probably not a good way to spice up the boring meetings though :( 08:15
mathw No
We're already going to have to put up with a fire alarm test half an hour in
Mumble mumble
sjohnson i hope this doesn't sound offending 08:16
offensive*
JimmyZ oh irclog losts Calendar.
moritz_ japhb: in particular my $dates in the sub get_channel_index is an empty array
sjohnson but my brother worked as a java programmer in a really red-tape type place, and their hired a handicap... and during these kind of boring meetings that no one liked
he yelled "BORRRRING"
and i think they started to realize what a waste of time it was 08:17
this is also a true story, as hard as it is to believe
mathw Maybe I should stop resisting the urge to shout 'get on with it'
Trinity94 everyone's so afraid to speak their mind :P
sjohnson pretty much 08:18
a good friend of mine's dad is a retired successful businessman, but he insists on too many needless meetings where nothing is accomplished
and we both believe it is a complete waste of time, in the name of formality
.. now go get 'em, tiger. 08:19
( `ー´)
pugs_svn r28785 | moritz++ | [irclog] channel names begin with '#' 08:21
08:22 lumi joined
pugs_svn r28786 | moritz++ | [irclog] the link needs to include the full date, not just the day 08:27
moritz_ calendars are back.
mathw hurrah 08:28
pugs_svn r28787 | moritz++ | [irclog] a bit more space around calendars 08:30
r28788 | moritz++ | [irclog] whoa, that was way too much space, moritz-- 08:31
JimmyZ It's a bit orderless. 08:33
moritz_ the problem is that the tables are of different heights 08:34
which confuses the floating
any idea how to fix that?
any CSS hackers about? :-) 08:35
08:36 eMaX joined 08:49 dakkar joined
JimmyZ moritz_: add height:210px; 08:51
moritz_ JimmyZ: that will work for some font sizes, and breaks horribly for all others 08:52
09:02 Trey left 09:04 Trey joined 09:19 am0c joined
jnthn morning 09:49
JimmyZ inthn: morning 09:54
s/inthn/jhnthn/ ;)
09:56 NorwayGeek joined
am0c OH HAI 09:57
09:57 rfordinal3643 left, nbrown_ joined
mj41_ rakudo.de/ +16000 new tests? 09:59
jnthn mj41_: Ano. :-) 10:00
mj41_ Skvele. 10:02
JimmyZ oh, it is jnthn ;) 10:03
jnthn JimmyZ: There's always tab completion. ;-) 10:04
JimmyZ aha, good to know, thanks
10:11 orafu joined
moritz_ mj41_: yes 10:15
10:19 payload joined
pugs_svn r28789 | jimmy++ | [zh-cn/syn/S02-bits.pod] adde random translations, they need be read from cover to cover to give the correct one. 10:28
dalek kudo: 3eceb87 | moritz++ | docs/ChangeLog:
[docs] update ChangeLog
10:59
jnthn Test question. 11:06
In given.t
sub always_true { Bool::True }
given 1 {
when &always_true { $x++ }
}
We get away with this in Rakudo since...
rakudo: sub always_true { Bool::True }; always_true(1)
p6eval rakudo 54cfe4: ( no output )
jnthn However, that now dies, saying there were too many params passed. 11:07
moritz_ that means that Code.ACCEPTS must be smarter
and doesn't pass any argument when the closure doesn't accept one
jnthn OK, you've answer my question of where do we put the logic to fix this. :-)
ah yes 11:08
method ACCEPTS(Object $topic) {
self($topic);
}
self.arity == 0 ?? self() !! self($topic) 11:09
Is that probably smart enough?
moritz_ I'd think so
spectest will tell :-)
jnthn Let's see how it does
Well, spectest tells lots of things at the moment. ;-)
Some of them are real issues in the new binder. A few things have just turned out to be that it has less, or at least different, bugs to the Parrot one. 11:10
And in places we relied on them. 11:11
I fear people are going to have relied on a few of them in their apps too. We'll find out.
oh youch! 11:13
Infinite recursion.
oh...arity uses grep, which uses code.ACCEPTS, which uses arity..
moritz_ heh :-) 11:14
jnthn I shoulda known to implement that less...interestingly. :-)
moritz_ I guess .arity could be more primitive
jnthn aye, doing that :-) 11:15
Let's see how this works out. :-) 11:16
It's not always good to be idiomatic.
carlin rakudo: class Foo { method bar { Quux.parse('OH HAI'); } }; grammar Quux { rule TOP { .* } }; Foo.bar; 11:18
p6eval rakudo 54cfe4: OUTPUT«invoke() not implemented in class 'Capture'␤in Main (file src/gen_setting.pm, line 206)␤» 11:19
11:19 envi^home joined
moritz_ that's a less-than-awesome error message, but you're not allowed to use Quux until it's declared 11:19
carlin Yeah, I thought that was the problem but the error didn't help much 11:21
11:21 zloyrusskiy joined
jnthn huh. given.t still fails tests (but at least doesn't explode now) 11:21
moritz_ carlin: feel free to ticket it
jnthn What would std do?
carlin moritz_: Okay 11:22
moritz_ std: class Foo { method bar { Quux.parse('OH HAI'); } }; grammar Quux { rule TOP { .* } }; Foo.bar;
p6eval std 28789: OUTPUT«Illegally post-declared type:␤ Quux used at line 1␤ok 00:02 109m␤»
moritz_ it would give an awesome error message, of course! 11:23
jnthn std++
11:30 masak joined
masak ahoj, #perl6 butterflies. 11:31
11:31 zloyrusskiy joined
masak er. ahojte, rather. 11:31
moritz_ lolitsmasak 11:32
11:33 frederico joined
masak \\o/ 11:33
nice to be back.
jnthn ahoj, masak
masak++ # knowing when to use ahoj and ahojte 11:34
masak jnthn! \\o/
jnthn: it's -te when there are, like, several.
jnthn masak: *nod*
masak I've just seen you use it that way.
jnthn :-)
jnthn is busily fixing stuff in resig 11:35
Actually I'm currently doing a refactor I put off before.
We'll get signature literals producing something non-explosive (though also not yet useful...) out of it too. :-)
masak found a bug this morning. 11:36
rakudo: sub foo {}; &foo !~~ Sub
moritz_ p6eval is currently a bit under stress of a fork bomb :(
masak :/
jnthn forking hell!
moritz_ it seems we loosened resource limits too much while trying to get sprixel to work 11:37
jnthn :-|
masak :/
it was definitely too small before.
but maybe that was on the old server.
11:40 am0c joined
masak Your score: 338 CPM (that is 68 WPM) 11:43
need to learn Dvorak and beat that score. :)
jnthn masak: ooh, I beat you...by a little. :-) 11:44
masak is not surprised
moritz_ I did it twice, and had about 300 and 360 CPM
so on average the same as masak :-)
masak we're like twins! 11:45
en.wikipedia.org/wiki/Max_and_Moritz
moritz_ surprisingly that's no news to me :-)
jnthn "highly inventive, blackly humorous tale" :-) 11:46
moritz_ when somebody asks "and where is Max?" I just tell them an integer, which is the count of how often I've been asked that before
since I started counting, that is
masak well, now you know.
jnthn moritz_: Where is Max? 11:47
masak :)
moritz_ jnthn: 18
masak that's not too much.
jnthn No, it's not.
masak I thought it'd be like 214 or something. 11:48
moritz_ no, haven't started counting until after I left school
otherwise it'd be much higher
everybody in Germany knows about max and moritz
masak moritz_: if you'd started at school, I bet you'd have ended up in a near-infinite loop with someone at some point. then the number'd be -much- higher.
moritz_ masak: not being a bot like you, I have some filters against that kind of data skewing :-) 11:49
masak boggles
jnthn masakbot is fine, just don't turn off safe mode. 11:50
jnthn slurps his coffee while his changes compile, and hopes they won't be epic fail 11:51
masak I didn't see any forkbombs in the backlog. 11:52
moritz_ different channel, different server
masak oh. 11:53
jnthn ohnoes massive fail 11:54
masak it times like this, it might be a comfort to remember: it's not the tests' failt, it's your fault. 11:55
oh wait.
jnthn :-P
masak that's not comfort. that's the other thing.
jnthn I'm kinda looking at the PIR we're generating and thinking...huh wtf... :-)
11:57 zamolxes joined
masak I'm looking at a fun case of calling a routine stored in a hash, and the instruction pointer just... disappears. very odd. 11:57
the only clue I have is that the method no longer identifies itself as a Mathod, but as a Sub. 12:00
12:00 lumi joined
jnthn masak: oh, ouch 12:01
masak jnthn: interesting, huh?
moritz_ instruction pointer? 12:02
masak moritz_: the little spark that runs around and executes code. whatever.
moritz_ you mean on CPU level?
masak no.
I mean I put debug statements at lines of code, and at some point, they just stop being printed.
and I get no signs of life from any branch of possible execution. 12:03
moritz_ so it hangs somewhere 12:04
masak no.
it runs to completion.
it just does it with some weird sort of quantum tunneling.
moritz_ does it use a precompiled PIR thing instead of the real thing somewhere? :-)
masak no.
hm, false alarm on the Method --> Sub metamorphosis, it seems. 12:05
seems I'm indulging in wishful thinking here. :)
ah. tests started passing again. order is restored. 12:06
masak-- # false alarms
12:19 dukeleto joined
dukeleto seems like feather.perl6.nl is down, anybody heard anything? 12:20
moritz_ @seen Juerd 12:21
lambdabot Unknown command, try @list
moritz_ seen Juerd
@list
lambdabot code.haskell.org/lambdabot/COMMANDS
12:21 NorwayGeek_ joined
masak lambdabot used to be able to do @seen. 12:21
moritz_ and that list also has 'seen'
masak lambdabot--
moritz_ lambdabot-- indeed 12:22
@karam lambdabot
lambdabot Maybe you meant: karma karma+ karma-
dukeleto moritz: i just emailed juerd as well
moritz_ dukeleto++
phenny: karma dukeleto
@karma dukeleto 12:23
lambdabot dukeleto has a karma of 3
moritz_ @karma lambdabot
lambdabot lambdabot has a karma of 41
dukeleto @karma leto
lambdabot leto has a karma of 6
moritz_ rakudo: say 1 12:34
masak EFORKBOMB 12:36
12:36 JimmyZ joined 12:37 Trinity94 joined, huf_ joined 12:40 p6eval_ joined
moritz_ rakudo: say 1 12:40
p6eval_ rakudo 3eceb8: ( no output )
moritz_ sh: fork: Resource temporarily unavailable
rakudo: say 1 12:41
12:41 p6eval_ joined
moritz_ rakudo: say 1 12:41
p6eval_ rakudo 3eceb8: OUTPUT«1␤»
masak rakudo: sub foo {}; &foo !~~ Sub 12:43
p6eval_ rakudo 3eceb8: OUTPUT«Class P6protoobject already registered!␤in Main (file src/gen_setting.pm, line 206)␤»
masak submits rakudobug
rakudo: class A { method foo {} }; &A::foo !~~ Method 12:44
p6eval_ rakudo 3eceb8: OUTPUT«Class P6protoobject already registered!␤in Main (file src/gen_setting.pm, line 206)␤»
moritz_ rakudo: say 2 !~~ Int
p6eval_ rakudo 3eceb8: OUTPUT«0␤»
mathw Weird
masak aye 12:45
rakudo: say 2 !~~ Sub
p6eval_ rakudo 3eceb8: OUTPUT«Class P6protoobject already registered!␤in Main (file src/gen_setting.pm, line 206)␤»
masak it's the RHS that causes the trouble
mathw Does it do it with other code-y classes?
masak please check. :) 12:46
moritz_ rakudo: say 2 !~~ Block
p6eval_ rakudo 3eceb8: OUTPUT«Class P6protoobject already registered!␤in Main (file src/gen_setting.pm, line 206)␤»
moritz_ rakudo: say 2 !~~ Code
p6eval_ rakudo 3eceb8: OUTPUT«Class P6protoobject already registered!␤in Main (file src/gen_setting.pm, line 206)␤»
moritz_ rakudo: say 2 !~~ Routine
p6eval_ rakudo 3eceb8: OUTPUT«Class P6protoobject already registered!␤in Main (file src/gen_setting.pm, line 206)␤»
mathw Yes then
moritz_ pretty much, yes :-)
mathw I would have checked, but I couldn't remember the class names
masak moritz_++ # remembers
mathw looks at them, trying to burn them into his memory
moritz_ rakudo: say 2 !~~ Callable 12:47
p6eval_ rakudo 3eceb8: OUTPUT«1␤»
moritz_ heh
carlin Are $!private attributes automatically rw? 12:52
masak yes.
carlin Ah, okay 12:53
moritz_ std: 1
p6eval_ std 28789: OUTPUT«Cannot find /proc/version - is /proc mounted?␤ok␤»
moritz_ std: 1 12:54
p6eval_ std 28789: OUTPUT«ok 00:01 104m␤»
12:56 payload joined 13:04 ruoso joined
ruoso Hello! 13:05
masak o/ 13:06
moritz_ \\o
dukeleto ruoso: good localtime()
masak oh, is the pugs repo on feather as well?
moritz_ yes 13:07
masak huh. that would explain why it's down presently.
ruoso is not being able to work in Perl 6 for almost a month already 13:12
$work--
and I'm not even programming, I'm just working on planning and budgets and stuff like that
moritz_ poor guy 13:13
masak work should be abolished.
13:17 SmokeMachine joined 13:22 iblechbot joined, mst joined
mst does the - in identifiers mean whitespace matters there? 13:23
i.e. $game.make-move($move); and $game.make - move($move); mean different hings?
moritz_ they do
in general whitespace disambiguations in Perl 6
for example anything that's immediately followed by (, { or < is parsed as a postcircumfix 13:24
$foo<bar> # same as $foo{'bar'}
mst mmm 13:25
ok.
13:25 mst left
masak and he's gone. 13:25
like a whirlwind, he came and went.
moritz_ $foo <bar> $thing # -> ($foo < bar) && bar < $thing
masak rakudo: class A { has %o; method foo() { my $fn = %o<bar>; $fn("OH HAI") } }; class B { has $!a; method new() { self.bless(*, :a(A.new(:o((foo => &B::talk).hash)))) }; method bar { $!a.foo }; sub talk($phrase) { say $phrase } }; B.new.bar
p6eval_ rakudo 3eceb8: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (file src/gen_setting.pm, line 206)␤»
masak could someone tell me what I'm doing wrong here? 13:26
I'll be more specific:
is there anyway I can pass a reference to an in-class sub to another class, and call it from there?
moritz_ there's no B::talk anywhere
masak s/anyway/any way/
moritz_: what about 'sub talk' in 'class B'? 13:27
moritz_ oh, I mis-counted braces, sorry
masak np
moritz_ rakudo: class A { sub talk($x) { say $x } }; class B { method doit { A::talk(3) } }; B.doit 13:28
p6eval_ rakudo 3eceb8: OUTPUT«3␤»
moritz_ rakudo: class A { sub talk($x) { say $x } }; class B { method doit(&x) { x(3) } }; B.doit(&A::talk)
p6eval_ rakudo 3eceb8: OUTPUT«3␤»
moritz_ what's the enhanced difficulty in your case? 13:30
masak the hash, maybe.
13:31 dalek joined
moritz_ isn't the difficulty foo vs. bar? 13:31
my $fn = %o<bar>; 13:32
vs
o((foo => &B::talk)
:o((foo => &B::talk).hash)
masak oh, uh.
rakudo: class A { has %o; method foo() { my $fn = %o<bar>; $fn("OH HAI") } }; class B { has $!a; method new() { self.bless(*, :a(A.new(:o((bar => &B::talk).hash)))) }; method bar { $!a.foo }; sub talk($phrase) { say $phrase } }; B.new.bar
p6eval_ rakudo 3eceb8: OUTPUT«OH HAI␤»
13:32 Juerd joined
masak no further questions, you honour. 13:33
Juerd ...and we're back.
13:33 Confield left, pmichaud joined
masak Juerd++ 13:33
13:33 jnthn joined
Juerd Damn safety features breaking our circuits! :) 13:34
jnthn \\o/
jnthn back too
13:34 Confield joined
masak does a 'whoz op' hip-hop move 13:34
pmichaud good morning, #perl6
masak pmichaud: mornin', pmichaud++
jnthn moritz_: BTW, turns out that .arity is not the thingy to check in Code::ACCEPTS. Since $_ is optional in a lot of blocks, so we should really check .count :-) 13:35
jnthn suspects half of his current spectest failures may be thanks to that one.
pmichaud: oh morning
moritz_ jnthn: I thought about that some weeks ago, and discarded it. And didn't remember it when you mentioned .count... 13:36
moritz_ feels stupid
jnthn moritz_: Heh, I made the exact same mistake 13:37
Thing is, now I need to do a clean spectest run, as so many failures in the last one were due to that.
I was like...I fixed loads of stuff, how can we still fail so hard...
masak if the most involved Rakudo programmers misremember .arity and .count, maybe they are mis-named? it certainly doesn't sound like intuitive names to me. and which one does what? 13:38
jnthn .arity = number of requireds, .count = number of required + optional 13:39
moritz_ masak: I didn't misremember them
masak: I just failed to properly think about them
jnthn masak: I knew that full well, the consequences of the one I'd pi9cked were just lost on me. :-)
13:39 KyleHa joined
moritz_ masak: but you are right that they are not ideal... a binding test to the signature would be 13:40
masak moritz_, jnthn: fair enough.
I think that '.arity' and '.count' look like design smells. a bit like '.length' did.
jnthn Whee. So now we get down to S02-literals/radix.t before seeing a failure.
I'm rather bemused exactly why on earth we have failures in there though.
moritz_ so Code.ACCEPTS should really be written as :(topic) ~~ $.signature ?? self($topic) !! self()
s/topic/$topic/ 13:41
I see one failure iin t/spec/S02-builtin_data_types/array_extending.rakudo
jnthn moritz_: Where?
In resig?
moritz_ yes
13:42 dukelet0 joined
jnthn moritz_: You'll see LOADS of others too. 13:42
moritz_: I just pushed the .count fix
Which resolves that.
And also many, many othes.
*others
Suggest you pull it.
The results seem to be coming out much better with that correct. :-) 13:43
moritz_ ah, I thought you already did, but didn't bother to read `git log`
jnthn We pass assign.t again, which is a relief.
moritz_ that test file is ... well... not my favourite 13:44
Missing test file: t/spec/S06-signature/slurpy-and-interplation.t
jnthn I really didn't want to have to hunt down an issue in it. 13:45
moritz_: Yeah, I suspect I need to rebase.
moritz_ ah right, i think it was fixed in master
jnthn: or when you're near to the merge, just merge locally
and spectest
and if it works, push
if not git reset --hard $last_branch_sha1
jnthn I'll probably rebase nearer to the merge. 13:46
For now there's still enough to fix that's obviously not just due to being behind.
That said, I am much, much happier about the current spectest. 13:47
moritz_ S02-lexical-conventions/unicode.rakudo Failed 5/31 subtests
that's my first failure
then radix.t
jnthn Yeah, the radix.t one is odd...
S03-junctions/autothreading.t will fail 13:48
But that's because I didn't put auto-threading in single dispatch back yet.
moritz_ aye, it does fail 13:49
just a quick reminder: #perl6book meeting at 1800 UTC 13:50
jnthn Ah, I'll try and remember that. 13:51
moritz_ reduce-metaop.t fails three tests
jnthn moritz_: Yeah. 13:52
moritz_: Loads of fails in S06 too.
masak moritz_: I won't be able to make it to the meeting tonight. though I hope to sneak in a chapter commit by then.
jnthn Oh
I know why we fail some of these. 13:53
moritz_ masak: you mean, sneak past dalek? :-)
jnthn When we check signature bindability in the multi-dispatcher, we didn't capture_lex any of the blocks yet.
masak moritz_: not necessarily, no. :)
jnthn oh, which I didn't fix because Parrot wasn't exporting Parrot_capture_lex, iirc. :-/
Oh, hmm. That could be quite a pain to fix. :-S 13:54
moritz_ make parrot export it? :-)
jnthn Well 13:55
I just realized...what do we call it *on*. :-S
pmichaud: ping # pm knows lexicals :-)
13:57 PerlJam joined
PerlJam feather rebooteD? 13:57
moritz_ yes 13:58
13:58 mwm joined
PerlJam well, that's one way to clear out the cruft :) 13:59
masak oh, uh. november-wiki.org is down now, of course. 14:00
viklund: ping
14:01 PacoLinux joined
masak rakudo: sub bar {}; class A { method foo { say &bar.WHAT } }; A.new.foo 14:01
pmichaud jnthn: pong
p6eval_ rakudo 3eceb8: OUTPUT«Failure()␤»
masak known one?
moritz_ yes, outer lexicals aren't know in classes 14:03
pmichaud sub bar {}; isn't currently putting &bar into the lexical scope, either.
so two bugs :)
both are known
japhb moritz_, sorry for the calendar fail -- since I don't have your DB connection, I couldn't do a live test -- wherein I would have caught the problems you saw. :-( japhb-- 14:04
moritz_ what's blocking outer lexicals? contextual vars?
pmichaud lexical initialization
the class block executes before the lexical is initialized
jnthn pmichaud: I've run into a slight snag.
moritz_ japhb: that's OK, I fixed them... maybe I should provide a small sample DB for testing in the future
jnthn pmichaud: Take sub foo($a, $b where { $a == $b }) { ... } 14:05
japhb moritz_, that would be an excellent idea. :-)
JimmyZ good evening, #perl6 ;)
jnthn pmichaud: In the single dispatch case, we'd invoke the sub, it'd do its capture_lex calls, and all is well when we invoke the where block
pmichaud: However, in multiple dispatch, while we do create a lexical context right up front, we don't run anything 14:06
pmichaud: So don't get around to running the capture_lex's.
japhb moritz_, at least now I can get back to the CSS task. When I tried to do the CSS against the old HTML, I was lost in a sea of child relationships ....
jnthn pmichaud: So in theory, I would just want to call capture_lex, I guess.
pmichaud: Well, as in, Parrot_capture_lex
masak JimmyZ: o/
pmichaud yeah, but you don't have any way of knowing what blocks need capturing 14:07
jnthn pmichaud: But then it occurs to me...I guess that today the blocks that are the constraints have the load init as their outer, and the subs only capture_lex thir load init.
14:07 zloyrusskiy joined
jnthn *their 14:07
So that may solve the issue (since I guess it must work transitively, or something...) 14:08
jnthn checks
pmichaud if you know the where clause blocks, you can capture_lex those
jnthn Is there a way to have p6eval paste PIR code somewhere? 14:09
14:09 lumi joined
moritz_ no 14:09
jnthn is curious what PIR is generated for the example he pasted above...
moritz_ I can do that locally though
pmichaud "the subs only capture_lex their load_init" sounds like an incorrect statement
jnthn Could anyone check on master what sub foo($a, $b where { $a == $b }) { ... } generates in PIR?
pmichaud we don't ever need to capture_lex a load_init
*loadinit 14:10
jnthn pmichaud: OK, thus why I want to see what's going on in master.
and what the constraitn blocks have as their outer sub today.
pmichaud can't just do --target=pir ?
oh, just a sec
I'll do it
jnthn pmichaud: I have local diffs and a different branch built... 14:11
:-)
I couod do it, but laziness is a virtue and all that.
pmichaud gist.github.com/210101
(my master is a bit old at the moment, but should be sufficient for what we're looking for) 14:12
moritz_ it gives me... segmentation fault :/
pmichaud lines 126-129 attach the where clause to the $b parameter 14:15
jnthn pmichaud: Ah, yes
pmichaud: But it does in the sub capture_lex 13_1255529479
pmichaud so, when performing the bind, at some point after the lexpad has been created, need to run Parrot_capture_lex on that block attached to the parameter
the capture_lex that is in the loadinit sub is way too soon 14:16
capture_lex has to be performed after the outer sub has been called, but before the inner sub gets called
jnthn Right, it's the one in foo that matters though.
foo does a cpature_lex of 13_1255529479
14:16 Psyche^ joined
pmichaud that one is too late :) 14:16
jnthn Which is the block in the where clause.
Well
It doesn't happen if we never run the sub, yes. 14:17
pmichaud no, wait, I'm confusing things for you.
jnthn Hm.
pmichaud In master, the capture_lex happens before !SIGNATURE_BIND, which means all is well
jnthn pmichaud: Yes, if we actually invoke the sub that is fine.
pmichaud in your branch, if !SIGNATURE_BIND is now happening as part of VTABLE_invoke, then the capture_lex is too late
jnthn The thing is, in the branch, the multi-dispatcher doesn't invoke the sub to do a bindability check.
It sometimes is. 14:18
It isn't for normal calls.
It is in a multi-dispatch if it wants to know "can I bind"
slavik is there a parrot channel?
pmichaud slavik: irc.parrot.org/#parrot
PerlJam slavik: #parrot on irc.perl.org
jnthn slavik: yes, on irc.parrot.org though
moritz_ :-)
slavik I wonder if it's possible to limit the amount of memory parrot will take up
jnthn (which maps to non-freenode)
slavik ty ^^
pmichaud jnthn: this is another reason for having binding and checking be an opcode, I guess. 14:19
jnthn pmichaud: If I could know what those blocks where though, in theory there's no reason why, if the lexical scope for the sub was created and was the current one, I'd not be able to call capture_lex on the subs and have it work?
erm 14:20
pmichaud ETOOMANYNEGATIONS
jnthn Call Parrot_capture_lex
hehe
pmichaud: I'll try again.
pmichaud I think I know what you're asking.
once the context is created for the called sub, you can do capture_lex on any of its inner blocks 14:21
jnthn OK, good.
pmichaud you need to do that capture_lex before those inner blocks are invoked.
jnthn Ah, all the op does anyway is call Parrot_capture_lex.
pmichaud you may recall last year that I was asking about a way for a sub to know all of its inner blocks -- now you know why. :)
jnthn pmichaud: I'm pondering changing the way we store those blocks to just be an array of them rather than a junction.
Sure, for introspection we'll hand back a junction. 14:22
But then at least the signature contains an array of blocks.
And we can capture_lex them.
14:22 andreasg_ joined
pmichaud I _really_ wish there was a way to generate compile-time properties on things in imcc/Parrot 14:23
jnthn Plus it saves building all of the junctions at startup, which could be a minor win.
pmichaud what would be really nice would be to attach an array of inner subs as a property on a Sub PMC
jnthn Hmm...that would be nice.
Anyway, I think I have a workable solution. 14:24
And it's OK if I get Parrot to export Parrot_capture_lex?
So a dynop/dynpmc can call it?
pmichaud something about that approach bugs me, but I don't see an issue with it. 14:25
it doesn't feel as though Parrot_capture_lex should be part of the api
jnthn Hmm
What thingy that I can call should be?
We don't have to document it as API. ;-) 14:26
pmichaud if we don't, then Parrot can remove it whenever they feel like it.
jnthn Hmm. True.
pmichaud not that they will, but they could.
Juerd juerd.nl/i/d7eec5e2c2a341b057fd10ba07a2f24c.png # Apparently lots of processes on feather are not started automatically at boot time.
jnthn I struggle to see anybody else taking on another re-write of lexicals. ;-) 14:27
The world can't have that many masochists. :-)
Anyway, I'll give that approach a try and see where it gets us. 14:28
14:29 NorwayGeek joined
jnthn ...after I've put back junction auto-threading, which is also a task. :-) 14:29
14:35 snearch joined 14:36 nihiliad joined
KyleHa jnthn: On the contrary, there's one (masochist) born every minute. 14:36
14:37 p6eval joined
moritz_ rakudo: say 'back' 14:39
p6eval rakudo 3eceb8: OUTPUT«back␤»
moritz_ KyleHa: now we just have to make them parrot hackers :-)
14:56 araujo joined
moritz_ Infinoid: how hard would it be to make dalek report all commits to a github repo, not just to a particular branch? 14:58
15:00 arthur-- joined
jnthn @karma arthur 15:02
lambdabot arthur has a karma of 0
jnthn Heh, lambdabot evidently doesn't match joins/quits for karma. :-)
spinclad bikeshed paintcolor: .arity, .count => .minarity, .maxarity ? 15:03
.min-arity, .max-arity
moritz_ minarity sounds... like a minarette or something :-)
masak rakudo: class A { has &!f; method new(&f) { self.bless(*, :&f) } }
p6eval rakudo 3eceb8: OUTPUT«Symbol '&f' not predeclared in new␤in Main (file <unknown>, line <unknown>)␤»
masak known, right?
15:04 lumi_ joined
moritz_ sub a(&f) { &f } 15:04
rakudo: sub a(&f) { &f }
p6eval rakudo 3eceb8: ( no output )
moritz_ masak: I didn't know about it
masak reports, just in case 15:05
sjohnson morning all
masak sjohnson! \\o/
jnthn masak: That's an...odd one. 15:06
masak jnthn: workaroundable, though.
jnthn masak: aye
masak I (re-)discovered it when writing up my little chapter example.
sjohnson masak o/
jnthn is hurting his branes re-doing junction auto-threading.
15:07 payload joined
jnthn ooh...nearly there... 15:14
.oO( I can resolve another masakbug by re-implementing it this way too )
15:15 brunov joined
Infinoid moritz_: is there an atom feed for that? 15:27
cognominal rakudo: say [+] (1, 1/2, 1/4, { */2 } )[0..20] 15:29
p6eval rakudo 3eceb8: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (file src/gen_setting.pm, line 206)␤»
cognominal rakudo: say [+] (1, 1/2, 1/4 ... { */2 } )[0..20] 15:31
p6eval rakudo 3eceb8: TIMED_OUT
cognominal hum, probably not lazy enough
15:31 ejs joined
masak spectests finished. it took another 2h 24m. seems to be the time it takes nowadays. 15:32
it's a PASS on master. \\o/
jnthn oh hey, I think I fixed auto-threading... 15:33
takadonet !!!
masak \\o/ 15:34
pmichaud masak: 2h24m seems awfully long. On my box running the spectests (non-parallel) takes 29m35
jnthn aww, but not for methods.
But that'll be not so bad to fix up.
masak pmichaud: I'm running three parallel threads.
pmichaud yes, it's normally faster for me when I run parallel
how much memory on your system?
masak maybe I need to reboot the laptop. it's been up for 109 days now.
15:35 lanny joined, mspaulding joined
masak pmichaud: 4GB. 15:35
pmichaud anyway, 2h24m isn't at all what I'm experiencing on my (admittedly speedy) notebook.
jnthn masak: Any interest in dredging up the RT ticket with the auto-threading bug related to auto-threading happening on something that is not a Routine?
masak: Or can you remember what it might have been called? :-)
lanny speaking of PIR (above ~1409h) is it a parrot bug or rakudo one that the pir generated by --target can't be run by parrot? 15:36
jnthn is curious to know what the code example was, since he suspects his re-impl resolves the issue...
masak jnthn: no idea, sadly.
pmichaud lanny: bit of both
jnthn masak: aww. OK.
pmichaud lanny: iirc, it's a parrot bug that we can't get the libraries loaded
jnthn rakudo: for 1|2 -> Any $x { say $x } 15:37
p6eval rakudo 3eceb8: OUTPUT«1␤2␤Can't return outside a routine␤in Main (file <unknown>, line <unknown>)␤»
lanny Ok. I had a suspicion that might be involved when I bumped into the rakudo arch document.
jnthn masak: Ah, that was the one.
masak: Locally:
> for 1|2 -> Any $x { say $x }
1
2
masak \\o/
jnthn++
jnthn masak: Was a tad tricky to fix... 15:38
masak :) 15:39
jnthn Anyway, when resig is finally mergable, that'll be one bug it own't have. :-)
cognominal jnthn, you merge John resig? javascript will be a dialect of Perl 6? :) 15:40
jnthn cognominal: Well, every language is a dialect of Perl 6... 15:41
dalek ok: d5b2970 | masak++ | src/classes-and-objexts.pod:
[src/classes-and-objects.pod] Task class example
15:42
jnthn Apart from Visual Basic, though. That just hasn't got enough street cred.
"Sorry, you're just not cool enough to be a dialect of Perl 6." 15:43
masak jnthn: you obviously haven't heard audreyt's defense of VB :)
cognominal masak beats me by answering faster...
jnthn masak: Oh, I heard it. 15:44
15:44 arthur-- joined
jnthn I just had to work with VBScript since then. 15:44
cognominal :)
masak I did too, long ago. 15:45
jnthn I did too, a month or two ago, and I've got email telling me I need to sometime in the next week or so too. :-/
Aww. We only make it to test 38 in autothreading.t before exploding. 15:46
But hey, at least we don't explode on test 1 now.
KyleHa objeXts?
15:47 NorwayGeek joined
dalek ok: fce99a1 | masak++ | src/classes-and-obje (2 files):
renamed mis-spelled file
15:48
jnthn They're so cool in Perl 6 we had to change the name of them to include an x, since everything cool has an x in its name. 15:49
masak KyleHa: fixed now. 15:50
diakopter rakudo: sub a(&f) { &f }; a(&a) 15:53
p6eval rakudo 3eceb8: ( no output )
moritz_ &f doesn't call the function 15:54
diakopter rakudo: sub a(&f=&a) { }; a()
p6eval rakudo 3eceb8: ( no output )
diakopter rakudo: sub a(&a=&a) { }; a 15:57
p6eval rakudo 3eceb8: OUTPUT«Null PMC access in isa()␤in Main (file src/gen_setting.pm, line 206)␤»
jnthn rakudo: sub argcount { return +@_ }; argcount( try { 17 }, 23, 99 )
p6eval rakudo 3eceb8: ( no output )
diakopter std: sub a(&a=&a) { }; a
p6eval std 28789: OUTPUT«ok 00:02 125m␤» 15:58
jnthn rakudo: sub argcount { return +@_ }; say argcount( try { 17 }, 23, 99 )
p6eval rakudo 3eceb8: OUTPUT«3␤»
masak fail.
moritz_ rakudo++
diakopter TimToady: should std catch that last sub a(&a=&a) { };
masak oh wait. that one was right.
moritz_ ;-)
fail fail
masak diakopter: why? what's wrong with it? 15:59
jnthn masak: If only I could say so much for that one in my branch...
masak :)
16:00 mikehh joined
diakopter masak: I don't know. 16:00
moritz_ it redeclares a lexical (&a)
but probably not in the same scope
masak std: &foo 16:01
p6eval std 28789: OUTPUT«ok 00:02 126m␤»
masak but mentioning an outer &a is no parse error/warning.
16:02 cdarroch joined
diakopter TimToady: infinite loop in std: sub a { my &a = &a; a }; a 16:04
std: sub a { my &a = &a; a }; a
p6eval std 28789: TIMED_OUT 16:05
jnthn rakudo: sub argcount($x) { say $x }; argcount( try { 17 }, 23, 99 ) 16:06
cognominal masak, what is an nom?
p6eval rakudo 3eceb8: TIMED_OUT
jnthn rakudo: sub argcount($x) { say $x }; argcount( try { 17 }, 23, 99 )
p6eval rakudo 3eceb8: TIMED_OUT
jnthn timed out?!
*sigh*
rakudo: say "alive"
p6eval rakudo 3eceb8: TIMED_OUT 16:07
jnthn ah
16:07 p6eval joined
jnthn oops, I upset it. 16:07
rakudo: say "alive"
moritz_ rakudo: say 'foo'
p6eval rakudo 3eceb8: TIMED_OUT
diakopter hm 16:08
diakopter suspects the timed-out processes aren't being reaped 16:09
rakudo: say &say 16:10
p6eval rakudo 3eceb8: ( no output )
diakopter rakudo: say 5 16:11
p6eval rakudo 3eceb8: ( no output )
diakopter std: 4
p6eval std 28789: TIMED_OUT
cognominal masak, your new chapter could be named after a good french movie : www.imdb.com/title/tt0106632/ Cuisine et dépendances
masak cognominal: :) 16:12
cognominal masak: what is a nom, btw? 16:14
jnthn omnomnom 16:17
cognominal ??
jnthn icanhascheezburger.files.wordpress....y-cake.jpg 16:18
cognominal au nom de Dieu, dites moi!
jnthn Heh. This branch is shaking out a few longer-standing bugs too. 16:19
rakudo: sub foo(Int $x) { }; my $pub = &foo.clone; $pub("lol") 16:20
p6eval rakudo 3eceb8: ( no output )
jnthn rakudo: sub foo(Int $x) { }; my $pub = &foo.clone; foo("lol")
p6eval rakudo 3eceb8: ( no output )
jnthn oh, br0ken
cognominal they are running to the nearest VB
jnthn rakudo: say "hi"
p6eval rakudo 3eceb8: ( no output )
jnthn heh, yes
moritz_ seems the fork resource limit is too tight 16:21
16:21 p6eval joined
moritz_ rakudo: say 'OH HAI' 16:21
p6eval rakudo 3eceb8: OUTPUT«OH HAI␤»
jnthn rakudo: sub foo(Int $x) { }; my $pub = &foo.clone; foo("lol")
p6eval rakudo 3eceb8: OUTPUT«Parameter type check failed; expected Int, but got Str for $x in call to foo␤in sub foo (file <unknown>, line <unknown>)␤called from Main (file /tmp/Tw0gZ7ACxn, line 0)␤»
jnthn rakudo: sub foo(Int $x) { }; my $pub = &foo.clone; $pub("lol")
p6eval rakudo 3eceb8: ( no output )
jnthn rakudo: sub foo(Int $x) { }; my $pub = &foo.clone; $pub("lol"); say "lived"£ 16:22
rakudo: sub foo(Int $x) { }; my $pub = &foo.clone; $pub("lol"); say "lived"
p6eval rakudo 3eceb8: OUTPUT«Confused at line 2, near "\\x{a3}"␤in Main (file <unknown>, line <unknown>)␤»
rakudo 3eceb8: OUTPUT«lived␤»
jnthn LOL BUG
moritz_ seems I can only limit number of processes per user, not per process+childs
lanny Why is Order (Order:Increase, Order::Same, Order::Decrease) so verbose? Also it probably needs a Order::SameButMore for testing partially cached infinite datatypes. 16:23
jnthn In rx.t, there is a sub matchcheck { 1 } 16:24
However, it's called like matchcheck($/, q/mob: <abcdef @ 3>/)
Surely it wants to be sub matchcheck(*@pos) { 1 } or similar... 16:25
diakopter std: 4
p6eval std 28789: OUTPUT«ok 00:01 104m␤»
diakopter std: sub a { my &a = &a; a }; a
p6eval std 28789: OUTPUT«ok 00:02 130m␤»
diakopter rakudo: sub a { my &a = &a; a }; a 16:26
p6eval rakudo 3eceb8: OUTPUT«invoke() not implemented in class 'Undef'␤in Main (file src/gen_setting.pm, line 206)␤»
slavik diakopter: wtf? 16:35
diakopter slavik: sorry 16:37
slavik are you invoking a class which you are defining within the definition?
jnthn diakopter: Rakudo is corret there. 16:38
diakopter: You've already introduced a lexical &a
Immediately after saying "my &a" 16:39
16:45 stephenlb joined 16:49 pmurias joined
pmurias hi all 16:52
16:52 ejs joined
pmichaud jnthn: under the old definition, subs w/o a signature automatically received @_ 16:57
yes, the matchcheck sub is a problem under the newer spec 16:58
moritz_ perl6.ops emits lots of cast warnings 17:05
Juerd: feather2 and 3 seem to be still down 17:06
jnthn pmichaud: Well, it was two things. First the old semantics, and second that Parrot didn't check when 0 params were passed in a 0-param sub, so you could pass as many as you wanted. 17:07
So we implicitly carried the old semantics for a while too.
Anyways, gave it a signature *@
pmichaud wfm 17:08
moritz_ I expect a few such errors in the test suite
pmichaud ugh, 2028 emails in my inbox
1793 "new/unread" 17:09
moritz_ the test suite can only be as good as the best implementation (or maybe a tad better, but not much)
jnthn Anyway, current spectets of resig show still quite a lot to do, but much improved from yesterday. 17:10
takadonet wow pmichaud 17:14
jnthn pmichaud: Ouch. Really ouch.
pmichaud: I hope for your sake most of those are easily deleted spam...
pmichaud most of it isn't spam... I've been so busy working on nqp/regex/other stuff that I've fallen behind in email
jnthn Ouch. 17:15
But nice work on nqp-rx ;-)
jnthn wonders how long between his signature branch landing, and when we start to re-build the grammar and actions on top of nqp-rx. 17:16
pmichaud depends on when your branch lands :)
jnthn pmichaud: *maybe* weekend-ish. 17:17
pmichaud I'm thinking that rebuild-the-grammar won't start before october release, or at least not in earnest
jnthn OK, good.
jnthn would like a break from bug triage between the two. ;-)
pmichaud well, I'm sure we'll do rebuild-the-grammar in a branch
but my best estimate for rebuild-the-grammar is middle of next week 17:18
because I still need to create the nqp stuff
otoh, I expect to be moving beyond regexes into nqp stuff today.
I think the new regex engine has nearly everything I need from it to begin parsing grammars
jnthn Cool. 17:20
Oh, I'm sure we will do. 17:21
I'm doing signatures in a branch too. ;-)
Still lots of bug hunting. :-)
pmichaud anyway, I think I'm going to wait for your branch to land before starting the new grammar branch
jnthn On the upside, there'll be at least two of us fixing stuff.
Yes, advisable.
pmichaud unless that starts to look like it'll be a long time
jnthn Actually though
It won't be
And I won't bother tidying up grammar.pg and actions.pm much either.
pmichaud that's fine
we can tidy during the migration to the new grammar stuff 17:22
jnthn I was going to do so, but frankly, it's just going to be easier to not.
And instead do it right in the new one.
pmichaud agreed.
jnthn I suspect the signature action really should not be creating a PAST::Block.
pmichaud correct. 17:23
STD.pm's block rules have completely changed since the version that Rakudo was based on
so block creation in general is likely to be completely redone.
especially since we'll also be switching things to be context-variable based 17:24
jnthn Right. 17:25
So I'll go with "good enough to keep on working" and then we'll re-do it neatly. 17:26
And since we now have Perl6::Compiler::Signature to hand, it actually should be neat.
PerlJam sounds like it's masak's release that's going to have all of the cool new features
pmichaud PerlJam: I'm thinking jnthn's cool new features will be in the october release
then we'll have more grammar-related cool new features in the november release
PerlJam keeps his fingers crossed
pmurias ruoso: hi 17:27
ruoso hi pmurias
pmurias ruoso: you have seen that we now have TESTS-js?
17:28 Su-Shee joined
Su-Shee good evening. 17:28
ruoso unfortunally no... I'm inside the $job hole, in a non-programming set of weeks
pmurias :( 17:29
moritz_ oh hai
jnthn PerlJam: We'll have binding nameds to positionals for one.
ruoso :( indeed
pmurias ruoso: what do you do at the $job when you're not programming?
jnthn PerlJam: And signature literals work.
ruoso pmurias, planning budgets
jnthn PerlJam: And lots of bug fixes.
moritz_ Su-Shee: @people finally convinced me to write a Perl 6 book. Not alone, though ;-)
pmurias :( 17:30
Su-Shee moritz_: YES! *STRIKE* :)
moritz_: may I say "I told you so!" :))
PerlJam jnthn: yes, we always seem to have lots of bugs fixes (jnthn++, pmichaud++)
moritz_ Su-Shee: you may when it's out
Su-Shee moritz_: mouse already hovering over the buy button at amazon.. hurry up. ;) 17:31
moritz_ Su-Shee: we plan to get it ready at the time when Rakudo * is released
Su-Shee moritz_: ambitious.
moritz_ aye 17:32
japhb moritz_, I just committed the original simple irclog channel index stylesheet change I wanted to do in the first place.
Su-Shee moritz_: some specific subject or direction? or just plain "perl 6"?
jnthn PerlJam: The other win is some performance gains.
moritz_ Su-Shee: Perl 6, by example, for the not-complete-novice 17:33
see #perl6book and the topic there
Su-Shee ah, very nice. 17:34
PerlJam "Perl 6 By Example" as a title makes me go "ick" though.
(just sayin')
moritz_ PerlJam: it's not a title
japhb++ # it does look a *lot* nicer than before 17:35
japhb :-)
PerlJam I'm registering my distaste for it ever becoming a title just in case :)
japhb Perl6, if it's possible for a line of books to have a trademarked format (chromatic would probably know), that one's already taken, so you're safe. :-) 17:36
erg,
I meant PerlJam of course
moritz_ the perl 6 community rocks. That's the second time within half a year that somebody just stepped forward and contributed a cool design for a site I started :-) 17:39
japhb You keep starting useful sites, we'll keep stepping up. ;-) 17:40
17:41 synth joined, nihiliad joined
moritz_ deal ;-) 17:41
#perl6book in 10min 17:50
17:54 NorwayGeek joined
jnthn oh, damm 17:56
I've timed #perl6book and dinner cooking perfectly wrong.
Su-Shee can I read along? 17:58
moritz_ sure
PerlJam no, no, not Su-Shee! ;) 18:06
(one of the great things about the Perl 6 community is how inclusive it is) 18:07
18:09 rgrau joined 18:11 NorwayGeek joined
Su-Shee :) 18:11
18:11 KatrinaTheLamia joined 18:15 NorwayGeek joined 18:18 msmatsko joined 18:24 lumi joined
Su-Shee is there a reason why perl6.org/perl6-projects.org is unreachable? I've also tried with downforeveryoneorjustme.com .. 18:24
18:26 lichtkind joined
jnthn Su-Shee: I can't get to it either. 18:27
moritz_ Su-Shee: the VM on which the server lives (feather2) is down
lanny Su-Shee: perl6.org has been down for a bit from what I can see
18:29 zamolxes joined 18:34 NorwayGeek joined
lanny For rakudo src/classes/Order.pir has a comment that it will/might eventually be moved to the setting as an enum. What would an enum setting up sub-classes look like? 18:36
That is, how would an enum become Order::Increase, Order::Same, Order::Decrease? 18:37
moritz_ enum Order (Decrease => -1, Same => 0, Increase => 1); 18:38
but definging enums in the setting makes the thing blow up
lanny Right. I figured it must or it would be there.
So accessing enums will be doable via ::
What I'm thinking of is if I don't like the names I could then: enum Order is also enum << :LT(-1) EQ GT >> ? 18:39
and get Order::EQ, etc. 18:40
I don't see enums accessed via :: specced anywhere is what I'm really bringing up. 18:41
moritz_ grep for Bool::True ;-) 18:42
but you're right, there's no explicit mention in the section on Enums 18:44
lanny Section on Enums in S09?
moritz_ in S12
lanny Not sure what section you are trying to draw my attention to.
Thanks
Hmm. Darn. The google search for Enum does not spell out there is an entire section on them. :/ 18:45
moritz_ I have a checkout of the pugs repo here which also contains the specs. Then I use ack or grep to do the rest ;-) 18:46
lanny Damn this web thing! 18:47
18:48 arthur-- joined
lanny std: my enum cronDays of Junction << :Sun(0|7) :Mon(1) Tue Wed Thu Fri Sat >>; 18:53
p6eval std 28791: OUTPUT«ok 00:03 112m␤»
sjohnson passes a frisbee to Su-shee 18:55
Su-Shee passes chocolate to everyone. 18:57
moritz_ eats the chocolate. Thanks!
jnthn \\o/ chocolate! 18:59
sjohnson hehe 19:01
yum yum
justatheory Is there a Perl 6 syntax for decorating method *calls*? 19:02
jnthn decorating?
justatheory Yeah
moritz_ what do you mean by that? what effect could it have?
justatheory Something like:
$conn.run(@args)~>[:ping, :retry];
jnthn No, I don't understand by the term "decorating" in this context :-)
justatheory moritz_: To potentially change the behavior of the method call. 19:03
It's like a second way of passing arguments.
moritz_ uhm
$conn.run(@args, :ping, :retry) ?
justatheory So I'm saying, call `run` on `$conn` but decorate it with :ping and :retry
Oh, right, signatures might do the trick.
jnthn Named parameters are often used for that kinda thing.
I'm not sure what else you could do...well, in default Perl 6, anyway. :-) 19:04
I guess you could want to pass adverbs to a dispatcher or something. 19:05
But there's no sugar for that.
moritz_ named arguments are some kind of half-way-out-of-bound way to pass arguments
justatheory jnthn: Yes, exactly
adverbs
moritz_ are you referring to the example on your blog and on perlmonks? 19:06
justatheory moritz_ Yeah
moritz_ justatheory: yes, that's something that could be multi dispatched to
justatheory moritz_: Right, of course.
jnthn didn't see the original post
justatheory love the idea of calling them adverbs, though. 19:07
jnthn: justatheory.com/computers/programmi...thods.html
moritz_ multi method run(&code, :txn!, :retry!) { ... } 19:08
jnthn *nod*
moritz_ for dispatching the name arguments need to be mandatory though
*named
jnthn Yes, that's what comes to my mind from reading the post too.
It's the same mechanism we use for traits, fwiw.
justatheory great, tahnks. 19:12
*thanks*
sjohnson hands justatheory a chocolate 19:25
justatheory Mmm, delicious
pmichaud TimToady: error and/or fossil at S05:3759 19:29
KyleHa rakudo: sub infix:<,> { 42 }; say 5, 5; 19:30
p6eval rakudo 3eceb8: OUTPUT«55␤»
pmichaud assuming it's not an error -- i.e., /<STD::prog>/ works in that example, what is the type of the cursor being used inside STD::prog? Does the use of the STD:: prefix automatically cause the cursor for the C<prog> rule to be a STD cursor? 19:31
KyleHa rakudo: sub infix:<#> { 42 }; say 5 # 5 19:33
p6eval rakudo 3eceb8: OUTPUT«5␤»
19:34 SmokeMachine joined 19:38 simcop238 joined
NorwayGeek For anyone on LocalCoast that does not have any other way to contact me: ialex.info/pages/contact-me.php 19:40
19:53 lichtkind joined 19:54 arthur-- joined 19:57 NorwayGeek joined 19:59 zamolxes joined 20:04 meppl joined
pmichaud phone 20:06
sjohnson ... they hung up! 20:08
KyleHa Redefinition of infix:<+>($a, $b) causes Test.pm to miscount tests. Go figure. 20:10
jnthn Well, it probably uses infix:<+> :-) 20:12
20:13 Su-Shee left 20:24 lucs left 20:27 sdvsdvsdv joined 20:34 jnthn joined, cosimo joined, nsh joined, Grrrr joined, sjohnson joined, shachaf joined, carlin joined, colomon joined, slavik joined, drbean joined, alester joined, frederico joined, dalek joined, PacoLinux joined, mikehh joined, cdarroch joined, p6eval joined, rgrau joined
jnthn Well that was noisy. 20:38
20:49 zamolxes joined 21:00 NorwayGeek joined
mathw Evening 21:09
moritz_ \\o/
jnthn mathw: oh hai
21:10 arthur-- joined
mathw About time I checked Form for bitrot... 21:10
jnthn uh-oh :-) 21:12
mathw waiting for parrot to compile... 21:13
and rakudo... 21:14
jnthn oooh, the anticipation :-)
jnthn has spent plenty of time for the latter of those of late.
21:14 payload joined
jnthn It'd be good if we had something that parsed the actions and setting faster...oh, wait... :-) 21:15
mathw I believe someone's working on that :)
moritz_ it would also help to compile the setting files separately
there's a branch for that too ;-)
but it blocks on proper type stubbing 21:16
mathw yeah
that would be very nice
especially since we get those error message sfrom gen_setting, which isn't much fun
Tene or just distribute every copy of rakudo with 1G extra ram
moritz_ it would allow parallelization of compiling the setting
mathw okay it's rotted 21:18
hmm
it's not being very helpful
giving me an error from gen_setting.pm
jnthn :-(
details?
mathw Method '!set_default_param_type' not found for invocant of class 'Signature' 21:19
in Main (file src/gen_setting.pm, line 206)
jnthn mathw: oh 21:20
mathw: That almost certainly means you have some pre-compiled PIR files lying around.
That need to be re-generated.
mathw but I cleaned
mathw tries again 21:21
jnthn mathw: cleaned what, specifically?
mathw cleaned form
maybe I should clean rakudo
jnthn Ah.
mathw hmm
jnthn Maybe.
mathw it got further this time
maybe form's makefile needs some work
it build all the modules!
moritz_ if you use Test.p{m,ir}, you should clean rakudo too
jnthn But everytime somebody has hit this one before, it's been because of leftover .pir files from .pm modules that needed re-generating. 21:22
mathw okay first test failure is .int -> .Int
loads of other mess
infix:<div> is the new integer division isn't it? 21:23
moritz_ it is 21:24
mathw excellent
moritz_ rakudo: say 7 div 3
p6eval rakudo 3eceb8: OUTPUT«2␤»
mathw okay
I'm getting typecheck failures because /= is producing Rat, I think 21:25
moritz_ Int / Int gives Rat, yes
mathw rakudo: my $a = 2; $a div= 2; say $a;
p6eval rakudo 3eceb8: OUTPUT«1␤»
mathw woooo
21:27 tak11 joined 21:32 zerhash joined
mathw yay 21:32
all bitrot fixed
moritz_ mathw++ 21:33
21:33 Whiteknight joined
mathw Unfortunately I don't have time tonight to write any new code 21:33
but at least I've polished it up a little
jnthn mathw: Not too painful? 21:34
mathw no
jnthn Ah, good.
mathw just had to swap most use of / and /= for div and div=
in the process, losing some calls to explicit int coercion
and one test was wrong anyway!
jnthn Sounds like the rational things to change.
;-)
mathw not sure how that got committed
har har
moritz_ I'm sure it was masakbot in unsafe mode ;-) 21:35
mathw rakudo's messages about .int and int() were very useful
moritz_ the deprecation notice about int() was also in two (!) release announcements
but nobody reads those anyway ;-) 21:36
mathw yes
I do read those
but it reminded me of it instantly
jnthn Another place to store my passwords!
Like the docs folder
:-)
mathw rather than having me say 'errrr'
and then you saying but didn't you know .int is gone
moritz_ jnthn: and README
mathw and I'd say oh yes, of course it is
how stupid of me
jnthn moritz_: wow, so many places! 21:37
mathw written backwards on your forehead so you can read it in a mirror 21:38
but nobody else can understand it
jnthn ...until they see you stood in front of a mirror? 21:40
mathw nah
avoid them
if they ask why, tell them you're a vampire but you don't wnat anybody to notice that you don't have a reflection
jnthn Or worse, since of course my password is the name of the girl I have a mad crush on, what if *she* sees me in front of a mirror? Then I've lost a password AND a secret.
21:41 eiro joined
jnthn README is *so* much safter. 21:41
Or docs/mmdguts.pod
;-)
moritz_ jnthn: somebody might read the initial version, so you'd have to sneak it in by a commit labeled as "copyright update" or so ;-) 21:42
jnthn lol. IE's JavaScript engine seems to not support for each style loops! 21:43
moritz_ it also barks at trailing commas in lists, even though that's perfectly legal javascript syntax 21:44
21:46 BinGOs joined
moritz_ English question: tests pass, checks... prevail? what's a better word for that? 21:52
prevail seems wrong
Tene pass
or succeed, maybe 21:53
validate, maybe, depending on context
moritz_ thanks
succeed is good
rakudo: my $c = 0; multi a($) { }; multi a($ where { ++$c }) { }; a([]]; say $c 21:59
p6eval rakudo 3eceb8: OUTPUT«Confused at line 2, near "([]]; say "␤in Main (file <unknown>, line <unknown>)␤»
moritz_ rakudo: my $c = 0; multi a($) { }; multi a($ where { ++$c }) { }; a([]); say $c
p6eval rakudo 3eceb8: OUTPUT«2␤»
moritz_ I guess it does one type check for the multi dispatch, and one for the binding?
jnthn moritz_: Indeed. 22:01
moritz_: I've just about got what we need to fix that in place. 22:02
moritz_ jnthn: I just encountered that while writing a small, evil example for the $book ;-)
jnthn moritz_: Though may do that slightly after resig as it needs me to juggle some code around.
22:02 arthur-- joined
jnthn It's hardly efficeint to run 'em twice though, and probably borderline wrong. :-) 22:03
moritz_ and it's a good reminder that the spec doesn't make any assertions on how often type checks are performed
jnthn No, it doesn't.
And type checks with side-effects are kinda evil anyway.
Though my auto-increment example used that. ;-)
22:05 Limbic_Region joined
moritz_ rakudo: multi a($ where { (0, 1).pick }) { 1 }; multi a($) { 0 }; priint a(1) for ^20 22:07
p6eval rakudo 3eceb8: OUTPUT«Could not find non-existent sub priint␤in Main (file src/gen_setting.pm, line 206)␤»
moritz_ rakudo: multi a($ where { (0, 1).pick }) { 1 }; multi a($) { 0 }; print a(1) for ^20
p6eval rakudo 3eceb8: OUTPUT«11Parameter type check failed; expected Any, but got Int for $ in call to a␤in sub a (file <unknown>, line <unknown>)␤called from Main (file /tmp/zPKt598dJh, line 1)␤»
moritz_ rakudo: multi a($ where { (0, 1).pick }) { 1 }; multi a($) { 0 }; print a($_) for ^20
p6eval rakudo 3eceb8: OUTPUT«0Parameter type check failed; expected Any, but got Int for $ in call to a␤in sub a (file <unknown>, line <unknown>)␤called from Main (file /tmp/ziEAByP2o7, line 1)␤»
jnthn has done probabalistic type checking in a talk before ;-)
moritz_ anyway, that's LTA 22:08
jnthn lol
moritz_ expected Any, but got Int
jnthn Yeah
moritz_ but Int ~~ Any
jnthn The new binder actually has awful errors at the moment (just stub ones), but actually wins here.
Because it knows the difference between a nominal type check error and a constraint type check error. 22:09
So we can improve that one soon.
Or in fact, it probably just will be improved by resig.
('cus I already have two places to fill out with good error generation for the two cases) 22:10
dalek ok: 07ac8c4 | moritz++ | src/multi-dispatch.pod:
more on multi dispatch
22:13 lumi joined, Chillance joined
Juerd moritz_: Oh, darn. I forgot to check feather[23] 22:16
colomon I just had a terrible thought. 22:17
rakudo: my @a = (1, 2, 3); @a >>*<<= (2, 5, 6); say @a.perl;
p6eval rakudo 3eceb8: OUTPUT«No applicable methods.␤in Main (file src/gen_setting.pm, line 206)␤»
moritz_ std: my @a = (1, 2, 3); @a >>*<<= (2, 5, 6); say @a.perl; 22:18
p6eval std 28792: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix = instead at /tmp/3aLBqmZRf9 line 1:␤------> [32mmy @a = (1, 2, 3); @a >>*<<=[33m⏏[31m (2, 5, 6); say @a.perl;[0m␤FAILED 00:02 119m␤»
22:19 jrtayloriv joined
colomon rakudo: my @a = (1, 2, 3); @a «*»= (2, 5, 6); say @a.perl; 22:19
p6eval rakudo 3eceb8: OUTPUT«No applicable methods.␤in Main (file src/gen_setting.pm, line 206)␤»
colomon Any thoughts on whether or not that should work, o wise ones? 22:20
moritz_ std: my @a = (1, 2, 3); @a «*»= (2, 5, 6); say @a.perl;
p6eval std 28792: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix = instead at /tmp/btjnLSR2c0 line 1:␤------> [32mmy @a = (1, 2, 3); @a «*»=[33m⏏[31m (2, 5, 6); say @a.perl;[0m␤FAILED 00:02 119m␤»
jnthn *= inside the meta
moritz_ STD.pm seems to be determined that it doesn't work that way
std: my @a = (1, 2, 3); @a «*=» (2, 5, 6); say @a.perl;
p6eval std 28792: OUTPUT«ok 00:02 113m␤»
moritz_ woah. 22:21
rakudo: my @a = (1, 2, 3); @a «*=» (2, 5, 6); say @a.perl;
colomon no freaking way.
p6eval rakudo 3eceb8: OUTPUT«Confused at line 2, near "\\x{ab}*=\\x{bb} (2, 5"␤in Main (file <unknown>, line <unknown>)␤»
colomon jnthn: is that solid? (inside the meta, I mean)
jnthn colomon: Yeah, I think the synopses even have an example like that. 22:22
colomon sweeeeeeeeet!
also, must add appropriate tests to workout.t after orchestra. :) 22:23
moritz_ ;-)
jnthn Yes, here 22:24
@array »+=» 42; # add 42 to each element
Straight from S03. :-)
colomon jnthn++
jnthn Rakudo doesn't do it yet though. 22:25
colomon TODO or SKIP tests, then. 22:26
jnthn (But I think with pmichaud++'s current work, we'll soon start to parse those.)
SKIP, we don't parse 'em yet, iirc.
22:28 wknight8111 joined
dalek ok: 6f17379 | moritz++ | src/multi-dispatch.pod:
[MMD] tightness
22:33
ok: 4562d10 | moritz++ | src/multi-dispatch.pod:
[MMD] add a =head1 so that perldoc will actually display something
23:05 Exodist joined 23:07 quietfanatic joined 23:14 dolmen joined 23:25 lumi joined 23:47 Mr_Orange joined
Mr_Orange i want to use the logging bot 23:47
is the site that is referenced in the readme accurate still?
23:49 Exodist joined 23:52 lumi joined