»ö« 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:05 tokuhirom left 00:12 soh_cah_toa left 00:14 ponbiki left 00:20 donri left 00:27 whiteknight left 00:39 soh_cah_toa joined 00:47 LimitSupremum joined 00:50 ponbiki joined 00:59 bbkr joined 01:01 ponbiki left 01:02 ponbiki joined
[Coke] I haven't heard any discussion about that. 01:21
01:21 ponbiki left 01:25 ponbiki joined 01:33 ZaphrodZenovka left 01:42 jaldhar joined 01:46 LimitSupremum left 01:47 ponbiki left 01:49 ponbiki joined 02:19 slavik joined 02:21 slavik2 left 02:33 soh_cah_toa left 02:37 daniel-s joined
[Coke] "awfully quiet in here." 02:44
colomon is busy using rakudo (master) to prepare sheet music 02:49
[Coke] My son might be interested in whatever you're doing to make that happen. 02:54
nom: say 3 ≤ 4 02:56
p6eval nom: OUTPUT«===SORRY!===␤Confused at line 1, near "say 3 \u2264 4"␤»
03:02 dayangkun joined
lue
.oO(Lilypond in P6)
03:03
[Coke] nom: sub infix:<÷>($l, $r) { return $l / $r; } say 4÷2; 03:04
p6eval nom: OUTPUT«===SORRY!===␤Confused at line 1, near "sub infix:"␤» 03:05
[Coke] master: sub infix:<÷>($l, $r) { return $l / $r; } say 4÷2;
rakudo: sub infix:<÷>($l, $r) { return $l / $r; } say 4÷2; #whoops
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Confused at line 22, near "sub infix:"␤»
[Coke] stares at that.
03:06 ggoebel joined
lue rakudo: sub infix:<÷>($a, $b) { $a / $b ; }; say 4÷2; 03:07
p6eval rakudo 922500: OUTPUT«2␤»
lue nom: sub infix:<÷>($a, $b) { $a / $b ; }; say 4÷2;
p6eval nom: OUTPUT«===SORRY!===␤Confused at line 1, near "say 4\x{f7}2;"␤»
colomon [Coke]: sorry for getting distracted, I'm using the p6 ABC module and LilyPond 03:12
03:17 odoacre joined
TimToady niecza: sub infix:<÷>($a, $b) { $a / $b ; }; say 4÷2; 03:21
p6eval niecza v8-52-g3afe236: OUTPUT«2/1␤»
03:23 Su-Shee joined 03:27 Su-Shee_ left 03:30 ZaphrodZenovka joined 03:40 rdesfo left 03:42 LimitSupremum joined
TimToady tadzik: see en.wikipedia.org/wiki/Birds_of_a_Fe...mputing%29 03:42
sorear ooh thanks I was curious too 03:43
03:48 birdwindupbird joined 03:52 jaldhar left 03:53 jaldhar joined 04:06 dayangkun_ joined 04:09 dayangkun left 04:15 satyavvd joined 04:17 kaare_ joined 04:26 [particle]1 joined 04:29 [particle] left
moritz good morning 04:30
pmichaud good morning, #perl6
04:39 jaldhar left 04:40 jaldhar joined 04:43 abercrombie left 04:47 cotto left 04:53 jaldhar left 04:54 jaldhar joined 04:58 [particle]1 is now known as [particle] 05:08 jaldhar left, _jaldhar joined 05:14 _jaldhar left 05:16 _jaldhar joined 05:50 koban joined 05:58 meraxes left 05:59 cotto joined, meraxes joined 06:02 wtw joined 06:15 Vlavv` left
moritz nom: say callframe.my.keys 06:17
p6eval nom: OUTPUT«$=POD GLOBALish EXPORT $?PACKAGE $_ $/ $!␤»
moritz nom: do { say callframe.my.keys }
p6eval nom: OUTPUT«$_ $/ $!␤»
06:17 Vlavv_ joined
moritz nom: sub f { say callframe.my.keys }; f 06:18
p6eval nom: OUTPUT«$_ $/ $! &?ROUTINE RETURN call_sig␤»
06:23 cotto left, wamba joined
mberends good morning! 06:28
moritz \o mberends 06:29
tadzik good morning #perl6 06:32
moritz good morning tadzik
mberends o/ moritz, tadzik
06:32 Bzek joined 06:46 cotto joined 06:47 LimitSupremum left 06:48 LimitSupremum joined 06:53 drbean joined, cotto left
pmichaud mberends: o/ 06:57
mberends: we still haven't had a chance to give zavolaj much attention... but it's still on my plate 06:58
mberends pmichaud: ok, plenty on all our other plates too :)
pmichaud right now I'm going to do a review of where we are with nom and figure out where to go next 07:00
07:00 cotto joined 07:02 masak joined
masak ah, guritings, #perl6. 07:03
tadzik herro
masak aah.
mberends gud monning mask
masak is a heckler at the back of some bearded dude's course today 07:04
mberends poor dude ;) 07:05
masak oh, TimToady++ set me right on why BoF has that expansion. 07:06
"Byrdes of on kynde and color flok and flye allwayes together." :) 07:07
mberends heh
masak the English spelling back then was so much saner. :) 07:08
moritz pmichaud: did you notice the discussion about the mem leak yesterday? 07:11
pmichaud moritz: yes.
moritz: I haven't had a chance to look into it, but will do so shortly. I'm guessing much of my work this morning is going to be tracking down regressions and fixing them. 07:12
I also noticed the messages about the German Perl Workshop in 2012
if it's in March... I've also heard rumors of a Perl 6 hackathon in Oslo in March 07:13
it would be nice if they could be scheduled such that people (me!) could attend both :)
I think that the Dutch Perl Workshop has also been in that timeframe 07:14
(at least traditionally)
moritz right, it was 5th of March this year
07:15 pochi left, pochi joined, soimort joined
moritz sjn: are you involved in the organizatioin of the Perl 6 hackathon in Oslo in 2012-03-* ? 07:16
mberends I'm going to suggest to the NLPW organizers that they use Friday 2012-03-09 or Saturday 10th.
oh wait, NLPW usually does only the Saturday, so 2012-03-03 would be a better fit 07:18
pmichaud I think either could work. 07:19
at least, either could certainly work out for me :-)
07:22 soimort left, kboga joined
masak pmichaud: re-use/coupling conflict: it's waterbed theory! :) 07:23
pmichaud indeed
masak (for non-pmichaud people: I'm commenting on jnthn++'s slides)
07:24 mj41 joined
masak ooh, a modeling slide! 07:24
this might be my favourite topic at present. 07:27
we in the comp. eng. world could really learn from the physicists in this case.
07:27 nordicdyno joined
pmichaud having seen masak++'s talk on Monday and jnthn++'s talk today makes me feel like I've fallen behind a bit in keeping up with the field in general 07:28
masak they seek the model that gives them the most explanatory power, and the best fit to what they observe.
pmichaud (the ideas all make sense and I've used/had them before... just not seen them explained elsewhere)
masak pmichaud: I've learned more in the past half year have been very refreshing and entirely new to me.
uhm, parsefail. 07:29
pmichaud moritz: is moritz.faui2k3.org/tmp/valgrind.log the result of the memory leak with perl6 -e 'while 1 { }' ?
masak "what I've learned in the past year has been very refreshing", etc. 07:30
pmichaud masak: I read it that way. :-)
07:30 nordicdy_ joined
masak I think I was trying to say one thing, then wanted to say another. sentence superposition fail :) 07:31
07:32 nordicdyno left 07:33 nordicdyno joined
lue .oO[ I, for one, feel like I've never been anywhere near this field :) ] 07:34
07:35 nordicdy_ left
masak lue: a model is a little fantasy world that you build inside the computer to mimic what you want to operate on in your program. 07:35
lue: so if you're a travel agency, your model probably contains journeys. if you're a computerized bakery, your model may contain dough and ovens. 07:36
pmichaud if you're a fashion designer, your model contains models :-P
masak :P
pmichaud: don't objectify models! :P 07:37
pmichaud (yes, I know, I'm not being helpful. I should be heckling jnthn++ and not masak++)
masak :)
mberends would like to model model trains
lue
.oO(what if you want to model the concept of models in general?)
masak lue: that happens, too.
pmichaud lue: what, you're wanting a metamodel? ;-)
jnthn needed another slide here 07:38
("The example for this class")
lue I could come up with a whole nonsensical list of possible things to model (including the antimodel) 07:39
pmichaud also, I don't remember if the slide has "class" or "course". Needs to be the latter. :)
(I'll record my observations on irc, then jnthn++ and I can review later if he wants :)
masak lue: here's the interesting thing though, which will give you a kick start in the field: people tend to think a bit, and then go with the first model that they find that works.
07:39 mort joined
masak lue: and then they miss all the advantages of picking a model that really fits their problem. 07:39
lue: what you need is to be able to evolve your model over time to meet the needs that you discover over time. 07:40
lue: and have the code evolve in sync with the model.
pmichaud I wonder if jnthn knows that there's actually a company with the same name as his example. :-)
masak :D
pmichaud maybe it should be "Travelnom" or something :)
"LolTravel"
lue
.oO(Does wanting to rewrite SUPERNOVA because I can't add blocks-in-blocks and other new features well count as the "choose the first one" method?)
07:41
Wait, that sentence came out not quite right. 07:42
tadzik nom: my $a = 7; say callframe.my<$a>; for callframe.my.kv -> $k, $v { say "$k $v" }
p6eval nom: OUTPUT«7␤$a 71␤GLOBALish 79␤EXPORT 83␤$?PACKAGE 87␤$=POD 91␤$_ 95␤$/ 99␤$! 103␤»
lue
.oO(Is the fact that I want to rewrite SUPERNOVA because I can't add new features easily/well because I did the "think a bit and choose the first" way of doing things?)
tadzik how does this work?
masak tadzik: what do you mean? 07:43
tadzik masak: first say says a is 7. Sencond, in a loop, says it's 71
pmichaud the $v looks suspect 07:44
tadzik yeah
also...
pmichaud nom: my $a = 7; say callframe.my.kv.perl
p6eval nom: OUTPUT«(("\$a", 39), ("\$=POD", 47), ("GLOBALish", 59), ("EXPORT", 63), ("\$?PACKAGE", 67), ("\$_", 71), ("\$/", 75), ("\$!", 79)).list␤»
tadzik nom: my $a = 7; for callframe.my.kv -> $k, $v { say $k => $v }
p6eval nom: OUTPUT«"\$a" => 63␤"GLOBALish" => 71␤"EXPORT" => 75␤"\$?PACKAGE" => 79␤"\$=POD" => 83␤"\$_" => 87␤"\$/" => 91␤"\$!" => 95␤»
tadzik oh, it worked now
but!
pmichaud nom: my $a = 7; say callframe.my.perl
p6eval nom: OUTPUT«$a 39 $=POD 47 GLOBALish 51 EXPORT 55 $?PACKAGE 59 $_ 63 $/ 67 $! 71␤»
pmichaud nom: my $a = 7; say callframe.my.WHAT 07:45
p6eval nom: OUTPUT«EnumMap()␤»
tadzik nom: my $a = 7; for callframe.my.keys -> $k { say $k => callframe.my{$k} }
p6eval nom: OUTPUT«"\$a" => Any␤"GLOBALish" => Any␤"EXPORT" => Any␤"\$=POD" => Any␤"\$?PACKAGE" => Any␤"\$_" => Any␤"\$/" => Any␤"\$!" => Any␤»
tadzik hrm
pmichaud I'm suspicious of the .my return value.
tadzik nom: callframe.my<$=POD>.WHAT
p6eval nom: ( no output )
tadzik nom: callframe.my<$=POD>.WHAT.say
p6eval nom: OUTPUT«Array()␤»
tadzik hm 07:46
pmichaud I'm thinking that .my returns something hash-like that isn't really a Perl 6 Hash
and so .kv is having trouble with it
moritz nom: say callframe.my.ky.perl 07:47
p6eval nom: OUTPUT«Method 'ky' not found for invocant of class 'EnumMap'␤ in mu <anon> at /tmp/3ljaTmIog7:1␤ in mu <anon> at /tmp/3ljaTmIog7:1␤␤»
moritz nom: say callframe.my.kv.perl
p6eval nom: OUTPUT«(("\$=POD", 39), ("GLOBALish", 55), ("EXPORT", 59), ("\$?PACKAGE", 63), ("\$_", 67), ("\$/", 71), ("\$!", 75)).list␤»
pmichaud nom: say callframe.my.pairs.perl
p6eval nom: OUTPUT«("\$=POD" => 39, "GLOBALish" => 55, "EXPORT" => 59, "\$?PACKAGE" => 63, "\$_" => 67, "\$/" => 71, "\$!" => 75).list␤»
07:48 im2ee joined
tadzik \$/ 07:48
it's like \o/
masak :)
moritz pmichaud: what makes you suspicious of the return value of .my?
pmichaud \$/ is what you do when you get a bag full of money falling on your head
masak I just made a few bugfixes to farm.pl -- now it's entirely possible to write an AI class and have it win the game. 07:49
07:49 odoacre_ joined
pmichaud moritz: what are the values there? 07:49
masak I'll try that now, but I'd still like someone else to *submit* the first (possibly naive) AI class.
we have to decide how we'll store all the submissions.
pmichaud i.e., why is '$a' mapped to 63
moritz pmichaud: I have no idea :/ 07:50
nom: say callframe.my<$=POD>.perl
p6eval nom: OUTPUT«Array.new()␤»
07:51 Mowah joined
pmichaud moritz: anyway, that's why I'm suspicious... the values look like something other than the actual values 07:51
sorear my guess is that those are P-register numbers from the LexInfo
masak sorear++
sorear I wouldn't put it past imcc and POST::Compiler to waste that many P-registers
I'm planning to have callframe.my return the same sort of object as MY:: 07:52
pmichaud nom: { my $a = 7; say callframe.my.perl }
p6eval nom: OUTPUT«$/ 35 $! 39 $a 43 $_ 47 call_sig 51␤»
moritz nom: my $a = 1; callframe.my<$a> = 3; say $a 07:53
p6eval nom: OUTPUT«3␤»
moritz so I can't simply decontainerize
pmichaud I think you have to build an actual hash or enummap 07:54
looking at code
my $h := nqp::create(EnumMap);
nqp::bindattr($h, EnumMap, '$!storage', $lexpad);
nqp::bindattr($self, CallFrame, '%!my', $h);
tadzik moritz: want a quick late report?
moritz tadzik: sure
pmichaud I think that might not work
ohhh! 07:56
I know the problem. Iterators on LexPads probably don't return the same thing as iterators on Hash PMCs
masak d'oh
pmichaud that's my guess... testing now.
tadzik moritz: so. Formatting codes are here. Embedding Pod Blocks in formatting codes is not supported yet, and for the record Damian himself isn't really sure if we should keep that in the spec and implementation. But I'll try to make it work, and if it turns out it's not so complicated it'll be fine. Now, tables tuning in Pod::To::Text as you pointed out, some workaround to expose Pod::Parser... and I think
that's it :)
moritz \o/ 07:57
lue Wait, POD blocks *in* formatting codes? I don't remember seeing that in my multiple skimmings of S26... 07:58
tadzik lue: I had to read that like ten times to get the point
so, you can wrap an intire pod block in B<> or so
moritz in terms of HTML, that would be like adding block elements to inline elements 07:59
masak perl6: class C { has $x; my $x }; say "alive"
moritz aka "weird"
p6eval niecza v8-52-g3afe236: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/gqmp2ustdu line 1:␤------> class C { has $x; my ⏏$x }; say "alive"␤␤alive␤»
..rakudo 922500: OUTPUT«===SORRY!===␤Redeclaration of symbol $x at line 22, near " }; say \"a"␤»
..pugs: OUTPUT«alive␤»
moritz std: class C { has $x; my $x }
p6eval std 516268a: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (see line 1) at /tmp/x0tzIwnZG_ line 1:␤------> class C { has $x; my $x⏏ }␤ok 00:01 119m␤»
moritz tends to agree with rakudo here
masak too
TimToady, sorear: ^^ 08:00
I think that's a bug in STD and Niecza.
tadzik moritz: I think the point is to treat formatting codes just as ordinary pod blocks but with fancy syntax
that complicates the parser a bit though
08:01 dayangkun_ left, dayangkun_ joined
lue tadzik: I actually thought about if you could do that. And also allowing formatting codes to cross blocks. (e.g. =begin para\nHello B<World.\n=end para Bye!>) 08:01
s/para Bye!/para\nBye!/ 08:02
sorear masak: I still don't get whatever has $x is supposed to mean.
tadzik lue: that's actually a parse warning :) S26 says that in this case =end should close the formatting code too
lue That's what I thought should happen. 08:03
moritz sorear: it install $x as an alias for $!x
sorear moritz: ...what?
you mean like a macro?
tadzik although Damian said that if we're doing unification we should maybe allow all kinds of blocks to overlap, so I don't know what's the current trend
moritz tadzik: I'm against it
tadzik: ie if you want my opinion, deprioritize it 08:04
tadzik moritz: what do you mean as deprioritize?
moritz tadzik: focus on all other remaining tasks (if any) first
tadzik my thought was: keep formatting codes not as powerful as pod blocks, and if you really want to bold the whole paragraph, use =begin bold or so
moritz sorear: seems like, yes. Can't be a normal lexical lookup, can it?
lue I've always seen the formatting codes as being used for short text, not as spanning multiple lines. Too bad there aren't block formatting codes (e.g. =format B or something like that)
pmichaud aha 08:05
tadzik moritz: okay
moritz lue: they can be made to exist if we want them
pmichaud okay, I figured out what's going on with .my 08:06
08:06 dayangkun_ left, nordicdy_ joined
cognominal_ jonthn, I sing your praise here : plus.google.com/116438127795030726...wiZxrq8DJg 08:06
pmichaud in Parrot, the HashIteratorKey returns the register number for $pair.value instead of the value itself
masak tadzik: what moritz said. 08:07
pmichaud I'm guessing that's a bug
masak so sorear++ was right.
pmichaud well, I'm guessing it's the register number
tadzik masak: well, my kindle is broken for now so I can try some experimenting with crazy stuff while on the plane ;)
08:08 nordicdyno left
pmichaud it certainly looks like one. On the other hand, I'm surprised at the number of registers in even a barebones Parrot sub 08:08
nopaste coming shortly
tadzik also, I'll be traveling in time today ;)
lue I vote for block formatting.
tadzik oooh
=begin whatever :style('bold')
or so
moritz tadzik: if you run a debugger while time travelling, guess what you get :-)
tadzik Damian didn't want =begin bold because of namespace polluting and specialcases I think 08:09
lue Yeah. I feel like things that cover large areas should have large names, similarly for small things.
tadzik and his rationale for block if formattingcodes is "well, someone may want to bold every cell in a table"
lue++
08:10 odoacre_ left
moritz or =begin style :bold 08:10
or something like that
08:11 nordicdy_ left
lue For something like that, I think it should provide both the single-char version (:I) and long-name version (:important) 08:11
There could also be =format bold, if we want a separate directive (then have something like =unformat bold (that might not be the best choice though.)) 08:14
moritz lue: :!bold would be the idiomatic approach to negation
pmichaud gist.github.com/1153639 # lexpad iteration fail 08:15
lue nods
masak perl6: sub foo($x! = 42) { say $x }; foo(5); foo(); say "alive"
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Cannot put default on required parameter at line 22, near ") { say $x"␤» 08:16
..niecza v8-52-g3afe236: OUTPUT«===SORRY!===␤␤Cannot put a default on a required parameter at /tmp/UWWPB8CbZX line 1:␤------> sub foo($x! = 42⏏) { say $x }; foo(5); foo(); say "alive"␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/li…
..pugs: OUTPUT«5␤42␤alive␤»
08:16 masak left
pmichaud so, this tells me we cannot trust the .value method of Parrot iterators... at least where lexpads are concerned. 08:16
08:16 masak joined
masak perl6: sub foo($x! = 42) { say $x }; foo(5); foo(); say "alive" 08:16
tadzik off for a bit of Riga wandering
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Cannot put default on required parameter at line 22, near ") { say $x"␤»
..niecza v8-52-g3afe236: OUTPUT«===SORRY!===␤␤Cannot put a default on a required parameter at /tmp/tPCg084Lf5 line 1:␤------> sub foo($x! = 42⏏) { say $x }; foo(5); foo(); say "alive"␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/li…
..pugs: OUTPUT«5␤42␤alive␤»
pmichaud I'm also very surprised at the number of registers being used there
lue Some formatting codes would be tricky to do in block form, such as L<>, esp. when using L<here|here.com> (of course, then the question arises, is L<> something that *should* be allowed in block form?) 08:19
pmichaud From src/pmc/lexpad.pmc: 08:20
=item C<PMC *get_pmc_keyed(PMC *name)>
Return the lexical with the given name, or NULL (not PMCNULL), if the
lexical doesn't exist.
....NULL?
pmichaud sobs
sorear why?
pmichaud vtables almost never return NULL 08:21
masak ick.
sorear it's a semipredicate problem
masak yeah.
sorear lexicals can store PMCNULL
NULL is the most obvious failure value that isn't in the success domain
lue Goodnight all. I shall dream of my favorite time machine being able to take me to conferences. o/ 08:22
sorear this seems to me like the Most Useful Behavior from the standpoint of someone writing C ops (find_lex_dynamic et al)
masak "Metaoperators are operators that operate on operators. Did that make sense?" -- jnthn
pmichaud ...but it doesn't actually return NULL.
masak I just wrote a farm AI that won the game \o/ 08:29
moritz ...against whom?
masak: I pondered writing a form AI that does mostly random responses, and use that as comparison for a "real" AI to be written later on 08:30
masak moritz: against an empty player that can't win.
moritz: I'd like that.
I could make a submission of my AI, but I'd prefer if someone else did it first. 08:31
mainly to root out latent bugs and inconsistencies.
but now we know it works.
it can also play and win against itself in a three-player setup. 08:33
moritz chides masak for not paying attention in jnthn++'s class 08:35
08:36 cotto left, cotto joined
masak moritz: no, I'm actually interacting quite a bit with the class, too. 08:37
I've been nitpicking jnthn more than pmichaud has so far ;)
pmichaud jnthn++ says that the register numbers in the LexPad PMC are left-shifted by two bits 08:40
so, a value of 23 is really 5
08:41 cotto left
moritz nom: say 5 >>+ 2 08:42
p6eval nom: OUTPUT«===SORRY!===␤Missing << or >> at line 1, near " 2"␤»
moritz nom: say 5 +>> 2
p6eval nom: OUTPUT«===SORRY!===␤Confused at line 1, near "say 5 +>> "␤»
moritz can't remember the bitwise ops
08:43 Mowah_ joined
masak moritz: +> 08:43
moritz nom: say 5 +> 2 08:44
p6eval nom: OUTPUT«1␤»
moritz nom: say 5 +< 2
p6eval nom: OUTPUT«20␤»
moritz and the two last bits encode the type?
08:45 cotto joined
pmichaud yes 08:50
I/N/S/P
Parrot lexpad iteration bug filed as TT #2181
now to work around it in nom
moritz pmichaud++
pmichaud > my $a = 7; say callframe.my.pairs.perl 09:09
("\$a" => 7, "\$=POD" => [], "GLOBALish" => GLOBAL, "EXPORT" => EXPORT, "\$?PACKAGE" => GLOBAL, "\$_" => Any, "\$/" => Any, "\$!" => Any).list
moritz \o/ 09:10
masak I am currently going through a set of RC source files that I got from TimToady++ and renaming them from long hexdigit strings to the corresponding RC page name. 09:11
pmichaud > { my $a = 7; say callframe.my.pairs.perl }
Unmarshallable foreign language value passed for parameter '$value'
/o\
masak the objective being eventually turning these into tests and putting them in the test suite.
pmichaud masak++ masak++ 09:12
mberends masak: that sounds tedious. hopefully you can soon write a script to do that automatically. Laziness...
masak yeah. 09:13
I'm on "A". :)
but so far it's nice work that goes well with jnthn++'s course.
we'll see how far I get today.
ls | wc says I have 521 snippets.
I'm renaming about 2 a minute. 09:14
mberends strange, the number of p6 RC entries was between 300 and 400, notso? 09:15
moritz mberends: when? :-) 09:16
mberends may have lost track for a few days :-)
pmichaud TimToady++ has been reporting ~370 the last couple of days
he's eager to get above the number for Perl 5 09:17
masak mberends: yes, but there are >= 1 snippets per entry.
mberends aye
masak these things make it a bit less automatable.
09:19 mort left
masak TimToady: the macro at rosettacode.org/wiki/Assertions is bogus. the $x in 'macro assert' comes in as an AST, not as a string, as per S06. 09:26
moritz ... and we don't have any specs yet on what you can do with ASTs 09:27
sorear we hardly have any macro specs. 09:29
masak++ for doing real semantics-oriented thinking on macros
moritz right. We only have a vision for macros.
masak I went from vision to semantics during this conf. it's beautiful down here, I wish you were here. 09:30
sorear heh, "down"
I live at 27N or so, I think "up"
masak I .subst'ed from "in" to "up" to "down" :)
moritz s/down/over/ :-) 09:31
masak no, I was referring to some kind of hypothetical spec space in which macros have semantics. "down" makes sense because I'm now more Damian-empowered than before :P
perl6: class C { sub self { say "OH HAI" }; method x { say self.p } }; C.x 09:33
p6eval niecza v8-52-g3afe236: OUTPUT«Potential difficulties:␤ &self is declared but not used at /tmp/xgWyBzMCWp line 1:␤------> class C { sub self ⏏{ say "OH HAI" }; method x { say self.p ␤␤Unhandled exception: Unable to resolve method p in class C␤ at /tmp/xgWyBzMCWp line…
..rakudo 922500: OUTPUT«Method 'p' not found for invocant of class ''␤ in 'C::x' at line 22:/tmp/wggOsm9LYo␤ in main program body at line 22:/tmp/wggOsm9LYo␤»
..pugs: OUTPUT«OH HAI␤*** No such method in class Bool: "&p"␤ at /tmp/gOmd5DR33s line 1, column 53-60␤»
masak perl6: class C { sub self { say "OH HAI" }; method x { say self() } }; C.x
p6eval rakudo 922500, niecza v8-52-g3afe236: OUTPUT«OH HAI␤Bool::True␤» 09:34
..pugs: OUTPUT«OH HAI␤1␤»
moritz masak: I was about to try that too
masak :)
moritz rakudo++
niecza++
pugs++
masak moritz: jnthn, I and you thought of it at the same time :)
rakudo: class C { method x {} }; say C.can("x"); say C.can("y") 09:35
p6eval rakudo 922500: OUTPUT«␤»
masak huh?
moritz nom: class C { method x {} }; say C.can("x"); say C.can("y") 09:36
p6eval nom: OUTPUT«x␤␤»
sorear .can returns an iterator, that looks like iterator funkyness to me 09:37
moritz rakudo: class C { method x {} }; say C.can("y").WHAT # probably a Failure, no? 09:38
p6eval rakudo 922500: OUTPUT«␤»
masak mmmrmmr.
moritz rakudo: class C { method x {} }; say C.can("y").PARROT
p6eval rakudo 922500: OUTPUT«␤»
moritz rakudo: class C { method x {} }; say C.can("y").PARROT; say 'alive' 09:39
p6eval rakudo 922500: OUTPUT«␤alive␤»
moritz rakudo: class C { method x {} }; say pir::typeof__SP C.can("y"); say 'alive'
p6eval rakudo 922500: OUTPUT«Nil␤alive␤»
moritz rakudo: say Nil.WHAT
p6eval rakudo 922500: OUTPUT«␤»
moritz heh, Nil.WHAT returns Nil 09:40
and say() treats Nil as an empty list :-)
sorear niecza: say Nil.WHAT 09:41
p6eval niecza v8-52-g3afe236: OUTPUT«Nil␤»
sorear nom: say Nil.WHAT
p6eval nom: OUTPUT«Nil␤»
masak jnthn is describing default attribute initialization. I encourage people to go back to A12 and read about the initial proposal. it's... awful! :) 09:42
three levels of blocks, IIRC.
well, up to three levels.
so it's like, "has $.a = 42 means this, has $.a = { 42 } means that, has $.a = {{ 42 }} means some other thing".
pmichaud I'm having trouble figuring out what to do with the "call_sig" lexical. :( 09:43
09:43 im2ee_ joined
moritz filter it out :-) 09:43
pmichaud well, that's not exactly easy 09:44
moritz nom: sub f($x) { say ::('call_sig').WHAT }; f 1
p6eval nom: OUTPUT«Can only use get_what on a SixModelObject␤ in sub f at /tmp/ZJB7fL1S6u:1␤ in mu <anon> at /tmp/ZJB7fL1S6u:1␤ in mu <anon> at /tmp/ZJB7fL1S6u:1␤␤»
pmichaud yeah, that's the problem.
it's a Parrot PMC
moritz nom: sub f($x) { pir::say pir::typeof ::('call_sig') }; f 1 09:45
p6eval nom: OUTPUT«===SORRY!===␤error:imcc:syntax error, unexpected '\n'␤ in file '(file unknown)' line 35810484␤␤»
sorear why do you want to filter it out?
moritz nom: sub f($x) { pir::say pir::typeof__SP ::('call_sig') }; f 1
p6eval nom: OUTPUT«===SORRY!===␤error:imcc:syntax error, unexpected '\n'␤ in file '(file unknown)' line 56409268␤␤»
moritz sorear: only 6model based objects are allowed as arguments to Perl 6 code objects 09:46
in rakudo at least
09:47 im2ee left
moritz oooh, github.com/joyent/libuv looks interesting 09:48
sorear pmichaud: waitwaitwait. Why are the values returned from the LexPad being shifted? Last I heard only P lexicals were allowed anyway. 09:52
masak lunch &
09:52 pernatiy left
moritz sorear: you're so last month (or even last quarter?) 09:52
nom: my int $i = 1; say $i 09:53
p6eval nom: OUTPUT«1␤»
sorear moritz: is that a real Parrot lexical?
moritz sorear: yes
sorear: it appears in PAST trees as lexical_6model, but it does use parrot's *lex* ops 09:54
sorear: see parrot commits 25d1b0b7a..39218c2 09:55
tadzik any elegant way to find the maximum value of the first column in a matrix? 10:15
smarter than an ordinary loop
moritz >>.[0].max
tadzik like Array.mirror or... oh cool
flussence [max] @foo[*][0]?
tadzik thanks moritz
I tried something like @foo[0..*][0] but no success 10:16
moritz flussence: I fear that kind of multidim slicing is NYI
flussence aww
tadzik yeah, it seems so
reacts exactly as @a[0]
moritz it might need to become [*;0] in order to work out 10:17
unless there's some macro-ish rewriting behind the scenes
10:35 MayDaniel joined 10:36 Trashlord left 10:49 perlhack joined
perlhack hat 10:49
10:49 perlhack left, perlhack joined
perlhack :-)i dit not come for several days. 10:51
tadzik hello perlhack 10:52
perlhack hi tadzik
tadzik moritz: it's broken for Arrays for some reason :/
or I'm missing something 10:53
nom: Array.new(["foo", "bar", "dupa"], ["asd", "foobar "arr"], ["aroo", "brr", "bah"]); say (@a».[0]).perl; 10:54
p6eval nom: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
tadzik nom: my @a = Array.new(["foo", "bar", "dupa"], ["asd", "foobar "arr"], ["aroo", "brr", "bah"]); say (@a».[0]).perl;
p6eval nom: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
arnsholt Missing a comma
tadzik oh
arnsholt And a quote
tadzik nom: my @a = Array.new(["foo", "bar", "dupa"], ["asd", "foobar", "arr"], ["aroo", "brr", "bah"]); say (@a».[0]).perl;
p6eval nom: OUTPUT«(["foo", "bar", "dupa"], ["asd", "foobar", "arr"], ["aroo", "brr", "bah"])␤»
tadzik thanks arnsholt 10:55
arnsholt Least I could do =)
10:57 finanalyst joined 10:59 Trashlord joined
tadzik no, it's not an array case. Hmm 11:03
nom: my @a = List.new(["foo", "bar", "dupa"], ["asd", "foobar", "arr"], ["aroo", "brr", "bah"]); say (@a».[0]).perl;
p6eval nom: OUTPUT«(["foo", "bar", "dupa"], ["asd", "foobar", "arr"], ["aroo", "brr", "bah"])␤»
11:04 pernatiy joined, uniejo_in_riga joined 11:06 am0c joined
tadzik okay, I can workaround with map 11:07
yay great! 11:09
tadzik boards
11:14 MayDaniel left
masak class Room is Cool 11:15
perlhack! \o/
perlhack: we've missed you. 11:16
pmichaud back from lunch 11:20
moritz nom: my @a = [1, 2, 3], [7, 3], [8, 5]; say @a>>.[0].max
p6eval nom: OUTPUT«8 5␤»
moritz nom: my @a = [1, 2, 3], [7, 3], [8, 5]; say @a>>.[0].perl
p6eval nom: OUTPUT«([1, 2, 3], [7, 3], [8, 5])␤»
masak ooh! RC contains Haskell code translated from Perl 6. for some reason, I'm surprised by this.
moritz for some reason I'm not surprised by this. 11:21
I am surprised by the results above though
nom: my @a = [1, 2, 3], [7, 3], [8, 5]; say @a>>.perl.say
p6eval nom: OUTPUT«1 2 3 7 3 8 5␤Bool::True␤»
moritz nom: say [<a b c>]>>.uc.perl
p6eval nom: OUTPUT«("A", "B", "C")␤»
moritz nom: my @a = ("a", "b", "c"); say @a>>.uc.perl 11:22
p6eval nom: OUTPUT«("A", "B", "C")␤»
moritz nom: my @a = [1, 2, 3], [7, 3], [8, 5]; say @a>>.at_key(0).perl
p6eval nom: OUTPUT«Method 'at_key' not found for invocant of class 'Int'␤ in method reify at src/gen/CORE.setting:3449␤ in method reify at src/gen/CORE.setting:3354␤ in method reify at src/gen/CORE.setting:3354␤ in method gimme at src/gen/CORE.setting:3693␤ in method eager at src/gen/CORE…
moritz oh, the hyper hypers recursively!
should it do that?
pmichaud yes.
moritz I guess it never did in master 11:23
moritz has to adjust some internal models
11:24 masak` joined 11:26 masak left 11:27 cotto left, cotto joined
pmichaud ...my connection to feather died. :( 11:29
(feather is okay... I just can't reach it from here)
hypers hypering recursively was the consensus opinion a week or so ago (and nom implements that). 11:30
"hyper is not .map"
moritz it was so convenient as a kind of map ;-)
pmichaud well, you're okay as long as there aren't any nested Iterables :) 11:31
11:31 cosimo joined
colomon rakudo: my @a = [1, 2, 3], [7, 3], [8, 5]; say @a>>.perl.say 11:44
p6eval rakudo 922500: OUTPUT«[1, 2, 3][7, 3][8, 5]␤Bool::True␤»
masak` TimToady: proposal: a junctional a ? b ! c trinary operator. :P
11:45 masak` is now known as masak
masak you know you want it. 11:45
colomon just say no 11:56
masak mberends: FYI, I've now tired of renaming files manually, and I'm building a script to scrape RC instead. 11:58
moritz masak: have you seen my script that does that (partially) already? 11:59
mberends \o/
moritz moritz.faui2k3.org/tmp/rc-scrape.txt might serve as a start
12:00 _jaldhar left
masak ooh 12:00
masak looks 12:01
that's about what I'm writing now.
but I'm using Perl 6.
moritz it currently just prints to stdout
masak I'm going to put things in files in output/ 12:02
will post to gist when I'm done.
12:05 _jaldhar joined 12:06 perlhack left 12:15 Holy_Cow joined 12:22 satyavvd left 12:23 agentzh joined 12:24 panchiniakk joined, panchiniakk left 12:25 panchiniakk joined
pmichaud even when I cut a bunch of classes and types out of the setting, it still takes a long time to compile. 12:26
so... something else must be going on. time for some reorganization, I think. 12:27
moritz pmichaud: I guess it's related to the memory leak
12:27 uniejo_in_riga left
pmichaud it could be, yes. 12:28
I notice a few oddities with stubs so I'm going to clean those up first
moritz I could try to bisect it
pmichaud a bisect would be useful too.
moritz it'll take some time (unsurprisingly :-)
12:29 uniejo_in_riga joined, uniejo_in_riga left
moritz oh, if I'm in luck I can just 'make perl6' every time without compiling the setting 12:30
flussence would the timings from smolder.parrot.org/app/projects/smoke_reports/5 help to narrow it down at all? 12:31
12:31 uniejo_in_riga joined
flussence (I've been running a cronjob every 4am that sends results to there) 12:31
pmichaud flussence: they very well might 12:32
I think moritz++ is bisecting the 'while 1 { }' memory leak, though.
flussence oh, different things :)
pmichaud mainly I'm looking at the time needed to compile the core setting
somewhere recently we've had a flip where compiling the AST takes longer than parsing (traditionally parsing has taken much longer) 12:33
so I'm trying to find the reason for the change in the compilation speed profile
moritz pmichaud: I've also noticed that some operations used rakudo's operators from the setting, where I would have expected nqp operators 12:34
pmichaud: it be that I was confusebd about which file I edited, or maybe something did get mixed up 12:35
12:36 mattp_ left
moritz bad luck, the first revision I chose for checking if it already leaked there did not build :/ 12:39
12:40 hanekomu joined
flussence moritz: which git commit? It just so happens I have a very long list of nom commits which do and don't build for me... :) 12:44
12:45 panchiniakk left
moritz flussence: I had tried 3bd768546810d22b1b1ab071d87dab5895a48e93, now on 9ffc446a46a0fcf848e1d1a482d8c2b64284a3aa 12:45
flussence hm, I did have to skip a large chunk of the early nom branch... 12:46
the earliest commit I've got that compiled and ran is a65c17fe 12:47
oh, that's from the middle of July. 12:48
.oO( looks like I'm missing some numbers... )
masak fetching script now works. preparing gist. 12:49
moritz good news: 9ffc446a46a0fcf848e1d1a482d8c2b64284a3aa doesn't leak yet 12:50
so I can start the actual bisect
pmichaud that's very good new
*news
12:51 uniejo_in_riga left
moritz aye, it means that we had some substantial 6model things working without such obvious leaks 12:51
masak get all rosetta code Perl 6 snippets: gist.github.com/1154000 12:52
I've started the script now. it'll take a while to run to completion.
12:52 icwiener joined 12:54 uniejo_in_riga joined 12:56 Trashlord left 12:57 bluescreen10 joined
moritz ZA-1208-g9c93942: not leaky 12:59
13:02 uniejo_in_riga left, hanekomu left 13:04 bluescreen10 left
moritz ZA-1227-g2ad1cba: not leaky 13:09
[Coke] was going to complain, "are we going to get updates on every single version", but sees that it's a 10m wait time. 13:10
colomon [Coke]: and he's bisecting... 13:11
moritz [Coke]: bisect doesn't visit every single revision, that's the beauty
[Coke] ... I know that. 13:13
every single version that you're testing. I will be sure to omit no more defaults for the sake of clarity. 13:14
13:14 drbean left
moritz has a bad feeling 13:16
whenever I do a bisect where the first few results are all the same, it means that I didn't chose the boundaries properly
or I'm on the wrong branch, or something 13:17
13:19 bluescreen10 joined 13:20 orafu left, orafu joined
moritz ah yes, I forgot to 'git pull' in that copy of rakudo 13:22
so its newest commit is from 2011-07-21
ZA-1241-g2357ca6 is still good, and I'm stupid
13:26 _jaldhar left
pmichaud ZA-1241 seems really.... old 13:26
13:27 _jaldhar joined
moritz 15:22 < moritz> ah yes, I forgot to 'git pull' in that copy of rakudo 13:29
pmichaud yeah, I see
moritz that's why bisect was only searching in old commits
I used 'nom' as "bad revision"
13:32 JimmyZ joined, _jaldhar left
moritz somehow git bisect seems like it should be trivial to use, and I still manage to mess it up every single time 13:33
ZA-1503-g9a99a12 is leaky 13:36
13:36 icwiener left 13:38 finanalyst left 13:40 im2ee_ left 13:53 im2ee joined 13:54 uasi joined, uasi left 13:55 uasi joined 13:56 abercrombie joined 14:04 wtw left 14:07 Grimnir_ joined
masak I just wrote an email to p6l about my readonly attribute/deep cloning problems. 14:09
dalek kudo/nom: 48a44ea | pmichaud++ | src/core/ (8 files):
Move &infix:<eqv> and &infix:<===> candidates into their appropriate files.
kudo/nom: c69d4ba | pmichaud++ | src/core/ (11 files):
Refactor core class stubs a bit.
14:11 uasi left
masak did someone write a DI framework in Perl 6? 14:12
dalek kudo/nom: 66675a3 | pmichaud++ | tools/build/Makefile.in:
Need update to Makefile ordering for stubs refactor.
PerlJam masak: I think so. 14:13
moritz pmichaud: why do you pull stubs out of stubs.pm?
pmichaud I prefer the stubs to be with the things that need them.
instead of just generic "at the top"
masak .oO( because they're pm's stubs ) 14:14
moritz pmichaud: I put some in there so that adding new uses of a symbol is less likely to break compilation if done before the stub
and since setting compilation takes quite some time, I take every straw (that's not obviously wrong) that reduces the number of recompilation attempts during my attempts to patch rakudo
pmichaud moritz: I'm experimenting with removing classes from the core (to see if I can figure out where a lot of the slowdown is), and having the stubs always there is getting in my way
moritz ah 14:15
pmichaud because I can't removed any stubbed class
*remove
(because then it's left open)
it doesn't have to be a permanent change; if we later decide it's better to stub everything at once I may agree with it then
also, I've found a number of places where we have "class Foo ..." instead of "my class Foo ..." and I was trying to clean those up a bit 14:16
moritz yes, I noticed that in the diffs
moritz is to blame for at least some of them :(
pmichaud also, I wanted to clean up the sequence of files in the Makefile to reduce forward references a bit more (there's more to be done there)
and the stubs interfered with that 14:17
masak moritz: re the p5chom?p question yesterday, it's from a time in Perl 6 history when people were thinking about 100% translatability from Perl 5 to Perl 6. 14:18
pmichaud I'm fine with removing p5chom?p, or relegating it to a module
masak moritz: since then, p5=> has disappeared as an operator and has become a by-need macro instead.
masak removes p5chom?p 14:19
moritz masak: I think chom?p are one of the smallest problem in an automatic 5 -> 6 translation
colomon \o/
moritz and "magic" built-ins like open(FOO) # yes, there's a one-argument form in p5 14:20
split()
and so on cause much more headache
so, +$large_number for removing
masak moritz: agreed.
14:21 JimmyZ left
dalek ecs: 9538e55 | masak++ | S32-setting-library/Str.pod:
remove p5chop/p5chomp

In a p5->p6 translator, mimicking Perl 5's chop/chomp semantics is the least of our problems, and the answer probably isn't to keep around builtins for it in the Perl 6 setting.
14:22
masak Perl 6 just keeps getting nicer. :)
moritz masak++ # for exterminating 14:23
14:23 JimmyZ joined
PerlJam masak: it does. Though I'm not a native thinker yet. I still think primarily in Perl 5 terms. 14:24
moritz so somebody please revert commit 6cac7f1d1b44ba80b0ce799ae9774dd27004393a in nom :-) 14:25
masak PerlJam: I felt pretty native in my Perl 6 thinking. then I went and attended jnthn++'s talk yesterday.
moritz heh :-) 14:26
masak reverts
pmichaud there really ought to be an online video of jnthn++ giving his talk 14:27
(the grammar debugger)
masak maybe there will be.
14:28 slavik left
pmichaud well, I mean that if there isn't one, we should make one. 14:28
have jnthn++ give the talk again somewhere and make sure it's videoed :)
14:28 slavik joined
dalek kudo/nom: 39f444a | masak++ | / (2 files):
Revert "implement p5chomp, p5chop (scalar case only)"

This reverts commit 6cac7f1d1b44ba80b0ce799ae9774dd27004393a.
14:28
cognominal_ pmichaud, I am sold on it even if I did not see the talk. The source is great. 14:29
masak jnthn++
colomon masak: are you going to fix the p5cho* tests in roast, too.
?
grammar debugger? 14:30
cognominal_ can't wait to see the slides.
pmichaud colomon: grammar debugger.
cognominal_ github.com/jnthn/grammar-debugger
pmichaud colomon: it provides a trace of a regex match, allows interactive setting and clearing of breakpoints, single-stepping matches, etc.
masak colomon: oh, all right.
colomon pmichaud: OMG! 14:31
pmichaud it's pretty awesome.
all written in Perl 6
colomon nom-based?
masak yeah.
pmichaud yes, of course. 14:32
no modifications to the regex engine
masak pure meta.
cognominal_ I was unable to run it. So it must be a specific nom version.
14:32 im2ee left
masak probably need a fairly new one, yes. 14:32
moritz and Debugger.pm is just 172 lines of fairly readable code 14:33
colomon Tracer.pm is just 44 lines!
cognominal_ may be even with patches not yet commited by jnthn.
moritz do both of them work together? :-) 14:34
dalek ast: cf3c382 | masak++ | S32-str/p5cho (2 files):
remove p5chomp.t and p5chop.t

These builtins just got de-spec'd.
pmichaud I don't think there are uncommitted patches.
colomon wasn't aware we had Term::ANSIColor yet
moritz ah, both set up their own GrammarHOW, so they are mutually exclusive
pmichaud yes, they're mutually exclusive 14:35
but Grammar::Debugger will let you do pretty much what Grammar::Tracer does
cognominal_ I dont see any GrammarHow in the nom sources so I don't see how it can hookup
pmichaud allcaps on the HOW 14:36
src/gen/Metamodel.pm
dalek kudo: a553460 | masak++ | t/spectest.data:
[t/spectest.data] remove p5chop.t and p5chomp.t
cognominal_ silly me
14:37 donri joined
colomon masak: you went a post to p6-language. that worries me. ;) 14:38
masak: nothing wrong with your observations, mind you, it's just p6l scares me. 14:40
14:40 masak` joined
colomon tadzik++ # the old panda I had sitting around just installed Term::ANSIColor for me. 14:40
... set up to work with master, not nom. Not tadzik's fault, of coure! 14:41
14:42 JimmyZ left
dalek kudo/nom: 3a2e045 | masak++ | t/spectest.data:
[t/spectest.data] remove p5chop.t and p5chomp.t
14:42
14:42 masak left 14:43 masak` is now known as masak 14:44 JimmyZ joined 14:49 im2ee joined 14:51 im2ee_ joined 14:53 Trashlord joined 14:55 im2ee left 14:56 thou joined 14:58 daniel-s left
dalek kudo/nom: 85e004f | pmichaud++ | src/core/metaops.pm:
Fix "undefined value" warning in hyperoperators noted by jnthn++ .
14:58
moritz you'll never guess the result of my triage 15:00
09c8fab0947aba1e3bb7bb97ab79c65b8e9827f7 is the first bad commit
and all it did was adding :D's to invocants
flussence
.oO( I guess that makes them :( constraints )
masak moritz: "all it did"... :P 15:01
15:01 Moukeddar joined
moritz masak: well, apart from adding a gaping memory hole, of course 15:01
masak flussence: well, note that the :D: can be read as both a :D and a D:
JimmyZ was waiting jnthn++'s slides 15:02
moritz masak: btw there was no need to remove p5chop.t from master's t/spectest.data -- master tracks its own roast branch
15:02 koban left 15:03 envi joined
masak oh! 15:03
colomon github.com/rakudo/rakudo/commit/09...5b8e9827f7 eh? 15:04
masak moritz: how come that patch is adding a bunch of Str/Int/Num invocant types to things the (to my eye) should be Cool?
colomon moritz: do you reckon it's the :Ds or the multis?
masak moritz: oh, I'll un-ask my question. 15:05
they're in the corresponding classes.
moritz masak: I'm killing the buffer in which I prepared the reply :-)
masak :) 15:06
colomon moritz: ah, only one case where multi was actually added?
moritz colomon: I kinda suspect it's method Int.Bool, because that's what while 1 { } actually calls
masak it feels a bit redundant to give the type of the invocant inside the class.
is it possible to write _:D: or something? 15:07
moritz masak: :D is now the default
masak: (except in nom, where it's NYI)
masak oh, ok.
phew.
colomon masak: isn't the entire class Num { method foo(Num:D:) } thing obsolete now?
what moritz said, I mean
is that actually implemented, or just spec? 15:08
moritz 17:07 < moritz> masak: (except in nom, where it's NYI)
pmichaud it's wavy spec
"wiggly spec" :-)
masak is "wiggly" different from "slushy"? 15:10
sounds like a dry variant of the concept.
pmichaud ./perl6 -e 'while True { }' does not leak 15:12
colomon moritz: is it implemented anywhere?
pmichaud so I suspect moritz++ is correct about the leak source
moritz colomon: in TimToady++'s head, probably?
15:13 cotto left
moritz jnthn: see above, it seems that InvocantType:D: restraints leak 15:13
masak I encourage someone to write the first little-animal-farm AI. I have an unpublished one already which can win the game, but does it in ~100 turns.
if someone wants my AI code for inspiration, I could email it to that someone. 15:14
I don't want to gist it, though.
moritz another data point: perl6 -e 'sub f(Int $x) { }; while True { f(1) }' is fine, perl6 -e 'sub f(Int:D $x) { }; while True { f(1) }' leaks
so it doesn't matter if it's the invocant 15:15
masak moritz++
pmichaud oddly: sub f(Int:d $x) { True }; while f(1) { } doesn't leak for me 15:17
moritz is :d the same as :D? 15:18
pmichaud uppercase (typo)
15:19 am0c_ joined
moritz that is curious indeed 15:19
one more
pmichaud sub f(Int:D $x) { True }
while f(1) { }
(no leak)
moritz while True { 1.Bool } # also leaks
pmichaud (or if there is a leak, it's really slow)
JimmyZ FYI, compile setting takes about 600MB here 15:20
moritz JimmyZ: 32 bit OS?
JimmyZ yes
under ubuntu
colomon is the theory that the leak is causing the nom compiling slowdown, or is this a separate issue?
moritz pmichaud: ah yes, I was looking for a leak in the order ~3 MB/s, if something stayed apparent constant for 3s I classified it as "not leaky" 15:21
15:21 am0c left
masak here's the template for writing a player AI: gist.github.com/1154298 15:21
moritz JimmyZ: it taks about twice as much on a 64bit system
colomon: that is one of my theories
JimmyZ wow, that's 1.2GB
moritz JimmyZ: correct :(
pmichaud while True { f(1) } is a slow leak on my system 15:22
JimmyZ is trying compiling again
moritz pmichaud: and 1.Bool inside the loop makes it leak fast? 15:23
15:23 mdrc joined
JimmyZ plays java with maven and eclipse , and feeled very sad 15:24
mdrc hello, will perl6 be able to make use of the local character classes for the current locale?
masak hugs JimmyZ
mdrc: yes.
mdrc good
masak it's extensible enough to support that.
moritz mdrc: I think that one of the lessons of Perl 5 was that locales should not go into the core of the language, but Perl 6 is flexiable enough so that modules can make that happen 15:25
masak indeed.
JimmyZ my boss wants to use mahout in eshop :(
mdrc ok. then what about the good ol' perl classes?
15:25 Trashlord left
masak in fact, all of the grammar and the object system are overridable enough that you'd have to be pretty inventive in order to get something other than a "yes" to a "will Perl 6 be able to...?" question. 15:25
moritz mdrc: many of the problems that locales tried to solve (related to different character sets) can be solved much more universally with Unicode
pmichaud looks like it's a nested runloop leak
masak mdrc: jnthn just held a good ol' Perl class. :D 15:26
mdrc yea, i've noticed the pattern mode becomes more flexible
masak mdrc: no, seriously. what do you mean by that? do you want a hash to pretend to be an object?
mdrc: I think representational polymorphism could do that. 15:27
moritz or character classes like \s, \w etc?
masak oh, those classes.
yes, they're there, of course.
and we have grammars \o/
15:27 cotto joined
mdrc i'm writing something like this: my ( $i, $mode ) = /([[:digit:]]+):(.*)/; 15:27
but at first i used [[:num:]] instead 15:28
15:28 kboga left, rdesfo joined
pmichaud while True { pir::set__SP(1); Nil } # leaks really fast 15:28
masak mdrc: that looks... wrong. you seem to be assigning a regex to $i. 15:29
mdrc it idea is a list context result to assign the lval list
masak no, a regex only starts matching in boolean context in Perl 6. 15:30
mdrc err the idea* sry. it works in perl5 15:31
masak and even then, it doesn't give back a list of things, but a Match object.
it works in Perl 5. not in Perl 6.
moritz mdrc: in p5, /.../ always matches agaist $_. In Perl 6 you need to use m/.../ to force that immediate match
mdrc and you can't represent the match object as a list? 15:32
moritz /.../ constructs a regex, and the receiver can decide what do with it
TimToady m// runs immediately though 15:33
while rx// is always lazy
masak mdrc: to represent the match object $/ as a list, just do @$/ or @($/) or $/.list
mdrc fine
moritz TimToady: what would you think of $/.pre and $/.post, which return the parts of $/.orig before and after the match? 15:34
would be cheap, since already store orig, from and to
std: $`
p6eval std 516268a: OUTPUT«===SORRY!===␤Unsupported use of $` variable; in Perl 6 please use explicit pattern before <( at /tmp/3lKeoeqYFw line 1:␤------> $`⏏<EOL>␤Parse failed␤FAILED 00:01 118m␤»
pmichaud possible puns with PRE and POST, though. 15:35
moritz then you could make that 'use $/.pre'
hm, .before and .after?
pmichaud possible puns with infix:<before> ....
pretext and posttext :-) 15:36
moritz well, also puns with <?before> and <?after>, which kinda fits
pmichaud .prologue and .epilogue :)
moritz can't even spell those
masak .leading and .trailing 15:38
.prior and .posterior
mdrc well, then i guess it's going to be easier to recall those classes. thanks 15:39
bye
15:39 mdrc left
moritz that's #perl6 - I ask about a feature, and instead of a "yes" or "no" or "not sure" we get a bikeshed over the names :-) 15:39
15:39 LimitSupremum left, envi left
masak .antecedent and .subsequent 15:39
flussence
.oO( .← and .→ )
masak flussence: that's not RTL-proof, though. 15:40
flussence or latin-1-proof :)
moritz and wouldn't it need to be ←. anyway? :-)
masak boggles
TimToady I'm fine with the feature, whatever the name 15:41
masak moritz: srsly though, either .pre/.post or .before/.after would be fine with me.
moritz: maybe the latter is better because it has more to do with grammars. 15:42
TimToady unless we run into "sawampersand" problems
masak seems not, since we already have the positions of the match stored.
moritz niecza: 'abcdefg' ~~ /./; say $/.orig
p6eval niecza v8-52-g3afe236: OUTPUT«abcdefg␤»
masak I notice that .trim-leading and .trim-trailing aren't spec'd, by the way. 15:44
moritz is .trim ?
masak yes. 15:46
dalek ecs: d1f6d86 | moritz++ | S05-regex.pod:
spec $/.before and $/.after
15:47
15:47 donri left
TimToady .before and .after are bad 15:47
moritz why?
TimToady which is which?
moritz I don't see why they are worse than <?before> and <?after> 15:48
TimToady <before> looks at what is after
we only get away with it as an assertion because it's a predicate
15:48 agentzh left
TimToady it doesn't work as a nown 15:49
noun
masak *nod*
so, .pre and .post, then?
or are they just as bad?
how about .leading and .trailing?
TimToady .past and .future :)
moritz doesn't see the problem. We have a direction defined (otherwise <?before and <?after don't make sense), and in that direction it's pretty clear to me what .before means
TimToady it's not at all clear 15:50
15:50 SHODAN joined 15:51 cotto left
moritz so, what would be clearer? 15:52
masak .water and .air :P
masak 's vote is now on .leading and .trailing, because of .trim-* 15:53
maybe .lead and .trail
moritz dollar_backtick, dollar_single_quote *cough*
flussence .port and .starboard?
masak whaps moritz with a printout of perldoc
moritz flussence: you think this is cute today...
masak flussence: also not RTL-safe :P
tadzik is back 15:54
TimToady was only half joking with .past and .future :)
masak unless RTL people are always facing backwards on the boat.
colomon $PREMATCH and $POSTMATCH, eh?>
masak well, .prematch and .postmatch
that's actually kinda clear. 15:55
moritz since I don't understand the ambiguty wrt .before and .after, I can't tell whether .pre and .post suffer from the same
masak moritz: me neither.
moritz: depends whether the ambiguity is tied to the keywords <?before and <?after, I guess.
15:57 birdwindupbird left
moritz maybe <?after> should be <?behind> 15:57
TimToady no, it's an assertion about the current position
it's not "look after" 15:58
it's declarative, not operational
moritz maybe lookarounds are just intrinsically confusing :-)
TimToady the problem is that .method is not clearly declarational
regex are by nature declarative, methods are not 15:59
hence the greater ambiguity
flussence +1 to prematch/postmatch, just for the sake of being nice to p5 users
(though the "match" part is kinda implied with $/...)
TimToady I'm okay with .prematch and .postmatch, since it specifies the noun 16:00
masak I like it too.
TimToady and because that's what they are in p5 16:01
masak even though a prematch isn't a kind of match in this case.
TimToady it's before the match
masak well, unless you pretend that they're the ground to the actual match's figure.
TimToady or after :)
moritz nom: 'a1b' ~~ /\d/; say $/.orig.substr(0, $/.from) 16:02
p6eval nom: OUTPUT«a␤»
16:02 donri joined
moritz nom: 'a1b' ~~ /\d/; say $/.orig.substr(0, $/.to) 16:02
p6eval nom: OUTPUT«a1␤»
16:02 Alias left, hanekomu joined
moritz nom: 'a1b' ~~ /\d/; say $/.orig.substr($/.to) 16:02
p6eval nom: OUTPUT«b␤»
TimToady more procedural would be .skipped and .unscanned or some such
masak bleurgh.
not symmetric enough.
TimToady .beforefrom .afterto :) 16:03
masak :)
TimToady .prefrom .postto
moritz
.oO( .hitherto )
16:03 c1sung joined
TimToady .henceforth 16:03
masak .whenceforth
dalek ecs: 1baf5fe | moritz++ | S05-regex.pod:
rebrand $/.before as .prematch and .after as .postmatch

I have been told on #perl6 that the old names are unclear, this seems to be the new consensus
16:04
TimToady .hither .hence
masak ooh, I missed pmichaud++'s .pretext and .posttext!
but I'm fine with .prematch and .postmatch, too.
moritz whoever feels the need to further bikeshed is welcome to do that, but can't expect me to do the commits :-)
moritz -> decommute 16:05
16:06 MayDaniel joined
TimToady .commute and .decommute :) 16:06
masak .from-start-of-string-to-start-of-match and .from-end-of-match-to-end-of-string 16:07
TimToady I can't remember how to spell stirng 16:08
masak I know how to spell banana, but I don't know when to stop.
16:09 JimmyZ left
sjohnson heheh 16:11
Moukeddar lol
sjohnson masak sounds like gwen stefani with her banana-related raps :) 16:12
masak rakudo: say ba ~ join "", ("na" xx (1..4)) 16:13
p6eval rakudo 922500: OUTPUT«Could not find sub &ba␤ in main program body at line 22:/tmp/iTLhnZsWFg␤»
masak rakudo: say "ba" ~ join "", ("na" xx (1..4))
p6eval rakudo 922500: OUTPUT«banananana␤»
masak rakudo: say "ba" ~ join "", ("na" xx (1..4)) for ^10 16:14
p6eval rakudo 922500: OUTPUT«banananana␤banananana␤banananana␤banananana␤banananana␤banananana␤banananana␤banananana␤banananana␤banananana␤»
masak rakudo: say "ba" ~ join "", ("na" xx (1..4).roll) for ^10
p6eval rakudo 922500: OUTPUT«banananana␤bananana␤banananana␤banananana␤banananana␤banana␤banana␤banana␤bananana␤banananana␤»
benabik rakudo: say (1..4).roll for ^10
p6eval rakudo 922500: OUTPUT«1␤4␤4␤2␤1␤3␤4␤1␤1␤3␤» 16:15
16:15 MayDaniel left
benabik Oh, it was changing length, it's just hard to see in all the repetition. :-D 16:15
16:16 masak left, rdesfo left
TimToady noms with nommers & 16:16
16:19 donri left 16:20 LimitSupremum joined 16:27 im2ee_ left, im2ee_ joined 16:30 cotto joined 16:32 Moukeddar left 16:48 donri joined 16:52 bluescreen10 left
ingy ~, 16:57
16:57 kboga joined 16:59 pernatiy left 17:05 kboga left, kboga joined 17:06 Moukeddar joined 17:09 bluescreen10 joined 17:10 donri left
[Coke] ingy: ho 17:10
17:10 donri joined 17:12 mdrc joined
mdrc hello again 17:12
do you have a perl6 port site?
for example how to port pastebin.com/DpnhKfPj into perl6 17:13
tadzik oh, I still have to push to my airplane hackathon results :0 17:17
:)
mdrc: where is the 'site' on this paste?
flussence
.oO( porting that to Modern Perl 5 would make it a lot easier to port to Perl 6... )
17:18
tadzik fwiw, I don't think we have select in Rakudo. Maybe niecza supports it, I don't know
[Coke] mdrc: I don't think there's a direct "how to port your perl 5 code" site. 17:19
I personally would read through the synopses for things; in general "it's the same as perl5, except..." (pretty much feels like except everything ;) 17:20
17:21 LimitSupremum left
[Coke] in general, though, that looks a grammar would be more sixian. 17:22
17:23 Trashlord joined
mdrc personally i always use perl to quick and dirty shell to binary wrappers, might serve as a good example 17:23
sjohnson me too 17:24
17:28 mj41 left
cognominal_ masak, you know how to pronounce banana but you don't know where to stop? 17:34
s/pronounces/spell/
mdrc by the way, do you know where to ask how to "raise" a Tk; function that configures the interface? 17:38
tadzik huh, did anyone notice how tables at the very end of S26 get parsed horribly wrong? 17:44
flussence yep 17:45
tadzik just fixed that, stupid bug
ok, looks fine now 17:46
lol, t/pod/08-formattingcodes.t untracked
how did this slip through
flussence: did you merge your Pod::To::HTML with my repo? 17:49
dalek kudo/nom: f147bf8 | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Align table columns
17:50
kudo/nom: d664591 | tadzik++ | / (2 files):
Fix a bug in tables with trailing newlines, add test
kudo/nom: 195fef4 | tadzik++ | t/pod/08-formattingcodes.t:
Add formattingcodes tests
flussence my stuff's in the html5 branch on github/perl6/Pod-to-HTML, haven't added anything to yours yet
17:51 Trashlord left
tadzik I'll just merge it, ok? 17:51
flussence go for it :)
tadzik or maybe I'll just accept yours as upstream, if you want to be its father. I don't really know HTML :)
flussence I'm fine with that 17:52
tadzik I just merged your changes, fwiw
flussence updates rakudo to see what S26 looks like in this 17:53
tadzik if you generate it before me, let me know and I'll put it on perlcabal 17:56
sorear good * #perl6 17:59
tadzik good day sorear
sjohnson ( `ー´) 18:00
tadzik ooh, I missed that :) 18:01
I need /fatface next to my /fail alias, as in
18:02 mj41 joined
tadzik oh, it's not /fail actually. I won't post that then :) 18:02
sjohnson heheh
got a new fatface, more of a happy cat
(=゚ω゚=)
tadzik bah, I'm lacking fonts
▄█▀ █▬█ █ ▀█▀
sjohnson /fatfone ?
fatfont i mean 18:03
tadzik no, ot
* it's just /shit
apparently I have /fail too, but it's a few lines long
sjohnson hmmmmmmmm 18:05
tadzik I'll resist :)
sjohnson i wonder if i could make an alphabet of that
tadzik I tried, and failed
sjohnson and then i can say whatever i want
i wihle ago wehn i was rlelay beord and lrnniaeg prel i mdae tihs ctue sicrpt to eieexrmpnt wtih the esae of wrtinig senmoithg wtih jbumeld lerttes 18:06
tadzik I should remove all /foo.*\.[pl||nqp]/ so git st is readable again
sjohnson you may remeembr the lnik gonig aonurd bcak in the day, wehre it siad taht the bairn can eisaly raed wodrs if the fsrit and lsat lterets are poperr
tadzik yeah, I know it. I saw that in Polish, and it worked too 18:07
18:09 Moukeddar left
tadzik heh, nom now needs 70% of my ram 18:09
flussence ouch. generating a s26.html took 4½ minutes here. 18:10
tadzik yeah, usual, isn't it?
flussence it was around the 2-3 mark a few days ago :(
18:10 birdwindupbird joined
tadzik oopsie 18:10
flussence anyway, gist.github.com/1140332 18:11
still needs a bit of work, but hopefully most of the problems aren't visible on the page :)
oh... maybe they are. 18:12
tadzik I'm mostly worried about the invisible ones. As in disappearing paragraphs or so
oh, you didn't fix formattingcoeds yet? 18:13
oh, you did some methings
tadzik uses the source 18:14
flussence they only popped up since I last worked on it :)
tadzik hmm
but B<> seems to work for some reason
or maybe that's a side effect or something
or maybe you that to all table headers :) 18:15
yes you do. flussence++
flussence: you want to hack on github.com/rakudo/rakudo/commit/5f145c647c for P::T::HTML? 18:16
18:18 am0c_ is now known as am0c, am0c left, Guest19592 joined
tadzik flussence: yeah, generating s26.html just took over 10 minutes here 18:24
I suppose we traded speed for correctnes, in Pod parsing. I wish we had a profiler better than `git bisect`
flussence (does "use Devel::Trace" or whatever it was called still work in nom?) 18:26
tadzik dunno
flussence nom: use Devel::Trace; say 'a'
p6eval nom: OUTPUT«use Devel::Trace␤say 'a'␤a␤»
tadzik yay!
flussence \o/
tadzik now I only have to read shitload of output to analyze it :P
I wonder if that's related to memory leaks somehow 18:27
mdrc devel trace, is that like ls -l on a backup directory?
tadzik I don't think so 18:28
mdrc like what group and user, last modification etc 18:29
tadzik dunno 18:31
mdrc k
tadzik moritz: /home/perlcabal seems empty to me
flussence (Text::Escape in pod2html looks mind-bogglingly inefficient - it's calling 1 sub per input character. I've tried replacing bits of it with split(:all) though and it turned out slower...) 18:33
tadzik w00t
don't we have pretty efficient .trans for some time now? 18:34
tadzik hacks
18:35 Holy_Cow left
flussence I think there might be an improvement if I do a single regex for escapable chars first and return the string in that case - I've seen the json.org javascript implementation do it 18:35
pmichaud tadzik: it was suggested tonight at dinner that we name the next rakudo release "Warsaw" in your honor. Any objections or modifications you'd like to make to that?
tadzik pmichaud: I'm proud. That's all. 18:36
pmichaud Warsaw it is, then.
tadzik maybe a bit astonished too
pmichaud We're all very pleased and impressed with your work, especially on Pod (but other stuff too)
mdrc instead of Warsaw, what about Nipple? 18:37
tadzik hugme: hug mdrc 18:38
hugme hugs mdrc 18:39
mdrc *action* smiles
pmichaud okay, I'm heading back to nomsite
rakudo release will be this weekend. I'll likely make a post to rakudo.org tonight to that effect
(can't be tomorrow because o/ I'm leaving..... ON a JET PLANE! Don't know when I'll be back again... o/ 18:40
anyway, afk for a while -- bbl
tadzik pmichaud: have a safe flight 18:42
flussence: s26 to html just finished in 0.14s :)
flussence wha?! 18:43
tadzik I made a syntax error in Pod::To::HTML :P
flussence oh, ha 18:44
tadzik yeah, I almost got excited myself
okay, trans seems NYI in nom 18:45
I'll see about porting that
mdrc "here and now, boys" ^Huxley 18:47
flussence got it down to 3m18 by doing that escape checking regex
sorear how did it run in <1s earlier? 18:48
tadzik sorear: syntax error 18:49
18:50 birdwindupbird left 18:51 birdwindupbird joined
flussence I wonder if intercal is looking for a Pod equivalent... “Directives that start with FormattingCode<184031648> can be indented like the code they interleave” :) 18:53
tadzik rakudo: my @a = 1; @a = @a xx 1; 18:55
p6eval rakudo a55346: ( no output )
tadzik nom: my @a = 1; @a = @a xx 1;
p6eval nom: OUTPUT«splice() not implemented in class 'Mu'␤ in method reify at src/gen/CORE.setting:3461␤ in method gimme at src/gen/CORE.setting:3798␤ in method eager at src/gen/CORE.setting:3774␤ in method STORE at src/gen/CORE.setting:4178␤ in mu <anon> at /tmp/xrdOmFW7uO:1␤ in mu <ano…
tadzik hihi
meh, .trans is not that easy 18:57
aka 'crashes and segfaults' 18:58
mdrc apropos segfaults, i was going crazy cause the division by zero exception vector pointed at a 16 bit location 19:00
noise from the stack could then cause crashes at random intervals 19:01
heap stuff you know 19:02
19:03 rdesfo joined 19:04 rdesfo left, broquaint left 19:05 broquaint joined 19:07 MayDaniel joined 19:08 mkramer left
mdrc then instead of perl6 i use m4 to shift the registers for native alignment 19:08
dalek ok: f1d6922 | (Maik Hentsche)++ | src/classes-and-objects.pod:
[FIX] removed double "installed"

  "..X installed an object had been installed..". Removed one installed.
