»ö« 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«12345678910» | ||
benabik | I pay more attention to P6 the language than any implementation... | ||
sorear | pugs: for 1..10 { say $_; LAST { say 5 } } | ||
p6eval | pugs: OUTPUT«123456789105» | ||
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«BeforeHi!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 1Unhandled 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«AB» | ||
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«AB» | ||
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«AB» | ||
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 1current 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 1current 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 1current 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 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«abc» | ||
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 200Any()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«100200Str()» | ||
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«100200NilArray()» | ||
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«100200Unhandled 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«()Nilx 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«moomooalive» | ||
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::TrueBool::TrueBool::TrueBool::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 1current 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 foundcurrent 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. |