»ö« 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 71GLOBALish 79EXPORT 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«542alive» | |||
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«542alive» | |||
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 HAIBool::True» | 09:34 | |
..pugs: OUTPUT«OH HAI1» | |||
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«Nilalive» | ||
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 5Bool::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 failedFAILED 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«bananananabananananabananananabananananabananananabananananabananananabananananabananananabanananana» | ||
masak | rakudo: say "ba" ~ join "", ("na" xx (1..4).roll) for ^10 | ||
p6eval | rakudo 922500: OUTPUT«bananananabanananabananananabananananabananananabananabananabananabanananabanananana» | ||
benabik | rakudo: say (1..4).roll for ^10 | ||
p6eval | rakudo 922500: OUTPUT«1442134113» | 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::Tracesay '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* |