»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 25 June 2010.
jnthn "final classes"? 00:00
And...I think not. :-)
Being undefined is pretty much the definition of a type object.
tylercurtis sorear: What would "my SomeFinalClass $foo;" initialize $foo to? 00:01
00:02 felliott left
sorear tylercurtis: a trap representation 00:03
doing anything to the initial value of $foo would raise an exception 00:04
SomeFinalClass.new, .ACCEPTS, etc could only work if the receiver was a literal 00:05
pmichaud S06:2485 says
"The C<.my> method provides access to the lexical namespace associated with 00:06
the given call frame's current position. It may be used to look
00:06 lest_away is now known as lestrrat
pmichaud up ordinary lexical variables in that lexical scope." 00:06
however, S02:2692 says
" The caller's lexical scope is allowed to hide any
user-defined variable from you. In fact, that's the default, and a
lexical variable must have the trait "C<is dynamic>" to be
visible via C<CALLER>."
is it intended that callframe() would provide access to my-scoped variables that CALLER would not? 00:07
(and iiuc, part of the reason for having the "is dynamic" restriction on CALLER was to assist with optimization) 00:08
(which would seem to be eliminated if callframe() is able to access the vars)
jnthn rakudo: { my $a; our sub foo() { $a } }; foo()
p6eval rakudo d51e99: ( no output )
sorear callframe() is the optimizer's bogeyman 00:09
in every way
jnthn rakudo: { my $a = 42; our sub foo() { $a } }; say foo()
p6eval rakudo d51e99: OUTPUT«42␤»
TimToady I think .my could filter to dynvars only, yes
pmichaud "could" or "does" ;-)
?
TimToady doesn't much matter till someone does .keys :)
sorear especially since you can use it in a method and then bogey every single function that calls a method
bonus points if you call the method .list and then methods that don't even syntactically look like they have method calls are hurt 00:10
TimToady but to the first approximation callframe is not required to show you anything the optimizer took away
pmichaud is it allowed to?
show things the optimizer takes away?
wait, rephrase 00:11
sorear oh that's nice.
pmichaud is it allowed to show things that an optimizer *might* take away?
00:11 Chillance joined
TimToady well, we could have .MY_DANGEROUS 00:11
gotta run
jnthn
.oO( .MY_PRECIOUS )
TimToady bia2hr
&
pmichaud I'm looking at a spectest that is reading my variables from its caller, where those variables weren't declared 'is dynamic' 00:12
so I'm wondering if that's a valid spectest
00:14 ashleydev joined
lue what's the difference between .WHO and .WHAT ? 00:15
pmichaud .WHAT returns the type object
.WHO returns the package namespace (iirc)
jnthn correct afaik
pmichaud: I suspect not if those vars coulda been optimized away. 00:16
pmichaud I'm going to change the spectest to match S06, and someone else can figure it out a bit later. :-)
jnthn pmichaud: Or if the spec is going to be clafiried to only show is dynamic ones.
pmichaud I think that .my should be limited to "is dynamic" vars. 00:17
jnthn +1
lue rakudo: my $a = 3+2i; say "{$a.WHAT}, {$a.WHO}" 00:18
p6eval rakudo d51e99: OUTPUT«Complex(), Complex␤»
pugssvn r31715 | pmichaud++ | [t/spec]: Revise test dealing with ro-ness of .my() . 00:19
dalek kudo: f3d9ab2 | pmichaud++ | (3 files):
Remove LexPad type in favor of a simple Hash.
00:26
kudo: 550831c | pmichaud++ | .gitignore:
Add lib/Safe.pir to .gitignore.
kudo: c2ebda4 | pmichaud++ | src/Perl6/Actions.pm:
Merge branch 'master' of github.com:rakudo/rakudo
00:29 xabbu42 left 00:30 jimk left 00:34 axplock joined, axplock left 00:36 whiteknight left
ingy is there an action that is called when a rule fails? 00:38
like, ya know how when a rule passes and the action class has a method with the same name as the rule, it gets called, yeah? 00:42
so, like, ya know, is there a action method name that is looked for when a rule fails? 00:43
00:45 rjbs joined
jnthn ingy: no 00:45
ingy: However, you can always add a | <?> or something at the end of the rule
ingy: Then it will have matched of course
ingy: But you can check whatever you need to in the action method.
ingy: oh, there's also 00:46
| { do stuff } <!>
ingy what's that do? 00:49
rjbs In declaring a class, I know I can say "has Str $.foo" to add an attribute of type Str. 00:50
How do I declare whether or not a defined value is required to instantiate an object?
jnthn ingy: | is "alternation" so "if you couldn't match everything before this" - actually maybe make it || so you get ordering for sure. { do stuff } is a closure where you can perform some action. <!> then makes the match be considered a failure. But by then you've run your code, which is what you wnated. :-) 00:51
00:52 plobsing joined
jnthn rjbs: In ideal Perl 6, has Str:D $.foo; *may* do it. 00:52
rjbs: Though Rakudo doesn't implement that just yet.
(:D is a kind of "type modifier" that implies "this type but defined")
rjbs So, if I want a Person class with a first name, last name, and optional middle name, what do I do? 00:53
ingy jnthn: thanks. I don't put code in my grammars, but i think that's helpful enough knowledge to get something working.
jnthn rjbs: Well, you could also choose to write a constructor that requires those be passed. 00:54
rjbs: That's be the way that catches it early
ingy what's the constuctor syntax?
jnthn method new(:$first_name!, :$middle_name, :$last_name!) { self.bless(*, :$first_name, :$middle_name, :$last_name) } or some such 00:55
(So make first_name and last_name required args.
)
rjbs Huh. Okay.
ingy hi rjbs
rjbs Hallo!
ingy rjbs: what are you writing in p6? 00:56
rjbs I was going to write an example slide for my Moose tutorial, but now it looks like I won't.
Well, I probably still will.
ingy :)
pmichaud jnthn: ping
ingy for what conf? oscon?
jnthn rjbs: the :D constraint on the attribute declaration is probably the "shortest" way to do it, but we may have to go through some contortions to make it give a decent error message... 00:57
ingy pmichaud: ping with payload!
jnthn pmichaud: pong
rjbs ingy: yeah
pmichaud jnthn: the new add_phaser code seems to execute every phaser in the context of !YOU_ARE_HERE. That doesn't seem right.
ingy: pong
ingy pmichaud: nevermind :P
jnthn pmichaud: It's not, but it's righter than excuting them in no lexical context. 00:58
pmichaud I agree that BEGIN phasers may need to be !YOU_ARE_HERE. I'm not sure about the others.
The others should already have a lexical context -- the block in which they're declared.
jnthn pmichaud: Which is what we were doing (with all of them) before
pmichaud ?
jnthn pmichaud: Improvements welcome. :-)
pmichaud: Before you couldn't "say" in *any* of the phasers 00:59
pmichaud: Or use any built-ins.
pmichaud okay
so that's the same "mainline doesn't have an outer context" issue, I guess.
jnthn pmichaud: What I've got us doing now is certainly not right. But it's less wrong.
Or at least, more useful :-)
pmichaud okay, got it.
(could've used a comment that says "this isn't right but better for now." But I'm also the last person to have justification to complain about lack of comments :-) 01:00
jnthn We can't get it Really Right without doing that whole static lexpad vs thing.
s/vs//
pmichaud I think if I just get it so that the mainline gets a very early outer, the rest of it will just work. 01:01
jnthn (comment) I can always add one. :-)
pmichaud at least as far as finding things in the setting goes.
jnthn pmichaud: OK. May still need it for BEGIN though
Until we make something better.
pmichaud right, BEGIN may need it.
01:02 cdarroch left
pmichaud but only when being run at compile-time (i.e., not from a loaded module) 01:02
jnthn Well, BEGIN probably needs a "fake" lexical context building when being run at compile time
pmichaud right
jnthn That collects the lexicals it sets and later stashes them in the Right Place.
pmichaud anyway, my question is answered for now :-) 01:03
01:03 rjbs left
jnthn pmichaud: Having now fixed BEGIN up to be phaser-y, I can fix the disappearing user defined ops in pre-compiled code issue and mark that thingy in the ROADMAP done. :-) 01:04
pmichaud wfm!
jnthn Though I'm currently distracting myself improving the mmulti-method dispatch failure errors too 'cus they suck.
pmichaud afk # walk on the beach 01:09
dalek ok: 3ae798c | chromatic++ | src/multi-dispatch.pod:
Edited multi-dispatch chapter for clarity.
01:13
[Coke] www.boingboing.net/2010/07/14/colon...punct.html 01:14
01:14 FardadJalili joined 01:15 pnate left, pnate joined
jnthn For an article on punctuation, I love the apparently missing comma in the opening sentence. 01:16
01:19 drewk left 01:21 sahadev joined 01:26 payload joined 01:27 payload1 left 01:29 skids joined
jnthn Sheesh, good errors take some effort. 01:40
dammit, I accidentally the lolspeak in the error too :/ 01:43
sorear jnthn: :$first-name! doesn't required a defined value 01:49
jnthn sorear: I know
Guess you have to trust your consumers at some level... :-)
sorear looks forward to "is required" being added to Perl6
jnthn: it's easy in moose! 01:50
jnthn Traits are normally a list-ditch solution. :-)
*last
sorear: What does 'is required' do in Moose?
sorear: And what is it applied to?
sorear It causes attributes to require a value. 01:51
or, to be a bit more precise:
Moose attributes can be absent, or can hold any Perl 5 value (including undef) 01:52
has foo => (isa => 'Str') # This attribute can be absent, or can hold a Str (like Perl6 Str:D)
Foo.new(foo => 'x') # creates an object with the foo attribute present and 'x' 01:53
Foo.new(foo => undef) # creates an object with the foo attribute present and undef
Foo.new() # creates an object with the foo attribute not present
the distinction is extremely useful for lazy attributes 01:54
which use 'not present' for needing to be calculated, but once calculated can hold any p5 value
'isa' constrains only present values 01:55
'required' forces the attribute to be present, errors otherwise
'default' sets a value if the suppied thing is not-present, but _any_ offered thing (even undef) overrides
01:56 agentzh joined
sorear 'init_arg' allows you to choose a different key for the constructor, or undef to disallow constructor setting entirely 01:56
jnthn init_arg seems to have come straight from clos. :-) 01:57
sorear 'builder' is like default, but takes a method name instead, for big out-of-line stuff
tylercurtis CLOS++
sorear 'lazy' means that, if the attribute value is not supplied on construction, the default or builder will be called on the first read access 01:58
jnthn default sounds like has $.foo = 42; and builder sounds like has $.foo = $.method; 01:59
sorear it's funny. I initially came to #perl6 wanting to experience the real thing, since I'm a Moose hacker, but now I'm pretty sure that Moose *is* the real thing and will wind up getting ported to Perl 6
tylercurtis Generally, ++ to adding any of the attribute stuff from Moose to Perl 6. 02:00
sorear triggers! call this code block whenever an attribute is changed
02:00 ashleydev left
jnthn sorear: Are all these things in Moose core, or some MooseX? 02:00
tylercurtis Preferably with a more pleasant syntax.
jnthn: Moose core.
sorear see: search.cpan.org/~doy/Moose-1.08/lib...m#Creation ; search.cpan.org/~flora/Class-MOP-1....m#Creation 02:01
all the standard attribute traits are in one of those lists 02:02
jnthn *nod*
sorear the Moose notion of a trait is rather different from Perl 6's
jnthn Yes
sorear in Moose land, a trait is an attribute of a meta object
jnthn I'm know that. :-)
In Perl 6 a trait may end up adding an attribute to a meta-object
But it's up to whatever the multi candidate decides to do that handles that trait.
sorear has foo => (bar => 1, baz => 1) --> Attribute.new(name => 'foo', bar => 1, baz => 1)
lue wello o/
sorear yeah 02:03
it mostly boils down to: Moose adds new traits by subclassing %*KNOWHOW<has>
%?
02:03 sahadev left
tylercurtis What is %*KNOWHOW? 02:04
sorear tylercurtis: it's the Perl 6 compiler variable which tracks the lexically scoped current default metaclasses for various syntactic objects
BEGIN { %*KNOWHOW<role> } returns an object which knows how to implement role declarations at that point 02:05
dalek kudo: c80d2d9 | jonathan++ | src/ (2 files):
Start to improve multi-method dispatch failure errors. Now they include the
02:06
kudo: 7b26327 | jonathan++ | src/Perl6/Actions.pm:
Generalize add_phaser's argument list a little so it doesn't take the block to
kudo: b19a44e | jonathan++ | src/pmc/p (2 files):
If a multi-method dispatch fails, also dump the list of candidates, sorted as
kudo: f74314f | jonathan++ | src/pmc/p6invocation.pmc:
Fix lolspeak-o.
sorear in principle, you can lexically change the meaning of the object system with a well placed constant %?KNOWHOW = hash( %?KNOWHOW, :role<MyRoleHOW> );
but this is not very specced at the moment 02:07
02:08 sahadev joined
tylercurtis Moose has CL-style :documentation? Nice. 02:09
jnthn sorear: Rakudo calls it %*HOW at the moment 02:12
rakudo: BEGIN { say %*HOW<class> }
dalek kudo: b612d4a | jonathan++ | src/ (4 files):
REJECTS is gone from the spec, so toss it from Rakudo too.
p6eval rakudo c2ebda: OUTPUT«===SORRY!===␤Null PMC access in invoke()␤»
jnthn huh
rakudo: BEGIN { say 'alive' } 02:13
p6eval rakudo c2ebda: OUTPUT«alive␤»
jnthn rakudo: BEGIN { say %*HOW }
p6eval rakudo c2ebda: OUTPUT«Hash[0x75e82b0]␤»
jnthn Oh
Think it's a Parrot hash leaking in.
sorear well it *is* defined in NQP 02:15
sorear is rewriting primitives from a stack-based IR to a tree-based IR. Out with the line noise, in with the fingernail clippings? 02:16
02:20 FardadJalili left 02:33 Sarten-X joined 02:35 meteorjay left 02:36 meteorjay joined 02:38 ashleydev joined 02:46 gbacon left
jnthn phenny: tell pmichaud is there anything you want to salvage from this patch? rt.perl.org/rt3/Ticket/Display.html?id=73148 If not, close ticket. :-) 02:47
phenny jnthn: I'll pass that on when pmichaud is around.
dalek kudo: aea8165 | jonathan++ | src/pmc/perl6multisub.pmc:
Remove long-commented out code that we don't need.
lue Are there any tips to finding the issue when you break something as simple as print ? 02:52
[I'm not a master in debugging...]
jnthn lue: Take your patch out and then add it back piece by piece to try and narrow down what caused the breakage 02:53
lue: Breaking print/say is...well...ouch
lue: Normally it boils down to somehting broken with regard to initialization, or soemthing broken in dispatch. 02:54
lue I only did two things, so fortunately that wouldn't take too long. # and that fact it's something as unrelated as =:= is not helping :) 02:57
jnthn Yes, it's...odd 02:58
It's also 5am here though so probably I should sleep when this spectest run is done. :-)
lue huh, I don't remember modifying the grammar (mentioned after reset).
jnthn: I think I may have inherited your bad sleeping habits from a while back. I'm starting to stay up 'til around midnight, 1am every night :) 03:00
jnthn What's mentioned after reset is just the last change before you did anything, not a change of yours.
03:00 sahadev left
jnthn lue: huh...I stay up until 1 when I'm being well behaved. :-) 03:00
lue you know which xkcd comic I'm thinking of right now, I bet :) 03:01
jnthn :-)
yay
jnthn git pushes for the last time today
er, well
"today" :-) 03:02
03:02 felliott joined
lue I remember (thanks to git diff), the grammar mod was attempting to fix 'where', which I gave up :) 03:03
jnthn idem spat. Night all. o/ 03:04
lue goodnight o/
dalek kudo: 2348e0c | jonathan++ | src/Perl6/Grammar.pm:
Switch grammar augmentations to work like a BEGIN phaser. Fixes issues relating

