»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
[Coke] I figured it was either c++ esoterica or a "ZOMG of course we shouldn't do that". 00:00
[Coke] wonders if there's a way to get tadzik's name to show up on win7's git log 00:01
tadzik :)
ah, this So??nierz guy...
[Coke] So<C5><9B>nierz 00:02
tadzik sleeps
jnthn tadzik: night, and segv fix pushed :) 00:05
dalek kudo/nom: 2542366 | jonathan++ | tools/build/NQP_REVISION:
Another NQP revision bump, to get a fix for a segfault reported by tadzik++.
00:09
[Coke] jnthn: makefile fix also pushed. 00:11
jnthn \o/
[Coke]++ [Coke]++
dalek kudo/nom: 30b59b1 | Coke++ | tools/build/Makefile.in:
Fix dynext build targets
jnthn [Coke]: Curious. 00:12
[Coke]: Why does the patch work, ooc?
[Coke] the original dynext target was for the PMCs, but also installed the ops. 00:14
00:15 Alias joined
[Coke] I just split it into 2 targets. less magic. 00:15
jnthn nmake can't take the magic, I guess :) 00:17
00:17 mj41 left 00:20 fbass joined 00:21 fbass left, fbass joined
[Coke] aye 00:25
sorear wonders why ruz is using perl 5.8 when 5.14 is out 00:26
flussence notices that other merge request that's been sitting there for months 00:28
dalek ast: fa782c1 | flussence++ | fudge:
Merge pull request #2 from felher/master

