»ö« 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.
00:06 pmurias left
masak just posted my method PRE/POST rant to p6l. 00:06
comments are very welcome. 00:07
00:11 itz left
masak 'night, #perl6 00:18
00:18 NamelessTee left
tadzik 'night 00:19
00:22 itz joined 00:27 itz left, itz joined 00:31 itz left 00:32 itz joined, facefox joined 01:01 bynari left
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 "\"*/\"> \"*/\""␤»
lue Am I doing something wrong or is that a bug?
sorear it's spelled <!before... > 01:16
but I think you actually want '/*' .*? '*/' 01:17
rx
rx|'/*' ... | to make it easier to read
lue Thank you. 01:24
colomon macro D1 merged? 01:34
phenny colomon: 10 Mar 08:05Z <[Coke]> tell colomon about feather.perl6.nl/~coke/sin.diff
02:18 thou left, lumi__ left 02:40 thou joined 02:41 PacoAir left 02:42 PacoAir joined, PacoAir left 02:43 lumi__ joined 03:06 orafu left 03:07 dbr left 03:10 orafu joined 03:12 Chillance left 03:31 raiph left 03:36 mucker left 03:38 sftp left 03:59 leprevost left 04:02 lutok left 04:05 leprevost joined 04:09 whiteknight left 04:15 am0c left, araujo left 04:18 icwiener_ left 04:20 araujo joined, araujo left, araujo joined, plobsing joined 04:23 plobsing_ left 04:32 mucker joined 05:27 birdwindupbird joined 05:59 localhost left 06:01 localhost joined
moritz good morning 06:35
sorear good moritz 06:42
06:59 NamelessTee joined 07:16 GlitchMr joined 07:40 Jerkwad left 07:43 kaare_ joined 07:47 kaare__ joined 07:48 kaare_ left 08:00 doy left, doy joined 08:09 proller_ left 08:11 mucker left 08:44 thou left 09:18 timotimo left 09:19 timotimo joined 09:24 bacek left 09:45 bacek joined 09:46 pmurias joined 09:47 am0c joined
pmurias fglock: ping 09:57
10:01 sisar joined
dalek p/new_make: e916eda | bacek++ | tools/build/Makefile.in:
Parallelize stage0 build
10:04
bacek phenny, tell jnthn Can you retest new_make branch? 10:05
phenny bacek: I'll pass that on when jnthn is around.
10:14 xinming left 10:15 PacoAir joined 10:16 sporous left, sporous joined
dalek p: 6010c98 | bacek++ | src/6model/serialization.c:
Pacify compiler by explicit casting
10:22
p/new_make: 607cd33 | bacek++ | / (14 files):
Merge branch 'master' into new_make
10:22 xinming joined 10:31 tokuhirom joined
tadzik good day 10:33
fsergot o/ 10:34
tadzik hi fsergot 10:36
10:38 Trashlord left 10:39 Trashlord joined
moritz \o 10:40
10:44 mj41 joined
jnthn ohhai o/ 10:48
phenny jnthn: 10:05Z <bacek> tell jnthn Can you retest new_make branch?
jnthn pulls 10:49
phenny: tell bacek 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 11:24 xinming left 11:41 whiteknight joined 11:47 lutok joined 11:53 sisar left
masak ahoj, #perl6 12:15
yay, me gots a TheDamian reply <3
sjn o/ 12:17
12:17 Util left, Juerd left, Juerd joined
sjn reads jnthn's gpw slides 12:17
jnthn.net/papers/2012-gpw-meta-programming.pdf
sjn kinda stopped at the "Declarators and meta-objects" 12:18
just wondering, why was the meta-object type for roles called ParametricRoleHOW, instead of just RoleHOW? 12:19
(although I look at this from the point of someone who doesn't have the full picture)
is there a RoleHOW type alredy? 12:20
</n00b>
moritz sjn: hysteric raisins, I think 12:22
12:22 Util joined
jnthn No, design. 12:22
sjn yes, I understand that hysteric raisins can be very glorp! 12:23
jnthn Roles appear in various forms.
There are four different meta-objects involved in implementing roles.
sjn ok?
jnthn We could choose to make one more specially named.
(e.g. decide it gets to be RoleHOW) 12:24
sjn is a fan of huffman-encoding whatever is used the most :)
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" :)
sjn makes it easier to remember stuff
jnthn Well, then you get to choose your pattern.
Because the others are FooRoleHOW
So if we make one of them just RoleHOW, we break that pattern. :)]
sjn where can I find a list of the HOWs? 12:26
moritz did you mean to ask: HOW can I find a list of HOWs? :-) 12:27
jnthn sjn: They're in src/Perl6/Metamodel :)
masak I for one am for the idea of renaming s/ParametricRoleHOW/RoleHOW/
I think it's worth breaking the pattern. 12:28
*especially* if it turns out that parametric roles are, in some sense, the user-facing kind of roles.
and they seem to be exactly that.
sjn there are many ways of having patterns that handle inconsistencies
masak but, it's up to jnthn who really groks the model. :) 12:29
sjn enjoys being a n00b, so he can ask silly questions :) 12:30
jnthn Well, it's a good question.
masak sjn: I think you're the... third to ask this exact question for this slide.
jnthn The degree to which ParametricRoleHOW is a *good* use-facing thing may be questionable though. 12:31
*user-facing
I can imagine a RoleHOW whose sole purpose is making it easy to construct roles.
sjn it's also relevant to the "is Perl6 teachable" thing I'd love to spend time on at the hackathon :)
masak jnthn: well, as you said during my talk, all roles, even 'role R {}', are parametric.
jnthn Indeed 12:32
tadzik sjn: we could try making a Perl 6 Crash Course to find that out :)
jnthn Well, before they're made concrete :)
masak right, but that's not the HOW that a newcomer MOP user will reach for. 12:33
tadzik true
12:33 preflex left
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
masak what we really should optimize for is the use case of "ok, let's try to synthetically construct a role here" 12:34
"OMG it worked!"
jnthn masak: You have to know that for it to work out, you must set a body block up.
12:34 preflex_ is now known as preflex
jnthn And that body block has to return a hash that will serve as a type environment. 12:34
masak nod.
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.
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 :)
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"
p6eval rakudo bd6fde: OUTPUT«alive, no warning␤»
masak what do you folks think of TheDamian's idea of the above emitting a warning?
nom: say :($a, $b, $c) ~~ :($x)
p6eval rakudo bd6fde: OUTPUT«False␤»
masak nom: say :($a, :$b) ~~ :($x) 12:38
p6eval rakudo bd6fde: OUTPUT«False␤»
jnthn Hm. I think it gets that right by accident :)
masak nom: say :($a, :$b) ~~ :($x, *%)
p6eval rakudo bd6fde: OUTPUT«False␤»
masak hm.
I'd expect that last one to be True.
jnthn Same, but Rakudo has never (in any version) yet implemented sig ~~ sig
masak oh!
well, that explains it, then. 12:39
jnthn btw, it only needs writing Perl 6 code :)
masak replies to TheDamian
jnthn For anybody who fancies taking it on.
Anyway, I'm very happy masak++ started the PRE/POST thread and that TheDamian++ responded.
I need to read both again a couple more times :)
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
e.g. "Non-Liskovian inheritance of method 'foo'" won't cut it :)
.oO( the semantics in multiple inheritance will be "fun" too... )
12:42
masak line numbers for both methods, I'd guess.
"Warning: new method overrides old with different signature."
jnthn masak: It's more that the word Liskov will just confuse a bunch of folks :)
masak yah, so don't use it. :P
jnthn "Signature of method 'foo' in subclass B is more demanding than that in class A" 12:44
:)
tadzik jnthn: for sig ~~ sig, don't we need that for MAIN? 12:45
jnthn no, we use the multi-dispatcher ordering for that 12:46
oh, oops, I gotta go to gothenburg...
masak "Signature of method 'foo' in class B isn't compatible with signature of method 'foo' in class A."
jnthn -> station
masak jnthn: o/
moritz is worried about having to compare signatures, which in general isn't computable 12:47
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
masak as usual, 'where' blocks (and by extension, subtypes), are the prob... yeah.
12:50 Chillance joined
masak :($x where MultipleOfTen) ~~ :($x where EvenNumber) 12:51
this one is True in some ideal sense, but I wouldn't expect it to return True. 12:52
question is whether it should return False or some third value.
feels almost like it should return something like 'False but Unknown' 12:53
moritz feels like it should fail()
masak 'False but Mu' ;)
yeah, fail() might achieve the same effect.
so, "isn't computable" here just means that it'll fail() sometimes. 12:54
moritz and what does that mean for DBC?
masak that the compiler won't be able to warn sometimes when Liskov is broken.
moritz or should it warn when it doesn't know? 12:58
masak no, because that would just put a stigma on using subtypes in method signatures. 13:00
moritz I kinda remember that we generally reserve all-capitcal names 13:01
is that somewhere in the specs? if yes, where?
masak we do for Pod.
the fact that the compiler can't infer something isn't grounds for warning about it, IMHO.
13:07 xinming joined
moritz also replies to TheDamian 13:11
masak moritz: I don't see a TTIAR violation in 'will require { ... }' 13:15
just as there isn't any with 'if { say "OH HAI" } { say "OH HAI AGAIN" }'
moritz traits usually take a term as argument 13:20
oh, trait_mod:will is special in that respect. Never midn then.
masak yeah, that's part of the raison d'etre for trait_mod:will, IIRC. 13:25
otherwise we could use trait_mod:is for everything. 13:26
cf 'will begin', 'will leave', etc.
moritz it makes sense to me for 'will leave', but 'will begin'? 13:28
that 'will' makes it sound further in the future than the mainline code
13:29 GlitchMr left, GlitchMr joined
masak yeah, forget 'will begin'. :) 'will enter', then. 13:29
moritz same problem 13:30
masak then I don't see it. 13:31
13:31 xinming left
masak entering the block happens quite a while after parsing it. 13:31
moritz yes, but it happens before the block is executed
whereas the 'will' suggests it will happen later
masak 'the block' -- the surrounding block? 13:32
not at all. we must activate the surrounding block in order to run an ENTER phaser. 13:33
otherwise it won't have the proper OUTER.
13:34 sisar joined 13:36 xinming joined
moritz activate, yes, but not run its code 13:37
13:38 mscha joined
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␤»
..niecza v15-4-g1f35f89: OUTPUT«1 2 3 101 102 103 201 202 203␤1 2 3 101 103 202 102 201 203␤»
..pugs b927740: OUTPUT«123101102103201202203␤110223101103201202203␤»
mscha The dangers of using cmp ... 13:40
moritz yes 13:41
it's actualyl a rather deep problem
mscha cmp isn't transitive, when using different types of objects, so *shouldn't* be used for sort. 13:42
But it's still the default.
moritz well, it's very useful for lists of objects of the same type
which is a very common case
what would you use as the default comperator? 13:43
mscha Good question.
moritz if you want numeric or string sort,it's only 4 characters away
.sort(~*) or .sort(+*) 13:44
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.
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.
moritz mscha: yes, in programming you are usually surprised if your assumptions about your data are invalid 13:46
mscha :)
lumi__ Erlang has a total order over everything ever
moritz lumi__: ... which will likewise surprise you if you think you have other objects than you actually have :-) 13:47
lumi__ moritz: Yes, it's pretty surprising 13:48
masak colomon: sure, if you want falsy things to come before truthy things. 13:50
colomon: but probably nicer to use .classify in most cases.
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:51
moritz masak: we don't require 'will' for ENTER phasers eitehr 13:57
moritz gives up
13:58 MayDaniel joined
masak yeah, we're talking past each other. 14:05
14:15 xinming left
TimToady remember that declarations happen at BEGIN time, so the 'will' is still future to that, generally 14:18
grr, woke up 20 minutes before I needed to on a "spring forward" day... 14:19
moritz I know, but we don't have 'will' on all those other compile time declarations that aren#t called until runtime 14:20
which is why it feels so oddly out of place 14:21
14:23 MayDaniel left
TimToady the 'will' is implied by the uppercase, which says "I'm a hook, and naturally future" 14:27
14:27 sftp joined 14:28 xinming joined
TimToady the uppercase says "STOP! I'm doing something weird", but a declaration is already weird. 14:30
14:37 huf left, huf joined 15:00 mscha left 15:08 DarthGandalf left 15:09 DarthGandalf joined 15:25 Jerkwad joined
felher TimToady: one question, if you don't mind. Regarding your refactoring of 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:25
15:26 archme joined, archme left 15:33 alvis left 15:35 tokuhirom left 15:49 Patterner left 15:51 Psyche^ joined, Psyche^ is now known as Patterner
dalek ecs: 578e3cb | masak++ | S04-control.pod:
[S04] un-spec method-level PRE/POST

The intent was to extend block-level PRE/POST to something that could do Eiffel-style Design-by-Contract assertions. This is an intriguing idea, but not in the way the spec outlined it. See
  <www.nntp.perl.org/group/perl.perl6....3.html>
for details.
15:58
16:02 sftp left, sftp joined
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␤»
masak nom: constant catalan = 1, map { (4*$_ + 2) / ($_ + 2) * catalan[$_] }, 0..*; .say for catalan[^10]
p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&catalan' called (line 1)␤»
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)␤»
masak niecza: constant k = 1, map { k[$_] }, 0..*; .say for k[^10]
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…
masak submits rakudobug
I think the nieczabug is already submitted.
nom: constant k = k; say k 16:20
p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Could not find sub &k␤»
masak nom: constant k = 1; constant k2 = k; say k2 16:21
p6eval rakudo bd6fde: OUTPUT«1␤»
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␤»
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␤»
TimToady felher: yes, when possible I try to support both platforms
masak nom: constant @catalan := 1, gather for 0..* { take (4*$_ + 2) / ($_ + 2) * @catalan[$_] }; .say for catalan[^10]
p6eval rakudo bd6fde: OUTPUT«===SORRY!===␤Variable @catalan is not declared␤at /tmp/g_JUP4gP6l:1␤»
masak ok, so rosettacode.org/wiki/Catalan_numbers#Perl_6 doesn't work on Rakudo.
TimToady sometimes I try to support both, and sometimes I support the one I think is more correct... :) 16:24
felher TimToady: k, thnx :)
TimToady the last one I did only supports rakudo
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?
TimToady because niecza can't overload builtin ops
16:25 snearch joined
TimToady it includes the matched final value 16:26
oh, right
I didn't remove the ^
good spot
felher TimToady: i fix it unless you are already fixing it? Also: do you like -2 more than ^? 16:31
TimToady I already fixed it 16:34
felher TimToady++ :)
masak I already hesitate between explicit subtraction and implicit ^-ing too.
TimToady it won't match unless the endpoint is even
I guess we could exclude the endpoint and not have -2 at all
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
felher I see. Thanks :) 16:35
TimToady since it's doing 4-sized cells
16:35 mucker left
TimToady niecza used to do the recursive catalan if you declared it: constant @catalan = 1, ... 16:37
but that broke at some point
16:38 abercrombie left
TimToady something got to eager to wrap the demand back through the array properly 16:40
*too
sisar the Langton's ant code does not work on Rakudo ? 16:42
TimToady it did at one point, but it runs very slowly 16:43
masak I ran it the other day on Rakudo. 16:44
sisar well, i'm getting this erros : gist.github.com/2017093
*error
TimToady is that current rakudo and current parrot? 16:45
sisar 'This is perl6 version 2012.02-168-ga8086d4 built on parrot 4.1.0 revision RELEASE_4_1_0-35-g47bfa1f' 16:46
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
masak: it works on Niecza
masak oh, hm.
TimToady works on rakudo (takes 2 minutes though)
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
are you 32 or 64-bit?
moritz well, should still be new enough 16:49
masak true.
walk &
sisar i'm 32-bit 16:50
well, my laptop is :)
TimToady :D
sisar fyi, i'm Inf-bit , i think
flussence
.oO( I think I'm ebcdic... )
16:51
TimToady hmm, nothing in that program should be coming anywhere near Inf
moritz worked here, took 3m9s 16:52
sisar should i recompile rakudo ?
moritz sisar: did you 'make install'? 16:53
16:53 am0c left
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...
the ▘▝▀▖▌▞▛▗▚▐▜▄▙▟█ looked really cool when it was red, but now it's not... 16:55
sisar i can't make sense of the errors. 16:58
"in file '(file unknown)' line 17" why is file unknown ?
16:59 birdwindupbird left
moritz sisar: because it's probably not while parsing the file, but in some intermediate step 16:59
TimToady yes, it looks like a version skew error 17:01
finding the wrong parrot or some such
17:01 lateau joined
sisar rebuilds rakudo, parrot, nqp 17:02
17:05 thou joined
TimToady is anyone else on 32-bit hardware? that hasn't been eliminated that I know of 17:07
17:09 lateau left
jnthn o/ 17:09
jnthn made it to Gothenburg :)
17:09 lateau joined
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
now it's fixed
rosettacode's been giving me that a lot lately
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
re gist.github.com/2017093, I dearly hope it's not becaue the path happens to have a ' in it... 17:13
felher jnthn: i fear it is. 17:15
jnthn bah
sisar jnthn: hm. rakudo can't handle file names with a ' ?
felher jnthn: i have the same problem once i renamed the file to include a "'"
17:16 lateau left
TimToady that's it 17:16
jnthn It'll be soemthing silly, no doubt
TimToady probably a good spot for an injection attack :)
jnthn bah
Found it 17:17
felher That was fast :)
TimToady he didn't say he'd fixed it :)
felher True :)
jnthn Well, got a patch, but gotta wait to see if it helps :) 17:18
17:19 Moukeddar joined
sisar :| , i should have waited. now i gotta recompile after jnthn's fix 17:20
jnthn Sorry for fixing things :P
sisar LOL 17:21
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
nm.
I found it.
Sec while I fix it. 17:23
K, should be fixed.
17:24 Moukeddar left
sisar after recompiling rakudo, the error is almost the same, but with 'in file '(file unknown)' line 153725337'. Line 153725337 !! Wow ! 17:24
wait, the line number is different for every try 17:25
geekosaur mmm, uninitialized data 17:26
sisar another interesting observation, it gives out huge line nos, but after every three or so tries, it returns to line 17 ! 17:27
jnthn blames IMCC 17:28
sisar submitted 4 ubuntu-related crash reports today, found one rakudo bug 17:30
jnthn sisar++ 17:31
sisar wonders if bugs have a way of finding him ?
s/finding/targeting
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
sisar jnthn: IMCC ? 17:33
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..."
sisar never mind, Intermediate Code Compiler
jnthn sisar: yes, that
dalek kudo/nom: b13c517 | jonathan++ | src/Perl6/Actions.pm:
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
sisar jnthn++
jnthn masak: But the way they've been left in feels...accidental. 17:36
I mean, it points out why they are different rather than introducing them as existing. 17:37
masak: Plus it's a mess.
masak you have a point.
I'll see what I can do.
jnthn It doesn't say what PRE gets at the argument
Then
And the C<POST>
submethod gets the return value as the topic, just as exit phasers do.
YEAH GOOD LUCK
masak :P 17:38
I reflected on that one too.
jnthn That's only gonna work if you write submethod POST($_) { } :)
masak ok, I'll simply remove them.
jnthn Well, up to you :)
masak we can toy with introducing them as a CallHOW extension.
and then maybe spec them back if we feel like it.
jnthn We can keep them, they just need to be spec'd sufficiently that I can actually do a first cut of them :)
Also, do we call all of them up the inheritance chain, etc. 17:39
masak hm, yes.
jnthn Yes, it would be trivial to do them as a module. :)
masak don't worry about submethod PRE and POST. worry about block-level PRE and POST :)
masak goes about un-spec'ing submethod PRE and POST, too
jnthn :)
OK
fglock o/ 17:40
jnthn Let's do them in a module first.
And see how that works out.
o/ fglock
I'll see if I can do block level PRE/POST amongst my $teaching-work :) 17:41
masak \o/ 17:42
dalek ecs: 937f37f | masak++ | S04-control.pod:
[S04] unspec submethod PRE/POST

See <irclog.perlgeek.de/perl6/2012-03-11...275742> for the discussion that precipitated their removal. Anyone with a working implementation of them is free to add them back. :-)
17:48
masak I promise not to decimate the spec any more today. :) 17:56
jnthn Ouch, it looks like my last patch may have oddly busted something... 17:58
jnthn checks
18:01 pmurias left 18:04 sudokode left
sisar jnthn: the patch worked 18:04
18:05 GlitchMr42 joined
sisar bash has issues with filenames with a ' ? 18:05
18:05 pmurias joined, GlitchMr left 18:06 GlitchMr42 is now known as GlitchMr
jnthn sisar: It's OK, it works, I was doing something else silly :) 18:06
18:08 sudokode joined
sisar jnthn: phew, then i don't have to recompile :) 18:10
'night #perl6 ! 18:14
sisar zzz..
geekosaur sisar, yes, ' is full quoting (no variable expansion)
fglock pmurias++ # node.js runtime 18:16
cognominal fglock: ??? 18:17
fglock pmurias added support for node.js to p5-to-js 18:18
pmurias fglock: hi
cognominal nice 18:19
pmurias fglock: it still works on d8?
fglock I fixed it a little - now it works :)
fglock installs node 18:22
jnthn masak: gist.github.com/2017537 fwiw 18:23
Hacky and incomplete, mind :)
dinner &
[Coke] sorear: anythign I can do to diagnose why this step takes so long on my 64bit os x box?: 18:28
cd src && NIECZA_KEEP_IL=1 mono ../boot/run/Niecza.exe -C STD 18:29
moritz w 13
sorry
18:35 sisar left, Vespakoen joined
masak jnthn: nice. :) 18:37
jnthn: how does it treat private methods and submethods?
18:43 wolfman2000 left
fglock pmurias: $ node perlito5.js -Bjs t5/01-sanity.t 18:44
18:45 bbkr left
pmurias fglock: checking... 18:48
fglock hmm - the CORE prototypes will be missing, because they were discarded after compiling the compiler 18:50
maybe - I need to check
18:51 pjcj left
pmurias fglock: ? 18:52
fglock: most tests pass
prove -e 'node perlito5.js -Bjs' t5 # is much nicer than the find abomination
fglock: do you have node installed? 18:53
fglock yes
nice - prove works for me 18:54
pmurias tests 21 and 22 fail
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
environment
pmurias fglock: do perlito5 and perlito6 code share code? 18:56
18:57 ascrazy joined
fglock not anymore, perlito5 is now completely rewritten 18:57
18:57 ascrazy left
pmurias it might be better to seperate them into to directories rather then have a 5 and 6 prefix 18:57
* postfix 18:58
fglock they need to have different names, to allow installation in usr/bin/whatever 18:59
pmurias on executables yes
fglock they share lib5
pmurias but on lib,src,t,README
fglock hmm - dunno, I was thinking about splitting even more, with a top-level perl6 and perl5 19:01
pmurias with perl5 containing Perlito5 and perl6 Perlito6? 19:03
fglock yes (maybe)
ack TODO src5 | wc -l # 42 19:05
pmurias fglock: re split, that's what I meant 19:06
fglock: where should we keep strict setting? 19:10
so "no strict" is the default 19:13
we need that for running t/base
fglock %Perlito5::STRICT I think - this can be declared in Perlito5::Runtime 19:14
t/base is pretty difficult 19:15
re t5/21-test.t - 'use' is implemented in the wrong place (as a ast preprocessor), not available to eval() 19:19
it's a bug
19:19 sporous left, sporous joined 19:22 snearch left
[Coke] sorear: AHAHAHA. no diagnostics necessary - just complain on IRC and it finally proceeds to the next step. 19:23
(probably doesnt' help that I'm building ghc in another tab.) 19:26
tadzik seems that Parrot can reliably create and run 120000 tasks on 8 threads these days 19:29
19:29 birdwindupbird joined
[Coke] in a branch, no? 19:38
tadzik aye 19:40
19:41 wayland76 joined 19:44 wayland76 left 19:45 MayDaniel joined
pmurias fglock: should all new tests in t5 have a number? 19:46
fglock yes, I think it helps - the most basic tests are then run first 19:52
jnthn back from noms :) 19:57
Apart from the bit where a candle almost set my hair on fire, it was pretty good. :)
masak: Private methods and submethods don't get PRE and POST called on them. 19:58
sorear [Coke]: that step always takes the longest time - was around 90s on the dinosaur 20:01
good * #perl6 20:03
fglock sorear: o/ 20:04
sorear o/ fglock
masak jnthn: nice. 20:06
nom: class A { submethod !foo {} }
p6eval rakudo b13c51: ( no output )
pmurias fglock: how can I test strict?
masak nom: class A { submethod !foo {} }; say "alive"
p6eval rakudo b13c51: OUTPUT«alive␤»
pmurias fglock: we need eval to catch exceptions first?
jnthn masak: That's prolly kosher, though pointless. 20:07
masak: Private methods are never virtual anyway.
masak nod. 20:08
sorear jnthn's doing PRE/POST now too?
jnthn sorear: Likely not tonight. 20:09
fglock yes, we need that - eval-block is not implemented
moritz but since strict.pm errors are compile time, you need STRING-eval anyway
jnthn sorear: But hopefully in the next copule of days, if I have the ork after work.
fglock it is easy to add, I'll take a look (now adding special vars, I want $^O) 20:10
ah, yes - you can just use string eval 20:11
20:18 skids joined
jnthn moritz: ooc, how is the Sink branch? Did I need to look at that? 20:28
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:31
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:32
jnthn: so we can't use normal signatures 20:33
that's very inconvenient 20:34
jnthn moritz: We generally can 'cus the binder marshalls. 20:35
fglock pmurias: eval-block is parsed; it needs some emitter work
jnthn For strings and integers, at least.
20:36 ksi joined
fglock afk 20:37
20:38 birdwindupbird left
moritz what about lists and hashes? 20:39
jnthn moritz: I believe RPA becomes Parcel, and hashes become a Hash. 20:40
20:40 GlitchMr left
moritz hm 20:40
jnthn moritz: Look for Rakudo_types_parrot_map
moritz so we just need somehting that traverses them, and upgrades their elements 20:41
jnthn It ain't recursive, true. 20:42
Implementable though, I guess. 20:43
moritz desirable?
jnthn Maybe. What's your use case, ooc? 20:44
moritz I know I've needed that for the typed exceptions so far
lists of matching candidates for example
jnthn But those should be lists of Perl 6 code objects. 20:45
moritz hm, right
20:45 thou left
moritz I know I've needed it recently for something... 20:45
for X::Package::Stubbed
well, we'll see 20:46
jnthn For that one you do have the option of passing the list of stubbed packages, mind.
And method message grabs their names
In general, that is perhaps a better approach. 20:47
Like, if two roles provide a conflicting method, include a list of the roles, not just their names.
20:47 Moukeddar joined
jnthn (Not as a workaround, but because it's more useful.) 20:48
[Coke] sorear: it took HOURS here.
sorear Weird 20:49
Swapping?
[Coke] could be.
now working on NieczaActions 20:51
which is at 10s of minutes.
20:52 fglock left
[Coke] there's over 600M free at the moment. 20:52
sorear what mono version? are you using --gc=sgen? 20:53
moritz jnthn: I'm a bit sceptical about that 20:55
jnthn: because in the case of errors, we sometimes have packages whose composition has failed
so I don't know if they can .gist correctly 20:56
jnthn It can't, but it can .HOW.name
20:56 Patterner left
[Coke] sorear;I'm using whatever "make" gives me. checking the version... 20:56
Mono JIT compiler version 2.10.6 (tarball Fri Mar 9 18:42:58 EST 2012) 20:57
sorear of course it's also possible there was a massive regression recentyly 20:58
20:58 Psyche^ joined, Psyche^ is now known as Patterner 21:06 alvis joined 21:07 Moukeddar left 21:14 Trashlord left 21:18 Trashlord joined 21:27 kaare__ left 21:28 VXZ joined
dalek ok: 0e0ac08 | moritz++ | src/ (4 files):
several corrections by Philipp Marek
21:32
sorear jnthn: I heard news about the fire in Slovakia :( 21:38
[Coke] +# 03/11/2012 - rakudo++ ; niecza (96.21%); pugs (38.97%) 21:43
+"niecza", 20307, 1, 757, 1540, 22604, 23759
+"pugs" , 8227, 0, 3022, 1343, 12592, 23568
+"rakudo", 21106, 31, 626, 1888, 23485, 24026
jnthn sorear: Same :(
sorear: Sad. It was really old. 21:44
[Coke] b: say 21106*.01; say 21106*.39-8227
p6eval b 1b7dd1: OUTPUT«211.06␤4.34␤»
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
sorear ah, (US news)--
they told me it was a brush fire
tadzik supposedly they still don't know 21:49
jnthn tadzik: Ah, I'd read the grass was set on fire by dropped matches.
masak throws his theory into the fray
it was a stray meteorite.
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
sorear meh, they deserve the -- for other reasons 21:51
jnthn :)
jnthn never actually visited that particular castle, but did go to quite a few of them. 21:53
phenny: "krasna horka"? 21:55
phenny jnthn: "Krasna Horka" (sv to en, translate.google.com)
jnthn phenny: sk en "krasna horka"?
phenny jnthn: "beautiful hot" (sk to en, translate.google.com)
jnthn ouch!
tadzik beautiful mountain, I think
horka sounds like "górka" 21:56
jnthn Horka actually means "little hill" I believe.
Though...
tadzik phenny: "górka"?
phenny tadzik: "hillock" (pl to en, translate.google.com)
21:56 fsergot left
tadzik eek 21:56
jnthn phenny: sk en "krasna uhorka"?
phenny jnthn: "beautiful cucumber" (sk to en, translate.google.com)
jnthn ;)
tadzik "góra" is "hill"
jnthn hora is mountain in Slovak, iirc.
tadzik "górka" is "small hill"
that'd match
jnthn aye
Just some s/h/g :) 21:57
21:58 MayDaniel left
dalek p/new_make: 282e894 | bacek++ | tools/build/Makefile.in:
Revert "Parallelize stage0 build"

This reverts commit e916eda7eca1299fc709b7d0fbecbd6745198a50.
21:59
22:00 lestrrat left 22:01 lestrrat joined 22:07 fsergot joined 22:16 ksi left 22:19 nnunley joined 22:20 wamba joined 22:22 wamba left
bacek_at_work jnthn, if you have time can you try new_make again? 22:22
22:23 wamba joined 22:25 wamba left 22:39 Moukeddar left 22:50 mjreed joined
mjreed rakudo: constant @vecs = ([1,0,1], [0,-1,1], [-1,0,1], [0,1,1]); 22:50
p6eval rakudo b13c51: ( no output )
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␤»
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.
jnthn mjreed: That restriction was only lifted within the last couple of weeks, and didn't make it into a release yet.
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 :)
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... :)
masak aye :) 22:55
22:55 lutok left, Patterner left 22:57 Psyche^ joined, Psyche^ is now known as Patterner 23:01 Patterner left
jnthn sleep & 23:04
23:04 Psyche^ joined, Psyche^ is now known as Patterner 23:30 pjcj joined 23:31 pjcj left 23:34 pjcj joined 23:38 pmurias left 23:45 havenn joined 23:48 PacoAir left 23:52 Patterner left