cleaner.
kudo: 0680fc2 | jonathan++ | docs/ROADMAP:
Move operating overloading to done section of ROADMAP now that the pre-comp
lue rakudo: multi sub circumfix:<Ω Ω>($a) { say $a }; Ω3Ω 03:06
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Cannot take substr outside string␤»
lue rakudo: multi sub circumfix:<Ω Ω>($a) { say $a }; Ω 3 Ω
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "\u03a9 3 \u03a9"␤»
03:08 sahadev joined 03:25 FardadJalili joined
FardadJalili how can I invoke a method of a parent class in its child? 03:26
sorear nextsame; 03:27
FardadJalili sorear: thanks. 03:28
03:38 skids left 03:44 felliott left 03:50 felliott joined 04:24 cjk101010 joined 04:29 FardadJalili left 04:30 songmaster joined
songmaster rakudo: my %a; say %a<a> :exists ?? "Yes" !! "No" 04:38
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "say %a<a> "␤»
tylercurtis std: if 5 sub ($a) { say 'does this work?'; } 04:39
p6eval std 31715: OUTPUT«===SORRY!===␤Missing block at /tmp/iXjqCBJD10 line 1:␤------> if 5 ⏏sub ($a) { say 'does this work?'; }␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤Parse failed␤FAILED 00:01 117m␤»
songmaster rakudo: my %a; %a<a>=0; say %a<a> :exists ?? "Yes" !! "No"
tylercurtis didn't think it would.
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "say %a<a> "␤»
tylercurtis rakudo: my %a; %a<a> = 0; say ($a<a> :exists); 04:40
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 20␤»
tylercurtis rakudo: my %a; %a<a> = 0; ($a<a> :exists ).say;
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "($a<a> :ex"␤»
songmaster I don't think the :exists adverb works. There are no tests for it (S02), unlike the :kv adverbs. 04:42
tylercurtis rakudo: my %a; %a<a> = 0; ($a<a> :kv).say;
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "($a<a> :kv"␤»
tylercurtis rakudo: my %a; %a<a> = 0; ($a<a>:p).say;
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "($a<a>:p)."␤»
tylercurtis rakudo: my %a; %a<a> = 0; (%a<a>:p).say; 04:43
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "(%a<a>:p)."␤»
tylercurtis rakudo: my %a; %a<a> = 0; (%a<a> :delete).say;
p6eval rakudo b612d4: OUTPUT«===SORRY!===␤Confused at line 20, near "(%a<a> :de"␤»
TimToady rakudo basically doesn't do adverbs yet
you'll have to call a method on the container object
songmaster Thx, was just checking...
TimToady rakudo: my %a; %a<a> = 0; %a.delete('a').perl.say 04:45
p6eval rakudo b612d4: OUTPUT«0␤» 04:46
TimToady at least it looks like it returns the value
04:47 bcubas left
tylercurtis TimToady: do you know if any implementation does adverbs correctly yet? 04:48
TimToady well, viv correctly translates them to Perl 5 for the implementation of STD 04:49
04:49 bcubas joined
TimToady because the standard grammar uses :delete and :exists 04:49
and STD parses them correctly, obviously 04:50
or viv wouldn't be able to do that
szabgab rakudo: my @x = 1..3; for @x -> $a, $b { say $a } 04:51
p6eval rakudo 0680fc: OUTPUT«1␤3␤»
szabgab oh, I was expecting StopIteration here 04:53
TimToady theres a test in ./spec/S02-builtin_data_types/autovivification.t but most of the :exists seem to be S05 tests
rakudo: my @x = 1..3; for @x -> $a, $b? { say $a } 04:54
p6eval rakudo 0680fc: OUTPUT«1␤2␤3␤»
TimToady looks busted
that one should say 1,3 04:56
04:57 felliott left, rv2733 joined
szabgab my version of Rakudo is old as at least the former works 04:58
I wonder if I should upgrade now :)
rakudo: my %x = <a A b c>.classify( { .lc } ); say %x.perl 04:59
p6eval rakudo 0680fc: OUTPUT«{"b" => ["b"], "c" => ["c"], "a" => ["a", "A"]}␤»
szabgab rakudo: my %x = <a A b c>.classify( { .lc } ); for %x -> $k { say $k }
p6eval rakudo 0680fc: OUTPUT«a a A␤b b␤c c␤»
szabgab so this us busted too?
so is this busted too? 05:00
TimToady rakudo: my %x = <a A b c>.classify( { .lc } ); for %x -> $k { say $k.WHAT }
p6eval rakudo 0680fc: OUTPUT«Pair()␤Pair()␤Pair()␤»
TimToady that seems okay
szabgab rakudo: my %x = <a A b c>.classify( { .lc } ); for %x -> $k, $v { say $k } 05:01
p6eval rakudo 0680fc: OUTPUT«b b␤a a A␤» 05:02
szabgab rakudo: my %x = <a A b c>.classify( { .lc } ); for %x -> $k, $v { say $k.WHAT }
p6eval rakudo 0680fc: OUTPUT«Pair()␤Pair()␤»
szabgab rakudo: my %x = <a A b c>.classify( { .lc } ); for %x.kv -> $k, $v { say $k.WHAT }
p6eval rakudo 0680fc: OUTPUT«Str()␤Str()␤Str()␤»
szabgab rakudo: my %x = <a A b c>.classify( { .lc } ); for %x.kv -> $k, $v { say $k } 05:03
p6eval rakudo 0680fc: OUTPUT«c␤a␤b␤»
szabgab thanks, I need to upgrade :) 05:04
tylercurtis TimToady: how are operator adverbs defined? 05:06
TimToady they just turn into extra named args to the operator, so postcircumfix:<{ }>($array, **@subscripts, :$exists) {...} or some such 05:09
05:09 macdaddy joined
tylercurtis I thought that might be the case, although it does not make implementing :ok sound simple. 05:10
cognominal about #76514 and masak 18:29, now I am convinced. We can close the bug.
05:10 macdaddy is now known as Guest54
TimToady :ok is not likely to be done that way, for that reason 05:11
cognominal thx for your feedback.
TimToady (if we ever do :ok)
:ok would likely end up hardwired in the compiler, much like *.foo 05:13
szabgab I have a directory with a efw subdirs that are the same name just in different case and windows does not like that, I was trying to locte them: 05:14
rakudo: my %h = qqx{ls -1}.split("\n").classify({ .lc }).grep({ say .key if .value != 1})
p6eval rakudo 0680fc: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/S8XKVyBqKe␤ in main program body at line 20:/tmp/S8XKVyBqKe␤»
szabgab rakudo: my %h = <a A b c>.classify({ .lc }).grep({ say .key if .value != 1})
p6eval rakudo 0680fc: OUTPUT«a␤»
szabgab rakudo: <a A b c>.classify({ .lc }).grep({ say .key if .value != 1})
p6eval rakudo 0680fc: ( no output )
TimToady +.value maybe 05:17
tylercurtis Makes sense, especially since it wouldn't really need to modify the behavior of the op; just check its result.
TimToady though != should imply + 05:18
05:20 Chillance left 05:27 jakk joined, jakk left
TimToady thunk & 05:30
05:41 songmaster left 05:42 rgrau` left 05:46 sahadev left
moritz_ phenny: tell pmichaud I'm confused by r31715, "Revise test dealing with ro-ness of .my()". The comment you added is the contrary of th test code. I agree with the comment, not with the code 05:49
phenny moritz_: I'll pass that on when pmichaud is around.
moritz_ phenny: tell pmichaud also the last test now has a very misleading test message 06:00
phenny moritz_: I'll pass that on when pmichaud is around.
pugssvn r31716 | pmurias++ | [mildew] --no-wrap-in-block option 06:01
r31717 | pmurias++ | [smop] use --no-wrap-in-block option to fix regressions 06:02
06:09 ashleydev left 06:10 uniejo joined 06:23 tylercurtis left
dalek kudo: 0b3a0ec | (Martin Berends)++ | tools/test_summary.pl:
[tools/test_summary.pl] use $*VM<config><revision> instead of %*VM...
06:27
cxreg mberends: even though zavolaj is broken, i'm pretty sure Pg works and the test passes, so I'm thinking I'll merge it 06:32
mberends cxreg: I agree, your Pg passed 24 tests out of 32 over here, the remainder were minor points. 06:35
cxreg ok, pushed 06:36
mberends :) that zavolaj bug has resisted about 10 attempted patches over here 06:37
moritz_ mberends: did you bisect rakudo? 06:38
cxreg yikes
moritz_: i'll do it
mberends moritz_: I won't have time to bisect. Some revisions will need Parrot rebuilds too. cxreg++ for volunteering :-) 06:39
cxreg mberends: the nice thing about bisect is that you write a script and let git do all the work for you 06:45
cxreg has one almost ready
mberends cxreg: I had not quite figured out what that script would need to do, factoring in parrot revisions and the database tests. 06:48
sorear what would be cool? git trisect
L L+(H-L)/3 L+2*(H-L)/3 H 06:49
moritz_ what would that doo? :-)
sorear not quite as efficient, but makes up for it in parallelism
since rakudo builds only use one core
wonder if anyone's done it.
mberends 8 cores, 9-sect?
moritz_ would imply multiple checkouts too 06:50
git n-sect :-)
spoken "git insect" :-)
06:51 justatheory left, baest joined 07:06 pmurias joined
cxreg ok, it's running. expects to take roughly 7 builds 07:08
which should take what, 3 hours? :/
moritz_ remember to re-gen Zavalaj.pir after each rakudo compilation 07:12
cxreg yep
sorear woah, for once I don't have the slowest computer in the room 07:13
cxreg sorear: i think there's something wrong with cpufreq on this box, i cant get it to go over 800mhz
moritz_ the intel pentium M cpufreq stepping always worked well for me under linux 07:15
cxreg this is a core 2 duo
cxreg shrugs
moritz_ doesn't have experience with those 07:16
sorear _this_ is a first stepping Pentium 4 from 2003 07:17
mberends cxreg: the kind of script you've made might be generally useful in rakudo/tools/, if you can abstract out the <test> part.
sorear (my history sucks, don't trust the dates, but cpuid agrees on the model bit)
cxreg mberends: it's pretty lousy :) 07:19
dalek kudo: d0df858 | moritz++ | src/Perl6/Compiler.pir:
report parrot revision in --version output
07:20 Mowah joined
pmurias sorear: hi 07:21
moritz_ jnthn: I think that Perl6::Module::Loader.stub_lexical_imports needs to call Perl6::Grammar.gen_op (to make imported operators parse), but at that point we don't have a reference to it. Any idea what the best solution would be? Or should the call happen when we parse 'use' or 'need' instead? 07:25
pugssvn r31718 | moritz++ | [t/spec] tests for RT #76366, accessing lexicals through our-subs 07:46
cxreg down to 5 revs 07:49
07:53 snarkyboojum left 07:54 snarkyboojum joined 07:56 snarkyboojum left
pugssvn r31719 | moritz++ | [t/spec] tests for RT #74186, unfudge two similar tests, and switch to planless testing 07:56
07:57 japhb left
moritz_ another two tickets down 07:58
07:58 pmurias left 08:01 xabbu42 joined
sorear it's kind of amusing seeing Perl 6 with 5-digit ticket numbers. 08:02
cxreg moritz_: it was the llsig branch
frettled sorear: and in short time, referring to a 4-digit ticket number will be like having a 4-digit user ID on Slashdot :) 08:03
08:03 arnsholt joined
sorear frettled: no, it's not that 08:05
moritz_ cxreg: that's what I feared :/
sorear we don't actually have lots of tickets; ticket numbers are -highly- inflated
cxreg moritz_: i'm down to my last 2 builds, should have the sha in a few mion
sorear basically the following things contribute towards our ticket numbers:
* Perl 6 bugs
cxreg min
sorear * Perl 5 bugs
moritz_ * spam 08:06
sorear * Parrot bugs from the TPF days
* All spam sent to perl.org
or maybe just all spam sent to the report addresses
frettled sorear: so just like Slashdot. :)
pugssvn r31720 | moritz++ | [t/spec] tests for RT #75136: declaring a multi just returns the current candidate, not the whole set 08:07
moritz_ that one was fun to test 08:09
it's a quite unusual bug report
08:09 japhb joined 08:10 eternaleye left
frettled Hmm! 08:13
08:20 plobsing left
pmichaud good evening, #perl6 08:25
phenny pmichaud: 02:47Z <jnthn> tell pmichaud is there anything you want to salvage from this patch? rt.perl.org/rt3/Ticket/Display.html?id=73148 If not, close ticket. :-)
pmichaud: 05:49Z <moritz_> tell pmichaud I'm confused by r31715, "Revise test dealing with ro-ness of .my()". The comment you added is the contrary of th test code. I agree with the comment, not with the code
pmichaud: 06:00Z <moritz_> tell pmichaud also the last test now has a very misleading test message
sorear hello pmichaud 08:26
pugssvn r31721 | pmichaud++ | [t/spec]: update callframe.t tests per comments from moritz_++ . 08:28
pmichaud moritz_: ping
cxreg o_O 08:35
bisect claims that commit 874adc3ef broke it
could be my script was inadequate due to interim build issues though 08:36
08:38 Ross joined 08:39 thebird joined 08:42 meppl joined
cxreg updates the script and re-runs 08:44
sorear What's the difference between FIRST and START? 08:45
Other than that FIRST is only legal in loops 08:46
08:46 dakkar joined
moritz_ pmichaud: pong 08:46
pmichaud moritz_: in d0df85, what happens for the revision number on parrot tarballs not obtained via svn? 08:47
does it display Parrot r0 ?
moritz_ pmichaud: it displays whatever parrot returns in the config hash 08:48
pmichaud okay, so r0 then.
that seems lta
moritz_ good question though
does parrot reports its release version somehow?
pmichaud at least, that's what Parrot used to report for non-svn checkouts.
moritz_ then I could check for revision == 0 and print the version number instead 08:49
pmichaud VERSION
dalek ecza: 4581f14 | sorear++ | (2 files):
Move rest of the small subs to CgOp
ecza: d45d477 | sorear++ | (2 files):
Move some of the MOP to CgOp
ecza: 0d2e83d | sorear++ | (3 files):
Generalize scopedlex to also handle puts
08:49 timbunce joined
ecza: 04a8475 | sorear++ | (2 files):
Make the syntax for unquoted names in Q:CgOp slightly more liberal
ecza: 77809fa | sorear++ | (3 files):
Add some Huffmanny shorthands for Q:CgOp
ecza: 2375faa | sorear++ | setting:
Move the rest of the MOP to Q:CgOp
ecza: acb3c4e | sorear++ | Niecza/ (2 files):
Retire NIL
pmichaud rakudo: say $*VM<parrot><VERSION> 08:50
p6eval rakudo d0df85: OUTPUT«Any()␤»
pmichaud rakudo: say $*VM<config><VERSION>
p6eval rakudo d0df85: OUTPUT«2.5.0␤»
pmichaud maybe always output VERSION, and add the revision number if known. 08:51
moritz_ ok, will do 08:52
08:59 snarkyboojum joined
sorear hello snarkyboojum 08:59
I fixed the HFS+ issue
moritz_ no, you worked around it :-) 09:00
HFS+ still has the issue
frettled What was the HFS+ issue? 09:01
snarkyboojum sorear: I saw that - much appreciated :)
moritz_ frettled: case insensitivity
frettled moritz_: oh, that one.
moritz_: occurs in other toy file systems, too :) 09:02
moritz_ frettled: I know :-)
frettled But only HFS+ has perfected Unicode madness.
moritz_ madness in what way? 09:03
cxreg ask leonidas
frettled Executive (and therefore inaccurate) summary: Apple implemented Unicode support in their file systems before Unicode encoding was properly standardised. Incompatibility ensues. 09:04
sorear you mean like, it's using a bizarre normal form?
moritz_ I dimly recall that macos x preserves decomposed normal form of umlauts entered with dead keys
and doesn't normalize on access
so if you copy&paste an &auml; from a web site it's a different character than one entered via keyboard 09:05
09:05 clintongormley joined
frettled It's a bit more complicated than that, but just a bit: en.wikipedia.org/wiki/HFS_Plus 09:08
Ah, _there_ was the kerneltrap link: kerneltrap.org/mailarchive/git/2008...749/thread 09:10
09:10 pmurias joined 09:13 payload left
moritz_ frettled: thanks for the link, hilarious indeed 09:13
09:18 Sanitoeter joined, Guest54 left
frettled np 09:25
sorear What's everyone's favorite Perl 6 microbenchmark? 09:27
... since when does "256 unicode characters" take up "512 bytes" 09:30
cono sorear: ([/] 1,2,3).perl.say
arnsholt sorear: UTF-16? 09:31
pmichaud: I pushed a branch which gives nqp-rx given/when. The code should be ready for merge into master if it's a wanted feature 09:34
pmichaud arnsholt: url?
arnsholt github.com/perl6/nqp-rx/tree/given-when
sorear cono: I'm looking for something which takes a measurable amount of time to run. 09:35
moritz_ sorear: they count characters represented by 4 byte UTF-16 as 2 characters. d'oh.
cono sorear: ("A" ... "ZZ").perl.say 09:36
pmichaud arnsholt: can you make it work with the normal .CONTROL_BREAK exception instead of using a repeat loop? 09:39
also, I'm concerned that many people will get thrown off by the fact that most of Parrot's built-in types don't understand smart matching. 09:41
so things like when "foo" { ... } won't work.
arnsholt Yeah, that's tripped me up with ~~ as well a few times
pmichaud in that situation I think I'd almost prefer not to offer given/when at all rather than one that only works in limited cases. 09:42
arnsholt Yeah, that I can understand
moritz_ is .method_on_dollar_bang implemented? 09:43
arnsholt jnthn++ said he would look into if the new metamodel might make that less of an issue 09:44
(I for one have my fingers crossed)
pmichaud I don't see how it can (more)
for when "foo" { ... }
it would mean that "foo" would have to have an .ACCEPTS method on it
and I don't think the metamodel is dealing with that. At least, I hope it isn't.
arnsholt True, true 09:45
Another option would be to make the smart-match code do more than just invoking .ACCEPTS
pmichaud that gets... tricky
arnsholt That it does
While you're here. I've an idea brewing to make at least some of Parrot's sub modifiers available in nqp-rx. Does that sound worthwhile? 09:50
(Most notably, it'd be nice to have :vtable)
pmichaud to the extent that's to be done, it's to be handled via traits
i.e., is vtable('...')
arnsholt Yeah, that's my conclusion as well
pmichaud I'd be happy to see an "is vtable" implementation. 09:51
moritz_ I hope you'll be using a cheating traits implementation
because the "real thing" requires rather advanced multi dispatch
arnsholt I will definitely cheat the traits
moritz_ (probably more than parrot offers out-of-the-box)
pmichaud it can't assume the existence of &trait_mod:<is>, no.
moritz_ pmichaud: any comments on my comments on your last spectest patch? 09:52
09:52 jferrero joined
arnsholt ATM my experiment code just has [is <trait=.colonpair>]* sandwiched in between the sig and the block 09:52
pmichaud moritz_: I modified the spectest. 09:53
moritz_ pmichaud: ok
pmichaud r31721
moritz_ it's much more consistent now, but I think still wrong 09:54
pmichaud which part do you think is wrong? ;-)
moritz_ anyway, works for me
that it's not dies_ok
pmichaud and you think it should be dies_ok because...? 09:55
I think if the assignment is dies_ok, then the lookup must be as well.
moritz_ I didn't notice the unclarity in the spec when I read it, back when I implemented callframe()
pmichaud either $x is visible (and writable), or it's not visible.
moritz_ right
anyway, I'm fine with leaving it as-is 09:56
pmichaud I'm willing to say it shouldn't be visible, and to modify the tests to agree with that, and to mark them as todo/skip
but I was trying to use .my to fix the $/-in-subst-issue and that's what led me to that. :-) 09:57
moritz_ right, we also use it in MAIN
did you commit the $/-in-subst btw?
pmichaud no, there are other problems.
moritz_ :(
pmichaud other spectests fail, so it's going to need a more wholesome fix.
I'll revisit it a bit later -- likely on the plane. 09:58
10:01 szabgab left 10:05 sftp_ joined, sftp left 10:06 lestrrat is now known as lest_away 10:09 ive joined 10:18 agentzh left, sftp_ left 10:19 sftp_ joined
sorear removes 500 lines of code. refactoring++ 10:29
also, out.
10:30 Mowah left
dalek ecza: 8a46a61 | sorear++ | C (2 files):
Move most of the derived-operation logic from CodeGen to CgOp
10:33
ecza: dfbc2aa | sorear++ | C (2 files):
Generalize call CgOps to support CPS calls too
ecza: c2bd41b | sorear++ | C (2 files):
Start removing CPS helper function calls out of the primitive set
10:36 Mowah joined 10:37 agentzh joined
pugssvn r31722 | pmurias++ | [mildew] make a test correct 10:53
r31723 | pmurias++ | [mildew] fix a bug
r31724 | pmurias++ | [smop] better DUMPing, add support for %DUMP {... %} to the .ri language 10:54
10:54 user__ joined 10:55 masonkramer left, masonkramer joined 10:58 user__ is now known as azure1st
colomon A method named 'infix:sym<O/>' already exists in class 'Perl6;Grammar'. It may have been supplied by a role. 10:59
??? 11:00
jnthn: ping 11:03
11:08 azure1st left
moritz_ colomon: what are you doing to get that error? 11:16
colomon Trying to build Vector
specifically, it's a .pm file trying to use the .pm where infix:<O/> is declared. 11:17
changing the name does not change the error.
moritz_ oh
do you have a precompiled .pir lying around?
colomon you mean, as the source of the problem, or so that you can look at it?
(I did do a make clean) 11:18
moritz_ problem source
well, jnthn fiddled with custom operators a bit
and importing them is known to be broken
colomon Ah, I thought he was declaring that fixed. 11:19
moritz_ no, what he did was custom circumfixes
colomon "Move operating overloading to done section of ROADMAP now that the pre-comp 11:20
issues are dealt with. "
moritz_ oh 11:21
colomon github.com/rakudo/rakudo/commit/234...8191719f55
jnthn oh hai
colomon o/
jnthn Yes, pre-comp *should* be fixed now.
moritz_ rakudo: BEGIN { @*INC.push: 't/spec/packages' }; use Exportops; say 5! 11:22
p6eval rakudo d0df85: OUTPUT«===SORRY!===␤Unable to find module 'Exportops' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval//p1/lib/parrot/2.5.0-devel/languages/perl6/lib␤ .␤ t/spec/packages)␤»
moritz_ rakudo: BEGIN { @*INC.push: '/home/p6eval/pugs/t/spec/packages' }; use Exportops; say 5! 11:23
p6eval rakudo d0df85: OUTPUT«120␤»
moritz_ rakudo: BEGIN { @*INC.push: '/home/p6eval/pugs/t/spec/packages' }; use Exportops; say 3 yadayada 5
p6eval rakudo d0df85: OUTPUT«3..5␤»
colomon right, this seems to be a more subtle problem
moritz_ rakudo: BEGIN { @*INC.push: '/home/p6eval/pugs/t/spec/packages' }; use Exportops; say ¢5 11:24
p6eval rakudo d0df85: OUTPUT«5 cent␤»
moritz_ rakudo: BEGIN { @*INC.push: '/home/p6eval/pugs/t/spec/packages' }; use Exportops; say 3 notthere 5 # not exported, should fail
p6eval rakudo d0df85: OUTPUT«Could not find sub &infix:<notthere>␤ in main program body at line 20:/tmp/g_Wzw_v3da␤»
moritz_ that's the wrong error message 11:25
jnthn moritz_: Grammar tweaks aren't done as mix-ins just yet. 11:26
moritz_: So they'll be a bit leaky still.
moritz_ jnthn: wfm, I'll just write a ticket :-)
jnthn moritz_: Primarily the fix I did solves things like, any operators we wrote in the core setting would get lost
Or at least, our ability to parse them would. 11:27
moritz_ std: 3 notthere 4 11:28
p6eval std 31724: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/OqesRAJTeM line 1:␤------> 3 ⏏notthere 4␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 114m␤»
moritz_ jnthn: oh, I now see while imported-subs.t doesn't work 11:30
use Exportops;
eval_lives_ok '5!', 'postfix:<!> was exported...';
fail
eval_lives_ok executes in the context of Test.pm
jnthn Ah!
Yes, that is a fail
colomon: Where is Vector.pm so I can try and re-produce the error? 11:31
colomon github.com/colomon/Vector 11:33
run ufo and make and you'll get it. 11:34
11:34 Sarten-X left
pugssvn r31725 | moritz++ | [t/spec] fix imported-subs.t 11:34
moritz_ one of you has the honor of add S06-operator-overloading/imported-subs.t to t/spectest.data, I currently don't have access to my ssh key 11:35
jnthn colomon: ufo don't work on Win32 :-/
bbi10
colomon the bug crops up making Nurbs.pm, the operator is imported from KnotVector.pm
11:35 agentzh left
dalek kudo: 3576104 | (Solomon Foster)++ | t/spectest.data:
Turn on S06-operator-overloading/imported-subs.t, moritz++.
11:41
kudo: 43f15a9 | pmichaud++ | src/ (2 files):
Refactor phaser handling, add .loadinit to set mainline outer_ctx as early as
kudo: a95517f | pmichaud++ | t/spectest.data:
Merge branch 'master' of github.com:rakudo/rakudo
colomon jnthn: also, it seems like Vector.pm's infix:<+> is getting blocked by the core's infix:<+>, even after I declare it our multi sub infix:<+>(Vector $a, Vector $b where { $a.Dim == $b.Dim }) is export 11:46
dalek kudo: 2317396 | pmichaud++ | src/Perl6/Actions.pm:
Eliminate obsolete %BEGINDONE.
11:52
pmichaud jnthn: ping 11:58
11:59 Mowah left
colomon moritz_: is there a reason srand takes a Real instead of an Int in the spec? I'm trying to sort out What Should Be Done with it... 12:00
jnthn colomon: ah, think I may have realized part of what I've broken... 12:01
pmichaud: pong
moritz_ colomon: I think the implementation should be free to either use a full Real for initialization, or truncate to Int if it doesn't make sense for the PRNG to use reals
pmichaud jnthn: just a status update
I refactored add_phaser a bit tonight
moritz_ colomon: but if most PRNGs actually use an Int, I'd be OK with standardizing on Int too
jnthn git pulls
pmichaud CHECK, INIT, END no longer go through !YOU_ARE_HERE 12:02
12:02 envi^home joined
pmichaud BEGIN does, but only for the immediately-executed-during-compile-time part 12:02
jnthn pmichaud: Do they still find subs in the setting?
pmichaud jnthn: they don't, and that's interesting.
jnthn argh!
So you broke what I fixed yesterday. :-(
pmichaud well, all spectests passed. (more) 12:03
jnthn Yes, because I'd not got to enabling any.
For the fixes.
pmichaud more to the point, the problem we're having with setting is unrelated to BEGIN.
or to the phasers.
moritz_ rakudo: INIT { say 4 }
p6eval rakudo d0df85: OUTPUT«4␤»
pmichaud well, obviously not completely unrelated, but not tied to BEGIN itself. 12:04
the other thing I added is that the mainline code gets an outer context immediately once it is loaded.
so the fact that &say isn't being found is because that outer context isn't being set properly.
12:06 azert0x joined, azert0x left
jnthn pmichaud: The outer context of...what? 12:06
12:07 azert0x joined
pmichaud the mainline 12:07
in something like
INIT { say 4 }
the outer block of the init closure should be the mainline code
and the outer block of the mainline code is the setting
12:07 azert0x left
jnthn Right 12:08
But I think you'd just put something in to set the outer of the mainline to be the setting?
pmichaud I did that
12:08 azert0x joined
pmichaud before tonight, we were setting the outer of the mainline at the point where it was executed 12:08
which is too late for BEGIN, CHECK, and INIT
jnthn Right.
pmichaud so, I added a loadinit that is setting the outer of the mainline at the point where it's loaded 12:09
and for some reason it's not taking effect (working on that now)
jnthn The thing is that the capture_lex that the mainline body does on, say, the INIT block doesn't run until the mainline body does.
12:09 azert0x left 12:10 azert0x joined
pmichaud true, but the INIT block should autoclose 12:10
jnthn Yes, true
pmichaud which should at least get back to the setting.
jnthn Right.
But it doesn't seem to work out?
pmichaud not yet. still working out why.
also, is it supposed to be the case that the !class_init block takes place lexically inside of the bare block? 12:13
i.e., in class C does Foo { ... }, the !class_init code has the class block as its outer 12:14
jnthn pmichaud: I think that's deliberate. I don't recall why right away. 12:15
pmichaud okay.
jnthn pmichaud: looking at auto-close...hmm
pmichaud seemed weirdish when I was debugging the output.
takadonet morning all
jnthn It follows c->outer_ctx
takadonet wow! lots of commits 12:16
12:16 uniejo left
pmichaud something else is werid, too. 12:16
here's the code I'm currently looking at
gist.github.com/478296
jnthn pmichaud: In Sub.pmc the code in METHOD set_outer(PMC *outer) { does some stuff to try and find an outer_ctx to attach as well as an outer_sub 12:17
pmichaud: I ain't convinced it's going to work in the case we have though.
pmichaud in general I'm not using set_outer
normally we just use set_outer_ctx
(which sets outer_ctx directly)
jnthn OK 12:18
pmichaud in the gist I just nopasted... I'm trying to figure out what context is interposing itself between _block76 and _block64
_block64 is the mainline 12:19
jnthn Yes, that looks...odd indeed.
pmichaud _block76 is the CHECK block
_block76 has _block64 as its :outer
so.... where's the intermediate context coming from?
jnthn That's very odd. 12:21
12:21 JimmyZ joined
jnthn pmichaud: autoclose seems to look at the ->outer_sub pointer 12:22
pmichaud: As well as the outer_context one
pmichaud yes, I also tried setting outer_sub... didn't seem to help.
although I'm curious.... (checking something)
jnthn pmichaud: I'm trying to work out if auto-close coulda stuck in the extra frame. 12:23
pmichaud: Of note, auto-close does this: 12:24
outer_pmc = current_sub->outer_sub;
if (PMC_IS_NULL(outer_pmc))
break;
Meaning that if outer_ctx is set but outer_sub is not, it will stop auto-closing.
pmichaud well, outer_sub is set. 12:25
jnthn The mainline's outer_sub is set?
pmichaud sure
the mainline has an :outer -- it points to the wrapper block for the entire compilation unit
jnthn Right, so which block gets it's outer sub set to point to the setting? 12:26
The wrapper block?
12:27 ruoso joined
pmichaud the outer_sub isn't likely the problem. 12:27
the likely problem is
jnthn Or more to the point - do we somewhow end up with a twiddled chain of outer_sub such that following it from e.g. a phaser -> mainline -> ... eventually gets us to the setting?
pmichaud outer_c = outer_sub->ctx;
although that could be related to the outer_sub, yes. 12:28
so....
I did try setting outer_sub on the mainline as well, that didn't seem to help. I'll try it again.
12:29 am0c joined
pmichaud oh, I might've had my "current_sub" from the wrong pointer 12:30
building now.
12:30 Ross left
jnthn $P1 = getattribute $P0, 'current_sub' # get attribute on a Null PMC segfaults?! 12:32
pmichaud (btw, in the new code it's trivially simple for me to get the phasers to run from the setting again -- I just disabled it for the refactor to try to get something a bit more "rightish")
it might segfault due to a recursive handler, I guess. 12:33
jnthn ah, true
That sounds more likely
...I hope!
pmichaud okay, changing UNIT_OUTER and YOU_ARE_HERE To force a 'set_outer' on the mainline doesn't seem to change anything. 12:34
jnthn That check example still shows the outer_ctx of the mainline is null? 12:35
pmichaud yes.
12:35 azert0x left
jnthn And we're absolutely certain that the code that does the set_outer was run before the CHECK block? 12:35
(could be good to stick in a debugging print statement just to be really sure) 12:36
pmichaud any chance
12:36 azert0x joined
pmichaud I can check that, yes. 12:36
any chance that something is coming in and undoing the set_outer that I'm doing at :load :init ? 12:37
like, a fixup or something like that?
jnthn I can't think of anything that would. 12:38
I'm still lost on where the phantom block comes from.
pmichaud me too.
I'm thinking there must be an autoclose bug here somewhere. 12:39
when I ask the CHECK block for its outer sub, it correctly reports _block64 12:40
anyway, confirmed: UNIT_CHECK is calling !YOU_ARE_HERE prior to invoking the CHECK block. 12:41
sorry, UNIT_OUTER
jnthn OK, good to know
pmichaud and !YOU_ARE_HERE is calling both set_outer and set_outer_ctx 12:42
jnthn !UNIT_OUTER is too?
pmichaud well, in this case !UNIT_OUTER calls !YOU_ARE_HERE 12:43
jnthn ah, oi
*ok
pmichaud I'm putting in a debug print to verify the outer is being set. 12:44
jnthn pmichaud: The phantom sub is of type Sub and claims to live in the perl6 namespace
pmichaud: ...and has subid post29 12:45
pmichaud oooh, subid 12:46
jnthn Which is the thing that add_phaser's it
However, its :outer(...) certainly does _not_ point to post29
pmichaud the :load :init block?
jnthn Yes
just add 12:47
$S0 = $P1.'get_subid'()
say $S0
After the line that prints the phantom sub
pmichaud come to think of it.... *why* does the CHECK block have the mainline as its outer in the first place anyway? 12:48
12:48 bluescreen joined
pmichaud I'd think it'd be the :load :init block, with the way the code is now. 12:48
12:48 bluescreen is now known as Guest19703
pmichaud a-ha 12:49
jnthn pmichaud: I'm a tad confused what this is doing
.const 'Sub' $P65 = "26_1279284348.25"
.local pmc block
set block, $P65
"!UNIT_OUTER"(block)
(that's from the :load :init block) 12:50
pmichaud 26_ is the mainline
jnthn 26_1279284348.25 is the mainline
pmichaud "!UNIT_OUTER" is setting its outer context
jnthn Oh, wait, this is per-phaser code
OK
pmichaud in this case, !UNIT_OUTER falls through to !YOU_ARE_HERE, which should be setting the outer context of the mainline to the setting. 12:51
jnthn pmichaud: oh!
pmichaud (and !YOU_ARE_HERE no longer executes the block it is passed -- it simply sets the outer context)
jnthn .const 'Sub' $P77 = "24_1279284348.25"
capture_lex $P77
"!add_phaser"("CHECK", $P77)
What is that capture_lex going to do?
(it's being called from the :load :init block) 12:52
pmichaud oh, yes, that's likely the issue.
anyway, that's also my "a-ha" above
jnthn Could it be causing the phantom frame?
pmichaud yes, likely
12:52 tewk joined
pmichaud more to the point, I realize now why I didn't like the passing-of-a-string to !get_phaser_result 12:52
I want it to pass the block itself. 12:53
because that way I can use a block reference for add_phaser, and let !get_phaser_result "own" the block itself.
jnthn That also works
12:53 jferrero left
pmichaud let me put that in place and see if things get better. 12:53
mathw yay! I stick my head in here for thirty seconds and I see people agreeing with each other. The world is good. At least, this bit of it. 12:54
12:55 felliott joined 12:56 felliott_ joined, felliott left, felliott_ is now known as felliott 12:57 Guest19703 left
pmichaud ugh, that messes things up with operator overloading 13:01
[Coke] in scrollback - all the parrot bugs in an rt queue were in the /parrot/ queue, not the perl6 queue. am I misunderstanding sorerar's complaint? 13:02
jnthn pmichaud: That's just treated like a BEGIN phaswer. 13:03
*phaser
pmichaud right
except the result of the "make" isn't stored anywhere.
which means the block gets lost. 13:04
jnthn The tricky thing is we need to do that stuff from the grammar, not the actions.
Otherwise --target=prase breaks on custom ops.
pmichaud I think --target=parse already includes the actions. 13:05
otherwise a lot more would break.
jnthn Oh?
I was under the impression it didn't.
pmichaud it didn't used to.
yes, --target=parse now includes the actions. 13:06
oh, maybe not
checking
pugssvn r31726 | mberends++ | [docs/talks/p6.dbi.odp] Perl 6 Database Interfacing slides for YAPC::EU 2010 13:07
pmichaud anyway, seems like --target=parse would fail on class declarations and other things like that
(or anything else that requires BEGIN-time operations)
13:07 JimmyZ left
jnthn pmichaud: Those are explicitly installed by the parser. 13:07
pmichaud: See methods like add_my_name and add_our_name in Grammar.pm 13:08
pmichaud well, adding an operator may be a BEGIN phaser, but we really need a way to make sure the resulting phaser PAST node makes it into the output tree.
and relying on it being in the .loadinit isn't good. 13:09
(because it gets the lexical scoping wrong)
I suppose I can just push it into @BLOCK[0][0] 13:10
jnthn pmichaud: I figured add_phaser made sure of that?
Oh, I guess not
d'oh
pmichaud but pushing into @BLOCK[0][0] has the same problem of --target=parse not working right
because @BLOCK[0][0] doesn't exist in that case. 13:11
13:11 snarkyboojum left 13:12 masonkramer left
jnthn Ah yes 13:12
13:12 felliott left
jnthn Could the return of add_phaser be somehow stached so the action method can get it and emit it? 13:13
Like capture it somehow?
[Coke] pmichaud: aren't you up super late? =-) 13:14
pmichaud [Coke]: yes, 3h15 here.
I got started on fixing this and just didn't stop.
pugssvn r31727 | colomon++ | [spec] Add Real.rand to spec, as it was already in the spectests and Rakudo. Change term:<rand> description to refer to it. 13:15
13:16 Sarten-X joined
pmichaud I'll try a slightly different approach. 13:16
okay 13:19
that got rid of the phantom sub 13:20
jnthn Progress. :-) 13:21
13:21 baest left
colomon rakudo: class Blue { }; say +(Blue.new) 13:22
p6eval rakudo 231739: OUTPUT«Can't take numeric value for object of type Blue␤ in 'Any::Numeric' at line 1316:CORE.setting␤ in main program body at line 6205:CORE.setting␤»
pmichaud ohhhhhhhhh!!!!!!!!! 13:24
wait, nm.
jnthn aww! 13:25
pmichaud okay 13:28
13:29 M_o_C joined
pmichaud well, I need some sleep, so I think I'll have to suspend here for a bit. 13:29
jnthn pmichaud: OK
pmichaud I'm really not sure why the phasers aren't seeing the correct outer of the mainline. 13:30
jnthn pmichaud: Tricky problem. :-S
No, me either.
I'll let you know if I manage to track it down any further.
pmichaud it's clear to me that it *is* being set early on, but the phasers just don't follow the outer chain correctly. It's undoubledly due to a problem with the ->ctx or ->outer_ctx pointers.
Might try changing !UNIT_OUTER so that it only sets the outer sub, and not the outer ctx 13:31
jnthn *nod*
Could be worth a try
pmichaud i.e., leave the outer_ctx null and see if autoclose gets it right
should I go ahead and push my (untested) phaser change for operator declarations?
(you can revert if it doesn't work out)
jnthn Yes 13:32
I'll see if it works.
pmichaud pushed
13:32 lest_away is now known as lestrrat
dalek kudo: c7edce6 | pmichaud++ | src/Perl6/Actions.pm:
Make sure a phaser is part of its lexical outer, not the loadinit.
13:32
pmichaud I may not be able to look at this again until the plane ride in about 18 hours 13:33
depends on what other activities are taking place today :-)
but I'm pretty sure the current factoring is closer to getting things rightish :-)
jnthn That's fine - enjoy activities. :-)
pmichaud anyway, sleep here -- bbl
jnthn sleep well o/ 13:34
13:35 tylercurtis joined 13:36 lestrrat is now known as lest_away 13:38 macdaddy joined
mberends 8 cores, 9-sect? 13:39
13:39 macdaddy is now known as Guest60794
mberends ooops :) 13:39
jnthn Is that some geek version of 2 girls, 1-cup?
13:41 ashleydev joined
pmurias ruoso: hi 13:41
ruoso hi pmurias 13:43
pmurias ruoso: all tests pass (not counting the p5 interop)
ruoso: so properly packaging STD is the next thing? 13:44
ruoso Yes... and If we don't reach an agreement on how to do it, just include it in mildew as a private package 13:45
pmurias i don't think an agreement will be hard 13:46
ruoso sure... it's just that our schedule is limited... and this is an important requisite 13:47
13:57 rgrau` joined
pmurias ruoso: in which directory should i put the plugin and how should i call it (Dist::Zilla::Plugin::STD)? 13:57
13:58 tadzik joined 14:03 rv2733 left 14:07 thebird left 14:10 thebird joined
ruoso pmurias, er... I don't have experience with Dist::Zilla, so I trust your judgement 14:10
14:12 ashleydev left 14:13 gbacon joined 14:19 ashleydev joined 14:23 Mowah joined, Mowah left 14:26 Trashlord joined
pugssvn r31728 | pmurias++ | start hacking on Dist::Zilla::Plugin::STD 14:27
14:27 alester left
pugssvn r31729 | pmurias++ | [Dist-Zilla-Plugin-STD] copy over the handwritten files 14:28
14:28 cjk101010 left 14:31 alester joined
pmurias ruoso: what will be next after the STD dist? 14:33
14:34 thebird left 14:36 M_o_C left
ruoso I think we can release the first version to CPAN 14:41
then add p5 interop support and release the second version
pugssvn r31730 | pmurias++ | [Dist-Zilla-Plugin-STD] the same set of file as in STD-dist is copied over 14:44
r31730 | [STD] fix dist.ini
14:46 felliott joined 14:57 ashleydev left 15:07 thebird joined
pugssvn r31731 | pmurias++ | [STD] port over the changes from STD-dist required for mildew to work 15:07
pmurias ruoso: i think we could release that version of STD on CPAN 15:08
15:09 Chillance joined
pmurias ruoso: if some one is unhappy about it I can always release version 0.02 improved with the feedback 15:10
[Coke] OOC, what's the module name? 15:12
(just STD, or something more verbose?) 15:13
pmurias STD 15:14
[Coke]: TimToady wants to take STD as namespace so more standard grammars can live there like STD::P5, STD::Python 15:15
15:16 jedai_ joined 15:17 thebird left 15:18 thebird joined 15:21 patspam joined
pmurias ruoso: www.cpan.org/modules/by-authors/id/....01.tar.gz 15:27
ruoso pmurias, coool
pmurias AST:: in mildew should be renamed to Mildew::AST? 15:29
pugssvn r31732 | pmurias++ | [mildew] rename Emit::Yeast to Mildew::Emit::Yeast 15:37
15:43 dual left 15:44 arnsholt_ joined, arnsholt_ left 15:48 jaldhar left
cxreg jnthn: i bisected to find out what broken zavolaj 15:50
it was able to narrow it down to llsig between 0cbf6dcec and 4d2e620ad, but then i ran into compile problems 15:51
dalek kudo: c513fbd | (Solomon Foster)++ | src/core/ (2 files):
Make sure calling .rand on a Complex number doesn't cause an infinite recursion.
15:52
kudo: 9dae675 | (Solomon Foster)++ | src/core/ (3 files):
Adjust rand and srand to conform more to our current way of doing things.
15:54 justatheory joined 15:59 am0c left 16:06 ive left
moritz_ back 16:10
16:11 PZt left
cxreg "Can not handle type " ~ $_.perl ~ " in an 'is native' signature." <- is that preferred to "... {$_.perl} ..." ? 16:22
jnthn .perl rather than $_.perl should work too
moritz_ even better: "Can not handle type $_.perl() in an ..."
jnthn Aye. Think that was NYI when Zavolaj was written. :-) 16:23
ruoso pmurias, yes... I think everything in mildew needs to be in the Mildew:: namespace 16:24
16:25 PZt joined 16:28 pyrimidine joined
tadzik is rakudo.org down? 16:30
moritz_ seems like 16:31
TimToady web server, anyway
does ping
moritz_ actually it pongs :-) 16:32
TimToady :P
:Pong
pmurias TimToady: i release STD to CPAN 16:35
* released
TimToady saw that; wondering how best to keep things in sync 16:36
pmurias in sync?
the distribution is generated by dzil build in src/perl6
STD-dist is dead
TimToady ah
PerlJam dzil++ 16:37
pugssvn r31733 | pmurias++ | remove now useless STD-dist 16:38
16:39 ashleydev joined 16:44 dakkar left 16:47 vocal joined 16:51 ashleydev left 16:57 timbunce left, timbunce joined 17:01 ashleydev joined
timbunce what's the name of the thingy that give commit access to github repros? (I want to mention it in a blog post) 17:02
(the irc thingy on this channel)
moritz_ timbunce: hugme
timbunce moritz_: thanks
moritz_ timbunce: what are you blogging about? 17:03
Tene hugme: hug timbunce
hugme hugs timbunce
moritz_ hugme: show perl6-examples
hugme moritz_: the following people have power over 'perl6-examples': P⁣erlJam, T⁣imToady, [⁣particle], c⁣olomon, j⁣nthn, m⁣asak, m⁣oritz_, p⁣michaud. URL: github.com/perl6/perl6-examples/
timbunce java2perl6 - it's a biggie
member:hugme: show java2perl6
moritz_ hugme: add moritz to java2perl
hugme moritz_: ERROR: Can't add moritz to java2perl: HTTP/1.1 401 Unauthorized
moritz_ still the same error
timbunce hugme: show java2perl6
hugme timbunce: sorry, I don't know anything about 'java2perl6'
moritz_ I have no idea what the problem is :( 17:04
hugme: show java2perl
hugme moritz_: the following people have power over 'java2perl': P⁣erlJam, T⁣imToady, [⁣particle], c⁣olomon, j⁣nthn, m⁣asak, m⁣berends, m⁣oritz_, p⁣michaud, t⁣imbunce. URL: github.com/timbunce/java2perl/
moritz_ hugme: list projects
hugme moritz_: I know about Math-Model, Math-RungeKutta, MiniDBI, book, gge, hugme, ilbot, java2perl, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6-examples, perl6-wtop, process-cmd-args, proto, pugs, star, svg-matchdumper, svg-plot, tardis, temporal-flux-perl6syn, try.rakudo.org, tufte, ufo, web, yapsi
timbunce ah, so the 6 got lost. ho hum
moritz_ huh
17:04 vocal left
moritz_ that would explain why it doesn't work :-) 17:04
hugme: reload 17:05
hugme moritz_: reloaded successfully
moritz_ hugme: add moritz to java2perl6
hugme hugs moritz. Welcome to java2perl6!
moritz_ now it works. Yay
timbunce hugme: list projects 17:06
hugme timbunce: I know about Math-Model, Math-RungeKutta, MiniDBI, book, gge, hugme, ilbot, java2perl6, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6-examples, perl6-wtop, process-cmd-args, proto, pugs, star, svg-matchdumper, svg-plot, tardis, temporal-flux-perl6syn, try.rakudo.org, tufte, ufo, web, yapsi
[Coke] huge doesn't respond to privmsg? 17:07
*hugme
hugme: hug me
hugme hugs [Coke]
17:08 radu joined
radu rakudo: grammar Test1 { rule r { "test" } }; "test" ~~ /<Test1.r>/; 17:09
p6eval rakudo c513fb: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 20, near ".r>/;"␤»
radu hrm
am i doing something wrong?
I thought that was the syntax for matching against a grammar rule 17:10
tylercurtis rakudo: grammar Test1 { rule TOP { "test" } }; say Test1.parse("test")
p6eval rakudo c513fb: OUTPUT«test␤»
radu ok, but I just needed a boolean answer..To know if the string matches the rule, not to actually parse it 17:11
tylercurtis rakudo: grammar Test1 { rule TOP { "test" } }; say Test1.parse("test").Bool 17:12
p6eval rakudo c513fb: OUTPUT«1␤»
radu ok, thanks, that should work :)
timbunce Blog post: blog.timbunce.org/2010/07/16/java2p...d-whereto/ 17:15
tylercurtis radu: the result of .parse, like the result of $someStr ~~ $someRegex, is a Match object that stringifies to the matched text(although there are ways to limit what part of the matched text gets returned iirc), numifies to the numeric value of the stringification, and Boolifies(not sure what the standard term for this is) to whether or not it matched.
17:16 justatheory left
timbunce any feedback on that blog post is most welcome! 17:20
17:20 cdarroch joined, cdarroch left, cdarroch joined, thebird left
tylercurtis timbunce: it makes me want to stop working on what I should be working on and work on finding some nice Java library to port to Perl 6. 17:21
timbunce tylercurtis: perfect! :)
tylercurtis: how about JDBC? ;-)
17:21 szabgab joined
tylercurtis timbunce: I have Parrot stuff I need to get done so it can make it into 2.6. 17:25
[particle] timbunce: how about you leave him alone and let him finish his gsoc project :P
tylercurtis [particle]: actually, what I'm working on at the moment is updating the Squaak tutorial
[particle] tylercurtis++ 17:27
tadzik a survey: what do you guys most dislike about Perl 5, which is now better in Perl 6? 17:33
TimToady almost everything in Perl 5 is attached wrong, except for lexical variables
PerlJam tadzik: I don't dislike much about Perl 5, but ... the regex syntax is clunky when you start using "advanced regex" 17:35
ashleydev TimToady: what does "attached" mean? 17:37
TimToady meaning you have to through too many links or symbol tables to get to the actual thing in question, when it should just be hanging directly off of something you already have access to 17:41
most of the globals, or the filehandles, or their attributes, for instance 17:42
subroutines should be lexically scoped, not found in global packages
and so on
17:42 patspam left
TimToady commuting & 17:43
17:44 patspam joined
PerlJam "subroutiens should be lexically scoped" he says after 20ish years conditioning us that they live in the package's symbol table. 17:45
[particle] he might say something different if he were in #perl
TimToady sees all, even while commuting... 17:46
17:46 Kodi joined
lue
.oO(but we know #perl6 is where the Truth comes out!)
17:48
Kodi Probably what annoys me most about Perl 5 is that built-in subs and user-defined subs are such different animals. You can't say "my $f = \&abs", for instance.
moritz_ wonders what TimToady commutes with, and if that means we can measure him exactly
17:49 radu left
PerlJam invokes heisenberg 17:49
[particle] in perl 6, that's heisenberg()
lue while I was waffling between 5 and 6, what led me toward 6 was the use of -> in 5. I was too impatient to try and get it :) 17:50
.oO(or was it <- ?)
[particle] <== ? feed operators?
moritz_ lue: you mean dereferencing stuff?
PerlJam lue: that's another annoyance of perl 5 ... the programmer needs to know way too much about references. 17:51
cxreg PerlJam: the lack of having to know about it confuses me in 6 :)
lue no, things that other languages use the . for. (like Dog.new in 6 is Dog<-new or something in P5)
moritz_ PerlJam: having to know too much about references leads to threads such as www.perlmonks.org/?node_id=849713 :-) 17:52
lue: that's simply -> instead of .
pmichaud aloha, #perl6 17:53
lue It doesn't help that I tried to jump right into using Qt in P5, and didn't bother looking at tutorials. But I was impatient (one of the virtues), and wanted to find something by the end of day.
Perl6 looked better :)
pmichaud: hello o/
cxreg lue: i wonder if you're the first person in the world to learn perl 6 without knowing perl 5 17:54
lue
.oO(Well, I learned Python 3 without learning 2)
cxreg i'm not saying it's a bad thing, just that you might be the first :)
tylercurtis cxreg: I know a little bit of Perl 5. By which I mean, I've read tutorials and done hello, world.
lue rakudo: multi sub opcode(1) { say 1 }; multi sub opcode(2) { say 2 }; my $a = 2; opcode($a) # I love Perl6 17:55
p6eval rakudo c513fb: OUTPUT«2␤»
tylercurtis But I haven't really done actually written anything ~~ NonTiny & ActuallyWorks in Perl 5. 17:56
PerlJam lue: you'll like haskell too if that's all you care about :)
tylercurtis So, lue is not the only one. :)
lue It's why I stopped using Python. Imagine having to use 255 elseifs (and 1 initial if) O.o [they don't have switch statements] 17:58
As TimToady said, their OWTDI wasn't my OWTDI :)
jnthn pmichaud: morning 17:59
tylercurtis has tried to learn Python several times.
PerlJam lue: perl 5 didn't have a switch statement until relatively recently, so most perl 5 people don't have to imagine it :)
cxreg is using the MMD code to handle that logic meant to be efficient? what's the complexity?
tylercurtis For some reason, even though there's no specific thing that bothers me, I just can't stand to attempt to do anything significant in Python. 18:00
cxreg i wonder if you had thousands of multis, if it'd degrade
jnthn cxreg: Yes.
cxreg: Badly.
cxreg ok, i thought maybe so
lue and binding. You can't do binding in Python3 [which is a nightmare when you try to implement the NES memory map O.o] 18:01
18:01 dual joined
jnthn But really if you have an opcode map then the thing most likely to be fast and easy is to have an array of anonymous subs. :-) 18:01
lue jnthn: I only need hundreds :) 18:02
pmichaud <- packing for departure from paradise and return to the infernos of north texas
Kodi I emailed a patch to rakudobug about 24 hours ago and I still can't find it at rt.perl.org. Should I resubmit it?
jnthn lue: It's still not going to be very efficient to do it that way.
pmichaud: Aww.
hugme: hug pmichaud
hugme hugs pmichaud; jnthn++
jnthn ...I get karma for getting hugme to hug people now?
colomon pmichaud: safe home
pmichaud ...and to be shortly replaced by the "we don't believe in A/C" inferno of Oregon :-) 18:03
jnthn Surely Oregon isn't quite as infernoous as Texas? :-)
cxreg jnthn: so rather like how you'd do it in perl 5, then
18:03 plainhao joined
lue rakudo: sub noop() { say 'noop' }; sub brk($a) { say "brk $a" }; my @a = &noop, &brk; @a[1](53) 18:04
jnthn cxreg: Or C. :-)
p6eval rakudo c513fb: OUTPUT«brk 53␤»
cxreg jnthn: heh.
lue \o/
18:04 PZt left
cxreg jnthn: yeah, but C isn't FuTuRisTic!! 18:04
lue jnthn: it's gonna be 92F today :(
cxreg jumps on a monorail
jnthn lue: It hit 31C here today apparently.
lue: That's not too far off 92F. 18:05
lue I prefer Celsius myself, but idiot weathermen keep using Farenheight :(
jnthn And yes, it's hot.
pmichaud rakudo: say (101-32)/5*9
p6eval rakudo c513fb: OUTPUT«124.2␤»
pmichaud er
18:05 justatheory joined
pmichaud rakudo: say (101-32)/9*5 18:05
p6eval rakudo c513fb: OUTPUT«38.3333333333333␤»
pmichaud today's high in Dallas :-|
PerlJam 40 degrees just doesn't *sound* hot :)
jnthn pmichaud: omg 18:06
PerlJam: Heh, it does if you're European. :P
lue I have a thermometer in celsius, so I've been luckily conditioned to celsius.
pmichaud rakudo: say (86-32)/9*5
p6eval rakudo c513fb: OUTPUT«30␤»
lue 40 = .oO(DO NOT GO OUTSIDE UNLESS YOU ARE A WORKING AIR CONDITIONER)
pmichaud today's high in Maui :-)
lue
.oO(when it's warmer in !Hawaii...)
18:08
jnthn pmichaud: Humid or not so? 18:09
pmichaud not. 68%
(maybe a bit more where I'm at, about 30m from the shoreline :-) 18:10
tylercurtis lue: my uint8 @opTable[0xFF]; sub noop () { say "noop"; }; @opTable[0] = &noop; @opTable[0]() # Probably NYI. 18:11
rakudo: my uint8 @opTable[0xFF]; sub noop () { say "noop"; }; @opTable[0] = &noop; @opTable[0]() # Probably NYI.
p6eval rakudo c513fb: OUTPUT«===SORRY!===␤Malformed my at line 20, near "uint8 @opT"␤»
18:11 FardadJalili joined
PerlJam arrays are shapless still 18:11
lue uint8 ~~ NYI 18:12
lue wishes there were specced a Uint8 type, so that it could be implemented in rakudo already 18:13
FardadJalili rakudo: my Int $a = 10; my Int $b = $a / 120; $b.say;
p6eval rakudo c513fb: OUTPUT«Type check failed for assignment␤ in '&infix:<=>' at line 1␤ in main program body at line 20:/tmp/br7Zi_pA9o␤»
FardadJalili isn't it supposed to cast it to Int itself?
tylercurtis FardadJalili: 10 / 120 is a Rat.
FardadJalili rakudo: my Int $a = 10; my Int $b = ($a / 120).Int; $b.say; 18:14
PerlJam what does "cast" mean? truncate? round? what?
tadzik rakudo: <a b c>.fmt("%s, %s and %s") #what is wrong in here?
jnthn FardadJalili: Int specifies a constraint, not a coercion.
p6eval rakudo c513fb: OUTPUT«0␤»
rakudo c513fb: OUTPUT«Insufficient arguments supplied to sprintf␤ in 'Any::join' at line 1␤ in 'Any::join' at line 1351:CORE.setting␤ in 'List::fmt' at line 2499:CORE.setting␤ in 'Iterable::fmt' at line 3470:CORE.setting␤ in main program body at line 20:/tmp/tN4yrQbtPn␤»
PerlJam FardadJalili: or ... given that there are multiple valid things that could happen, it's best to make the programmer be explicit about what they want :)
FardadJalili PerlJam: hmm, I think I got what you say :D 18:15
18:15 meteorjay left
FardadJalili ok, thanks anyone. 18:15
lue considers a Perl6 compiler for GCC 18:19
PerlJam %!PHASERS is global, yes?
tylercurtis lue: elaborate?
pugssvn r31734 | kyle++ | [purge-empty-dirs.pl] Delete empty directories.
PerlJam so, to implement things like FIRST, LAST, ENTER, LEAVE, it would need to be per-block?
lue eh, just a thought. A compiler for P6 -> Machine Byte Code™ 18:21
jnthn PerlJam: I don't think that mechanism is expected to also handle those.
tylercurtis lue: I'm working on a very very very limited LLVM compiler for Perl 6.
lue: It can do things like "say 42;"
and "my $a = 42; say $a;"
18:22 meteorjay joined
pmichaud PerlJam: I'm guessing they'll need to be properties on the block. 18:22
FIRST and LAST certainly want to act that way.
ENTER could be compiled directly into the block
LEAVE is... tricky in parrot.
PerlJam wait, why is LEAVE tricky?
pmichaud exceptions 18:23
TimToady LEAVE should run during stack unwind, not during exceptions 18:24
pmichaud what if an exception decides not to resume?
(more to the point, Parrot doesn't really offer a "stack unwind", or didn't until very recently) 18:25
tylercurtis lue: it might even support "my $a = 42; my $b = $a; say $b;" That's pretty much it, though. Not even any negative integers."
TimToady we'll need to know whether the intent is to save the resume continuation or throw it away; throwing it away is equiv to unwind
pmichaud right
and parrot doesn't have a way to "unwind" after an exception (again, caveat that NotFound++ may have implemented it recently) 18:26
TimToady it sort of turns into the "late DESTROY" problem
if you do it with GC only
pmichaud afaik, Parrot doesn't even offer a "execute on callframe GC" 18:27
lue tylercurtis: good luck to you! 18:28
18:29 seabird joined
TimToady you might need to run a separate unwind stack like p5 does; after the control transfer, you just pop the stack down to the new call level 18:29
pmichaud right
TimToady but it would be better if parrot could separate exception handler searches from unwinding 18:30
tylercurtis lue: github.com/ekiru/Bennu If you ever get bored of coding your NES thing and feel like working on it, you can have a commit bit. :P 18:32
hugme: list projects 18:33
hugme tylercurtis: I know about Math-Model, Math-RungeKutta, MiniDBI, book, gge, hugme, ilbot, java2perl6, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6-examples, perl6-wtop, process-cmd-args, proto, pugs, star, svg-matchdumper, svg-plot, tardis, temporal-flux-perl6syn, try.rakudo.org, tufte, ufo, web, yapsi
18:35 FardadJalili left 18:36 seabird left
PerlJam so ... I can use <?DEBUG> in the grammar, but is there something equivalentish for the AST that's being build by the actions? 18:36
s/build/built/
pugssvn r31735 | colomon++ | [spec] Say a bit about Numeric operators and Bridge. 18:39
pmichaud PerlJam: what sort of thing are you looking for? 18:40
with <?DEBUG>, you'll know that actions methods are being called whenever a rule passes
PerlJam I want to inspect the structure of the AST
TimToady colomon: what happens if they seed srand with 0.12345679 on the assumption srand wants 0..^1? 18:41
colomon Then they get srand(0)
TimToady that seems unfriendly, if they don't want to have to know the precision of srand
colomon I admit that's a fuzzy one to me.
Well, current spec calls for a Real, and current Parrot only allows us an Int. 18:42
TimToady otoh, most people do want exact seeds so they'll be reproducable
colomon I'm not quite sure how to bridge that gap.
18:42 Trashlord left
jnthn afk, walk 18:42
colomon but I'm very willing to take good suggestions. 18:43
18:43 PZt joined
TimToady well, maybe Real->Int conversion denormalizes 0..^1 to 0..^2**$n, and they have to give an Int if they want to spec it directly 18:43
18:44 Trashlord joined, sbp left 18:45 sbp joined
colomon jnthn: I think the Numeric grant work is done. Unless one of us spontaneously thinks of something else to do for it. 18:46
pmichaud finale report done? 18:47
colomon TimToady: when you say denormalizes, are you thinking of just multiplying it by 2**$n, or something trickier.
pmichaud: no
TimToady then 0.12345 and any integer do the expected thing, and we can warn on a non-Int >= 1
colomon pmichaud: I'm not sure what's involved there, thus pinging my grant manager. ;)
TimToady for any given prng you'd hopefully be able to ask the max srand it wants 18:48
pmichaud look for copies of ours on use.perl and other places
colomon afk # whirlwind house cleaning
18:50 seabird joined
ingy greetings 18:50
18:51 seabird left 18:52 masak joined
masak ahoy, #perl6! 18:53
tylercurtis 'ello, masak, ingy.
masak my latest blog post is attracting more comments than I thought it would. use.perl.org/~masak/journal/40447
most exhibit an endearing combination of wanting to help and not understanding the whole problem :) 18:54
lue 'ello masak o/
masak \o 18:55
sorear good * #perl6
18:55 envi^home left
masak time to do some unmitigated hacking. 18:57
18:59 rv2733 joined
lue hai sorear o/ 19:00
masak: how many EXP do I have? :)
masak lue: how many thousand lines of Perl 6 have you written? :) 19:01
lue
.oO(I have at least 100...)
.oO(...from reading the spec)
masak nono, the 100 was from consulting the spec before you decide to propose a brilliant, novel idea. 19:02
lue darn!
masak and if you ever finish the spec, the mail archives, exigeses, and apocalypses are veritable gold mines of information. 19:03
I read most of A03 yesterday. the part about >>op<< hyperops is a hoot. 19:04
lue .oO[ anyone who has read the entire spec must've written it :) ]
ingy masak: I had an idea for ufo I wanted to talk to you about
masak ingy: all right. 19:05
ingy masak: as someone who now uses make test constantly, it is annoying that pir gets built in lib. Can we build it in a blib?
masak why do you find it annoying that pir gets built? 19:06
that's very desirable to me.
ingy tab completions fail
masak (because my test files would be very slow without the pir files)
ingy sure, just build them in blib 19:07
and path blib for make test
like p5 does
masak ok, you just explained how you planned to do all this.
you still haven't eplained why you find the pir building annoying.
ingy I did explain
masak I missed it. 19:08
tylercurtis masak: tab completion.
masak ah.
yes, that annoys me too :)
and now I see what you mean.
ingy well then, \o/
masak yes, maybe that's a good practice.
ingy you wanna fix or me? 19:09
masak when people say "tab completions fail" on this channel, it usually means they wrote to the wrong person :) that's why I didn't read it as an explanation. sorry :)
ingy: I'll make an attempt.
ingy k
masak ufo and the ufo component of pls are drifting dangerously far apart. 19:10
this is the divine punishment for copy-pasting code.
ingy heh
masak: why is pls a branch of proto? 19:12
masak ingy: because the plan is to mutate the whole proto repo into a pls repo, as soon as pls is mature enough.
no need to keep proto around.
19:15 clintongormley left
masak ingy: ah; doing the blib/ thing looks non-trivial :/ 19:15
ingy masak: I can do it
masak please. I'll review your patch.
jnthn back 19:16
yayitsmasak!
masak yayitsjnthn!
ingy masak: so why not just make pls a repo now?
masak ingy: because it still needs some love. mostly testing.
jnthn And Win32fixing. 19:17
19:18 ab5tract joined
masak is it just me, or is chromatic all but mentioning Perl 6 in this post? www.modernperlbooks.com/mt/2010/07/...-plus.html 19:18
tylercurtis masak: I just realized I forgot to attribute the Makefile I shamelessly stole from Yapsi for Bennu; so I added a comment to it linking to Yapsi's.
masak tylercurtis: cool; thanks.
19:18 justatheory left 19:20 ruoso left 19:21 Guest60794 left 19:22 justatheory joined
tylercurtis masak: Or maybe he's secretly a Lisper. :) 19:22
masak tylercurtis: in which way does Lisp help with that kind of string checking? 19:23
tylercurtis "If your language supports multiple dispatch, lets you define your own types, lets you override stringification, and can override interpolation for cases like these, you can do such things."
I'm pretty sure Common Lisp fits that description. 19:24
19:26 tomaw joined
tylercurtis Other than interpolation. But you can override the result of formatting, I think. 19:26
masak I won't claim that it wasn't Lisp chromatic thought of. :) but to me it sounded like a description of Perl 6, or maybe Perl 5 with Moose on the top. 19:29
moritz_ it's tagged with perl6, you know :-)
Tene I've never heard chromatic talk about using CL.
19:32 nadim left
tylercurtis Tene: I did say secretly. :) 19:33
19:34 nadim joined
Tene I sometimes ponder alternate meanings of statements as if "secretly" had something to do with "secrete". I guess that would be something like "so steeped in CL tha tit oozes out his pores" or something. 19:35
19:35 PZt left
tylercurtis I don't think CL could fit through a pore. Maybe Scheme. 19:36
19:36 patspam left 19:38 plainhao left
lue masak: apparently thunderbird wasn't autochecking, and I just now got the DateTime discussion. I can see where your annoyance came from :) 19:42
masak lue: it passed, though.
19:44 Kodi left
lue afk 19:44
19:46 sawyer_ joined
ingy masak: I'm pretty sure I can rewrite ufo as just a static Makefile :) 19:50
moritz_ platform indendently?
ingy moritz_: likely
masak ingy: that would be interesting to see. 19:51
ingy I'll do it on a branch
:)
masak ingy: would it still retain the dependency ordering that the aliens talk about?
ingy masak: why do you do that? 19:52
masak ingy: waitwait, that's why I made ufo.
if we're not clear on that point, we need to talk. :)
oh, how quickly a project is adopted and then misunderstood :/
ingy: I do that because that's the fastest way to compile the .pm files. 19:53
ingy masak: I'll retain it then :)
masak ingy: if they're built in the wrong order, the parsing error messages are sometimes much harder to understand. 19:54
ingy anyway, I'm going to make the blib patch without changing the order first
masak sounds good. 19:55
pmurias: ping 19:56
moritz_ first success in my SEO quest: modules.perl6.org/ now comes up as third hit when search for "Perl 6 modules" with google 19:59
(used to be no. 4)
masak \o/ 20:00
20:00 M_o_C joined 20:01 jferrero joined 20:02 eternaleye joined, patspam joined
masak rakudo: say +"foo" 20:04
p6eval rakudo c513fb: OUTPUT«0␤» 20:05
masak A03 suggests this give the result NaN.
what's the rationale for giving the result 0?
moritz_ it's easier to do calculations with 0 than with NaN 20:08
20:08 takadonet left
masak sure, but "foo" isn't, and doesn't contain, a number. 20:08
tylercurtis moritz_: is it desirable to do calculations with stuff that clearly wasn't intended to be calculated upon? 20:09
moritz_ tylercurtis: that surely depends on what you want to do 20:10
tylercurtis: if you're a sysadmin summing over some fields in log files, it's better if a mal-formed contribution gives you zero 20:11
tylercurtis moritz_: true.
moritz_ instead of making your sum unusable by setting it to NaN
if you parse financial data, it's probably the other way round
20:12 payload joined, payload left
tylercurtis Maybe there should be a :default() adverb for operators like + and ~, once adverbs work. 20:13
Or a pragma to turn numification of non-numerics into either a failure or an error. 20:14
tadzik rakudo.org/status -- in the progress graph, the thin dotted line is the number of spectests?
bah, haven't read the below description, my bad
20:17 rgrau` left 20:19 rv2733 left
moritz_ again I'm looking for ideas for next week's Perl 6 contribution 20:20
rakudo: say {a => 1, b => 3}.pick(20, :replace) 20:21
p6eval rakudo c513fb: OUTPUT«bbbbbbbbaabbbbbbbbaa␤»
moritz_ rakudo: say {a => 1, b => 3}.pick(20, :replace)
p6eval rakudo c513fb: OUTPUT«abbabbbabaabbbabbbba␤»
20:23 rv2733 joined
masak someone points out on p6l that we cannot enforce well-ordering. that is correct and largely irrelevant. 20:25
20:27 patspam left
moritz_ like many p6l threads :-) 20:27
moritz_ considers showing resonance in his p6+physics talk 20:28
probably a good idea, considering how fundamental it is
for some physicists, particles are just resonances in some curves :-) 20:29
TimToady to others, particles are merely persistent accounting errors in the quantum foam 20:31
20:33 hanekomu_9 joined
pmurias masak: pong 20:36
masak pmurias: would LAST really work in -n and -p code? I thought LAST only made sense in a block attached to a loop. 20:38
moritz_ aren't -n and -p loops around your code?
masak moritz_: I haven't fully grokked YOU_ARE_HERE, but... to the extent I have, they aren't; not in the sense that would help here. 20:39
TimToady the intent is that -n and -p merely be loops around YOU_ARE_HERE in your setting 20:40
masak I understand that.
tylercurtis masak: Would it be relevant to point out that the well-orderedness or non-well-orderedness of Real types doesn't matter? :P It's not like there's a Real.minimal-Real-of-this-type-according-to-some-arcane-well-ordering-that-is-not-even-known method.
TimToady but yes, you can't rewrite code you don't have
masak does the spec for YOU_ARE_HERE guarantee that LAST ends up in a block that is actually a loop block?
20:41 rgrau` joined
TimToady whether it does or not, your UNIT should look like the loop block 20:41
masak tylercurtis: it's up to you. for me it seems to be enough to blow off steam here now and then. :)
tylercurtis: if one wonders where Perl 6 got its ivory-tower research-project reputation from, p6l is the answer. 20:43
TimToady top and bottom, were we talking type theory or quarks, I forget...
masak :) 20:44
justatheory quarks
Pardon me.
TimToady still think they should have been truth and beauty
frettled TimToady: So that we could do truth-up and beauty-down searches? 20:45
masak fondly remembers his last beauty-down search
TimToady tries to figure out what a top-up or a bottom-down search would mean 20:46
[particle] is that when you found out beauty is truly more than skin-deep 20:47
justatheory remembers to fondle beauty
[particle] bottom down searching sounds like the ... op
masak TOP { up } # there's top-up search 20:49
20:51 lest_away is now known as lestrrat
tadzik hmm. github.com/rakudo/rakudo/blob/maste...at.pm#L105 When is this sub actually used? If both arguments are Int, where is the Rat here? 21:01
moritz_ the rat is the return value 21:02
rakudo: say (1/5).WHAT
p6eval rakudo c513fb: OUTPUT«Rat()␤»
tadzik hmm. So Rat is the only class which has infix</>(Int, Int), and that's how Rakudo knows what sub to use? 21:03
moritz_ yes... except that it's not defined in the Rat class 21:04
it's outside the class body
it just happens to be in the same file
tadzik ah, right
ingy hi masak 21:06
masak ingy: hi
ingy masak: I think you'll like the blib changes. 21:08
masak: I will work on adding tests to ufo 21:09
masak oh my. :) ok.
ingy blib ended up being a short patch
I tried all the targets
seems to work
masak ingy++ 21:10
ingy works with make more than with perl :D
I recently wrote a Module::Install-esque Makefile build system for Python 21:11
ingy <3 make
frettled yay :)
frettled <3 make, too
masak ingy: jnthn informed me that the 'patsubst' line (added byh @uasi) isn't very platform-independent. 21:12
ingy: not sure if it will turn out to matter.
jnthn It will if ufo is meant to work on Windwos. :P
ingy masak: it's good until it breaks, I always say
anyway, tests would be the next step in that direction
I have a shiny new perl6 test framework that might be helpful :) 21:13
tylercurtis moritz_: An idea for a "this week's contribution to Perl 6": write spectests for Path.
masak ingy: tests require modules, no?
ingy ? 21:14
masak ingy: I'm not 100% sure I want ufo to have an external dependency.
ingy masak: this is to define tests for ufo _developers_
right now we have nothing
to assert that we didn't break stuff 21:15
masak ingy: good point.
ingy I'll add it as `make devtest`
or somesuch
masak ok, good. 21:16
tadzik hmm, did rakudo have some nice optimizations recently, or is the effect of building with --gen-parrot? Everything seems significantly faster for me
ingy thanks for making ufo
masak ingy: you're welcome. we'll see where it lands. :)
ingy :D
21:17 whiteknight joined
jnthn rakudo: class A {}; my $x = &A::nosuch 21:22
p6eval rakudo c513fb: OUTPUT«Null PMC access in isa_pmc()␤ in '&infix:<=>' at line 1␤ in main program body at line 20:/tmp/CLe8T9c5p_␤»
TimToady I'm thinking I'll change YOU_ARE_HERE to {YOU_ARE_HERE} so it always looks like a block to the setting 21:25
21:25 timbunce left
TimToady so -n looks like: for $*ARGFILES.lines {YOU_ARE_HERE} 21:25
masak is YOU_ARE_HERE a macro substitution rather than a function call? 21:26
TimToady where the {} represent UNIT
frettled . o O ( I get to write perl6 -nawe? Yay? )
TimToady more like macro
masak then it just might work. 21:27
TimToady so the OUTER of the UNIT code is the for loop
sort of a post-declared macro
frettled masak: «It's a million-to-one chance, but...»?
TimToady it's actually the {*} in proto that gave me the idea
frettled TimToady: might actually be easier to parse for humans, too 21:28
TimToady even thought about using {*} there, but it's a little too lightweight
masak the OUTER? that won't work... FIRST, NEXT and LAST need to be in the loop block, not one block in.
TimToady they are in the loop block
frettled {HERE_BOY}
TimToady the use's UNIT is the loop block
*r
I'm saying the {} are part of the macro 21:29
masak ah, ok. now I see what you meant.
TimToady as with {*}
but syntactically you can poke it wherever a block is acceptable
and it stands in for the implicit block scope around UNIT
frettled That's pretty neat. 21:30
21:30 bcubas left, timbunce joined
TimToady so you can't think that foo(1); bar(2); {YOU_ARE_HERE}; is the same scope as foo 21:30
er, howeve ryou say it
it's as if the user's entire main program were textually substituted for the YOU_ARE_HERE 21:31
masak is there anything preventing someone from putting two {YOU_ARE_HERE}s in their custom setting?
21:32 pjcj left
TimToady other than that teh startup code is probably going to only look for one of them? 21:32
masak the startup code? that's the thing doing the macro substitution? 21:33
TimToady "hey, Mr SETTING, tell me your YOU_ARE_HERE."
it's not really a macro sub
21:33 tadzik left
TimToady it's just telling the UNIT its OUTER 21:33
before it starts to compile 21:34
masak ah.
last-minute lexical block stiching :)
TimToady and you can't have two immediate OUTERS
jnthn
.oO( $block.OUTER = all(...) )
masak two {YOU_ARE_HERE} thingies wouldn't imply two immediate OUTERs. it'd imply two stiched-in blocks with the same OUTER. 21:35
or possibly the exact same stiched-in block referenced twice from the OUTER block. 21:36
TimToady at some point you should just be using eval instead of abusing the setting mechanism :)
cognominal Is there a bug report about error reporting in rakudo? reporting at the granularity of block(oid) is too coarse.
masak TimToady: :) just exploring its edges.
TimToady cognominal: are you referring to parse errors? 21:37
it's a known problem, with a known solution :)
cognominal yup 21:38
jnthn cognominal: Not sure if there's a ticket. It's a known TODO though.
cognominal ok, thx for the answer
TimToady the problem basically boils down to the fact that if you don't have real LTM, you have to fake it with backtracking rather than panicking when you should
tylercurtis TimToady: is that known solution to implement enough of Perl 6 to run STD? :P 21:39
TimToady so rakudo often panics far to late
*too
masak how does the LTM engine react to mixing | and || ?
TimToady tylercurtis: got it in one :)
LTM only pays attention to the first leg of ||
cognominal I got tripped again by using the old arithmetic if. 21:40
masak ok. makes sense.
TimToady usually you've already committed to an LTM before you hit a || though
masak colomon: what's an arithmetic if?
cognominal ?? ::
TimToady anyway, works out quite well in STD, which does have real LTM
cognominal oops 21:41
21:41 pyrimidine left
cognominal ?? !! 21:41
dalek ok: 8ac231b | chromatic++ | src/multi-dispatch.pod:
Added editorial note.
masak cognominal: usually referred to as the "trinary operator".
TimToady arithmentic if is something else in Fortran
it's a three-way branch on neg,0,pos
cognominal indeed, en.wikipedia.org/wiki/Arithmetic_IF 21:42
masak works great in conjunction with strcmp :P
21:42 gbacon left
tylercurtis given $foo { when * < 0 { doSomething() }; when 0 { doSomethingElse(); }; when * > 0 { doSomethingEvenMoreElse-y(); } } # Perl arithmetic if. 21:43
cognominal I thought it was called that way in C. Don't have a K&R around though to verify
masak cognominal: it's not a very good name. there's nothing arithmetic about it. 21:44
21:44 rgrau` left
TimToady in Perl 5: goto ['neg','zero','pos'][($a cmp $b)+1] 21:44
er, make the first [] () 21:45
though maybe that works
tylercurtis TimToady: Wikipedia seems to suggest you can supply any numeric expression to arithmetic if. 21:46
TimToady buubot: print eval ['neg','zero','pos'][1]
buubot TimToady: No factoid found. Did you mean one of these: [prints it funny =( jsc told me 'new Boolean("x")'] [prints the last expression that]
TimToady buubot: eval ['neg','zero','pos'][1] 21:47
cognominal masak: well the specificity of ? : in C is that it is a conditional statement that returns a value, so it is is an expression.
buubot TimToady: ERROR: syntax error at (eval 39) line 1, near "]["
TimToady buubot: eval ['neg','zero','pos']->[1]
buubot TimToady: zero
dalek ok: dc0b883 | chromatic++ | src/preface.pod:
Edited preface.
cognominal in Perl 6, almost everything gives a value anyway.
TimToady yes, Fortran had an implicit * <=> 0 there 21:48
+ 2, since Fortran arrays are 1-based :)
21:48 rgrau_ joined
cognominal According to google books, the K&R says " The conditional expression, written with the ternary operator "?:", provides an alternate way to write this " 21:49
jnthn TimToady: say &nosuch::sub.WHAT # what should this be? 21:54
TimToady: Failure object? Any()?
jnthn would prefer to fix the Null PMC Access we get at the moment to the correct thing :-) 21:55
21:57 hanekomu_9 left
masak supernovus++ # renaming Temporal into DateTime 21:57
22:04 ashleydev left
masak ingy: blib patch looks good. 22:05
ingy: I'll have to try it a bit in practice too, but I like how the patch looks. :)
22:06 rv2733 left
masak hm. not getting anything constructive done. thinking of going to bed. 22:09
'night, #perl6.
jnthn o/
22:10 masak left
pugssvn r31736 | lwall++ | [Numeric] fix typo and a technicality pointed out by Minimiscience++ 22:10
22:21 pjcj joined 22:22 alester left
TimToady jnthn: Code() I'd think 22:22
jnthn TimToady: ok
jnthn tries a spectest with that 22:26
pugssvn r31737 | lwall++ | [S02,S06] change YOU_ARE_HERE to {YOU_ARE_HERE} to better represent the UNIT block 22:41
22:42 pmurias left, timbunce left 22:50 pmurias joined, pmurias left 22:53 PZt joined 22:56 gbacon joined
pugssvn r31738 | lwall++ | [STD] change YOU_ARE_HERE to {YOU_ARE_HERE} 23:02
r31738 | [tryfile] find the spec dir even if .t file is from command line
jnthn rakudo: say defined("a" => 3).WHAT; say (defined("a" => 3)).WHAT 23:07
p6eval rakudo c513fb: OUTPUT«0␤Int()␤»
jnthn oh hmm
token prefix:sym<defined> { <sym> » <O('%named_unary')> }
STD don't have that. 23:08
23:09 meppl left
dalek kudo: 13dc51c | jonathan++ | src/builtins/Signature.pir:
Make sure we never end up with a a null string in a Parameter object.
23:09
kudo: a63b5c5 | jonathan++ | src/core/Signature.pm:
Remove a workaround and some other tweaks to avoid a meta-error in reporting
kudo: dd8d5d7 | jonathan++ | src/Perl6/Actions.pm:
Make sure &no::such doesn't give back a Null PMC.
ingy refactors ufo, FTW! 23:18
23:24 snarkyboojum joined 23:38 jferrero left 23:42 whiteknight left 23:47 M_o_C left
ingy moritz_: hi 23:47
moritz_: fyi... PREFIX=some/path make -e install 23:48
moritz_: works now...
moritz_: and ufo is much smaller in the process!
ingy does a little Makefile dance 23:49
make ingy dance
[Coke] no rule to make target ingy. 23:55
23:55 snarkyboojum left, gbacon left, justatheory left, mberends left, dalek left, buubot left, simcop2387 left, buu left 23:56 Psyche^ joined 23:59 snarkyboojum joined, gbacon joined, justatheory joined, mberends joined, PacoLinux joined, dalek joined, buubot joined, simcop2387 joined, buu joined, Khisanth joined, thepler joined, sjohnson joined, yahooooo joined, knewt2 joined, card.freenode.net sets mode: +ovv mberends dalek buubot