make fudge print usage instead of complaining about '' not being an file
00:28 ab5tract joined
flussence felher++ # he wrote that 00:28
00:29 nbrown left 00:31 brownn joined
flussence (seems like github sets Author = Committer = whoever clicks the merge button. LTA, having access to metadata like that is the reason git even exists...) 00:32
masak indeed, that is a strange design choice. 00:34
[Coke] 'hello'.subst('h','f').say 00:35
nom: 'hello'.subst('h','f').say
p6eval nom: OUTPUT«(timeout)»
masak 'night, #perl6 00:37
00:37 masak left
[Coke] method substr(Str:D: $start, $length? is copy) { 00:39
the first parameter there is "self" in the method body? 00:40
jnthn Yes
I think the issue was actually golfed to the .match call earlier.
[Coke] ? no .match in that method 00:43
00:43 brownn is now known as nbrown, thundergnat left
jnthn [Coke]: I'm a bit confused - you showed a hang in .subst then pasted method subst*r* :) 00:43
[Coke] jnthn: you're not the confused one. ;) 00:44
jnthn ;)
00:44 PacoLinux left
[Coke] nom: 'hello'.match('h').say 00:48
p6eval nom: OUTPUT«(timeout)»
[Coke] jnthn: danke.
jnthn nom: 'hello'.match(/h/).say
p6eval nom: OUTPUT«␤»
jnthn hm
[Coke] Str's .match is defined as taking a Regex. will a 'h' fit in that, or is it going to some other multi? 00:50
jnthn nom: 'h' ~~ Regex # I'd expect false 00:51
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn It shouldn't fit in that, I'm sure
[Coke] aye, false.
so it's going somewhere else. Cool's?
ah. cool is calling Str.match... with a stringy, which is probably going back to Cool... 00:52
I suspect we just need to define another match that takes a string. If that makes sense. 00:53
00:53 wolfman2000 joined
[Coke] or, convert a string to a Regex, then call it? 00:53
(that makes more sense to me.)
jnthn hmm...not immediately sure what the semantics of .match with a string are 00:54
[Coke] "Treat it as a literal" ?
jnthn Could do /$the_str/ 00:55
[Coke] make 'asdf' match like /asdf/ ?
jnthn But not sure if that's possible in nom yet.
[Coke] would make the spec test pass, I'd wager.
00:55 daniel-s joined
jnthn nom: my $a = 'bar'; say 'foobarbaz' ~~ /$a/ 00:55
p6eval nom: OUTPUT«Rebuild in progress␤»
[Coke] nom: my $a='h'; 'hello'.subst(/$a/,'f').say
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn heh, I'd try it but rebuild in progress here too ;) 00:56
[Coke] Method 'rxtype' not found for invocant of class 'PAST;Regex'
jnthn ah. 00:59
I guess nyi then. 01:00
[Coke] nom: 1.say
p6eval nom: OUTPUT«Rebuild in progress␤»
[Coke] zzzish 01:01
... or not 01:02
dalek kudo/nom: d0475ef | jonathan++ | src/Perl6/Module/ (3 files):
Remove no longer used module-related code to avoid confusion.
01:10
kudo/nom: 851a48b | jonathan++ | src/Perl6/ModuleLoader.pm:
First cut of being able to use a module without pre-compilation. Still uses PIR or PBC if it finds it along the way; need to put back timestamp checks. Also factored in preparation for auth and version handling going back in later.
01:22 woosley joined
jnthn Got an @*INC fix in the works but need sleep...will finish it up later 01:25
night &
[Coke] jnthn++ 01:26
01:27 isBEKaml joined 01:29 whiteknight left 01:33 soupified2011 left 01:34 shinobicl_ joined 01:42 shinobicl__ joined, shinobicl_ left 01:57 cooper left 02:21 colomon left 02:38 ab5tract left 02:41 thou joined 03:05 woosley left
isBEKaml pugs: take 15 [1..*] 03:13
p6eval pugs: OUTPUT«*** ␤ Unexpected "["␤ expecting operator, ":" or ","␤ at /tmp/6PJtdFgsz5 line 1, column 9␤»
isBEKaml pugs: take 15, [1..*]
p6eval pugs: OUTPUT«Stack space overflow: current size 8388608 bytes.␤Use `+RTS -Ksize -RTS' to increase it.␤»
isBEKaml :)
rakudo: take 15, [1..*]
p6eval rakudo 922500: OUTPUT«take without gather in '&take-rw' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
isBEKaml niecza: take 15, [1..*] 03:14
p6eval niecza v8-41-g3421bd8: OUTPUT«(timeout)»
isBEKaml hey, why isn't pugs and niecza evaluating the [1..*] lazily ? 03:15
(to anyone that's alive at this time)
03:23 Su-Shee_ joined 03:24 HarryS left
sorear laziness 03:24
isBEKaml sorear: niecza isn't evaluating it lazily out of sheer laziness? OIC. :) 03:25
niecza: (1..*).take(15).say 03:26
p6eval niecza v8-41-g3421bd8: OUTPUT«Unhandled exception: Unable to resolve method take in class Range␤ at /tmp/Q3ZXdnRQp6 line 1 (MAIN mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1983 (CORE C930_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1984 (CORE module-COR…
isBEKaml hmm, take not present in Range...
sorear that's spelled .[^15] now 03:27
isBEKaml rakudo: Range.^methods(:local).sort.join(",").say;
p6eval rakudo 922500: OUTPUT«ACCEPTS,at_pos,bounds,excludes_max,excludes_min,from,iterator,max,min,new,of,perl,pick,postcircumfix:<[ ]>,roll,to␤»
03:27 Su-Shee left 03:28 shinobicl__ left
isBEKaml niecza: (1..*).[^15].say; 03:28
p6eval niecza v8-41-g3421bd8: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15␤»
isBEKaml sorear: one quick question, the ^15 -- doesn't it mean a right open range? 03:29
sorear: like in ^15 == [0,15)
sorear: or 0<=x < 15
rakudo: (1 .. ^15).perl.say; 03:33
p6eval rakudo 922500: OUTPUT«1..15␤»
isBEKaml rakudo: (1..^15).perl.say;
p6eval rakudo 922500: OUTPUT«1..^15␤»
isBEKaml rakudo: (^15).perl.say; 03:35
p6eval rakudo 922500: OUTPUT«0..^15␤»
03:35 wolfman2_ joined
sorear isBEKaml: yes 03:36
isBEKaml: but in this context it means the list 0,1 ... 14
isBEKaml niecza: [^15].perl.say
p6eval niecza v8-41-g3421bd8: OUTPUT«[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]␤»
isBEKaml sorear: but the list in my case starts from 1, not 0. 03:37
03:37 wolfman2000 left, wolfman2_ left
isBEKaml rakudo: (1..*).[^15].say 03:37
03:37 Chillance left
p6eval rakudo 922500: OUTPUT«123456789101112131415␤» 03:37
03:41 shinobicl__ joined
isBEKaml sorear: so it's like saying "with take, fetch me 15 numbers out of this infinite list" and it does so upto 15. 03:42
sorear: OTOH, [^15].say means "fetch me the first 15 numbers from the infinite range starting from zero" and it give me 0..14. Now, that's confusing. 03:43
sorear isBEKaml: (1..*)[5] == 6
isBEKaml sorear: I see where you're coming from. My point is assigning ^ to contextual usage is very confusing. 03:44
03:44 fbass left
isBEKaml like you saw above, it can lead to obi-wan errors. :) 03:46
04:02 kaare_ joined 04:12 am0c joined 04:13 buubot_backup left 04:17 tokuhirom joined 04:18 shinobicl__ left 04:31 shinobicl__ joined 04:33 fbass joined 04:34 buubot_backup joined 04:35 isBEKaml left 04:38 tokuhirom left 04:39 am0c left, tokuhirom joined
sorear TimToady: ping 04:40
04:43 tokuhirom left
TimToady pong 04:43
phenny TimToady: 06 Aug 20:38Z <sorear> tell TimToady an unreified control exception in niecza contains an int, an optional Frame (for lexotic throws), and an optional string (label). Pass a tuple to CONTROL?
TimToady seems fine, can be optimized later 04:44
sorear ok 04:45
I wonder if we should set a spec for what next/last/redo do in CATCH 04:48
(or does S04:1028 count as a spec of that?)
TimToady probably 04:52
04:52 am0c joined
TimToady as long as we consider SIMPLECATCH to not see control exceptions 04:54
sorear TimToady: is the ordering of exceptions in @! semantically significant? (Can I choose an implementation that sometimes presents them to the user in a different order?) 04:56
TimToady: is SIMPLECATCH a user-facing feature/ 04:57
TimToady not user-facing 04:58
I think we should be consistent on @!, but the actual order (if it's just a linked list) could be arbitrary
bbl &
05:01 fbass left, fbass joined 05:03 soh_cah_toa left 05:10 noam left
benabik tadzik: Thanks for name dropping. Ensured I grabbed the change quickly. 05:26
05:32 envi joined 05:36 fbass left, fbass joined, fbass left 05:42 isBEKaml joined
dalek ecza: 7afc5d4 | sorear++ | / (3 files):
Draft of RunCATCH, add compiler hooks to report whether CATCH/CONTROL left via &succeed
05:45
ecza: 1878ba3 | sorear++ | lib/Kernel.cs:
Complete implementation of CATCH/CONTROL
06:04
sorear wonders if anyone would complain too loudly if niecza's version of CONTROL appeared in the spectests. 06:05
06:07 mdxi joined
sorear rakudo: say { die 12; CATCH { default { } } } 06:14
p6eval rakudo 922500: OUTPUT«_block1092␤»
sorear rakudo: say { die 12; CATCH { default { } } }.()
p6eval rakudo 922500: OUTPUT«12␤»
ranott why does the CATCH block not have a form that is like: try { this; } catch { that; } 06:37
dalek ecza: 65df472 | sorear++ | lib/ (3 files):
Reimplement lives_ok and friends using CATCH/CONTROL. Fix exposed bugs.
06:38
sorear ranott: to allow you to access variables from inside the tryt
benabik ranott: We do have try { this; CATCH { that; } }.
ranott: It also matches things like BEGIN, INIT, etc. 06:39
sorear also, roast contains woefully few tests for CATCH and CONTROL 06:40
I will have to fix this
(and probably find even more bugs in the latest nieczapatch along the way)
benabik FIRST and LAST inside loops are also handy. for @list { FIRST { print "List: " } print $_; LAST { say "." } }
isBEKaml benabik: mkString. :P 06:45
benabik isBEKaml: You can do more complex things than print in there.
isBEKaml benabik: Exactly. 06:46
benabik But coming up with a complex example is somewhat difficult for me at nearly 3 AM.
sorear benabik: does any implementation support FIRST and LAST yet? 06:47
benabik sorear: Sadly, I don't think so.
06:47 soupified2011 joined
benabik Although I think they'll be most useful on the command line for -ne snippets. 06:48
sorear benabik: that sounds like a feature request to me :>
isBEKaml benabik: not really, implicit named values to the help. What is useful is that it could take on any iterable. Again, implicits.
sorear (actually I was planning to attack FIRST/LAST/NEXT tomorrow anyway)
isBEKaml so, in that context, FIRST|LAST looks like they can take anything to be evaluated. 06:49
BTW, question to anyone here: Do we have join with prefix and suffixes? 06:50
benabik isBEKaml: Implicit named values will help you run something at the beginning of a one liner? I'm thinking: perl6 -ne 'FIRST { connect_to_web_service } do_thing_with_line END { close_socket }' 06:51
s/END/LAST
isBEKaml benabik: excellent usage of Loan pattern. :) 06:52
benabik: erm, no. Implicit named values => I was referring to Scala's mkString.
sorear benabik: I think that's more a job for INIT/END 06:53
benabik isBEKaml: Yes, in a full program Loan would be good. In a one-liner, it's nice to be able to put the initialization code somewhere.
sorear What's Load? 06:54
n
isBEKaml benabik: that's INIT block. yes.
ranott LAST phaser not yet implemented at line 1, near " }\n"
isBEKaml sorear: One of the Design Patterns. From teh GoF book.
benabik When I'm writing code that's supposed to go into a loop, FIRST/LAST make more sense to me.
TIMTOWTDI 06:55
ranott is the LAST only in nom or newer release?
benabik ranott: It's only in the spec at the moment, I think.
sorear ranott: LAST is not in any compiler yet
pugs: for 1..10 { say $_ }
p6eval pugs: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
benabik I pay more attention to P6 the language than any implementation...
sorear pugs: for 1..10 { say $_; LAST { say 5 } }
p6eval pugs: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤5␤»
sorear looks like Pugs has it.
benabik pugs++
sorear but pugs was way ahead on a lot of stuff 06:56
benabik The first example I can think of for the loan pattern is in ruby: File.open('data.txt'){|f| f.lines.map { stuff } } # file opened, passed to block, then closed 06:57
Scala uses it regularly too, IIRC.
isBEKaml benabik: What I'm thinking of is, given the usage of Phasers, it'd be really useful for abstraction if we can pass around functions as first class parameters. 06:58
benabik isBEKaml: We can, I think.
nom: say &infix:<=>
p6eval nom: OUTPUT«infix:<=>␤»
benabik nom: my &f = { say 'hi'; }; f() 06:59
isBEKaml benabik: sub abs_away(fun1, fun2, fun3) { INIT { fun1() }; fun2(); LAST { fun3() }; };
p6eval nom: OUTPUT«hi␤»
isBEKaml benabik: fun1, fun2, fun3 can be either in a single place or simply be different functions to do their own tasks. 07:00
benabik nom: sub test(&f) { f() }; test({ say 'hi' });
p6eval nom: OUTPUT«hi␤»
benabik nom: sub test(&f) { say f() }; test({ return 'hi' });
isBEKaml right, the &prefix. I forgot about that. :)
p6eval nom: ( no output )
benabik huh. I bet the return returned from the wrong thing. 07:01
Probably the right thing, but not the one I was trying for. :-D
sorear niecza already uses the loan pattern in a couple places
isBEKaml benabik: I think blocks are not treated as functions.
sorear I may never have heard of it, but... :)
isBEKaml sorear++ # blind maestro with the guitar. :) 07:02
benabik sorear: The GoF patterns are supposed to be "people do these things in code", not "this is how you write code."
But making you more aware of the common patterns helps with clean design.
sorear benabik: I think the first place I saw the loan pattern and recognized it as a pattern was when I was reading SICP
benabik I just heard about SICP recently… It's on my "to read" list.
isBEKaml sorear: Expanding on what benabik++ said, the goal was to present best solutions to recurrent problems in software engineering. Not exactly a "Best Practices" book. 07:03
sorear isBEKaml: the technical term for stuff you can return from is 'routine'.
benabik There's a way to say "this block is a function", but I don't remember P6's syntax for it right now.
isBEKaml rakudo: sub foo(&f) { f(); }; foo({say "Hi!"}.() }; 07:04
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
benabik Something like Haskell's \x -> x + 1 stuff.
sorear benabik: all blocks are functions. I don't know what you mean.
isBEKaml benabik: yes, that's what I was thinking too. lambdas.
sorear {say "Hi!"} is a lambda
rakudo: say {say "Hi!"}.WHAT 07:05
p6eval rakudo 922500: OUTPUT«Block()␤»
isBEKaml sorear: look at my example hitting rakudo.
benabik Block isn't quite a Sub.
sorear isBEKaml: try matching your braces correctly
benabik nom: say -> { return "hi" }
p6eval nom: OUTPUT«_block1010␤»
isBEKaml rakudo: sub foo(&f) { f(); }; foo({say "Hi!"}.() );
sorear rakudo: sub foo(&f) { f(); }; foo({say "Hi!"}.() );
p6eval rakudo 922500: OUTPUT«Hi!␤Nominal type check failed for parameter '&f'; expected Callable but got Bool instead␤ in 'foo' at line 22:/tmp/6uhGeNCLdW␤ in main program body at line 22:/tmp/6uhGeNCLdW␤»
rakudo 922500: OUTPUT«Hi!␤Nominal type check failed for parameter '&f'; expected Callable but got Bool instead␤ in 'foo' at line 22:/tmp/5sL6ei7pX6␤ in main program body at line 22:/tmp/5sL6ei7pX6␤»
benabik nom: say (-> { return "hi" }).WHAT
p6eval nom: OUTPUT«Block()␤»
sorear rakudo: sub foo(&f) { f(); }; foo({say "Hi!"});
p6eval rakudo 922500: OUTPUT«Hi!␤»
isBEKaml rakudo: sub foo(&f) { f(); }; foo({say "Hi!"} );
sorear rakudo: sub foo(&f) { say "Before"; f(); say "After"; }; foo({say "Hi!"}); 07:06
p6eval rakudo 922500: OUTPUT«Hi!␤»
rakudo 922500: OUTPUT«Before␤Hi!␤After␤»
isBEKaml sorear: nice. so that .() suffix is gone?
sorear -> $a, $b { } allows you to give parameters to a block
benabik nom: sub foo(&f) { print "foo" ~ f(); }; foo(-> {return "bar"})
p6eval nom: ( no output )
sorear isBEKaml: you use .() where you are invoking the sub
isBEKaml: f() is short for &f.()
benabik sorear: ^^ return seems to be returning from the line, not the block. 07:07
rakudo: sub foo(&f) { print "foo" ~ f(); }; foo(-> {return "bar"})
p6eval rakudo 922500: ( no output )
isBEKaml sorear: Ah, I see.
sorear benabik: "return" doesn't return from blocks
benabik: "return" returns from routines, which are a subset of functions 07:08
benabik rakudo: sub foo(&f) { print "foo" ~ f(); }; foo({"bar"})
p6eval rakudo 922500: OUTPUT«foobar»
benabik isn't entirely thrilled with the way return works, but can live with it.
sorear benabik: this is intended to support the visitor pattern. visit(-> $node { return if condition($node) })
benabik sorear: I understand that, but how do I early exit from a block. 07:09
sorear benabik: use { leave 5 } 07:10
NYI, I think
benabik rakudo: sub foo(&f) { print "foo" ~ f(); }; foo({leave "bar"})
p6eval rakudo 922500: OUTPUT«Could not find sub &leave␤ in <anon> at line 22:/tmp/YYK6CkxrpJ␤ in 'foo' at line 22:/tmp/YYK6CkxrpJ␤ in main program body at line 22:/tmp/YYK6CkxrpJ␤»
benabik perl6: sub foo(&f) { print "foo" ~ f(); }; foo({leave "bar"})
p6eval pugs: OUTPUT«foobar»
..rakudo 922500: OUTPUT«Could not find sub &leave␤ in <anon> at line 22:/tmp/vtc3xceJc6␤ in 'foo' at line 22:/tmp/vtc3xceJc6␤ in main program body at line 22:/tmp/vtc3xceJc6␤»
..niecza v8-43-g1878ba3: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'leave' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) ␤ …
sorear usually blocks are short enough that you don't need that.
benabik Heh. pugs understood it. 07:11
sorear if you want to early exit from a bloock, make it a routine
rakudo: sub foo(&f) { print "foo" ~ f(); }; foo(sub () {return "bar"})
p6eval rakudo 922500: OUTPUT«foobar»
sorear sub () isn't much of a price to pay for now
benabik I've lived in ruby land for a long time. blocks can be an entire file.
Ah! sub can be expression level.
sorear benabik: perl 6 blocks are not ruby blocks
benabik sorear: Sure, but saying "blocks are short" isn't always true. :-D 07:12
isBEKaml pugs: sub foo(&f) { print "foo" ~ f(); print "baz";}; foo({leave "bar"})
p6eval pugs: OUTPUT«foobarbaz»
isBEKaml heh. pugs was cheating. :P
sorear benabik: you can also have expression level methods and regexes
I think the only kind of Code object you can't have at the expression level is submethod 07:13
benabik submethod confuses the benabik. He should read the spec.
sorear maybe you could, but it wouldn't make any sense
benabik: submethods are non-inheritable methods 07:14
isBEKaml IIRC, submethods are private methods.
sorear niecza: class A { submethod foo() { } }; class B is A { }; A.foo; B.foo
p6eval niecza v8-43-g1878ba3: OUTPUT«Unhandled exception: Unable to resolve method foo in class B␤ at /tmp/67cLeK1OIT line 1 (MAIN mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1983 (CORE C930_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1984 (CORE module-CORE @ 5…
sorear isBEKaml: no
isBEKaml of course, you could create private methods by prefixing ! to the method names too.
sorear submethods can be called from outside the class, but only on the exact type 07:15
see above
benabik That's odd.
sorear private methods cannot be called from outside the class (except with trusts)
isBEKaml sorear: tell more. that looks like protected.
sorear: but you also mentioned that they canot be inherited. 07:16
that's odd.
sorear isBEKaml: I don't think submethod has anything whatsoever to do with access control
benabik It's inheritance control, which is… odd. 07:17
sorear A.foo cannot ever be called in such a way that self ~~ B
ever
private or protected methods restrict CALLER::, submethods restrict self
benabik: yeah. I understand how submethods work, but not why anyone would ever want one 07:18
isBEKaml sorear: from what you say, it's like submethods are meant to be in just one place, never to be called from self but from other classes of the same type.
benabik no clue
isBEKaml sorear: I don't see why that's needed... 07:19
sorear isBEKaml: neither do I.
note however that BUILD is required to be a submethod
isBEKaml goes looking at spec 07:21
07:24 thou left
isBEKaml rakudo: class A { submethod foo { say "A"; }; }; class B is A { submethod foo { say "B"; }; }; A.foo; B.foo 07:26
p6eval rakudo 922500: OUTPUT«A␤B␤»
isBEKaml rakudo: class A { method foo { say "foo A"; }; submethod foo { say "A"; }; }; class B is A { submethod foo { say "B"; }; }; A.foo; B.foo 07:29
p6eval rakudo 922500: OUTPUT«A␤B␤»
isBEKaml rakudo: class A { method !foo { say "foo A"; }; submethod foo { say "A"; }; }; class B is A { submethod foo { say "B"; }; }; A.foo; B.foo
p6eval rakudo 922500: OUTPUT«A␤B␤»
isBEKaml sorear: this is in conflict with the spec in S12:652
? 07:30
sorear isBEKaml: 'Conjecture:' means proposed future change, not a currently binding part of the spec
isBEKaml sorear: I understood that to be a proposed usecase/scenario. 07:31
07:31 Mowah joined
sorear walk& 07:33
07:42 moritz_ joined
moritz_ \o 07:42
mberends o/ 07:43
ranott how do I have the for loop assign to an array with n at a time? 07:44
right how I am using the simplified: for @j -> $x,$y,$z 07:45
moritz_ my @copy = @orig; while @copy.splice(0, $n) -> @var { say @var.join } 07:47
ranott thanks moritz_
07:48 moritz_ is now known as moritz 07:51 woosley joined
moritz phenny: tell jnthn re bumping PARROT_REVISION in nqp, i thought we were supposed to stick to parrot 3.6.0 in order to allow a release of nom on top of latest released parrot 07:53
phenny moritz: I'll pass that on when jnthn is around.
07:54 agentzh joined 08:03 wamba joined 08:04 shinobicl__ left
sorear moritz: hi 08:04
moritz hi sorear, glad to see that you've made much progress on phasers and exceptions 08:05
08:25 Mowah left 08:29 Su-Shee_ is now known as Su-Shee, agentzh left 08:30 pernatiy left 08:31 pernatiy joined, SHODAN joined 08:34 HarryS joined 08:42 agentzh joined 08:48 soupified2011 left 09:02 tokuhirom joined 09:37 im2ee joined 09:45 whiteknight joined 09:57 amster joined 10:03 amster left 10:10 amster joined 10:17 mj41 joined 10:19 kaare_ left 10:22 xinming joined 10:26 masak joined
masak good day, #perl6 10:26
sorear++ # blazing a trail into exceptions and stuff 10:29
sorear o/ masak
masak \o
masak makes himself some breakfast
amster allo #perl6 10:33
masak allo allo, amster 10:34
sorear masak: short term agenda: write tests for newly-concrete CATCH and CONTROL semantics. play with FIRST/LAST/NEXT.
10:35 jlaire joined
masak sounds wonderful. 10:36
I enjoy every little step of the progress, so make sure to develop noisily ;)
amster i wonder what language is NQP... is it bnf-able ? and is Rakudo (near) completly written in it ? 10:38
jnthn NQP is a subset of Perl 6. 10:40
phenny jnthn: 07:53Z <moritz> tell jnthn re bumping PARROT_REVISION in nqp, i thought we were supposed to stick to parrot 3.6.0 in order to allow a release of nom on top of latest released parrot
jnthn moritz: Hm, I don't remember hearing that. :S
amster: A lot of Rakudo is written in NQP. 10:41
sorear virtually all of Rakudo proper is written in NQP
jnthn amster: It's built-ins are mostly written in full-blown Perl 6. But the parser, actions, meta-objects etc is in NQP
sorear the term "Rakudo" refers to a compiler and a standard library
amster is it easy write NQP parser ? 10:42
sorear NQP's parsers are as powerful as those of Perl 6
ooooh, another one from .pl
amster hmm ? 10:44
sorear out
jnthn amster: Do you meant, easy to write a parser in NQP, or a parser for NQP? :)
amster i had hope nqp is simpler then perl6 and that can be simpler to write plain c/c++ compiler for it 10:47
jnthn It's simpler 10:49
amster but still not lexable/bisonable ? :) 10:50
jnthn Well, it's parsed using itself, using a Perl 6 grammar. :)
I'm not sure how far you'd get with lex/bison.
tadzik good morning Rakudae
moritz \o
jnthn Trouble is that, depending on what you want to do, that path doesn't tend to lead to the right place.
moritz just finished the HPMoR podcasts 10:51
jnthn o/ tadzik
tadzik moritz: podcasts?
moritz tadzik: hpmor.libsyn.com/
only up to chapter 17 so far
phenny: tell sorear that 'make test' dies with 'Unhandled Exception: No value for parameter @y in Test rxtest' 10:53
phenny moritz: I'll pass that on when sorear is around.
10:59 Trashlord left
tadzik jnthn: comments on gist.github.com/1130292 ? 11:04
masak amster: lex and bison are not really comparable to the parsing of NQP and Perl 6. they slice up the problem space differently. 11:12
moritz maybe somebody[tm] should write a blog post about who different the approach is 11:14
s/who/how/
the question/suggestion comes up with some regularity after all
masak aye. 11:17
we don't want to compare ourselves to lex and bison, we want to supplant them :) 11:18
11:18 woosley left 11:21 im2ee left 11:22 im2ee joined
tadzik Tested and works. And I remember doing the same thing for master (ng?) few months ago :) 11:23
dalek, make an entrance
hmm
jnthn pokes dalek
tadzik oh
jnthn I want my pre-breakfast karma!
tadzik no no, it's not pushed
oh, it is 11:24
dalek kudo/nom: c1fdc43 | jonathan++ | src/Perl6/M (2 files):
Fix usage of @*INC for locating modules.
tadzik dalek: what about me?
jnthn tadzik: That's most of the way there. (more)
When we do load_setting, I think we should note the mod time of the setting, and make sure the PIR is newer than that too. 11:25
dalek kudo/nom: 065f220 | tadzik++ | src/Perl6/ModuleLoader.pm:
[ModuleLoader] Load pirs or pbcs only if they aren't older than the pm file
jnthn That'll avoid issues where people pre-compiled against an older version of the setting. 11:26
tadzik hmm
omkay, breakfast first :) 11:27
jnthn Same :)
dalek kudo/nom: a31ca33 | jonathan++ | NOMMAP.markdown:
Remove a completed item from nommap.
11:30
11:33 REPLeffect left 11:36 amster left
moritz running a module from precompiled PIR produces an IMCC syntax error 11:42
it doesn't seem to know about the fixiup_outer_ctx opcode
moritz doesn't know about it either 11:45
*fixup
jnthn Oddness. 11:46
moritz where does that op come from?
jnthn What do you mean by "running it from precompiled PIR"?
It's in perl6.ops 11:47
moritz 'use XML::Writer;', when it's precompiled from PIR
jnthn Curious - we use Test.pir just fine.
11:47 REPLeffect joined
jnthn moritz: Does it have any dependencies? Where can I find it? 11:48
11:48 bbkr1 left
moritz curious indeed... it dies from the test harness, but works when I simply do PERL6LIB=... perl6 -e 'use XML::Writer' 11:48
11:48 Trashlord joined
jnthn oh. 11:48
moritz tries git clean -xdf
11:49 bbkr1 joined
moritz seems to be false alarm 11:49
.u checkmark
phenny moritz: Sorry, no results for 'checkmark'.
moritz XML::Writer is nom-ready 11:50
now if only ufo worked with nom... :-)
tadzik it almost works
moritz it needs MAIN
iirc
tadzik it needs .match
MAIN can be workedaround, I did that 11:51
.match is broken
nom: "foo bar baz".match('bar'); say 'alive'
p6eval nom: OUTPUT«Rebuild in progress␤»
tadzik well, it hangs
moritz oh.
tadzik maybe that can be workearound too with regexes
it's the .match from .substr 11:52
* .subst
moritz oh I see
it's just NYI
jnthn aha :)
Glad it was false alarm :)
moritz master just wrapped the matcher in a regex
11:53 im2ee left, im2ee joined, JimmyZ joined
moritz jnthn: do private multis work in nom? 11:54
jnthn moritz: Hm. I fear they may not right off. 11:55
moritz ah well, I'll make the method public for nwo 11:56
jnthn nom: class A { multi !m() { } } # curious... 11:58
p6eval nom: OUTPUT«Rebuild in progress␤»
tadzik LOONG
moritz it needed to rebuild nqp too
jnthn We have make install now, so in theory that's fixable :)
tadzik > perl6 11:59
Incorrect pre-compiled version of src/stage2/gen/nqp-mo.pm loaded
hrm
12:00 kaare_ joined
jnthn Ouch. 12:00
moritz spectests a patch for Str.match(Str)
jnthn tadzik: Can happen if you end up with a different NQP installed than the one you built against, somehow. 12:01
moritz would you like to have $haystack.index($needle) return a Match object? 12:02
12:02 JimmyZ left
jnthn I'd expect an integer I guess :) 12:02
tadzik too 12:03
moritz and the Match object from self.match($str) then, ok
12:08 JimmyZ joined
JimmyZ nom: class A { multi !m() { } } 12:08
p6eval nom: OUTPUT«Malformed block at line 1, near "!m() { } }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
JimmyZ nom: class A { multi method !m() { } }
p6eval nom: OUTPUT«Private multi-methods are not supported at line 1, near "}"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
tadzik nom: my $a = "foo bar baz"; $a ~~ s:g/bar/zebar/; say $a 12:11
p6eval nom: OUTPUT«Method 'clone' not found for invocant of class 'Sub'␤current instr.: '_block1002' pc 122 ((file unknown):58114447) (/tmp/CRXewoC78D:1)␤»
JimmyZ nom: say [1..10].[{*-1}(*)] # JimmyZ wrote this code, but he doesn't know what it means 12:12
p6eval nom: OUTPUT«10␤»
tadzik I don't get the {*-1}(*) part 12:13
nom: say [1..10].[{*-1}]
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
JimmyZ me too
moritz {...} is a closure 12:14
and (*) calls it with * as its argument 12:15
so it binds $_ to *, but since $_ isn't use, that part is ignored
it just return *-1
flussence nom: say ([1..10].[*]).perl
moritz which works just as .[*-1]
p6eval nom: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤»
JimmyZ nom: say [1..10].[{$^a-1}(*)] # but this one doesn't work
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
flussence nom: say {*-1}([1..10].[*]).perl
p6eval nom: OUTPUT«_block1014␤» 12:16
flussence nom: say {*-1}([1..10].[*])
p6eval nom: OUTPUT«_block1014␤»
flussence nom: say [1..10].[{*-1}([1..10].[*])]
p6eval nom: OUTPUT«10␤»
flussence nom: say {*-1}([1..10].[*]).()
p6eval nom: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: '_block1014' pc 407 ((file unknown):50384380) (/tmp/7YkjGm9Y2u:1)␤»
flussence something like that.
the second * gets evaluated first 12:17
flussence wants to be able to write something like { [1..10].[{*-1}(*)] }.perl.ast.pretty to figure out what order that runs in 12:18
JimmyZ nom: say [1..10].[{$_-1}(*)] 12:20
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
masak flussence: you're more likely to get .ast directly from the block than from the .perl Str. 12:22
flussence hm, you're right :)
JimmyZ nom: say {$_-1}(10) 12:23
p6eval nom: OUTPUT«9␤»
masak flussence: more generally, treating code as a one-dimensional string is sinful :P
JimmyZ nom: say [1..10].[{$_-1}(*)] # JimmyZ wonders why it doesn't work :(
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
JimmyZ nom: say [1..10].[{$_-1}(10)] 12:25
p6eval nom: OUTPUT«10␤»
moritz something is decidedly broken in rakudo's module loading 12:26
I have a copy of rakudo in which I ran 'make install'
flussence
.oO( maybe .perl return the parse tree, which stringifies to the code... )
moritz I modified an src/core/ file
and after 'make', I get
$ /perl6 -e 'say 1' 12:27
Could not find Perl6::Metamodel in any of: /home/moritz/.perl6/lib, /home/moritz/p6/rakudo/install/lib/parrot/3.6.0-devel/languages/perl6/lib, .
masak JimmyZ: probably because an *actual* Whatever gets sent in to that closure. the .[] doesn't get to intercept it, as usually happens.
flussence
.oO( maybe I shouldn't be trying to perl6 before I'm fully awake :)
moritz then I ran 'make install'
now I get
$ ./perl6 -e 'say 1'
Could not locate Perl 6 code object
JimmyZ masak: my bug or rakudo bug? or how can I fix it?
kboga moritz: I can confirm that. 12:28
flussence +1
moritz JimmyZ: a bug in your code
JimmyZ ./perl6 -e '' goes into Interactive Mode
12:28 rdesfo joined
JimmyZ moritz: I doesn't know how to fix it 12:29
s/doesnt/don't/
12:29 am0c left
moritz JimmyZ: just don't write {$_ - 1}(*) :-) 12:29
the whatever-currying happens at compile time
so it really needs a syntactic *, not a variable which is later bound to a Whatever at run time 12:30
JimmyZ nom: say [1..10].[(-> $a {$a -1} )(*) ] #this one doesn't work too.
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
moritz JimmyZ: same problem, except that you now wrote $a instead of $_
JimmyZ: what do you want to achieve? 12:31
why not just *-1 or { $_ - 1} ?
JimmyZ moritz: something my $result = @array[func(*)];
moritz JimmyZ: then just write @array[&func] 12:33
JimmyZ nom: say [1..10].[{$_ -1}]
moritz JimmyZ: @array's postcircumfix:<[ ]> will call it with the right arguments
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
moritz hm, I think that should work
masak me too. 12:34
moritz nom: say WhateverCode ~~ Callable
p6eval nom: OUTPUT«Bool::True␤»
masak nom: say WhateverCode ~~ Cool
p6eval nom: OUTPUT«Bool::False␤»
moritz changing s/WhateverCode/Callable/ in src/core/Any.pm line 115 might fix that
JimmyZ nom: sub func($a) { $a/2}; [1..10].[&func(*)]; 12:35
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 677673 (src/gen/CORE.setting.pir:171927) (src/gen/CORE.setting:445)␤»
moritz but I'm spectesting an unrelated thing right now
JimmyZ well, seems &func doesn't work too
moritz so that needs fixing
JimmyZ rakudo: sub func($a) { $a/2}; [1..10].[&func(*)];
p6eval rakudo 922500: OUTPUT«Cannot take numeric value for object of type Whatever␤ in 'Any::Numeric' at line 1496:src/gen/core.pm␤ in 'infix:</>' at line 1:src/gen/core.pm␤ in 'func' at line 22:/tmp/YsRWzLudSh␤ in main program body at line 22:/tmp/YsRWzLudSh␤» 12:36
JimmyZ rakudo: sub func($a) { $a/2}; [1..10].[&func];
p6eval rakudo 922500: ( no output )
jnthn moritz: Hmm, some breakage after installation?
moritz jnthn: yes 12:37
JimmyZ rakudo: sub func($a, $b) { $a/2}; say [1..10].[&func];
p6eval rakudo 922500: OUTPUT«6␤»
JimmyZ rakudo: sub func($a, $b) { $a/2; $b/3}; say [1..10].[&func];
p6eval rakudo 922500: OUTPUT«4␤»
jnthn moritz: What breaks? The installed version, or any future builds you do in the build directory?
moritz jnthn: running ./perl6 after another build 12:38
from within the build dir
jnthn ok, so make install, make, ./perl6 = boom?
jnthn tries it 12:39
moritz after make install; change some core files; make; ./perl6 == boom
and a 'make install' doesn't help
s/a/another/
just changes the error mode
jnthn OK. I somewhat suspect the @*INC patch. 12:40
moritz I suspected that it looks for files in the install dir before the build dir 12:41
jnthn nom: say @*INC 12:42
p6eval nom: OUTPUT«lib /home/p6eval/.perl6/lib /home/p6eval/nom/install/lib/parrot/3.6.0-devel/languages/perl6/lib .␤»
jnthn er
Well, yeah, if we shove . on the end it's gonna.
oh, actually there's a simpler breakage 12:43
run perl6 in the build directory immediately after make install.
moritz why does *that* break?
I mean it should get the same versions of the same files, regardless of where it looks 12:44
jnthn Right, that's what's confusing me lots.
12:44 woosley joined
jnthn And the error is "Could not locate Perl 6 code object" 12:44
12:45 PacoLinux joined, PacoLinux left
moritz that's what I got after a repeated 'make install' too 12:45
12:45 PacoLinux joined
jnthn oh 12:47
I have a horrible feeling that at some point we load two different versions of the setting or something.
jnthn adds a bunch of debug stuff
12:50 Mowah joined
jnthn moritz: I think I see what's going on. @*INC contains one search order. 12:52
12:53 amster joined
jnthn Before we have a setting loaded, though, we just have a "should at least find us the setting" list of places to look. 12:53
12:54 ssqq joined
ssqq hello all 12:54
jnthn @*INC we've seen. The other one is: ., blib, the perl6 language directory and the nqp language directory
ssqq: hello
moritz: gist.github.com/1130351 dumps some info about what it's looking for and finding, which may help clarify things. 12:56
masak ssqq: hi!
ssqq I came from china ,and i first use IRC. I am learnin Perl about one year pass half
I want to know how to input the symbol of like '<<' in Perl6 12:57
moritz ssqq: on linux, Compose < <
ssqq: for me, AltGr + x also produces « 12:58
ssqq: it depends on your system, really
flussence (oh wait, I'm an idiot. That merge yesterday didn't lose any metadata at all, it just added a commit for the merge itself...)
dalek ast: 0fbf292 | flussence++ | fudge:
Merge pull request #5 from ruz/fudge-perl-5.8-compat

  [fudge] return back compatibility with perl 5.8
flussence (which dalek doesn't show for some reason...)
ssqq I used vim on Windows xp
moritz vim allows Ctrl-k < < 12:59
ssqq I try it now
flussence ssqq: ":help digraphs" might be useful
moritz or :digraphs
13:01 athomason left
jnthn moritz: I see what's going on. Ew. 13:01
13:01 PacoLinux left
jnthn # Locating setting CORE 13:01
# ... found setting at ./CORE.setting.pbc
# Looking for Perl6::Metamodel ...
# ...chosen pre-comp candidate blib/Perl6/Metamodel.pbc
# Locating setting CORE
# ... found setting at C:/Consulting/rakudo/install/lib/parrot/3.6.0-devel/languages/perl6/lib/CORE.setting.pbc
moritz: After default @*INC is set up it finds a different CORE.setting 13:02
But of course it brings in all the same Parrot subs we already loaded, which explodes
moritz: Is there a reason that '.' is on the end of @*INC?
JimmyZ ssaa: 你好,来自北京? 13:03
mj41 hi, the first dashboard of my GoodData.com Perl 6 project ... github.com/mj41/Perl-6-GD/raw/mast...odData.png 13:04
flussence jnthn: so that "use ModuleInCurrentDir" works?
jnthn flussence: That'd work if it was on the start of @*INC too :)
(I'm asking why it's where it is, not why it's there at all. :))
ssqq Thanks a lots I can input it 13:05
Jimmmy I came from Shenzhen
JimmyZ ssqq: me too
ssqq O, thats great 13:06
moritz jnthn: I think people dislike the idea of having it in front, because of accidentally loading the wrong module
JimmyZ :)
jnthn
.oO( Shenzhen.pm )
moritz jnthn: but I fear we have to put it in front, just like master does
rakudo: say ~@*INC
p6eval rakudo 922500: OUTPUT«lib /home/p6eval/.perl6/lib /home/p6eval//p2/lib/parrot/3.6.0-devel/languages/perl6/lib .␤»
moritz huh?
oh, but it also suffers from some problems
jnthn Well, master doesn't have a loadable setting so it won't hit the problem so immediately.
but yes, it'll suffer somewhre. 13:07
moritz like prefering the installed Test.pm over the the local one
jnthn Right. That's what we'd get here - apart from the installed Test.pm will actually not work at all.
moritz which people didn't complain about much, because Test.pm isn't touched very often
jnthn Yeah, but nom can't load versions of pre-compiled stuff that weren't compiled against the exact same build of the compiler.
Which tends to be a blessing because you can't get weird accidents from left around PIR files. 13:08
But does kinda force us to deal with the issue. :)
ssqq The new branch of perle6 develop planning will be more faster than rakudo?
If have any planning to run Perl5 code in perl6 compiler? 13:09
jnthn moritz: The other thing I can do is stash loaded settings just under the name, not the path they were loaded from.
moritz there's a module that embeds a perl5 compiler in Perl 6
jnthn That'll alleviate the immediate issue I guess...
ssqq: Yes, it's faster in many areas. But it's also just a first step - we now have capability to write an optimizer. That's when we'll get big wins. :) 13:10
flussence I'm ok with @*INC having ./lib at the start and . at the end. It gives users a way to have both module overrides and fallbacks
JimmyZ ssqq: yes , see github.com/jnthn/blizkost 13:11
flussence (just as long as it's visibly pointed out in docs somewhere - I can see the current @*INC confusing people)
masak ssqq: that said, right now it's still easier to write Perl 6 than to try to run Perl 5 in Rakudo. at least in my experience. 13:12
jnthn flussence: Yeah, good point 13:13
I'm wondering if we shouldn't move Test.pm and so forth into lib.
ssqq If have any planning to share symbol and sub namespace with other Language in Perl6,like Python?
As Larry said, Parrot core only have 100-200k size, If it still so small now? 13:15
JimmyZ ssqq: yes, if someone want to write the code
13:16 donri left
ssqq If have any planning to run the parrot on embed system like iphone or Android? 13:16
13:16 donri joined
JimmyZ ssqq: you're in 2001, now it's 2011 :) 13:16
ssqq: give up the 2001 news :) 13:17
ssqq: most the chinese news about Perl6 and parrot is from 2001 or 2005 13:18
masak still, neither iPhone nor Android existed back then. 13:19
isBEKaml VM in a VM?
ssqq Today,someone ask me,Perl6 can connect SQL with dbi? 13:20
isBEKaml IIRC, android's already a VM in a VM. Putting parrot on android is three levels down. :) 13:21
JimmyZ ssqq : there was a dbdi :) github.com/timbunce/DBDI/ 13:22
masak even some physical architectures nowadays can be seen as VMs. 13:23
isBEKaml masak: are you talking about clusters?
masak: btw, hi! :) 13:24
13:24 drbean left
ssqq my english if pool, I want to say with Chinese.. 13:26
If larry and conway came here to say something? 13:27
jnthn moritz: Try the patch I just pushed. 13:28
(when you've time :))
masak isBEKaml: hi!
dalek kudo/nom: d438bdd | jonathan++ | src/Perl6/ModuleLoader.pm:
Tweak setting loading to avoid running into issues post-installation where we sometimes loaded two different versions of the setting.
13:29
isBEKaml masak: goes how you? :)
masak isBEKaml: goes well I. you and?
ssqq: Larry comes here occasionally. Conway seems to be more email-based.
tadzik I thought they're Mister Wall and Mister Conway :) 13:30
isBEKaml masak: well too I. bugs more rakudo in submitting?
ssqq o, I heard about it, conway have not mobile even
isBEKaml ssqq: so does quite a few folks here. 13:31
masak isBEKaml: now right many not. branch nom master merge waiting.
isBEKaml: happening things many branch nom in exclusively though.
13:31 nebuchadnezzar left
isBEKaml masak: more so bugs nom in? more so nom faster or ? 13:32
masak isBEKaml: times exciting joy for jump want I.
isBEKaml \o/
masak isBEKaml: nom faster not faster know I not. see will have to simply.
13:32 fbass joined
JimmyZ wow, github.com/quietfanatic/link-c/ is awesome :) 13:32
masak isBEKaml: optimizer future depend will on also.
isBEKaml masak: times good, times good. 13:33
masak deed in.
isBEKaml it's funny how we tend to speak in quirky Engreesh. :)
masak I don't know what you're talking about. :P
isBEKaml acknowledged. :P 13:34
jnthn oh finally, a sentence I can understand :P
13:34 tokuhirom left
masak jnthn: learn English! :P 13:34
isBEKaml jnthn: More english! :P
jnthn masak: English learning hard is.
masak aye.
isBEKaml jnthn: finally a sentence I can understand! :P
jnthn *lol*
masak months many school in spent I English learning. 13:35
isBEKaml all and I was got this.
masak *lol*
jnthn masak: teacher Yoda called was?
masak jnthn: Mr Yoda to you.
jnthn form polite fails it I 13:36
masak wow, Forth lolspeak.
jnthn oops!
:)
ssqq Jimm
你在Perl6项目中有什么参与吗?
masak phenny: zh en "你在Perl6项目中有什么参与吗?"? 13:37
phenny masak: "You have any projects in the Perl6 in it?" (zh to en, translate.google.com)
masak ssqq: yes, many.
phenny: en zh "There are many projects written in Perl 6 already."?
phenny masak: The en to zh translation failed, sorry! 13:38
masak grumbles
tadzik masak: I think ssqq meant Link::C
ssqq O, i want do somthing for perl6,Jimm what can I do?
masak 在Perl6已经写了很多项目。
jnthn moritz, tadzik: How do you feel about moving Test.pm and Pod/To/Test.pm under a "lib" directory? That's the start of @*INC, unlike .
ssqq I means Jimm attend some project in perl6? 13:39
masak "attend"?
please rephrase.
isBEKaml I think he meant "did he do any project in perl6?"
ssqq sorry , I download a translator
jnthn Otherwise at the moment we do make spectest after installation, but it finds the installed version, notes that the PIR is older and re-compiles Test.pm per test. 13:40
ssqq isBEKaml said is right
masak ssqq: 请不要使用翻译。请填写您的问题在中国。
hm, that can't be right...
请写您的问题,使用普通话。 13:41
isBEKaml jnthn: any idea on why it's trying to load Setting twice?
13:41 mj41 left
masak yeah, I see the irony. using Google Translate to ask someone not to use a translator. :) 13:42
tadzik jnthn: wfm
pmichaud will probably be happy about it too :)
ssqq masak,where are you from?
masak 我住在瑞典。我学习普通话一点点。 13:43
13:43 fbass left
jnthn isBEKaml: Yeah, patch shoulda dealt with the issue. 13:43
13:43 fbass joined 13:44 nebuchadnezzar joined
jnthn isBEKaml: It sholdn't load it twice, but multiple things may ask for a reference to it. 13:44
isBEKaml masak: you're using Google Translate? or native to language trnaslator? :P
ssqq masak, That is good, You said very well
masak isBEKaml: I'm using Google Translate, and then trying to verify by looking at the sentence whether it came out right.
isBEKaml: when I write phonetically, I tend to use a lot of wrong homonyms. 13:45
13:45 whiteknight left
isBEKaml masak: talk about checks and balances. :) 13:45
masak 更多的人应该学习普通话。 13:46
isBEKaml masak: no translator got I. lol. 13:47
JimmyZ ssqq: want to share some contribution? 13:48
jnthn tadzik: Trying it
isBEKaml jnthn: the patch is on a different branch?
ssqq jimmyz,no I just learning 语法 of Perl6,I have many question
jnthn isBEKaml: ?
isBEKaml jnthn: ah, nm. I thought I didn't see your commit. Just curious about the patch. :) 13:49
jnthn isBEKaml: In nom branch, where all development is at the moment :)
JimmyZ ssqq: 你现在在做什么?
ssqq I interest the module of combin pod to chm of Parrot src
JimmyZ java 开发?
masak ssqq: it's fine to ask questions here about Perl 6 语法. we'll be happy to answer them.
ssqq 我是网管,用Perl来做工具
JimmyZ 在腾讯吗? 13:50
ssqq 不是,一家手机方案公司。
JimmyZ 所以你比较熟悉 Perl 5 ?
masak ah, hence the question about iPhone and Android... 13:51
ssqq Software is writing by C, and use perl as the common makefile tools
isBEKaml masak: 的意思,但一直没有得到身边。
isBEKaml curses uxterm. :/
JimmyZ ssqq ,你 比较熟悉 C 和 Perl 5?
masak isBEKaml: did you jumble that before translating it? :)
ssqq 是的,我写的所有代码,都是用Perl5
masak \o/ 13:52
isBEKaml masak: no, jumbling is natural. Mandarin is hard.
ssqq C不是很熟悉,不过熟悉git,pod,
masak isBEKaml: as far as I know, you don't start a sentence with 的. Chinese people here may correct me on that.
ssqq We'd better write with english. 13:53
masak ssqq: 你并不需要C时下很多。
isBEKaml masak: Did I ? Google did! :)
masak isBEKaml: that's one of the things it does wrong.
isBEKaml: it's not very good at putting things in an order that a Mandarin speaker will recognize as grammatical. 13:54
JimmyZ rakudo: class Foo { sub event (&method) is export { say &method.name; }; event method hello() { ... } };
ssqq C is suitable with parrot
p6eval rakudo 922500: OUTPUT«hello␤»
isBEKaml masak: sentence structure is different in Asian languages. Google messes that one up. 13:55
13:55 agentzh left
JimmyZ ssqq: you maybe want perlgeek.de/blog-en/perl-5-to-6/ 13:56
masak isBEKaml: sentence structure is different in most languages. but the gap is so big between Germanic languages and the Sino-Tibetan languages that it's hard for an automatic translator to do anything sensible.
ssqq In Asian Language, Attribute is before keyword,just like perl
masak isBEKaml: it's probably even harder if the approach is based on statistics and corpora.
ssqq: :)
isBEKaml masak: NLP fails right there. :)
masak ssqq: 是的 13:57
ssqq yes, I need read it for many times
JimmyZ nom: class Foo { sub event (&method) is export { say &method.name; }; event method hello() { ... } }; #JimmyZ thinks this one is evil :)
p6eval nom: OUTPUT«Rebuild in progress␤»
JimmyZ ssqq: how about the Perl 6 book ?
isBEKaml masak: AFAIK, flow based context is what makes languages so difficult. 13:58
masak JimmyZ: I think it's a nice little pattern.
isBEKaml: well, humans have an excellent ability to connect together parts of sentences that refer to each other implicitly.
isBEKaml masak: something machines are poor at, but humans pick them up very easily.
ssqq The grammar of Perl6 is strange for me, And i dont know if it will change later
JimmyZ ssqq: github.com/perl6 13:59
ssqq: sorry, this one github.com/perl6/book
isBEKaml masak: I see we are in agreement there. (or I'm slow at typing)
tadzik ssqq: what's strange for you? 14:00
and I don't think it's going to change much
ssqq «»
this symbol can not type with keyboard 14:01
tadzik you can always use << and >>
masak and you can type it with the keyboard, too.
tadzik nom: say [1, 2, 3] >>+<< [4, 5, 6]
masak different ways, depending on the editor.
p6eval nom: OUTPUT«5 7 9␤»
JimmyZ masak: I say it's evil because I didn't see a language that can do class A { publice $a; func b() {}; b($a); } 14:02
ssqq tadzik you means it is eq << eq « >> eq «»
I believe Perl6 will be an great language, 14:03
It will connect and communication with all language 14:05
jnthn tadzik: Pushed patches to move Test.pm and Pod/To/Test.pm into lib, and put lib into @*INC. 14:06
tadzik: Testing/feedback on how it feels appreciated.
14:06 im2ee left
masak JimmyZ: I don't get it. 14:06
JimmyZ ssqq: did you read perlcabal.org/syn/ ?
dalek kudo/nom: 1349b46 | jonathan++ | / (6 files):
Move Test.pm and Pod/To/Text.pm into lib directory.
kudo/nom: 0ad2d79 | jonathan++ | src/core/terms.pm:
Add lib to default @*INC, ahead of installed paths. Avoids hitting stuff in the CWD ahead of installed things, but still gives a way for module developers to try development versions, and also for us to find the non-installed pre-compiled Test.pm.
ssqq no
14:06 im2ee joined
jnthn tadzik: I discussed the module cache thing with Pm and he wanted us to discuss it and think about it further first, so for now things work as in master - we use a .pir file if it's there. So installer can still do that. 14:07
tadzik: We'll plot World Domination...er, I mean, a better solution...at YAPC::EU :)
ssqq o i have read it,and I think the final grammar will have a few change 14:08
tadzik jnthn: the module cache thing?
isBEKaml jnthn: where's the WTOP? :P
JimmyZ masak: or class A {
func b() {}
b($a); # usually, we can't call code there
}
jnthn tadzik: As in, Rakudo full managing the pre-compilation cache, rather than us doing it at module install time. 14:09
JimmyZ s/there/here/
jnthn *fully
tadzik jnthn: oh, so we won't need to figure out the best order when doing few perl6 --target=pirbc in a row?
JimmyZ masak: s/b($a)/b()/
ssqq goodbye I will test some perl6 pm 14:10
tadzik o/
JimmyZ bye ssqq
14:10 ssqq left
isBEKaml o/ 14:10
jnthn tadzik: er, that will need sorting out. 14:11
tadzik jnthn: I don't know what you mean by rakudo managing pre-compilation cache
jnthn Don't worry about it then. 14:12
tadzik okay :)
oh oh, so no installing .pirs or .pbcs, Rakudo will care about it all?
jnthn But if you have A using B and C, then it's important B and C and pre-compiled before A is.
tadzik: For now we should go on installing them.
tadzik yeah, sure, but not in a dreamworld, right? 14:13
jnthn I think that should be a possibility, yes.
Maybe even the default.
It's a bit tricky to get right though. :)
tadzik I see
isBEKaml jnthn: if by precompiled, you mean rakudo doesn't check timestamps to see if they need any re-compilation? 14:14
jnthn: just that precompiled forms take first precedence in face of multiple sources?
s/face/view/
that doesn't seem quite right to me since we(as mortal programmers) don't see .pbc files. 14:16
JimmyZ nom: class JimmyZ { sub event (&method) is export { print &method.name; }; event method hello() { say ' #perl6' } }; JimmyZ.hello; # just interesting
p6eval nom: OUTPUT«hello #perl6␤»
masak obra++! www.slideshare.net/obrajesse/oscon-...and-beyond 14:17
wow, Perl 5 is *awesome*.
oh wow oh wow
tadzik JimmyZ: wow, what?
that's pretty neat 14:18
JimmyZ tadzik: what's what?
JimmyZ can't follow tadzik
tadzik JimmyZ: the example. It's pretty cool 14:19
JimmyZ tadzik: I just steal it from github.com/quietfanatic/gamebase :) 14:20
14:20 tokuhirom joined, im2ee left 14:21 im2ee joined
masak yes, quietfanatic++ was the first one to use that pattern. 14:21
it's one of those "obvious in retrospect" things. S06 talks about sub/method declarators being ordinary expressions returning the object declared. 14:22
makes for a very "DSL"-ish syntax.
JimmyZ is pleased it's written in Perl6 instead of Java, so he can understand it 14:23
jnthn isBEKaml: We check time stamps 14:24
14:24 Mowah_ joined
jnthn Nice, a bunch of my exit code 1's have vanished from make spectest. 14:25
In fact, all of them 14:26
Anybody know why radcalc in Actions.pm sometimes explodes with "no bigint lib loaded"?
masak rakudo: my %event_subs; sub event { %event_subs{&^sub.name} = &sub }; event sub foo {}; event sub bar {}; say %event_subs.perl 14:27
p6eval rakudo 922500: OUTPUT«{"foo" => { ... }, "bar" => { ... }}␤»
14:27 donri left, donri_ joined
JimmyZ nom: class JimmyZ { sub prefix:<@>(&method) { print &method.name; }; @method hello() { say ' #perl6' } } # bug ? 14:33
p6eval nom: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
JimmyZ rakudo: class JimmyZ { sub prefix:<@>(&method) { print &method.name; }; @method hello() { say ' #perl6' } } # bug ?
p6eval rakudo 922500: OUTPUT«hello»
14:33 birdwindupbird joined
JimmyZ though that's a little pythonic :) 14:34
isBEKaml rakudo: class JimmyZ { sub prefix:<@>(&method) { print &method.name; }; @ method hello() { say ' #perl6' } } 14:35
p6eval rakudo 922500: OUTPUT«hello»
isBEKaml rakudo: class JimmyZ { sub prefix:<@>(&method) { print &method.name; }; (@)method hello() { say ' #perl6' } }
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
JimmyZ isBEKaml: nom doesn't work
14:36 shinobicl__ joined
isBEKaml JimmyZ: pythonic? decorators? :) 14:36
JimmyZ isBEKaml: yes
nom: class JimmyZ { sub event (&method) { print &method.name; }; event method hello() { say ' #perl6' } }
p6eval nom: OUTPUT«hello»
JimmyZ rakudo: class JimmyZ { sub prefix:<@>(&method) { print &method.name; }; @method hello() { say ' #perl6' } } # I think it's a nom bug 14:37
p6eval rakudo 922500: OUTPUT«hello»
JimmyZ nom: class JimmyZ { sub prefix:<@>(&method) { print &method.name; }; @method hello() { say ' #perl6' } } # I think it's a nom bug
p6eval nom: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
isBEKaml nom: class JimmyZ { sub event (&method) { print &method.name; }; event sub hello() { say ' #perl6'; } } 14:38
p6eval nom: OUTPUT«hello»
jnthn We didn't put custom operators back in nom yet. 14:39
JimmyZ ah 14:40
isBEKaml JimmyZ: well, <@> is abuse since we have @ prefixes for arrays. ;)
I don't even want to see perl6 accidentally wander into C++ zones. :)
JimmyZ thought it did
14:41 Mowah_ left 14:52 [particle]1 joined 14:53 [particle] left 14:56 donri_ left
JimmyZ rakudo: sub prefix:<@>(&sub) { print ' ', &sub.name; return sub perl6 { &sub; } }; @@@@@@@@@@@sub hello() { } # what do you feel like it? 14:57
p6eval rakudo 922500: OUTPUT« hello perl6 perl6 perl6 perl6 perl6 perl6 perl6 perl6 perl6 perl6»
JimmyZ rakudo: sub event (&method) { print ' ', &method.name; return sub perl6 { &method; } }; event event event event sub hello() { }; # or this 14:58
p6eval rakudo 922500: OUTPUT« hello perl6 perl6 perl6»
14:58 MayDaniel joined 15:00 fbass left 15:01 mj41 joined
amster 15:02
15:03 shinobicl__ left
pmichaud good morning, #perl6 15:07
jnthn morning, pmichaud 15:08
JimmyZ masakit's one of those "obvious in retrospect" things. S06 talks about sub/method declarators being ordinary expressions returning the object declared. 15:13
masak: which line :) 15:14
masak: I couldn't find it
15:16 fbass joined 15:17 frew joined
pmichaud commit 0ad2d7 (adding 'lib' directory to search path) introduces more trojans. 15:18
it needs to go after the other dirs
jnthn Please see commit message for why not. 15:19
15:19 frew left
pmichaud I did see the commit message. 15:19
That doesn't change what I just said. :)
jnthn OK, then we need a different way to solve the problem. 15:21
pmichaud right.
we could perhaps get 'use lib' to work.
jnthn And sprinkle it all over every .t file?
pmichaud oh, for tests we should be able to do a command line option in the harness 15:22
jnthn OK
oh, or the existing environment variable.
If we can reliably set it in a cross-platform way :/
[Coke] pmichaud: anyone break spectest on you since you complained? 15:30
15:31 daniel-s left
pmichaud [Coke]: not that I've noticed 15:32
running make spectest now :)
jnthn BTW, did anyone else often get exit code 1's on a bunch of passing tests?
Those have all vanished for me, it seems. I'm thinking it may have been last night's memory corruption fix. 15:33
jnthn figures out how to handle implementing handles.
pmichaud I'm guessing the memory corruption fix is indeed it.
symtable = clone symtable 15:34
jnthn Nice :)
pmichaud jnthn: did you come up with a workaround for ^^ ?
jnthn Yeah, I wrote a sub to shallow clone it
pmichaud okay, good.
masak JimmyZ: S06:273.
jnthn Then outlawed the code path that led to the issues.
[Coke] jnthn: yah, I used to.
JimmyZ masak: thanks 15:35
[Coke] also got odd failures when running t/harness directly versions exec'ing it inside of another process. wonder if that's fixed.
jnthn Maybe. It was all very memory layout sensitive. It took us ages to get an example where it segfaulted.
Then thankfully 10 minutes of staring at the functions in the backtrace made it clear what has going on. 15:36
BTW, [Coke]++ again for fixing the Makefile issue :) 15:38
pmichaud jnthn: huh.... the deep cloning of symtable was already reported: trac.parrot.org/parrot/ticket/1015 15:39
15:39 JimmyZ left
jnthn pmichaud: I don't see a mention of symtable in that ticket? 15:40
oh, "symbol table"
Though the ticket was about a more general Parrot issue. 15:41
pmichaud right
jnthn In this case the issue was that SixModelObject doesn't support cloning, but Parrot tries to provide a default clone v-table, which can explode. Turns out the only place we ever tried to clone one was when symtable got cloned and it was attached as a value. 15:42
So I made that shallow clone and then shoved an exception throw into the SixModelObject clone v-table 15:43
I'm not sure what we'll want it to do yet: whatever repr_clone does, or be the HLL interface for whatever the langauge considers cloning (and thus have it overridable).
15:44 woosley left
pmichaud the correct answer is that PCT should be doing shallow cloning. 15:44
the _really_ correct answer is that Parrot should be doing shallow cloning. See lists.parrot.org/pipermail/parrot-d...03958.html
jnthn Right, agree fully on that. 15:45
15:45 shinobicl__ joined
jnthn I've whined about it a couple of times recently. :) 15:45
masak is there a bug report about it?
pmichaud I don't think it ever got promoted to a trac ticket, no. 15:46
masak then it can't be that important :P 15:49
pmichaud there was a parrot branch created for shallow cloning 15:50
irclog.perlgeek.de/parrot/2010-03-22#i_2135494 15:51
...but the branch never got merged. :(
jnthn Did the deprecation notice make it in, I wonder... 15:52
15:52 noganex left
pmichaud looks like "no". 15:53
15:53 JimmyZ joined
JimmyZ How can I define a sub dynamically like this? my $sub_name = 'foo'; sub $sub_name() { .... } ; 15:53
15:54 noganex joined
benabik Do all Parrot types deep clone? Or is it just hash? 15:55
pmichaud Just Hash that I know of. All of the others shallow clone.
masak JimmyZ: &::($sub_name) = sub { ... }
std: my $sub_name; &::($sub_name) = sub { ... }
p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
jnthn Where's that actually installing it? :) 15:56
Current package I guess.
masak that was my guess.
pmichaud I don't think there's a way to dynamically create 'my' subs.
(since that would involve dynamically modifying the lexpad)
masak oh!
good point.
jnthn Right, and we don't look anywhere other than the lexpad for subs 15:57
masak sub lookup is s'posed to be statically determinable.
JimmyZ rakudo: sub event (&method) { my $sub = &method.name; print ' ', &method.name; return &::($sub) = sub { ... }; }; event event event event sub hello() { };
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Indirect name lookups not yet implemented at line 22, near " = sub { ."␤»
JimmyZ NYI :(
masak JimmyZ: also, what pmichaud and jnthn said. 15:58
15:59 amster left
pmichaud afk for a bit 16:00
JimmyZ oh, I didn't see what pmichaud++ and jnthn++ said 16:02
JimmyZ sleeps 16:03
16:03 JimmyZ left 16:09 perlhack joined
ruz rakudo: <a b>.fooo 16:11
p6eval rakudo 922500: OUTPUT«Method 'fooo' not found for invocant of class 'Parcel'␤ in main program body at line 22:/tmp/5cuT9svCoJ␤»
16:13 tokuhirom left, perlhack left
masak perlhack! \o/ 16:13
oh shucks. :)
16:13 tokuhirom joined
masak tokuhirom: こんにちは 16:14
16:17 isBEKaml left 16:18 MayDaniel left, tokuhirom left 16:19 shinobicl__ left
pmichaud are parrot hashes defaulting to ordered again? 16:21
sorear good * #perl6
phenny sorear: 10:53Z <moritz> tell sorear that 'make test' dies with 'Unhandled Exception: No value for parameter @y in Test rxtest'
jnthn pmichaud: Don't recall seeing anything about that.
pmichaud nom: my %x; for 'a'..'az' { %x{$_} = 10.rand }; say %x.keys
p6eval nom: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az␤»
pmichaud nom: my %x; for 'a'..'bz' { %x{$_} = 10.rand }; say %x.keys
p6eval nom: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz␤» 16:22
jnthn They're certainly coming out again ordered.
Don't think I'd depend on it though :)
pmichaud I'm worried that others might start to do so.
I'm also curious why they're coming out ordered again.
jnthn Yeah
Same. 16:23
pmichaud rakudo: my %x; for 'a'...'bz' { %x{$_} = 10.rand }; say %x.keys
p6eval rakudo 922500: OUTPUT«abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybz␤»
16:26 MayDaniel joined
jnthn rakudo: my %x; for ('a'...'bz').pick(*) { %x{$_} = 10.rand }; say %x.keys 16:26
p6eval rakudo 922500: OUTPUT«aczdbbabrbhaobnbupamblntayahasalboatfgaibzsaquajanwbjavbpawbeobfbdmaaeagakybvbmiazaehrbckapbgbsabbqbtcbwlvbxafjaxbybaxbaubiadbkqar␤»
pmichaud well, that doesn't really tell us anything :-) 16:27
jnthn Well, it tells us that it doesn't sort the keys when iterating ;)
pmichaud okay, it tells us that :)
jnthn Which is a relief. :)
pmichaud nom: my %x; for 1..100 { %x{"key_$_"} = 1 }; say %x.keys 16:29
p6eval nom: OUTPUT«key_1 key_2 key_3 key_4 key_5 key_6 key_7 key_8 key_9 key_10 key_11 key_12 key_13 key_14 key_15 key_16 key_17 key_18 key_19 key_20 key_21 key_22 key_23 key_24 key_25 key_26 key_27 key_28 key_29 key_30 key_31 key_32 key_33 key_34 key_35 key_36 key_37 key_38 key_39 key_40 key_…
pmichaud nom: my %x; for 1..100 { %x{"$_"} = 1 }; say %x.keys
p6eval nom: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95…
masak I'm not worried so much about insertion-order per se. I'm worried about how that impacts performance. 16:34
pmichaud well, Parrot had ordered hashes by default for a long time
then it got changed in 2009, I think -- I'm wondering when it switched back. 16:35
they were unordered in rakudo-star-2010.07: gist.github.com/1130515 16:41
jnthn nom: say Parcel ~~ Iterable 16:44
p6eval nom: OUTPUT«Bool::False␤»
jnthn nom: say Parcel ~~ Positional
p6eval nom: OUTPUT«Bool::True␤»
jnthn nom: for <a b c> { .say }
p6eval nom: OUTPUT«a␤b␤c␤»
pmichaud "Iterable" is the class of things that interpolate in list context. 16:49
(non-flattening list context, that is.) 16:50
jnthn pmichaud: Ah, yes :)
dalek kudo/nom: d0f04e9 | jonathan++ | src/Perl6/ModuleLoader.pm:
Corrections and enhancements to GLOBAL handling on module usage.
17:02
kudo/nom: 5cb58be | jonathan++ | src/ (3 files):
Implement various basic cases of the handles trait. Gets us the first 33 tests of delegation.t.
tadzik hello again 17:08
17:09 fbass left
jnthn hi tadzik 17:09
17:12 thou joined 17:13 aindilis left, fbass joined
jnthn nom: say ?() 17:13
p6eval nom: OUTPUT«Bool::True␤»
jnthn pmichaud: Is the above correct?
17:13 aindilis joined
jnthn was fairly sure an empty Parcel would be false. 17:14
17:14 amster joined 17:15 thundergnat joined
jnthn S02: 17:16
C<Nil.defined> returns
C<False> (whereas C<().defined> returns C<True>). C<Nil.so> also
returns C<False>.
thundergnat Hi #perl6
jnthn I'm not sure wether to read that as "also returns C<Flase> like ().so" or not.
dalek ecza: 366d65b | sorear++ | test.pl:
Update builtin tests to latest gist/Nil spec
sorear hello thundergnat.
thundergnat Are autogenerated attribute setter methods always slurpy in rakudo? 17:17
rakudo: class B { has $.w is rw; has $.h is rw; }; my $b = B.new; ($b.w, $b.h) = '100 200'.split(' '); .say for $b.w, $b.h, $b.w.WHAT; 17:18
p6eval rakudo 922500: OUTPUT«100 200␤Any()␤Seq()␤»
thundergnat I want to split into 2 attributes but the first always slups up all the parameters.
*slurps
jnthn nom: class B { has $.w is rw; has $.h is rw; }; my $b = B.new; ($b.w, $b.h) = '100 200'.split(' '); .say for $b.w, $b.h, $b.w.WHAT; # curius... 17:20
p6eval nom: OUTPUT«100␤200␤Str()␤»
jnthn Hmm, behaves the way you want it in the nom dev branch.
Which I think is correct also.
thundergnat That's good news.
jnthn So, Rakudo bug.
nom: class B { has @.w is rw; has $.h is rw; }; my $b = B.new; ($b.w, $b.h) = '100 200'.split(' '); .say for $b.w, $b.h, $b.w.WHAT; # guess this would slurp... 17:21
p6eval nom: OUTPUT«100␤200␤Nil␤Array()␤»
jnthn pmichaud++ # improved list assignment in nom 17:22
thundergnat pmichaud++ indeed
17:22 Chillance joined 17:24 fbass left
thundergnat niecza: class B { has $.w is rw; has $.h is rw; }; my $b = B.new; ($b.w, $b.h) = '100 200'.split(' '); .say for $b.w, $b.h, $b.w.WHAT; #curious 17:30
p6eval niecza v8-45-g366d65b: OUTPUT«100␤200␤Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at CORE.C216_Str_2Esay (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filename unk…
thundergnat sorear++ 17:31
sorear jnthn: don't tell me you're seriously considering moving . to the front of the search path. 17:49
jnthn heh :) 17:52
No, I'm seriously leaving such issues for @other. :) 17:53
sorear: Remember that I've got about zero background on Unix/Linux-y systems, and that the current directory is pretty much top of the pecking order when doing e.g. DLL searches on Windows. 17:55
sorear: So it's completely natural to me that it'd be searched first. I have this vague awareness that there's other ways to look at the issue. :) 17:56
sorear jnthn: I thought that the top of the Windows pecking order was dirname($*EXECUTABLE_FILE) 17:57
jnthn Yes. Then cwd. Then the path. 17:58
sorear hmm, how are system dlls found?
jnthn C:\Windows\System32 is in the path I guess :)
sorear I don't STR C:\Windows\System32 being in %PATH% last time I was doing serious windows prograsmming
-s 17:59
jnthn oh, no
sorear wonders how much ey dates eirself with that path
jnthn It actully goes to the registry for the Windows install directory too
(Before searching the path)
heh, so it tries just about everything it could before looking through the PATH environment variable. :) 18:00
Seems there's also a safe mode and unsafe mode with puts the CWD after and before the system directories respectively. :) 18:02
sorear anyways, if I have an unrelated file in . named CORE.setting (say, niecza's setting), I'd kind of like it if Rakudo Perl 6 continued to work
I only spent 14 months fighting to get Parrot to work in directories with unrelated Regex.pbc files... 18:03
jnthn Well, . hasn't been moved to the front of the path, and almost certainly won't be.
pmichaud (and it's still marked as "we need to remove this") 18:04
18:04 MayDaniel left
sorear *phew* 18:04
I was worried that you thought it was a good idea :D 18:05
18:05 ggoebel left 18:07 isBEKaml joined
jnthn hunger strikes...store & 18:09
18:10 SAA22WV joined
dalek kudo/nom: 795f6a6 | pmichaud++ | src/core/metaops.pm:
Add hyper metaops for hash arguments.
18:13
18:13 ggoebel joined
dalek atures: 929c012 | pmichaud++ | features.json:
Nom now supports hyper metaops.
18:13
moritz evalbot rebuild nom 18:15
p6eval OK (started asynchronously)
[Coke] is looking at trying to merge kboga's spectest data PR. if I try to grab the .patch file from github, the email address looks foobar. 18:17
kboga hmm 18:18
[Coke] From: kboga <kristof@PCHOME.(none)> 18:19
kboga oh, looks like I didn't add that info there or something 18:20
18:20 ggoebel left
kboga bad? 18:21
[Coke] I imagine it's not going to like that as an author email. We'll see.
jnthn pmichaud: If you're in features, can give us + on nested siggies too :) 18:22
dalek atures: 7cf058c | pmichaud++ | features.json:
nom has nested siggies (jnthn++)
18:23
[Coke] kboga: what's your actual email addy for commits? 18:24
(I can update this one by hand, and you can fix it on github)
18:25 ggoebel joined
pmichaud anyone know why we have +- on "Introspection" for nom? 18:25
and +- for Whatever-currying?
benabik nom: (* + 1).WHAT.say 18:26
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn pmichaud: On introspection, I've still 3 tests to look at in S12-introspection
pmichaud: .WALK is easy. .can is blocked on ?() being True. 18:27
The roles one I think I just need to play with the API a bit. :)
So, legit that we're +- but we can be + with a small effort :)
pmichaud ?() being true? 18:28
jnthn nom: say ?()
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn rakudo: say ?()
p6eval rakudo 922500: OUTPUT«Bool::False␤»
jnthn pmichaud: nom says Bool::True there.
pmichaud: And I can't find a clear answer either way in the spec.
pmichaud it almost certainly should be false.
jnthn My intuition tells me it should be false. :)
ah, OK
I guessed it should be 18:29
If you're almost certain too that's good enough to fix it :)
pmichaud need a Parcel.Bool
18:29 ggoebel left
jnthn k 18:30
pmichaud working on it
jnthn ah, thanks 18:31
jnthn debugging while his delegation thingy almost but not quite works.
benabik jnthn: You seem to have delegated to pmichaud just fine. :-D
[Coke] jnthn: glad the makefile fix is working. it bugged me a few weeks ago but I don't spend enough time on windows/rakudo for it to bother me, usually. 18:32
jnthn [Coke]: It's bugged me for quite a while and I tried a few things. 18:34
benabik: ;-)
18:35 ggoebel joined
masak slightly off-topic: the company that jnthn and I work for is hiring. if you like hanging out with us, and if you know Perl, privmsg or email me or jnthn. :) 18:37
[Coke] workfromhome?
masak strong preference that you move to southern Sweden. 18:38
jnthn Don't worry, it's the bit without the polar bears.
masak jnthn is right.
haven't seen one polar bear down here.
benabik Just normal bears?
tadzik grizzlies 18:39
dalek ast: 8d1595b | pmichaud++ | S02-builtin_data_types/parcel.t:
Add tests for Parcel.Bool.
kudo/nom: 7d55a9f | pmichaud++ | src/core/Parcel.pm:
?() should return False (jnthn++).
jnthn \o/ 18:40
18:40 ggoebel left, mj41 left
jnthn .can has 18:40
sorear masak: if only.. 18:47
masak sorear: oh, that would be AWESOME.
"They work on Perl 6. For some reason, each of them is building his own compiler, too!" 18:49
jnthn oh heh, then we'd have Niecza, Rakudo AND Yapsi developers :P 18:50
masak what I said.
jnthn no, what *she*...oh wait
masak oh wait, this isn't privmsg...? :P
jnthn :) 18:51
No, I knew it wasn't this time :)
masak right.
sorear that expression tickles my sexism gag reflex
jnthn That's why it wasn't full of Swedish :P
sorear: It's a meme. They're all kinda silly :)
masak I agree about the risk, though.
if nothing else, it's a meme mostly for hetero males in a certain age-band. 18:52
jnthn Wow, can't even *refer* to a meme jokingly. :/
masak jnthn: well, when the referring takes the form of use, I guess it is a bit of a thin line. 18:53
jnthn: it's like when people just quote stuff on Twitter, without saying whether they agree or not. agreement is usually presupposed. sometimes with LTA consequences.
then again, the part of me that thinks sorear is overreacting thinks that the TWSS meme could well be used in a very non-sexist context, by someone relatively aware of such issues. 18:55
the problem is more something like the fact that there's no corresponding TWHS meme.
the desire to put innuendo into innocent comments is probably age-old. the "...in bed" meme rides on that same force. 18:57
tadzik hmm
tadzik thinks about documenting subroutine parameters
jnthn tadzik: Should be do-able. They get traits applied. 18:58
benabik sub foo( $bar is why('explanation ) # ? 18:59
18:59 ron__ joined
pmichaud jnthn: guess how many lines of code are in the first two subs of CORE.setting.pir :-) :-) 18:59
benabik But with the closing quote and karen, obviously.
tadzik oh, so I'll just set %PARAM_INFO in method parameter(), even though the parameter object is constructed elsewhere. Easy peasy
tadzik guesses 0 or something ;) 19:00
[Coke] all the Merging\ GLOBAL\ symbols\ failed errors have changed.
benabik 42000
jnthn pmichaud: Probably LOADS in the second.
pmichaud 149,659.
jnthn pmichaud: Given it's basically the serialization of the entire setting.
19:01 ggoebel joined
jnthn pmichaud: That's...sizable. 19:01
pmichaud the second sub has 5636 .const declarations.
jnthn Refers to every PAST block in the file, yes. 19:02
kboga Why do some multi method ACCEPTS's signatures have a Mu type constraint for their topic in nom? (I only see Any in the spec feather.perl6.nl/syn/S03.html#Smart_matching)
Well I understand the Mu:U: Mu $topic one (type checking), but others? =/ 19:03
pmichaud kboga: Int.ACCEPTS(Mu)
aka Mu ~~ Int
kboga yea, that I do understand :) 19:04
pmichaud some of the others are similar.
kboga but all other cases
hmm
pmichaud I suspect many can/should be Any.
But we still need to figure out how to make &infix:<~~> autothread.
19:04 wolfman2000 joined
kboga oh ic 19:04
pmichaud 5636 .const declarations in one sub == 5636 register allocations == "Doctor, it always hurts when I use imcc." 19:05
gone for a while -- soccer game
kboga So some should be Any, thanks for the clarification pmichaud++
ron__ nom: my $m = '34' ~~ /<digit>+|<alpha>+/; say $m<alpha>.perl; say Nil.perl; my $x = $m<alpha> // 4; say 'x is ', $x 19:08
p6eval nom: OUTPUT«()␤Nil␤x is ␤»
ron__ Think x isn't right there ...
Shouldn't $m<alpha> come back with something undefined like Nil? Is it too early to raise nom bugs here? 19:11
[Coke] kboga: will apply your changes shortly, have some on my own on top of that, will push them all after next run. 19:12
benabik ron__: FWIW, I'd expect $m<alpha> to be undef as well.
kboga cool, thanks [Coke]
19:13 amster left, soh_cah_toa joined 19:18 whiteknight joined
ron__ thx benabik 19:18
benabik nom: say Nil.defined 19:20
p6eval nom: OUTPUT«Bool::False␤»
benabik nom: say ()
p6eval nom: OUTPUT«␤»
benabik nom: say ().per
p6eval nom: OUTPUT«Method 'per' not found for invocant of class 'Parcel'␤current instr.: '_block1002' pc 85 ((file unknown):35909303) (/tmp/8KCtdgI9Jf:1)␤»
benabik nom: say ().perl
p6eval nom: OUTPUT«()␤»
[Coke] nom: ().perl.gist.perl.gist.perl.say 19:22
p6eval nom: OUTPUT«"\"()\""␤»
19:24 envi left 19:32 birdwindupbird left
dalek kudo/nom: b999db7 | kboga++ | t/spectest.data:
enable passing testfiles: S11-modules/lexical.t, integration/advent2009-day12.t and track some failure messages
19:36
kudo/nom: 4b0bc18 | kboga++ | t/spectest.data:
enable passing test: S02-builtin_data_types/instants-and-durations.t
kudo/nom: 4b66f8a | Coke++ | t/spectest.data:
track failure modes & run fudged test.
moritz moritz.faui2k3.org/tmp/0001-allow-S...Str..patch this is my patch for Str.match(Str) 19:37
sadly it causes lots of regressions
I'll need to track down why it causes failures, but if anybody beats me to it, I'd appreciate it :-) 19:38
jnthn on no not instants-and-durations.t again!
(it reliably hung here before) 19:39
(maybe something changed though... :))
19:40 tyatpi__ joined
jnthn wow 19:40
loads of "Nominal type check failed for parameter '$input'; expected Str but got Hash instead"
sorear moritz: the one loose end I have is, what should $_ be in CONTROL? TimToady initially suggested it should be Int, when I said I also needed a CallFrame and a Str hey said a tuple would be fine
benabik sorear: Int but CallFrame but Str? 19:41
jnthn ouch!
19:41 Mowah_ joined
jnthn By that point an object woulda been just as cheap :) 19:42
Or cheaper :)
Well, Int is an object :)
sorear jnthn: by what point, having a tuple, or benabik's joke?
jnthn sorear: benabik's joke :) 19:43
I...guess it was one ;)
Though it would in theory work with current S14 ;)
moritz sorear: what could you do with the $_ in a CONTROL block? rethrow?
[Coke] jnthn: yah, those all use to be issues with GLOBAL mumble.
jnthn [Coke]: Yeah. They all load Test::Util 19:44
sorear moritz: smartmatch it against stuff
jnthn [Coke]: And used to have trouble with that. Now they have trouble when calling something in there.
sorear rethrowing in CATCH is a bad idea
moritz why?
(and I thought we played about CONTROL, not CATCH)
s/played/talked/ 19:45
moritz distracted
sorear niecza: sub f() { die "moo"; CATCH { die $_ } }; { f(); CATCH { default { say $_ } } }; say "alive"
p6eval niecza v8-45-g366d65b: OUTPUT«moo␤moo␤alive␤»
jnthn Why does it moo twice?
sorear if a CATCH handler throws an exception, the current exception is treated as "unhandled" and the new exception is pushed on the end
tadzik double bacon!
jnthn tadzik: no, beef ;) 19:46
sorear I suspect niecza is the first to handle multiple simultaneously pending exceptions
moritz maybe there should be a separate .rethrow
sorear moritz: that's "fall of the end of the CATCH", also "proceed"
19:47 Tedd1^ joined 19:48 ron__ left 19:49 Tedd1 left, Chillance left 19:50 Chillance joined
moritz nom: say Match.new(orig => 'abcdefg', from => 0, to => 3) 19:50
p6eval nom: OUTPUT«␤»
moritz why oh why does that print the empty string? 19:51
jnthn nom: Match.^attrbibutes(:local)>>.has-accessor>>.say 19:52
p6eval nom: OUTPUT«Method 'attrbibutes' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤current instr.: 'dispatch:<.^>' pc 691465 (src/gen/CORE.setting.pir:176061) (src/gen/CORE.setting:589)␤»
jnthn nom: Match.^attributes(:local)>>.has-accessor>>.say
p6eval nom: OUTPUT«Bool::True␤Bool::True␤Bool::True␤Bool::True␤»
jnthn hm
Not because of that then.
moritz nope
nom: say Match.new(orig => 'abcdefg', from => 0, to => 3).orig
p6eval nom: OUTPUT«abcdefg␤» 19:53
moritz nom: say Match.new(orig => 'abcdefg', from => 0, to => 3).Bool
p6eval nom: OUTPUT«Bool::True␤»
jnthn nom: say Match.new(orig => 'abcdefg', from => 0, to => 3).Str
p6eval nom: OUTPUT«abc␤»
jnthn nom: say Match.new(orig => 'abcdefg', from => 0, to => 3).gist
p6eval nom: OUTPUT«␤»
jnthn There you go.
Note that Match ~~ Capture, and Capture defines a .gist
moritz nom: class A { method Str() { 'foo' } }; say A
p6eval nom: OUTPUT«A()␤» 19:54
moritz nom: class A { method Str() { 'foo' } }; say A.new
p6eval nom: OUTPUT«foo␤»
moritz oh, I think I found my problem 19:56
19:56 fbass joined
moritz I was calling a public method as self!foo 19:57
19:57 rdesfo left
moritz nom: class A { method b() { 1 }; method doit() { self!b } }; say A.new.doit 19:57
p6eval nom: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Mu'␤current instr.: '_block3723' pc 58682 (src/gen/perl6-metamodel.pir:19376) (src/gen/Metamodel.pm:2567)␤»
moritz jnthn: that's a LTA error
jnthn It is indeed. 19:58
tadzik huh 20:01
Method 'pos' not found for invocant of class 'ResizablePMCArray'
current instr.: 'nqp;Perl6;Grammar;package_def'
in line: <.attach_docs>
what would that be?
moritz a quantified capture
tadzik I thought that wouldn't capture
moritz which is accessed as though it wasn't quantified 20:02
tadzik should I use <.docs()> if it's a method, not a token?
jnthn I think <.foo> doesn't capture?
moritz tadzik: something else must be wrong then 20:03
tadzik hmm
dalek kudo/nom: 703b1ef | jonathan++ | src/Perl6/Metamodel/ (3 files):
Add a way for adding dispatch fallbacks to a class, for use in implementing handles.
20:09
kudo/nom: 705ae4b | jonathan++ | src/core/traits.pm:
Implement package RHS case of handles.
jnthn That's up to 43 of delegation.t
pmichaud++ for fixing ?() so .can works \o/
jnthn tries for the rest of the tests 20:10
20:16 timbunce joined
dalek kudo/nom: 9ce5cf1 | jonathan++ | src/core/traits.pm:
Match case of delegation.
20:17
kudo/nom: 69b45a2 | jonathan++ | src/core/traits.pm:
Should not enforce ro-ness on things we delegate to.
20:25
20:25 mj41 joined
moritz $ ./perl6 -e 'say "foo".subst("o", "a", :g)' 20:26
faa
dalek kudo/nom: b6c6e5b | moritz++ | src/core/ (2 files):
allow Str.match(Str), which in turn also restores Str.subst(Str)
kudo/nom: 516a34d | moritz++ | src/core/Match.pm:
add Match.gist
tadzik moritz++! 20:27
you may want to see if ufo works now
after you add MAIN() at the end of course
jnthn \o/ 20:28
moritz++
tadzik Could not find Perl6::Metamodel in any of: /home/tadzik/.perl6/lib, /home/tadzik/.perl6/lib, /home/tadzik/src/parrot/install/parrot/lib/3.6.0-devel/languages/perl6/lib, .
uhh
jnthn tadzik: Old installed version maybe?
tadzik oh, yes
jnthn I'm sure I fixed that one up earlier today. 20:29
tadzik Could not locate Perl 6 code object
current instr.: '_block6135' pc 633560 (src/gen/CORE.setting.pir:0) (src/gen/CORE.setting:152)
now wth is this :/
20:29 soh_cah_toa_ joined
jnthn The other error message that was cleared up by the fix I did earlier. 20:29
masak so, where do we stand on the whole 'merge nom' thing? 20:30
jnthn hmm...this test is dubious. 20:31
class TypePseudoHash { has %!data handles Associative }
my $h = TypePseudoHash.new;
$h<a> = 'c';
That handles Associative is a fallback there.
20:31 soh_cah_toa left
jnthn But we don't hit it because there's a default postcircumfix:<{ }> that we hit in Any 20:32
Which then wants .at_key, which we don't delegate because it's not in Associative.
tadzik jnthn: any ideas on gist.github.com/1130762 ?
moritz jnthn: I (and other test authors) kinda assume that Associative and Positional are responsible for access by name/index 20:33
jnthn moritz: Yeah, but I think it's the wrong thing to delegate here.
moritz: handles EnumMap or handles Hash would work out just fine though.
tadzik do only suspiscious thing I did is 'use Perl6::Pod' in Grammar.pm
flussence masak: if it can run at least some of Text-Tabs-Wrap's t/* then I'm OK with that happening
jnthn tadzik: Yeah, but didn't we do that for ages? 20:34
tadzik jnthn: no, Actions.pm was using that
20:34 soh_cah_toa_ is now known as soh_cah_toa
flussence (going to see if it does now) 20:34
jnthn masak: See the punchcard in nommap
tadzik I only use serialize_aos though, I could remove it
masak jnthn: ok.
jnthn tadzik: I'm not sure that's the issue.
tadzik: I suspect more a lingering installed version or soemthing.
moritz jnthn: I'm fine with changing the test
tadzik gah
hmm, fixing the makefile seems to have helped 20:35
moritz jnthn: though in the long run I'd like some spec clarification about the scope of Positional and Associative
masak jnthn: um... where's nommap? :)
20:35 molaf left
jnthn masak: NOMMAP.markdown in root of the nom branch :) 20:36
masak oh!
jnthn :)
masak found it.
jnthn moritz: yay. And with that, we pass all of delegation.t :) 20:37
moritz \o/ 20:38
20:38 molaf joined
moritz I think we never did before, did we? 20:38
dalek ast: 8f9fd27 | jonathan++ | S12-attributes/delegation.t:
Since we find a postcircumfix:<{ }> in Any, we never delegate to any method in Any; instead, we really want to delegate to all those in a full-blown Hash implementation if we're trying to act like a hash.
jnthn It's not fudged, so I presume we did in master.
tadzik what should method foo() in Grammar.pm return, not to cause parsefails? 20:39
20:39 kaare_ left
dalek kudo/nom: 4c1dbaf | masak++ | NOMMAP.markdown:
[NOMMAP.markdown] fixed faulty markdown
20:39
tadzik ending it with 1; causes the Method 'pos' not found for invocant of class 'Integer'
20:40 thundergnat left
jnthn masak: eww, we have to backslash those? 20:40
tadzik returning 0; otoh, causes parsefails
jnthn tadzik: Some kind of match object I guess... 20:41
tadzik hmm
jnthn tadzik: You could always make it not a method but instead be
token foo() {
{ ...block with code in... }
tadzik yeah
jnthn <?>
}
The <?> means "yeah, this is success" 20:42
masak jnthn: stars are metacharacters in Markdown.
jnthn: vim was helpful enough to color-code to make that abundantly clear. :/
jnthn masak: Ah, I thought they only played that role at the start of the line. 20:43
masak that's for lists.
they also do italics and bold.
jnthn oh
20:43 timbunce left
jnthn yeah 20:43
d'oh
moritz Method 'trim-trailing' not found for invocant of class 'Str'
masak jnthn: seems it might not be necessary to backwhack one or two stars in isolation, but I figgered consistency might be good.
moritz that's how ufo fails now 20:44
jnthn Ah, a NYI.
pmichaud back, briefly
jnthn pmichaud: One more punchcard item down :) 20:45
pmichaud 19:08 <ron__> nom: my $m = '34' ~~ /<digit>+|<alpha>+/; say $m<alpha>.perl; say Nil.perl; my $x = $m<alpha> // 4; say 'x is ', $x
dalek kudo/nom: 7cf8457 | jonathan++ | t/spectest.data:
We now pass delegation.t.
kudo/nom: ea9929d | jonathan++ | NOMMAP.markdown:
Remove delegation from punchcard.
pmichaud since <alpha> is quantified, it's guaranteed to be an Array (possibly empty)
tadzik yay, I got Declarator blocks in the right order 20:48
20:49 timbunce joined
jnthn tadzik: nice :) 20:50
20:50 ggoebel left
pmichaud can I mark "Delegation" as being complete in features.json? 20:51
jnthn pmichaud: Yes, we pass all that master does.
And the implementation is cuter. :)
pmichaud master is currently marked with +-
(with no reason given why it's +- versus +) 20:52
tadzik aagh. How do I make vim not jump to the beginning of the line when I type '#', am I the only one annoyed?
dalek atures: 3e54256 | pmichaud++ | features.json:
Nom now handles delegation. jnthn++
20:53
jnthn pmichaud: Ah well. nom can be green, then it looks awesomer ;)
pmichaud we can change it to +- when we know why. :) 20:54
tadzik nom: class A { method b { sub nested {} } }
p6eval nom: OUTPUT«Rebuild in progress␤»
tadzik sigh
error:imcc:syntax error, unexpected '\n', says locally
masak never has imcc been so displeased. 20:55
jnthn hm
tadzik for all the nested subs actually
sub a { sub b {} } fails too
jnthn tadzik: What happens if you put ; 1 after the nested sub? 20:56
tadzik works then
funny :)
jnthn can guess...
tadzik okay, so the order is fine even for nested subs!
now I only need to attach .WHEREFORE appropriately
sip of cake 20:57
flussence tadzik: (vim) ...I have no idea. I distinctly remember adding a line to fix exactly that but it's not in my vimrc. (still trying to figure this one out)
jnthn tadzik: you...sip cake? What's a skill :) 20:58
20:59 jaldhar left
pmichaud nom: my $m = '34' ~~ /<digit>|<alpha>/; say $m<alpha>.perl 21:00
p6eval nom: OUTPUT«Any␤»
flussence tadzik: have you installed the vim-perl stuff from github? I think something in there fixes that behaviour for me. 21:01
21:04 SHODAN left
tadzik flussence: I think something there causes that behaviour :) 21:07
jnthn: that depends on a cake :) 21:08
I think I may be able to make such :P
21:09 mj41 left
dalek kudo/nom: f7e3377 | pmichaud++ | NOMMAP.markdown:
Remove hyperoperators from the punch list.
21:12
kudo/nom: f27ddd0 | pmichaud++ | NOMMAP.markdown:
Add "augment" to the punch list.
21:13
jnthn pmichaud: Really? 21:14
pmichaud: How much of the module ecosystem uses augment, ooc?
masak is pretty sure he does, somewhere 21:15
jnthn hm
pmichaud I don't know off hand. But I know it's a feature that got used a fair bit.
whether it made it in modules... not sure.
jnthn Yeah
pmichaud it'd definitely be seen as a regression from master, I think.
jnthn I'm not actually sure how to handle it.
OK
jnthn checks S12 for hints
pmichaud Note that I put it in as a "2" (ought to have) and not a "1" (must have)
jnthn ok 21:16
pmichaud but it definitely falls somewhere between "1" and "2", and I suspect many people will be sad to see it missing.
masak agreed :(
pmichaud perl6advent.wordpress.com/2009/12/2...erloading/ # uses augment 21:17
perl6advent.wordpress.com/2009/12/1...g-snowmen/ # uses augment
afk, more errands
jnthn "It is also possible to extend classes via the augment declarator, but that is considered somewhat antisocial and should not be used for forward declarations." :)
How many of our uses are forward decls, I wonder. :)
moritz nom: say nqp::p6bool(pir::is_cclass__IISI(pir::const::CCLASS_WHITESPACE, '1 2', 2) 21:20
p6eval nom: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
moritz nom: say nqp::p6bool(pir::is_cclass__IISI(pir::const::CCLASS_WHITESPACE, '1 2', 2))
p6eval nom: OUTPUT«Class '!macro_const' not found␤current instr.: '_block1002' pc 69 ((file unknown):140) (/tmp/s0lv19WDF8:1)␤»
moritz what's the problem here?
tadzik $docee.set_docs($doc);
$doc.set_docee($docee); 21:21
awesome :P
jnthn :)
moritz doc, it hurts!
tadzik docee is a beatiful word
it just suits, everywhere :)
21:22 fbass left
masak looks wrong phonetically, though. 21:22
looks like the 'c' should sound like an 's'.
tadzik shushee
masak :P
tadzik "dokii"
masak okii
dalek kudo/nom: b0f733e | moritz++ | src/core/Str.pm:
Str.trim-leading - more efficient than in master
jnthn masak: Does it? 21:23
masak jnthn: it's not a hard-and-fast rule, but yes. 21:24
'docent', for example.
jnthn troo but...stop spoiling the fun :P
moritz -> sleep 21:25
masak jnthn: sorry :P
jnthn moritz: sleep well :) 21:26
tadzik moritz: g'night 21:27
get_string() not implemented in class 'Str' 21:29
oh the irony :P
masak moritz: dream of a module ecosystem that works under nom.
21:29 moritz left 21:36 tyatpi__ left 21:37 jaldhar joined 21:38 rdesfo joined 21:41 Mowah_ left, Mowah left, _jaldhar joined, jaldhar left 21:44 Psyche^ joined 21:46 meteorjay left, _jaldhar left 21:47 Patterner left, Psyche^ is now known as Patterner 21:48 _jaldhar joined 21:53 jaldhar_ joined, _jaldhar left 21:59 Moukeddar joined
Moukeddar Hello Perlers o/ 21:59
tadzik hello Moukeddar!
Moukeddar how are you doing Gentlemen ? 22:00
tadzik not bad. Tracking some ugly bugs
Moukeddar arghhh, nasty work :p 22:01
tadzik yep
especially when backtrace looks wrongish :>
jnthn tadzik: The get_string one? 22:02
tadzik jnthn: yep
jnthn bt? 22:03
tadzik it's somewhere in SymbolTable.pm
say("$type,$primitive,"~pir::join(',', @value)~$namedkey); fails for @value = ['']
even say(@value[0])
maybe it's not really ''
jnthn tadzik: Things can appear to be in SymbolTable if you're hitting a path that needs to compile code on-demand 22:04
tadzik: Are you getting it while compiling the setting?
tadzik jnthn: yes
22:05 jedai joined
tadzik but how on earth Perl6::Pod::serialize_aos is supposed to be affected, I don't know 22:05
jnthn tadzik: Where'd you put the say? 22:06
tadzik: Might it get called before we're done compiling class Str in the setting? 22:07
22:07 PacoLinux joined
tadzik that's not supposed to be a Str anyway 22:07
it's a call from attach_docs
22:08 shinobicl__ joined, PacoLinux left
jnthn tadzik: Maybe I could see the patch and/or backtrace 22:08
22:08 PacoLinux joined
tadzik jnthn: I want to make sure it's not my fault 22:09
22:09 tyatpi joined
jnthn tadzik: Well, even if it is, I may be able to help you see where :) 22:09
tadzik trying one more thing... 22:11
ETOOMANYNAMES. $*DECLARATOR_DOCS, $*DOC, $*DOCEE... 22:12
okay, seems that it works :) 22:13
well, doesn't break :)
I'll know if it works in like 8 minutes 22:14
bbkr1 i'm stuck at unicode in BSON. if I have string "€" (euro sign) what should I do to unpack it into Buf([0xe2, 0x82, 0xac ])? 22:17
22:17 rdesfo left
sorear uhh 22:18
bbkr1 pack* into buff
sorear .u €
phenny U+20AC EURO SIGN (€)
sorear 20AC really?
they couldn't have chosen a more reasonable number?
you want .encode("utf-8") or so
bbkr1 20AC, wiki confirms 22:19
.encode works like charm, thanks 22:20
masak 'night, #perl6. 22:21
22:21 masak left
tadzik he always leaves to fast to say 'gnight' 22:21
jnthn has an augment that, er, sometimes works :/ 22:25
tadzik :) 22:26
I could maybe make a pun if I knew what 'augment' means 22:27
22:27 Moukeddar left
jnthn oh, I worked it out 22:29
dalek ast: 27617a5 | jonathan++ | S02-builtin_data_types/lists.t:
Fix a couple of syntax fails in a recently added test.
22:38
jnthn pmichaud: S02-builtin_data_types/list.t looks close to passing; may be worth a quick review, if you have a moment for it. 22:44
22:48 shinobicl__ left, im2ee left
jnthn pmichaud: Seems I've busted advent2009-day11.t when adding the delegation stuff, somehow missed it. 22:55
22:55 fbass joined 22:56 tokuhirom joined
dalek kudo/nom: f279a51 | jonathan++ | src/Perl6/Grammar.pm:
First cut of augment support. Seems to work for augmenting trivial classes, but any of the built-in ones seem to have issues post-augment. Also, this will need a re-visit when we get real serialization.
23:00
kudo/nom: e15779c | jonathan++ | src/Perl6/Metamodel/MultiMethodContainer.pm:
Clear the list of multi methods to incorporate once we've done so, otherwise we'll hit problems if we come to augment.
kudo/nom: 113da42 | jonathan++ | t/spectest.data:
Three more test files passing.
kudo/nom: c7b6534 | jonathan++ | NOMMAP.markdown:
Implemented augment; remove from punch card list.
23:01 PacoLinux left
tadzik exciting times 23:01
jnthn :) 23:02
23:02 Moukeddar joined 23:04 fbass left, whiteknight left 23:06 lmarcetic joined 23:07 PacoLinux joined 23:08 lmarcetic left, Moukeddar left 23:10 timbunce left, drbean joined 23:11 Moukeddar joined
tadzik jnthn: I think Meta-operators and Missing object model bits can be removed from NOMMAP 23:17
okay, my patch is non-deterministic and features random segfaults :/ 23:18
23:19 Moukeddar left
jnthn congrats! 23:21
23:22 wamba left
tadzik jnthn: want to take a look? 23:22
23:22 molaf_ joined
dalek ast: d8050f5 | jonathan++ | packages/Test/Util.pm:
Get Test::Util to export a proto rather than dubiously exporting each of the multi individual candidates. This makes it, and tests that use it, usable again.
23:23
tadzik jnthn: see gist.github.com/1130921 test file in a comment 23:24
jnthn tadzik: sure
tadzik the debug output says it documents a 'Sub' all the time, but the for loop says "not a SixModelObject" in the third one 23:25
if you remove the for and run with --doc, you can see that it ends up being a CallContext
if you just run with --doc, it segfaults
say, aren't you intrigued? :)
23:26 molaf left
jnthn ouch 23:27
Generally, objects changing under you indicates GC marking issue. 23:28
Got a gdb bt for the segfault?
tadzik can get one, yep
jnthn May or may not help. :) 23:29
tadzik it didn't. It didn't segfault under gdb
now it doesn't segfault at all 23:30
jnthn :/
tadzik okay, got it
...no
doesn't segfault under gdb
jnthn :( 23:32
Heisgenbug.
23:32 baest left 23:33 ab5tract joined
tadzik can you reproduce it? 23:33
jnthn I'd have to apply the patch, and I've got a bunch of local diff/test here. 23:34
Just checked one thing but it looked fine...
oh, hmm, I wonder... 23:35
tadzik: It's a long shot but gist.github.com/1130934 applied to nqp could feasibly help 23:36
23:36 ab5tract left
tadzik checks out 23:36
jnthn It probably needs doing anyway 23:37
Though your mixins have attrs so I'd be surprised if this was it
23:37 baest joined
dalek ast: bb0d7a9 | jonathan++ | S12-class/extending-arrays.t:
An unfudge for Rakudo.
23:44
tadzik jnthn: well, it fixed almost everything :0 23:52
:)
some of the .WHEREFOREs still appear to be a Continuation rather than a Sub 23:53
23:53 PacoLinux left
tadzik even though the compile-time output says it's a Sub 23:53
23:53 PacoLinux joined
jnthn wait, what 23:53
How can that even happen? 23:54
tadzik why, I'm wondering for like half an hour now
jnthn You're not somehow exposing the Parrot sub rather than the code object?
tadzik no way 23:55
jnthn ok
Then it sounds like at most the patch moved the bug rather than fixed it.
tadzik I'll show you something
jnthn Does running it under Parrot (e.g. run the Perl 6 PBC) and giving -G to Parrot help?
tadzik hold on 23:56
jnthn: see gist.github.com/1130952
I'll check
jnthn: yes, it fixes that 23:57
fixes everything
a GC bug, yeah?
jnthn Yes. 23:59
Well, mark bug at lesat.