ok: 3c9cdd9 | (Maik Hentsche)++ | src/classes-and-objects.pod:
Whitespace fix.

Paragraph without holes now.
19:09 mkramer joined
sorear ... why are people on p6l so far removed from reality? 19:13
PerlJam they are? 19:14
mdrc portable reality or...? 19:17
Su-Shee let me get one or two postmodern philosophy quotes about reality ;) 19:18
19:21 rindolf joined, bluescreen10 left 19:22 bluescreen10 joined 19:29 Guest19592 is now known as am0c
sorear reality is that which, when you stop beleiving in it, doesn't go away. -my favorite 19:36
mdrc then how to send someone to hell if no-one believes it's there to be created? 19:38
19:39 digger^ joined 19:41 digger^ left
sorear Why would I want to send someone to hell? 19:41
mdrc i won't
19:42 Caldrin joined
Caldrin Hello! 19:42
I try to work to the Perl6 book which is referenced on perl6.org. There is an example in it, that does not work for me. I pasted my version to perlpunks.de/paste/show/4e4d663b.6c46.76 19:43
This brings the following error message:
19:43 Mowah_ left
PerlJam Caldrin: greetings! What version of Perl 6 (I assume rakudo) did you use? 19:44
Caldrin No such attribute '$!salary' in class 'Employee' in 'GeekCook::new' at line 42:/home/hmai/Projekte/Practice/Perl6/Book/class2.p6 in main program body at line 46:/home/hmai/Projekte/Practice/Perl6/Book/class2.p6
PerlJam: Rakudo from git, cloned on Tuesday.
last comit id is 9225003fe4d3b0231f76a46f66e92628d06f4948
s/comit/commit/ 19:45
19:45 birdwindupbird left
Caldrin I already asked the same question in #rakudo on ircd.perl.org and was send to you guys 19:45
PerlJam There's a #rakudo channel? 19:46
sorear never heard of that one before.
#rakudo on MAGnet is empty.
PerlJam indeed
Caldrin I'm sorry, I mean #parrot.
PerlJam oh! that makes more sense :) 19:47
Caldrin I mixed them up accidently.
19:47 Trashlord joined
[Coke] hey, we have webdev people here. Anyone uses famfamfam's flags icons and is interested in 1) a sprite, and 2) adding the missing iso codes? 19:47
PerlJam [Coke]: you're speaking greek to me. 19:48
mdrc i was sent to irc.perl.org i think #rakudo and got all i needed
PerlJam Caldrin: it only complains about salary and not the others? 19:49
flussence wishes there was a way to invoke the REPL in the middle of a script, with current scope 19:50
[Coke] famfamfam.com/lab/icons/flags/ , in case that helps PerlJam
19:50 molaf left
[Coke] and now github.com/coke/famflags, though I /just/ started slapping something together. 19:50
Caldrin PerlJam: Yes, that's correct. I pasted the full error message.
tadzik flussence: use Carp::Always::REPL...oh wait :) 19:51
19:53 kboga left
PerlJam This is where I wish rakudo were faster 19:55
*compiling* rakudo (but the other thing too :)
tadzik flussence: I think I just got it >10 to <3 minutes 19:56
by tuning escape-html
flussence whoa! 19:57
tadzik that's a pretty stupid hack though, yet effective
flussence btw, try combining it with this if you haven't already done so: github.com/perl6/Pod-To-HTML/commit/d4402cf
19:57 Trashlord left
tadzik oh, I did it the stupid way 19:58
gist.github.com/1155010
it appears to produce correct results :)
20:01 rindolf left
mberends ++tadzik :-) 20:02
20:05 LimitSupremum joined
tadzik oh, so it lives in perl6 repo now 20:11
damn, ETOOMANYFORKS
mdrc it's stable enough to fork yet? 20:12
tadzik it's unstable enough so everyone forks it 20:13
mdrc sounds awkward
tadzik fsvo stable
sounds perfectly sane for me
mdrc hm
tadzik the module is broken. Number of people fork it to fix it 20:14
Caldrin PerlJam: Do you have an idea on what I did wrong?
mdrc like they don't post a patch?
usually, a fork would carry on in multiple directions 20:16
PerlJam Caldrin: looks like nothing to me.
tadzik mdrc: they fork, they commit, they send a pull request 20:17
it's easier than a patch, fsvo easier
mdrc the git terminology of course. excuse me
tadzik I just do g pull [email@hidden.address] and I have the changes
it doesn't get much simplier than that 20:18
it's more of a git workflow than a git terminology
mdrc i read it once and went back to the tar ball
tadzik fair enough 20:19
mdrc ok i guess
20:22 masak joined
masak tja, #perl6 20:22
tadzik hello masak
flussence: 2:55, and I has formattingcodes :)
pmichaud good evening, #perl6
flussence nice!
tadzik well, not really parsed correctly, just the contents printed 20:23
pushing to my fo... well, my repo
flussence (I've made a complete mess of trying to implement formatting codes, I'll just use yours :)
tadzik mine are not really implemented :) 20:24
pushed
it just reduces them to their contents
good evening pmichaud
flussence as long as they come out as something other than "FormattingCode<xyz>" then I can at least figure them out :)
tadzik pmichaud: in the US already?
20:25 thowe joined
moritz tadzik: the write location is /var/www/pugscode.org/syn/ 20:25
tadzik flussence: you basically want to not-ignore the code itself :)
moritz: kthx 20:26
pmichaud tadzik: plane leaves in 7 hrs
tadzik oh, I see
masak yay, my p6l email wasn't warnocked. 20:27
tadzik moritz: I get access denied, you may want to steal /home/tjs/s26.html
flussence: I'll just push me repo to perl6 org and delete it then to avoid further mess, ok?
masak though the reply makes almost no sense to me :/ 20:28
still, better than warnocking.
pmichaud masak: yeah, the reply made me say ... "huh?"
either that or something along the lines of the "help" command jnthn++ used in his presentation yesterday :)_
20:28 buubot_backup left
tadzik :P 20:29
flussence now that you mention it, I think I have a few repos of my own to clean up
20:29 saaki left
jnthn evening, #perl6 20:29
tadzik evening jnthn
masak pmichaud: :)
pmichaud anyway, I'm home in 25 hrs, barring flight delays 20:30
jnthn oh, there's a p6l thread I should comment on? ;)
moritz tadzik: perlcabal.org/syn/S26.html updated 20:31
tadzik moritz++
it's pretty pretty now
pmichaud moritz++
moritz tadzik++ did all the work :-) 20:32
flussence (the hard work, anyway :)
tadzik the prettiness is not my job in here, flussence++ :) 20:33
I just fixed my own bugs in Pod parser
masak you know things are going well when people are blaming each other with karma :P
tadzik :)
gentleness++
flussence wow, it's down to 1:18 on my desktop
tadzik cool
flussence (I wonder if I can tweak the URL char escape thing in the same way...) 20:34
tadzik I don't think it's that much of a bottleneck
maybe it is now :)
flussence yeah, there's not that many URLs in there... I'll have a look anyway if for no other reason that I don't like char-at-a-time parsing :) 20:35
pmichaud jnthn: get_bool vtable via PIR doesn't cause a memory leak 20:36
(I'm assuming it's causing an inferior runloop)
jnthn pmichaud: oh, curius.
*courious
pmichaud gist coming shortly
jnthn I wonder how Parrot v-table overrides are implemented
tadzik pmichaud: might that be the reason for setting compilation to eat 1.5 GBs of ram?
pmichaud gist.github.com/1155132 20:37
[Coke] jnthn: vtable overrides are evil, pure and simple, from the 8th dimension.
jnthn OK, those do Parrot_ext_call
pmichaud jnthn: what are we using? 20:38
jnthn pmichaud: Constructing a capture and using the function to invoke from a signature.
Parrot_ext_call is retarted.
er
:)
.oO( no shid! )
pmichaud ...it's been made more sour? hmm....
jnthn Nah, it parses signature strings. Every time. 20:39
pmichaud tadzik: we're trying to find out what's causing the ram. there seems to be something wrong with the build process, but we don't know what yet.
jnthn What I fail to understand is that the only object I create is GCable.
tadzik okay
pmichaud s/causing/eating/
Caldrin moritz++ # for helping me with my problem.
tadzik I may want to hold with buying new 2 GBs then :P
Caldrin Thanks to everyone who also tried to help me.
tadzik gee cable!
jnthn So Parrot is doing something wrong somewhere. 20:40
moritz tadzik: should we remove the notice "(HTML rendering of S26 is known to be incomplete)" from perlcabal.org/syn/ ?
tadzik moritz: it still is
flussence it's still got a few rough edges, but it's pretty usable now 20:41
tadzik mainly formatting codes do not do their job at all
so V<C<a>> should become C<a>, not a
flussence: are you hacking on that now? 20:42
flussence I am *now*, the url-escaping adds up to 1.6 seconds out of 1.5 minutes. Not worth optimising :) 20:43
20:45 SHODAN left
tadzik :) 20:45
true
20:47 buubot_backup joined 20:48 kaare_ left
dalek ok: 6f6af11 | (Maik Hentsche)++ | src/classes-and-objects.pod:
[FIX] GeekCook example works on rakudo now

