Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-03-11

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 masak just posted my method PRE/POST rant to p6l.
00:07 masak comments are very welcome.
00:18 masak 'night, #perl6
00:19 tadzik 'night
00:22 itz joined #perl6
00:27 itz joined #perl6
00:32 itz joined #perl6
00:32 facefox joined #perl6
01:12 lue nom: my $str = "/*test*/hello"; $str.subst(/"/*" <-before "*/"> "*/"/,""); say $str;
01:12 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 1, near "\"*/\"> \"*/\""␤»
01:12 lue Am I doing something wrong or is that a bug?
01:16 sorear it's spelled <!before... >
01:17 sorear but I think you actually want '/*' .*? '*/'
01:17 sorear rx
01:17 sorear rx|'/*' ... | to make it easier to read
01:24 lue Thank you.
01:34 colomon macro D1 merged?
01:34 phenny colomon: 10 Mar 08:05Z <[Coke]> tell colomon about feather.perl6.nl/~coke/sin.diff
02:40 thou joined #perl6
02:42 PacoAir joined #perl6
02:43 lumi__ joined #perl6
03:10 orafu joined #perl6
04:05 leprevost joined #perl6
04:20 araujo joined #perl6
04:20 plobsing joined #perl6
04:32 mucker joined #perl6
05:27 birdwindupbird joined #perl6
06:01 localhost joined #perl6
06:35 moritz good morning
06:42 sorear good moritz
06:59 NamelessTee joined #perl6
07:16 GlitchMr joined #perl6
07:43 kaare_ joined #perl6
07:47 kaare__ joined #perl6
08:00 doy joined #perl6
09:19 timotimo joined #perl6
09:45 bacek joined #perl6
09:46 pmurias joined #perl6
09:47 am0c joined #perl6
09:57 pmurias fglock: ping
10:01 sisar joined #perl6
10:04 dalek nqp/new_make: e916eda | bacek++ | tools/build/Makefile.in:
10:04 dalek nqp/new_make: Parallelize stage0 build
10:04 dalek nqp/new_make: review: https://github.com/perl6/nqp/commit/e916eda7ec
10:05 bacek phenny, tell jnthn Can you retest new_make branch?
10:05 phenny bacek: I'll pass that on when jnthn is around.
10:15 PacoAir joined #perl6
10:16 sporous joined #perl6
10:22 dalek nqp: 6010c98 | bacek++ | src/6model/serialization.c:
10:22 dalek nqp: Pacify compiler by explicit casting
10:22 dalek nqp: review: https://github.com/perl6/nqp/commit/6010c9801c
10:22 dalek nqp/new_make: 607cd33 | bacek++ | / (14 files):
10:22 dalek nqp/new_make: Merge branch 'master' into new_make
10:22 dalek nqp/new_make: review: https://github.com/perl6/nqp/commit/607cd33afd
10:22 xinming joined #perl6
10:31 tokuhirom joined #perl6
10:33 tadzik good day
10:34 fsergot o/
10:36 tadzik hi fsergot
10:39 Trashlord joined #perl6
10:40 moritz \o
10:44 mj41 joined #perl6
10:48 jnthn ohhai o/
10:48 phenny jnthn: 10:05Z <bacek> tell jnthn Can you retest new_make branch?
10:49 * jnthn pulls
10:56 jnthn phenny: tell bacek https://gist.github.com/2015984 - the NQP build fails immediately again now
10:56 phenny jnthn: I'll pass that on when bacek is around.
11:20 bbkr joined #perl6
11:41 whiteknight joined #perl6
11:47 lutok joined #perl6
12:15 masak ahoj, #perl6
12:15 masak yay, me gots a TheDamian reply <3
12:17 sjn o/
12:17 Juerd joined #perl6
12:17 * sjn reads jnthn's gpw slides
12:17 sjn http://jnthn.net/papers/201​2-gpw-meta-programming.pdf
12:18 * sjn kinda stopped at the "Declarators and meta-objects"
12:19 sjn just wondering, why was the meta-object type for roles called ParametricRoleHOW, instead of just RoleHOW?
12:19 sjn (although I look at this from the point of someone who doesn't have the full picture)
12:20 sjn is there a RoleHOW type alredy?
12:20 sjn </n00b>
12:22 moritz sjn: hysteric raisins, I think
12:22 Util joined #perl6
12:22 jnthn No, design.
12:23 sjn yes, I understand that hysteric raisins can be very glorp!
12:23 jnthn Roles appear in various forms.
12:23 jnthn There are four different meta-objects involved in implementing roles.
12:23 sjn ok?
12:23 jnthn We could choose to make one more specially named.
12:24 jnthn (e.g. decide it gets to be RoleHOW)
12:24 * sjn is a fan of huffman-encoding whatever is used the most :)
12:25 sjn and I'm fan of patterns :D
12:25 jnthn But there's also a sense in which the oddness screams out "hey, this thing works a bit differently" :)
12:25 sjn makes it easier to remember stuff
12:25 jnthn Well, then you get to choose your pattern.
12:25 jnthn Because the others are FooRoleHOW
12:25 jnthn So if we make one of them just RoleHOW, we break that pattern. :)]
12:26 sjn where can I find a list of the HOWs?
12:27 moritz did you mean to ask: HOW can I find a list of HOWs? :-)
12:27 jnthn sjn: They're in src/Perl6/Metamodel :)
12:27 masak I for one am for the idea of renaming s/ParametricRoleHOW/RoleHOW/
12:28 masak I think it's worth breaking the pattern.
12:28 masak *especially* if it turns out that parametric roles are, in some sense, the user-facing kind of roles.
12:28 masak and they seem to be exactly that.
12:28 sjn there are many ways of having patterns that handle inconsistencies
12:29 masak but, it's up to jnthn who really groks the model. :)
12:30 * sjn enjoys being a n00b, so he can ask silly questions :)
12:30 jnthn Well, it's a good question.
12:30 masak sjn: I think you're the... third to ask this exact question for this slide.
12:30 jnthn The degree to which ParametricRoleHOW is a *good* use-facing thing may be questionable though.
12:31 jnthn *user-facing
12:31 jnthn I can imagine a RoleHOW whose sole purpose is making it easy to construct roles.
12:31 sjn it's also relevant to the "is Perl6 teachable" thing I'd love to spend time on at the hackathon :)
12:31 masak jnthn: well, as you said during my talk, all roles, even 'role R {}', are parametric.
12:32 jnthn Indeed
12:32 tadzik sjn: we could try making a Perl 6 Crash Course to find that out :)
12:32 jnthn Well, before they're made concrete :)
12:33 masak right, but that's not the HOW that a newcomer MOP user will reach for.
12:33 tadzik true
12:33 tadzik if he/she will reach anyHOW
12:33 jnthn masak: Yeah. But the newcomer MOP user may find working with ParametricRoleHOW a little too surprising also at the moment. :)
12:33 preflex_ joined #perl6
12:34 masak what we really should optimize for is the use case of "ok, let's try to synthetically construct a role here"
12:34 masak "OMG it worked!"
12:34 jnthn masak: You have to know that for it to work out, you must set a body block up.
12:34 jnthn And that body block has to return a hash that will serve as a type environment.
12:34 masak nod.
12:35 jnthn masak: If we want to optimize for the use case of synthetically constructing one, we might like to reserve RoleHOW for a facade that makes that nice.
12:35 masak so maybe it's as you say, there's room for a RoleHOW facade... yeah, that.
12:35 jnthn Anyway, a bunch of people have asked the question, so it clearly wants an answer. :)
12:36 masak the slide would look much nicer, too :)
12:37 jnthn Well, uniformer if nothing else. :)
12:37 masak nom: class A { method foo($x) {} }; class B is A { method foo($a, $b, $c) {} }; say "alive, no warning"
12:37 p6eval rakudo bd6fde: OUTPUT«alive, no warning␤»
12:37 masak what do you folks think of TheDamian's idea of the above emitting a warning?
12:37 masak nom: say :($a, $b, $c) ~~ :($x)
12:37 p6eval rakudo bd6fde: OUTPUT«False␤»
12:38 masak nom: say :($a, :$b) ~~ :($x)
12:38 p6eval rakudo bd6fde: OUTPUT«False␤»
12:38 jnthn Hm. I think it gets that right by accident :)
12:38 masak nom: say :($a, :$b) ~~ :($x, *%)
12:38 p6eval rakudo bd6fde: OUTPUT«False␤»
12:38 masak hm.
12:38 masak I'd expect that last one to be True.
12:38 jnthn Same, but Rakudo has never (in any version) yet implemented sig ~~ sig
12:38 masak oh!
12:39 masak well, that explains it, then.
12:39 jnthn btw, it only needs writing Perl 6 code :)
12:39 * masak replies to TheDamian
12:39 jnthn For anybody who fancies taking it on.
12:39 jnthn Anyway, I'm very happy masak++ started the PRE/POST thread and that TheDamian++ responded.
12:39 jnthn I need to read both again a couple more times :)
12:41 jnthn masak: One thing we have to worry about if we want to warn over the above situation is how to do the warning well
12:41 jnthn e.g. "Non-Liskovian inheritance of method 'foo'" won't cut it :)
12:42 jnthn .oO( the semantics in multiple inheritance will be "fun" too... )
12:42 masak line numbers for both methods, I'd guess.
12:42 masak "Warning: new method overrides old with different signature."
12:42 jnthn masak: It's more that the word Liskov will just confuse a bunch of folks :)
12:42 masak yah, so don't use it. :P
12:44 jnthn "Signature of method 'foo' in subclass B is more demanding than that in class A"
12:44 jnthn :)
12:45 tadzik jnthn: for sig ~~ sig, don't we need that for MAIN?
12:46 jnthn no, we use the multi-dispatcher ordering for that
12:46 jnthn oh, oops, I gotta go to gothenburg...
12:46 masak "Signature of method 'foo' in class B isn't compatible with signature of method 'foo' in class A."
12:46 * jnthn -> station
12:46 masak jnthn: o/
12:47 * moritz is worried about having to compare signatures, which in general isn't computable
12:49 masak it maybe impossible to create a comparator that gets the answer right every time, but it's possible to create a comparator that terminates every time, at the cost of giving up on some hard comparisons.
12:49 moritz anything that contains subset types, really
12:49 masak as usual, 'where' blocks (and by extension, subtypes), are the prob... yeah.
12:50 Chillance joined #perl6
12:51 masak :($x where MultipleOfTen) ~~ :($x where EvenNumber)
12:52 masak this one is True in some ideal sense, but I wouldn't expect it to return True.
12:52 masak question is whether it should return False or some third value.
12:53 masak feels almost like it should return something like 'False but Unknown'
12:53 moritz feels like it should fail()
12:53 masak 'False but Mu' ;)
12:53 masak yeah, fail() might achieve the same effect.
12:54 masak so, "isn't computable" here just means that it'll fail() sometimes.
12:54 moritz and what does that mean for DBC?
12:54 masak that the compiler won't be able to warn sometimes when Liskov is broken.
12:58 moritz or should it warn when it doesn't know?
13:00 masak no, because that would just put a stigma on using subtypes in method signatures.
13:01 moritz I kinda remember that we generally reserve all-capitcal names
13:01 moritz is that somewhere in the specs? if yes, where?
13:01 masak we do for Pod.
13:01 masak the fact that the compiler can't infer something isn't grounds for warning about it, IMHO.
13:07 xinming joined #perl6
13:11 * moritz also replies to TheDamian
13:15 masak moritz: I don't see a TTIAR violation in 'will require { ... }'
13:15 masak just as there isn't any with 'if { say "OH HAI" } { say "OH HAI AGAIN" }'
13:20 moritz traits usually take a term as argument
13:20 moritz oh, trait_mod:will is special in that respect. Never midn then.
13:25 masak yeah, that's part of the raison d'etre for trait_mod:will, IIRC.
13:26 masak otherwise we could use trait_mod:is for everything.
13:26 masak cf 'will begin', 'will leave', etc.
13:28 moritz it makes sense to me for 'will leave', but 'will begin'?
13:28 moritz that 'will' makes it sound further in the future than the mainline code
13:29 GlitchMr joined #perl6
13:29 masak yeah, forget 'will begin'. :) 'will enter', then.
13:30 moritz same problem
13:31 masak then I don't see it.
13:31 masak entering the block happens quite a while after parsing it.
13:31 moritz yes, but it happens before the block is executed
13:31 moritz whereas the 'will' suggests it will happen later
13:32 masak 'the block' -- the surrounding block?
13:33 masak not at all. we must activate the surrounding block in order to run an ENTER phaser.
13:33 masak otherwise it won't have the proper OUTER.
13:34 sisar joined #perl6
13:36 xinming joined #perl6
13:37 moritz activate, yes, but not run its code
13:38 mscha joined #perl6
13:39 mscha perl6: my @list = 1, 2, 3, 101, "102", 103, "201", 202, "203"; say @list; say @list.sort: { $^a cmp $^b };
13:39 p6eval rakudo bd6fde: OUTPUT«1 2 3 101 102 103 201 202 203␤1 101 102 2 103 201 3 202 203␤»
13:39 p6eval ..niecza v15-4-g1f35f89: OUTPUT«1 2 3 101 102 103 201 202 203␤1 2 3 101 103 202 102 201 203␤»
13:39 p6eval ..pugs b927740: OUTPUT«1231011021032012022​03␤110223101103201202203␤»
13:40 mscha The dangers of using cmp ...
13:41 moritz yes
13:41 moritz it's actualyl a rather deep problem
13:42 mscha cmp isn't transitive, when using different types of objects, so *shouldn't* be used for sort.
13:42 mscha But it's still the default.
13:42 moritz well, it's very useful for lists of objects of the same type
13:42 moritz which is a very common case
13:43 moritz what would you use as the default comperator?
13:43 mscha Good question.
13:43 moritz if you want numeric or string sort,it's only 4 characters away
13:44 moritz .sort(~*) or .sort(+*)
13:45 * colomon wonders if there is any use for binary sort (.sort(?*))
13:45 mscha Still, it's a it surprising if you *think* you have a list of numbers, but some of them happen to be strings, and you simply do .sort.
13:45 mscha Still, it's a bit surprising if you *think* you have a list of numbers, but some of them happen to be strings, and you simply do .sort.
13:46 moritz mscha: yes, in programming you are usually surprised if your assumptions about your data are invalid
13:46 mscha :)
13:46 lumi__ Erlang has a total order over everything ever
13:47 moritz lumi__: ... which will likewise surprise you if you think you have other objects than you actually have :-)
13:48 lumi__ moritz: Yes, it's pretty surprising
13:50 masak colomon: sure, if you want falsy things to come before truthy things.
13:50 masak colomon: but probably nicer to use .classify in most cases.
13:51 masak moritz: I still don't see the problem with 'will enter'. it just says "once this code runs, it will run with ENTER semantics".
13:57 moritz masak: we don't require 'will' for ENTER phasers eitehr
13:57 * moritz gives up
13:58 MayDaniel joined #perl6
14:05 masak yeah, we're talking past each other.
14:18 TimToady remember that declarations happen at BEGIN time, so the 'will' is still future to that, generally
14:19 TimToady grr, woke up 20 minutes before I needed to on a "spring forward" day...
14:20 moritz I know, but we don't have 'will' on all those other compile time declarations that aren#t called until runtime
14:21 moritz which is why it feels so oddly out of place
14:27 TimToady the 'will' is implied by the uppercase, which says "I'm a hook, and naturally future"
14:27 sftp joined #perl6
14:28 xinming joined #perl6
14:30 TimToady the uppercase says "STOP! I'm doing something weird", but a declaration is already weird.
14:37 huf joined #perl6
15:09 DarthGandalf joined #perl6
15:25 Jerkwad joined #perl6
15:25 felher TimToady: one question, if you don't mind. Regarding your refactoring of http://rosettacode.org/wiki/Langton's_ant#Perl_6 : Is the primary reasong for using 'gather for'/'take' instead of 'do for' that niecza doesn't support 'do for' yet?
15:26 archme joined #perl6
15:26 archme left #perl6
15:51 Psyche^ joined #perl6
15:58 dalek specs: 578e3cb | masak++ | S04-control.pod:
15:58 dalek specs: [S04] un-spec method-level PRE/POST
15:58 dalek specs:
15:58 dalek specs: The intent was to extend block-level PRE/POST to something that could
15:58 dalek specs: do Eiffel-style Design-by-Contract assertions. This is an intriguing
15:58 dalek specs: idea, but not in the way the spec outlined it. See
15:58 dalek specs: <http://www.nntp.perl.org/group/perl.​perl6.language/2012/03/msg34803.html>
15:58 dalek specs: for details.
15:58 dalek specs: review: https://github.com/perl6/specs/commit/578e3cbf31
16:02 sftp joined #perl6
16:18 masak nom: constant catalan = 1, map { (4*$_ + 2) / ($_ + 2) * @catalan[$_] }, 0..*; .say for catalan[^10]
16:18 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Variable @catalan is not declared␤at /tmp/ZT46t2W420:1␤»
16:18 masak nom: constant catalan = 1, map { (4*$_ + 2) / ($_ + 2) * catalan[$_] }, 0..*; .say for catalan[^10]
16:18 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&catalan' called (line 1)␤»
16:19 masak nom: constant k = 1, map { k[$_] }, 0..*; .say for k[^10]
16:19 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&k' called (line 1)␤»
16:19 masak niecza: constant k = 1, map { k[$_] }, 0..*; .say for k[^10]
16:19 p6eval niecza v15-4-g1f35f89: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.Kernel.ToComposable (Niecza.STable arg, Niecza.STable cls) [0x00000] in <filename unknown>:0 ␤  at Niecza.Kernel.ApplyRoleToClass (Niecza.ST…
16:19 * masak submits rakudobug
16:19 masak I think the nieczabug is already submitted.
16:20 masak nom: constant k = k; say k
16:20 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Could not find sub &k␤»
16:21 masak nom: constant k = 1; constant k2 = k; say k2
16:21 p6eval rakudo bd6fde: OUTPUT«1␤»
16:22 masak nom: constant @catalan = 1, map { (4*$_ + 2) / ($_ + 2) * @catalan[$_] }, 0..*; .say for catalan[^10]
16:22 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Variable @catalan is not declared␤at /tmp/RbXEOFt2RN:1␤»
16:23 masak nom: constant @catalan = 1, gather for 0..* { take (4*$_ + 2) / ($_ + 2) * @catalan[$_] }; .say for catalan[^10]
16:23 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Variable @catalan is not declared␤at /tmp/YwtlrBBlpG:1␤»
16:23 TimToady felher: yes, when possible I try to support both platforms
16:23 masak nom: constant @catalan := 1, gather for 0..* { take (4*$_ + 2) / ($_ + 2) * @catalan[$_] }; .say for catalan[^10]
16:23 p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Variable @catalan is not declared␤at /tmp/g_JUP4gP6l:1␤»
16:23 masak ok, so http://rosettacode.org/wiki/Catalan_numbers#Perl_6 doesn't work on Rakudo.
16:24 TimToady sometimes I try to support both, and sometimes I support the one I think is more correct... :)
16:24 felher TimToady: k, thnx :)
16:24 TimToady the last one I did only supports rakudo
16:25 TimToady s/supports/runs on/
16:25 felher TimToady: i just noticed: 'for 0,2,4 ...^ $size - 2 -> $x {...' aren't we missing the last two lines? ^ and -2?
16:25 TimToady because niecza can't overload builtin ops
16:25 snearch joined #perl6
16:26 TimToady it includes the matched final value
16:26 TimToady oh, right
16:26 TimToady I didn't remove the ^
16:26 TimToady good spot
16:31 felher TimToady: i fix it unless you are already fixing it? Also: do you like -2 more than ^?
16:34 TimToady I already fixed it
16:34 felher TimToady++ :)
16:34 masak I already hesitate between explicit subtraction and implicit ^-ing too.
16:34 TimToady it won't match unless the endpoint is even
16:34 TimToady I guess we could exclude the endpoint and not have -2 at all
16:35 masak sometimes it feels like I should choose one or the other based on some rule I come up with, but when I think about it some more it just feels arbitrary again ;)
16:35 TimToady the -2 felt clearer to me this time
16:35 mucker joined #perl6
16:35 felher I see. Thanks :)
16:35 TimToady since it's doing 4-sized cells
16:35 mucker left #perl6
16:37 TimToady niecza used to do the recursive catalan if you declared it: constant @catalan = 1, ...
16:37 TimToady but that broke at some point
16:40 TimToady something got to eager to wrap the demand back through the array properly
16:40 TimToady *too
16:42 sisar the Langton's ant code does not work on Rakudo ?
16:43 TimToady it did at one point, but it runs very slowly
16:44 masak I ran it the other day on Rakudo.
16:44 sisar well, i'm getting this erros : https://gist.github.com/2017093
16:44 sisar *error
16:45 TimToady is that current rakudo and current parrot?
16:46 sisar 'This is perl6 version 2012.02-168-ga8086d4 built on parrot 4.1.0 revision RELEASE_4_1_0-35-g47bfa1f'
16:47 masak could be something happened when copy-pasting to the file.
16:47 sisar i built it a couple of days ago, so i'd say yes, it's latest
16:47 sisar masak: it works on Niecza
16:47 masak oh, hm.
16:47 TimToady works on rakudo (takes 2 minutes though)
16:48 masak sisar: if you built Rakudo a couple days ago, it can't be HEAD, 'cus the latest commit was made yesterday :)
16:48 TimToady git pull sez my nom is up-to-date
16:48 TimToady are you 32 or 64-bit?
16:49 moritz well, should still be new enough
16:49 masak true.
16:49 masak walk &
16:50 sisar i'm 32-bit
16:50 sisar well, my laptop is :)
16:50 TimToady :D
16:50 sisar fyi, i'm Inf-bit , i think
16:51 flussence .oO( I think I'm ebcdic... )
16:51 TimToady hmm, nothing in that program should be coming anywhere near Inf
16:52 moritz worked here, took 3m9s
16:52 sisar should i recompile rakudo ?
16:53 moritz sisar: did you 'make install'?
16:54 sisar moritz: hehe. the last time you pointed that out was the last time i built rakudo
16:54 TimToady hmm, RC doesn't seem to be syntax hilighting Perl 6 these days...
16:55 TimToady the ▘▝▀▖▌▞▛▗▚▐▜▄▙▟█ looked really cool when it was red, but now it's not...
16:58 sisar i can't make sense of the errors.
16:58 sisar "in file '(file unknown)' line 17" why is file unknown ?
16:59 moritz sisar: because it's probably not while parsing the file, but in some intermediate step
17:01 TimToady yes, it looks like a version skew error
17:01 TimToady finding the wrong parrot or some such
17:01 lateau joined #perl6
17:02 * sisar rebuilds rakudo, parrot, nqp
17:05 thou joined #perl6
17:07 TimToady is anyone else on 32-bit hardware?  that hasn't been eliminated that I know of
17:09 jnthn o/
17:09 * jnthn made it to Gothenburg :)
17:09 lateau joined #perl6
17:10 TimToady felher: well, I thought I'd fixed it, but got the dreaded "Sorry! We could not process your edit due to a loss of session data."
17:10 TimToady now it's fixed
17:10 TimToady rosettacode's been giving me that a lot lately
17:12 felher TimToady: ah, i didn't even notice. I just changed it locally so i can test it, but didn't look on RC again :)
17:12 jnthn TimToady: My laptop is 32-bit
17:13 jnthn re https://gist.github.com/2017093, I dearly hope it's not becaue the path happens to have a ' in it...
17:15 felher jnthn: i fear it is.
17:15 jnthn bah
17:15 sisar jnthn: hm. rakudo can't handle file names with a ' ?
17:15 felher jnthn: i have the same problem once i renamed the file to include a "'"
17:16 TimToady that's it
17:16 jnthn It'll be soemthing silly, no doubt
17:16 TimToady probably a good spot for an injection attack :)
17:16 jnthn bah
17:17 jnthn Found it
17:17 felher That was fast :)
17:17 TimToady he didn't say he'd fixed it :)
17:17 felher True :)
17:18 jnthn Well, got a patch, but gotta wait to see if it helps :)
17:19 Moukeddar joined #perl6
17:20 sisar :| ,  i should have waited. now i gotta recompile after jnthn's fix
17:20 jnthn Sorry for fixing things :P
17:21 sisar LOL
17:22 mikemol TimToady: I'm trying to find out what's causing that. I've generally been accustomed to it happenening to me for ages, as I get halfway through something, and then get pulled aside longer than the session timeout. As a result, I have a habit of hitting 'preview' immediately before submit.
17:22 mikemol nm.
17:22 mikemol I found it.
17:23 mikemol Sec while I fix it.
17:23 mikemol K, should be fixed.
17:24 Moukeddar left #perl6
17:24 sisar after recompiling rakudo, the error is almost the same, but with 'in file '(file unknown)' line 153725337'. Line 153725337 !! Wow !
17:25 sisar wait, the line number is different for every try
17:26 geekosaur mmm, uninitialized data
17:27 sisar another interesting observation, it gives out huge line nos, but after every three or so tries, it returns to line 17 !
17:28 * jnthn blames IMCC
17:30 * sisar submitted 4 ubuntu-related crash reports today, found one rakudo bug
17:31 jnthn sisar++
17:31 * sisar wonders if bugs have a way of finding him ?
17:31 sisar s/finding/targeting
17:32 jnthn phenny: tell masak S04 still has a leftover: "Class-level C<PRE> and C<POST> submethods..."
17:32 phenny jnthn: I'll pass that on when masak is around.
17:32 icwiener joined #perl6
17:33 sisar jnthn: IMCC ?
17:34 masak jnthn: I chose to leave those in, as I don't see a problem with them.
17:34 phenny masak: 17:32Z <jnthn> tell masak S04 still has a leftover: "Class-level C<PRE> and C<POST> submethods..."
17:34 sisar never mind, Intermediate Code Compiler
17:34 jnthn sisar: yes, that
17:35 dalek rakudo/nom: b13c517 | jonathan++ | src/Perl6/Actions.pm:
17:35 dalek rakudo/nom: Seems that we already end up with file annotations being emitted, so don't add them again in an extra way in the Actions. The extra way in question also didn't escape output, meaning a foobar'd.p6 would cause invalid code-gen; sisar++ for reporting.
17:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b13c517874
17:35 sisar jnthn++
17:36 jnthn masak: But the way they've been left in feels...accidental.
17:37 jnthn I mean, it points out why they are different rather than introducing them as existing.
17:37 jnthn masak: Plus it's a mess.
17:37 masak you have a point.
17:37 masak I'll see what I can do.
17:37 jnthn It doesn't say what PRE gets at the argument
17:37 jnthn Then
17:37 jnthn And the C<POST>
17:37 jnthn submethod gets the return value as the topic, just as exit phasers do.
17:37 jnthn YEAH GOOD LUCK
17:37 masak :P
17:38 jnthn That's only gonna work if you write submethod POST($_) { } :)
17:38 masak I reflected on that one too.
17:38 masak ok, I'll simply remove them.
17:38 jnthn Well, up to you :)
17:38 masak we can toy with introducing them as a CallHOW extension.
17:38 masak and then maybe spec them back if we feel like it.
17:38 jnthn We can keep them, they just need to be spec'd sufficiently that I can actually do a first cut of them :)
17:39 jnthn Also, do we call all of them up the inheritance chain, etc.
17:39 masak hm, yes.
17:39 jnthn Yes, it would be trivial to do them as a module. :)
17:39 masak don't worry about submethod PRE and POST. worry about block-level PRE and POST :)
17:39 * masak goes about un-spec'ing submethod PRE and POST, too
17:39 jnthn :)
17:39 jnthn OK
17:40 fglock o/
17:40 jnthn Let's do them in a module first.
17:40 jnthn And see how that works out.
17:40 jnthn o/ fglock
17:41 jnthn I'll see if I can do block level PRE/POST amongst my $teaching-work :)
17:42 masak \o/
17:48 dalek specs: 937f37f | masak++ | S04-control.pod:
17:48 dalek specs: [S04] unspec submethod PRE/POST
17:48 dalek specs:
17:48 dalek specs: See <http://irclog.perlgeek.de/​perl6/2012-03-11#i_5275742> for the
17:48 dalek specs: discussion that precipitated their removal. Anyone with a
17:48 dalek specs: working implementation of them is free to add them back. :-)
17:48 dalek specs: review: https://github.com/perl6/specs/commit/937f37f7e0
17:56 masak I promise not to decimate the spec any more today. :)
17:58 jnthn Ouch, it looks like my last patch may have oddly busted something...
17:58 * jnthn checks
18:04 sisar jnthn: the patch worked
18:05 GlitchMr42 joined #perl6
18:05 sisar bash has issues with filenames with a ' ?
18:05 pmurias joined #perl6
18:06 jnthn sisar: It's OK, it works, I was doing something else silly :)
18:08 sudokode joined #perl6
18:10 sisar jnthn: phew, then i don't have to recompile :)
18:14 sisar 'night #perl6 !
18:14 * sisar zzz..
18:14 geekosaur sisar, yes, ' is full quoting (no variable expansion)
18:16 fglock pmurias++  # node.js runtime
18:17 cognominal fglock: ???
18:18 fglock pmurias added support for node.js to p5-to-js
18:18 pmurias fglock: hi
18:19 cognominal nice
18:19 pmurias fglock: it still works on d8?
18:19 fglock I fixed it a little - now it works :)
18:22 * fglock installs node
18:23 jnthn masak: https://gist.github.com/2017537 fwiw
18:23 jnthn Hacky and incomplete, mind :)
18:23 jnthn dinner &
18:28 [Coke] sorear: anythign I can do to diagnose why this step takes so long on my 64bit os x box?:
18:29 [Coke] cd src && NIECZA_KEEP_IL=1 mono ../boot/run/Niecza.exe -C STD
18:29 moritz w 13
18:29 moritz sorry
18:35 Vespakoen joined #perl6
18:37 masak jnthn: nice. :)
18:37 masak jnthn: how does it treat private methods and submethods?
18:44 fglock pmurias: $ node perlito5.js -Bjs t5/01-sanity.t
18:48 pmurias fglock: checking...
18:50 fglock hmm - the CORE prototypes will be missing, because they were discarded after compiling the compiler
18:50 fglock maybe - I need to check
18:52 pmurias fglock: ?
18:52 pmurias fglock: most tests pass
18:52 pmurias prove -e 'node perlito5.js -Bjs' t5 # is much nicer than the find abomination
18:53 pmurias fglock: do you have node installed?
18:53 fglock yes
18:54 fglock nice - prove works for me
18:54 pmurias tests 21 and 22 fail
18:55 fglock pmurias: yes, I think the compiler needs to save more state in the source file, in order for eval() to get a complete enviromnet
18:55 fglock environment
18:56 pmurias fglock: do perlito5 and perlito6 code share code?
18:57 ascrazy joined #perl6
18:57 fglock not anymore, perlito5 is now completely rewritten
18:57 pmurias it might be better to seperate them into to directories rather then have a 5 and 6 prefix
18:58 pmurias * postfix
18:59 fglock they need to have different names, to allow installation in usr/bin/whatever
18:59 pmurias on executables yes
18:59 fglock they share lib5
18:59 pmurias but on lib,src,t,README
19:01 fglock hmm - dunno, I was thinking about splitting even more, with a top-level perl6 and perl5
19:03 pmurias with perl5 containing Perlito5 and perl6 Perlito6?
19:03 fglock yes (maybe)
19:05 fglock ack TODO src5 | wc -l  # 42
19:06 pmurias fglock: re split, that's what I meant
19:10 pmurias fglock: where should we keep strict setting?
19:13 pmurias so "no strict" is the default
19:13 pmurias we need that for running t/base
19:14 fglock %Perlito5::STRICT I think - this can be declared in Perlito5::Runtime
19:15 fglock t/base is pretty difficult
19:19 fglock re t5/21-test.t - 'use' is implemented in the wrong place (as a ast preprocessor), not available to eval()
19:19 fglock it's a bug
19:19 sporous joined #perl6
19:23 [Coke] sorear: AHAHAHA. no diagnostics necessary - just complain on IRC and it finally proceeds to the next step.
19:26 [Coke] (probably doesnt' help that I'm building ghc in another tab.)
19:29 tadzik seems that Parrot can reliably create and run 120000 tasks on 8 threads these days
19:29 birdwindupbird joined #perl6
19:38 [Coke] in a branch, no?
19:40 tadzik aye
19:41 wayland76 joined #perl6
19:44 wayland76 left #perl6
19:45 MayDaniel joined #perl6
19:46 pmurias fglock: should all new tests in t5 have a number?
19:52 fglock yes, I think it helps - the most basic tests are then run first
19:57 * jnthn back from noms :)
19:57 jnthn Apart from the bit where a candle almost set my hair on fire, it was pretty good. :)
19:58 jnthn masak: Private methods and submethods don't get PRE and POST called on them.
20:01 sorear [Coke]: that step always takes the longest time - was around 90s on the dinosaur
20:03 sorear good * #perl6
20:04 fglock sorear: o/
20:04 sorear o/ fglock
20:06 masak jnthn: nice.
20:06 masak nom: class A { submethod !foo {} }
20:06 p6eval rakudo b13c51:  ( no output )
20:06 pmurias fglock: how can I test strict?
20:06 masak nom: class A { submethod !foo {} }; say "alive"
20:06 p6eval rakudo b13c51: OUTPUT«alive␤»
20:06 pmurias fglock: we need eval to catch exceptions first?
20:07 jnthn masak: That's prolly kosher, though pointless.
20:07 jnthn masak: Private methods are never virtual anyway.
20:08 masak nod.
20:08 sorear jnthn's doing PRE/POST now too?
20:09 jnthn sorear: Likely not tonight.
20:09 fglock yes, we need that - eval-block is not implemented
20:09 moritz but since strict.pm errors are compile time, you need STRING-eval anyway
20:09 jnthn sorear: But hopefully in the next copule of days, if I have the ork after work.
20:10 fglock it is easy to add, I'll take a look (now adding special vars, I want $^O)
20:11 fglock ah, yes - you can just use string eval
20:18 skids joined #perl6
20:28 jnthn moritz: ooc, how is the Sink branch? Did I need to look at that?
20:31 moritz jnthn: didn't have much motivation to look at it. It's freshly rebased, and I've tried to implement some stuff, but didn't get as far as I wanted
20:32 moritz jnthn: oh, and about the exceptions... you proposed that we install subs that can be invoked to generate the rightly typed exceptions... but the problem is that if we call it from NQP or C land, we'll be passing non-Perl 6 objects to it
20:33 moritz jnthn: so we can't use normal signatures
20:34 moritz that's very inconvenient
20:35 jnthn moritz: We generally can 'cus the binder marshalls.
20:35 fglock pmurias: eval-block is parsed; it needs some emitter work
20:35 jnthn For strings and integers, at least.
20:36 ksi joined #perl6
20:37 fglock afk
20:39 moritz what about lists and hashes?
20:40 jnthn moritz: I believe RPA becomes Parcel, and hashes become a Hash.
20:40 moritz hm
20:40 jnthn moritz: Look for Rakudo_types_parrot_map
20:41 moritz so we just need somehting that traverses them, and upgrades their elements
20:42 jnthn It ain't recursive, true.
20:43 jnthn Implementable though, I guess.
20:43 moritz desirable?
20:44 jnthn Maybe. What's your use case, ooc?
20:44 moritz I know I've needed that for the typed exceptions so far
20:44 moritz lists of matching candidates for example
20:45 jnthn But those should be lists of Perl 6 code objects.
20:45 moritz hm, right
20:45 moritz I know I've needed it recently for something...
20:45 moritz for X::Package::Stubbed
20:46 moritz well, we'll see
20:46 jnthn For that one you do have the option of passing the list of stubbed packages, mind.
20:46 jnthn And method message grabs their names
20:47 jnthn In general, that is perhaps a better approach.
20:47 jnthn Like, if two roles provide a conflicting method, include a list of the roles, not just their names.
20:47 Moukeddar joined #perl6
20:48 jnthn (Not as a workaround, but because it's more useful.)
20:48 [Coke] sorear: it took HOURS here.
20:49 sorear Weird
20:49 sorear Swapping?
20:49 [Coke] could be.
20:51 [Coke] now working on NieczaActions
20:51 [Coke] which is at 10s of minutes.
20:52 [Coke] there's over 600M free at the moment.
20:53 sorear what mono version?  are you using --gc=sgen?
20:55 moritz jnthn: I'm a bit sceptical about that
20:55 moritz jnthn: because in the case of errors, we sometimes have packages whose composition has failed
20:56 moritz so I don't know if they can .gist correctly
20:56 jnthn It can't, but it can .HOW.name
20:56 [Coke] sorear;I'm using whatever "make" gives me. checking the version...
20:56 [Coke] Mono JIT compiler version 2.10.6 (tarball Fri Mar  9 18:42:58 EST 2012)
20:58 sorear of course it's also possible there was a massive regression recentyly
20:58 Psyche^ joined #perl6
21:06 alvis joined #perl6
21:18 Trashlord joined #perl6
21:28 VXZ joined #perl6
21:32 dalek book: 0e0ac08 | moritz++ | src/ (4 files):
21:32 dalek book: several corrections by Philipp Marek
21:32 dalek book: review: https://github.com/perl6/book/commit/0e0ac08563
21:38 sorear jnthn: I heard news about the fire in Slovakia :(
21:43 [Coke] +# 03/11/2012 - rakudo++ ; niecza (96.21%); pugs (38.97%)
21:43 [Coke] +"niecza",     20307,     1,   757,  1540, 22604, 23759
21:43 [Coke] +"pugs"  ,      8227,     0,  3022,  1343, 12592, 23568
21:43 [Coke] +"rakudo",     21106,    31,   626,  1888, 23485, 24026
21:43 jnthn sorear: Same :(
21:44 jnthn sorear: Sad. It was really old.
21:44 [Coke] b: say 21106*.01; say 21106*.39-8227
21:44 p6eval b 1b7dd1: OUTPUT«211.06␤4.34␤»
21:48 jnthn Perhaps the worst part is that it burnt down for a really stupid reason - careless uses of matches when lighting cigarrettes :/
21:48 tadzik I thought it was about burning grass on the field nearby
21:48 sorear ah, (US news)--
21:48 sorear they told me it was a brush fire
21:49 tadzik supposedly they still don't know
21:49 jnthn tadzik: Ah, I'd read the grass was set on fire by dropped matches.
21:49 * masak throws his theory into the fray
21:49 masak it was a stray meteorite.
21:50 tadzik jnthn: oh, it may be
21:50 jnthn sorear: No, it was rightish, it was that the grass was on fire.
21:51 Moukeddar joined #perl6
21:51 sorear meh, they deserve the -- for other reasons
21:51 jnthn :)
21:53 * jnthn never actually visited that particular castle, but did go to quite a few of them.
21:55 jnthn phenny: "krasna horka"?
21:55 phenny jnthn: "Krasna Horka" (sv to en, translate.google.com)
21:55 jnthn phenny: sk en "krasna horka"?
21:55 phenny jnthn: "beautiful hot" (sk to en, translate.google.com)
21:55 jnthn ouch!
21:55 tadzik beautiful mountain, I think
21:56 tadzik horka sounds like "górka"
21:56 jnthn Horka actually means "little hill" I believe.
21:56 jnthn Though...
21:56 tadzik phenny: "górka"?
21:56 phenny tadzik: "hillock" (pl to en, translate.google.com)
21:56 tadzik eek
21:56 jnthn phenny: sk en "krasna uhorka"?
21:56 phenny jnthn: "beautiful cucumber" (sk to en, translate.google.com)
21:56 jnthn ;)
21:56 tadzik "góra" is "hill"
21:56 jnthn hora is mountain in Slovak, iirc.
21:56 tadzik "górka" is "small hill"
21:56 tadzik that'd match
21:56 jnthn aye
21:57 jnthn Just some s/h/g :)
21:59 dalek nqp/new_make: 282e894 | bacek++ | tools/build/Makefile.in:
21:59 dalek nqp/new_make: Revert "Parallelize stage0 build"
21:59 dalek nqp/new_make:
21:59 dalek nqp/new_make: This reverts commit e916eda7eca1299fc709b7d0fbecbd6745198a50.
21:59 dalek nqp/new_make: review: https://github.com/perl6/nqp/commit/282e8947e7
22:01 lestrrat joined #perl6
22:07 fsergot joined #perl6
22:19 nnunley joined #perl6
22:20 wamba joined #perl6
22:22 bacek_at_work jnthn, if you have time can you try new_make again?
22:23 wamba joined #perl6
22:25 wamba left #perl6
22:50 mjreed joined #perl6
22:50 mjreed rakudo: constant @vecs = ([1,0,1], [0,-1,1], [-1,0,1], [0,1,1]);
22:50 p6eval rakudo b13c51:  ( no output )
22:51 mjreed rakudo: constant @vecs = ([1,0,1], [0,-1,1], [-1,0,1], [0,1,1]); say @vecs[1][1];
22:51 p6eval rakudo b13c51: OUTPUT«-1␤»
22:52 mjreed odd. 2012.02 is giving me 'Cannot handle constant @vecs with non-literal value yet', though I don't see what's non-literal about that.
22:52 masak commas probably count as non-literal.
22:52 jnthn mjreed: That restriction was only lifted within the last couple of weeks, and didn't make it into a release yet.
22:53 jnthn Will be in the March one, or just grab latest from GitHub. :)
22:53 masak love it when people think the last release is stale :)
22:54 jnthn bacek_at_work: I'm only $slow-laptop and need to sleep in a moment...teaching tomorrow. Will try and get to testing it tomorrow.
22:54 mjreed masak: says good things about the velocity of the project... :)
22:55 masak aye :)
22:57 Psyche^ joined #perl6
23:04 jnthn sleep &
23:04 Psyche^ joined #perl6
23:30 pjcj joined #perl6
23:34 pjcj joined #perl6
23:45 havenn joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo