»ö« 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.
masak just posted my method PRE/POST rant to p6l. 00:06
comments are very welcome. 00:07
masak 'night, #perl6 00:18
tadzik 'night 00:19
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
moritz good morning 06:35
sorear good moritz 06:42
pmurias fglock: ping 09:57
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.
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
tadzik good day 10:33
fsergot o/ 10:34
tadzik hi fsergot 10:36
moritz \o 10:40
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.
masak ahoj, #perl6 12:15
yay, me gots a TheDamian reply <3
sjn o/ 12:17
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
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
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. :)
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.
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.
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.
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
masak yeah, forget 'will begin'. :) 'will enter', then. 13:29
moritz same problem 13:30
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
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.
moritz activate, yes, but not run its code 13:37
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
masak yeah, we're talking past each other. 14:05
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
TimToady the 'will' is implied by the uppercase, which says "I'm a hook, and naturally future" 14:27
TimToady the uppercase says "STOP! I'm doing something weird", but a declaration is already weird. 14:30
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
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
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
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
felher I see. Thanks :) 16:35
TimToady since it's doing 4-sized cells
TimToady niecza used to do the recursive catalan if you declared it: constant @catalan = 1, ... 16:37
but that broke at some point
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
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 ?
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
sisar rebuilds rakudo, parrot, nqp 17:02
TimToady is anyone else on 32-bit hardware? that hasn't been eliminated that I know of 17:07
jnthn o/ 17:09
jnthn made it to Gothenburg :)
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 "'"
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
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.
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.
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
sisar jnthn: the patch worked 18:04
sisar bash has issues with filenames with a ' ? 18:05
jnthn sisar: It's OK, it works, I was doing something else silly :) 18:06
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
masak jnthn: nice. :) 18:37
jnthn: how does it treat private methods and submethods?
fglock pmurias: $ node perlito5.js -Bjs t5/01-sanity.t 18:44
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
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
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: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
[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
[Coke] in a branch, no? 19:38
tadzik aye 19:40
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
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.
fglock afk 20:37
moritz what about lists and hashes? 20:39
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
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
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.
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.
[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
[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
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.
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)
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
dalek p/new_make: 282e894 | bacek++ | tools/build/Makefile.in:
Revert "Parallelize stage0 build"

This reverts commit e916eda7eca1299fc709b7d0fbecbd6745198a50.
21:59
bacek_at_work jnthn, if you have time can you try new_make again? 22:22
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
jnthn sleep & 23:04