GeekCook.new hat two issues. First, the return self.bless got the wrong parameters. Thus, it did not return the right object.
Also, it pushes onto %params<cookbooks> which might be undef. In rakudo this does not enough autovivification (whatever the verb is) to make this push possible. Therefore, the hash element needs to be initialised. It's not nice to have a workaround for unimplemented functions but having an example that does not work is certainly worse.
20:48
tadzik yeeaah :/
Stage parse: 106.937
moritz Caldrin++ # book patches
Caldrin Uh, if its pasted in here completely, I should probably write short commit messages. 20:49
moritz Caldrin: not at all
pmichaud long commit messages are fine here
benabik Caldrin: git handles long commit messages just fine. It's nice to see rationales when browsing history. 20:50
moritz Caldrin: if we thought that way, we would abbreviate the post here
benabik prefers short first lines, blank line, then long messages.
pmichaud right, but channel paste isn't a reason for short commit messages
I think in general we prefer the long messages. As moritz++ said, if they bug us, we'll fix the bot and not the messages. 20:51
masak long messages are nice.
how else would we know important implementation work is going on? :) 20:52
Caldrin benabik: Me too. At work I also try to mark [FIX], [REFAC], [FEAT] and [WS] for whitespace to make it clearly visible for other which commit is more important and which is less.
thowe OK, so, I tried building rakudo with parrot and it crashed. I asked the parrot people about it and they said I should try building the same release on its own because the issue could be with the rakudo build process. If it turns out it is, who do I ask about that?
pmichaud thowe: you can ask here. 20:53
Caldrin Alright guys, I'll go to bed. Good night and thanks. 20:54
masak ok, I've scraped Rosetta Code for code snippets. the result is here: feather.perl6.nl/~masak/tmp/rosetta-code.tar.gz
if no-one else starts turning it into tests, I will.
but I just wanted to mark the part-way progress somehow :)
flussence masak++
masak 'night, #perl6
20:54 masak left
pmichaud wonders if his test paper will cover masak++'s test rock. 20:59
mberends only if no-one calls test scissors 21:01
flussence unlikely, since p5chop's gone now :)
mdrc perl6 is so amazingly large and good ;) 21:03
pmichaud admires his new NPW 2011 t-shirt and packs it carefully
jnthn :)
tadzik g'night #perl6
mberends gn tadzik 21:04
jnthn night, tadzik 21:06
pmichaud tadzik: o/ it was great meeting you here! 21:07
jnthn
.oO( why can't every week be as fun as this one :) )
21:08
...probably because I'd not get enough hacking done ;)
flussence suddenly realises whatever2html() should be multis instead of a giant given {} block 21:09
pmichaud flussence: of course it should! didn't you attend jnthn++'s excellent class today when that was covered? ;-) ;-) 21:11
flussence come to think of it, I think this was based on code written before multis worked in nom... that'd explain it 21:12
jnthn ...before multis worked in nom? 21:14
multis worked before most things in nom ;)
We couldn't do inheritance without them :)
flussence I vaguely recall something a long time ago that might have been an explanation of why this was written this way... and my imagination filled in the blanks :)
jnthn
.oO( we couldn't do them without inheritance either...oh the circularities )
21:15
hehe :)
pmichaud ah yes... fill in the blank languages... I remember the days of RPG programming... :-) 21:16
jnthn role PlayingGame; 21:17
21:17 bluescreen10 left, Kivutarrr joined
jnthn suspects that's Report Generation Programming though :) 21:17
pmichaud en.wikipedia.org/wiki/RPG_II (yes)
...shows my age, I guess. 21:18
colomon remembers his days of role playing game programming... hard a GURPS character designer coded up in Forth once upon a time...
*had 21:19
jnthn er, yes, every year mentioned in that article is before I was born ;) 21:21
github.com/jnthn/grammar-debugger # modules from my second YAPC talk
Will sort out getting slides up tomorrow
colomon \o/ 21:22
jnthn Though the second talk is more of a "you had to be there" one.
(>50% of it was live demos) 21:23
colomon ... which worked? 21:25
jnthn colomon: Yes, amazingly :) 21:26
colomon jnthn++
I'm eager to have a few minutes to give it a try. 21:27
21:27 colomon left, colomon joined
jnthn :) 21:28
jnthn is eager to sleep, and does so :)
night o/
pmichaud: safe flight!
colomon dang it, the worse thing about having two monitors running is looking at one screen and closing the active window on the other accidentally.
benabik colomon: need to install eye tracking software so it knows what you're looking at.
colomon benabik: ooooooo 21:29
mdrc look www.gangsterfreak.com/file:mode.h . I've prototyped a method to hibernate instead of sleeping. Lost the bits about multi-line comments in perl6. 21:35
21:37 soh_cah_toa joined
mdrc // in C is like # in perl6, right? what about /* */ even though Larry didn't like it 21:37
benabik #
pmichaud #`( ... )
benabik '(...) 21:38
mdrc sweet
benabik d'oh… wrong quote… and extra newline.
soh_cah_toa or any bracket i think
pmichaud nom: say 1 + #`< this is a comment > 2
p6eval nom: OUTPUT«3␤»
pmichaud yes, pick your bracket
soh_cah_toa is there an p6 alternative to the p5 quotemeta() builtin? i've seen email archives about replacing it with q:meta// or Str.escape() and even S29 mentions it but i can't seem to find a replacement 21:39
mdrc i'm impressed
pmichaud we rarely need to quotemeta chars in p6
soh_cah_toa why is that? 21:40
pmichaud because the way that interpolations in regexes are handled is different
i.e., regex interpolations aren't string interpolations
soh_cah_toa i have a sub that takes a string. i want to escape any potentially metacharacters before performing a substitution 21:41
pmichaud soh_cah_toa: that's kind of my point
soh_cah_toa hm
pmichaud example coming up
soh_cah_toa well, particularly ! * and @. i don't wan't those popping up
benabik I think s/$var/text/ uses the contents of $var as a literal.
benabik waits for pmichaud's example. 21:42
soh_cah_toa don't you need {} around $var?
sorear rakudo: my $str = 'aabxxabxx*y'; my $pat = 'x*'; say $str.subst($pat, 'Z')
p6eval rakudo a55346: OUTPUT«aabxxabxZy␤»
sorear rakudo: my $str = 'aabxxabxx*y'; my $pat = 'x*'; say $str.subst(/$pat/, 'Z')
p6eval rakudo a55346: OUTPUT«aabxxabxZy␤»
pmichaud yeah, that's a good example
soh_cah_toa interesting
pmichaud variable substitutions in regexes are treated as literals (and thus don't need escaping of "unsafe characters") 21:43
soh_cah_toa ok
very cool
pmichaud use <$var> if you want it to be compiled as a regex
soh_cah_toa oh ok
pmichaud rakudo: my $str = 'aabxxabxx*y'; my $pat = 'x*'; say $str.subst(/<$pat>/, 'Z') 21:44
p6eval rakudo a55346: OUTPUT«Zaabxxabxx*y␤»
21:44 drbean joined
pmichaud rakudo: my $str = 'aabxxabxx*y'; my $pat = 'x*'; say $str.subst(/<$pat>/, 'Z', :global) 21:44
p6eval rakudo a55346: OUTPUT«ZaZaZbZZaZbZZ*ZyZ␤»
pmichaud rakudo: my $str = 'aabxxabxx*y'; my $pat = 'x+'; say $str.subst(/<$pat>/, 'Z', :global)
mdrc sounds trigonometric soh_cah
p6eval rakudo a55346: OUTPUT«aabZabZ*y␤»
soh_cah_toa i'm starting to come around to the new regexes. i like how i don't need to worry about that stuff in substitutions and such
21:45 Psyche^ joined
soh_cah_toa except the fact the escape sequences in regexes don't work yet is really annoying me :( 21:47
sorear eh? 21:48
rakudo: say "abc def" ~~ /\s/
p6eval rakudo a55346: OUTPUT« ␤»
sorear looks like they work to me
pmichaud I think he might mean in enumerated character groups
soh_cah_toa no, like \x17
21:48 Patterner left, Psyche^ is now known as Patterner
pmichaud yeah 21:48
soh_cah_toa yes, in character classes
pmichaud that should be arriving soon. 21:49
soh_cah_toa good :)
benabik Via the new and improved QRegex?
pmichaud not immediately, but shortly thereafter. the new QRegex makes it much easier to implement such things.
soh_cah_toa qregex? do explain 21:50
pmichaud QRegex is the new engine underlying regexes in nom
soh_cah_toa ok 21:51
pmichaud it replaces the older engine in nqp-rx (which replaced the PGE engine, which replaced ... (sigh))
21:54 Trashlord joined 21:57 im2ee_ left, im2ee_ joined
abercrombie So what's the alternative way to match \x17? 21:57
soh_cah_toa rakudo: my $foo = 'foobar*!*@*'; $foo ~~ s:g/\\\*/<[\x01..\xFF]>**0..*/; say $foo 21:58
p6eval rakudo a55346: OUTPUT«foobar*!*@*␤»
soh_cah_toa rakudo: my $foo = 'foobar*!*@*'; $foo ~~ s:g/'\' '*'/<[\x01..\xFF]>**0..*/; say $foo 21:59
p6eval rakudo a55346: OUTPUT«===SORRY!===␤Confused at line 22, near "$foo ~~ s:"␤»
22:01 mj41 left 22:04 Trashlord left 22:10 odoacre left 22:15 im2ee_ left
thowe OK, so it turns out rakudo couldn't be built because parrot 3.6 won't compile on OpenBSD. A patch was implemented which fixes this. 3.7 does compile OK, so future rakudo should be OK on OpenBSD. 22:21
pmichaud thowe: excellent, thanks for reporting! 22:24
there should be a new rakudo out this weekend.
thowe \o/
22:25 cognominal joined 22:27 cognominal_ left 22:30 Mowah left
pmichaud draft of a post for rakudo.org -- comments welcomed. 22:33
As noted in our previous post, we had planned to issue a new release of Rakudo sometime around YAPC::EU, based on the new nom branch.
However, over the past few days we’ve run across some significant regressions both in performance and features, so rather than rush out a buggy release we’ve decided to spend a few more days cleaning things up a bit. Because of the significant changes we had already planned to allow ourselves a fair bit of wiggle room in terms of exact release dates.
I expect releases to start as early as this weekend, or perhaps a few days after that. We definitely will have some August 2011 releases, they just won’t be “exactly two days after the Parrot release” as in previous months.
More details as we make progress.
ooops
meant to post the link, one sec
pmichaud.com/sandbox/ann.txt 22:34
comments welcomed
22:37 LimitSupremum left
sorear pmichaud: what did PGE replace? 22:38
22:42 benabik left, benabik joined
mberends pmichaud: maybe mention a little about Nom, and also the usability of the previous release for people now seeking the current most stable Rakudo? 22:43
sorear: istr TGE (Tree Grammar Engine?) preceded PGE 22:44
pmichaud there were about three versions of pge 22:46
mberends++ # updated pmichaud.com/sandbox/ann.txt 22:49
updated a bit more 22:50
I'll rest now, but will post the message (along with other suggested changes) just before heading off to the airport in a couple of hours. 22:52
mberends +1
pmichaud need some sleep; bbl
22:54 nebuchadnezzar left 22:55 nebuchadnezzar joined 22:57 skangas_ joined 22:58 skangas left, skangas_ is now known as skangas 22:59 wamba left 23:00 nebuchadnezzar left 23:01 nebuchadnezzar joined 23:04 nebuchadnezzar left 23:06 saaki joined 23:08 nebuchadnezzar joined 23:14 nebuchadnezzar left 23:15 nebuchadnezzar joined, Kivutarrr left 23:17 ponbiki left 23:20 MayDaniel left
lue hello world o/ 23:25
sjohnson hi 23:26
soh_cah_toa lue: howdy :)
[Coke] thowe++ # getting that tracked down.
mdrc /me ponders what to port to user-space
23:26 nebuchadnezzar left 23:27 nebuchadnezzar joined 23:31 nebuchadnezzar left 23:35 nebuchadnezzar joined
lue [backlogging] wow. tadzik++ flussence++ for their continued work on Pod6 support in 楽土 23:39
23:44 whiteknight joined 23:45 nebuchadnezzar left 23:48 nebuchadnezzar joined 23:52 Trashlord joined
mdrc if(mode&WAIT) goto forbidden; if(!(mode&DOWN)) goto clear; is perl6 going to support the "goto"? 23:54
23:55 tokuhirom joined
thowe [Coke], I think it was you who committed the patch, so thank you. 23:56
mdrc so that return error are carried out at the end of the block
errors*