»ö« 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:03
frettled joined
00:13
whiteknight joined,
fgomez left,
whiteknight is now known as Guest47613
00:20
raiph joined,
cognominal___ joined
00:21
cognominal_ left
00:28
libertyprime left
00:31
lichtkind_ joined
00:33
lichtkind left,
lichtkind_ is now known as lichtkind
00:42
pat_js joined
00:53
mtk joined
00:56
fgomez joined
01:12
replore_ joined
01:13
scott_ joined,
scott_ is now known as Guest7594
01:19
domidumont left,
diakopter left,
ashleydev left,
Exodist left,
tokuhiro4 left,
kst left,
jlaire left
01:21
domidumont joined,
diakopter joined,
ashleydev joined,
Exodist joined,
tokuhiro4 joined,
kst joined,
jlaire joined,
renormalist joined,
Maddingue joined,
tokuhirom joined
01:22
Facefox left
01:25
domidumont left,
diakopter left,
ashleydev left,
Exodist left,
tokuhiro4 left,
kst left,
jlaire left,
renormalist left,
Maddingue left
01:26
Facefox joined
01:30
domidumont joined,
diakopter joined,
ashleydev joined,
Exodist joined,
tokuhiro4 joined,
kst joined,
jlaire joined,
renormalist joined,
Maddingue joined
01:34
Facefox left
01:36
Facefox joined
01:46
ggoebel joined
|
|||
dalek | blets: 30e9777 | (Herbert Breunung)++ | docs/tablet-3-variables.txt: codeblocks cant have links |
01:55 | |
01:55
lichtkind left
01:57
libertyprime joined
02:01
Guest47613 left
02:08
lestrrat left
02:09
tokuhirom left,
tokuhirom joined,
lestrrat joined
02:10
leprevost joined
02:13
replore_ left
02:14
tokuhirom left
02:16
lestrrat left
02:17
lestrrat joined
02:18
araujo left
02:20
orafu left,
orafu joined
02:24
araujo joined,
araujo left,
araujo joined
02:29
fgomez left
02:30
benabik joined
02:32
sudokode is now known as sudotest,
sudotest is now known as sudokode
02:33
fgomez joined
02:36
fgomez left
02:37
fgomez joined
02:39
baest left
02:44
baest joined
02:45
leprevost left
02:46
ponbiki left
|
|||
cognominal___ | r: multi sub a(Int $i) { say "Int $i" }; multi sub a(Str $i) { say "Str $i" }; sub doit(&f) { f(1) }; doit(&a) | 02:48 | |
p6eval | rakudo dca0fa: OUTPUT«Int 1» | ||
cognominal___ | now suppose I want to pass to doit only the sub with the Int signature, what is the syntax to do that? | 02:49 | |
02:49
cognominal___ is now known as cognominal,
domidumont left,
diakopter left,
ashleydev left,
Exodist left,
tokuhiro4 left,
kst left,
jlaire left,
renormalist left,
Maddingue left
02:52
Facefox left
02:55
domidumont joined,
diakopter joined,
ashleydev joined,
Exodist joined,
tokuhiro4 joined,
kst joined,
jlaire joined,
renormalist joined,
Maddingue joined,
Facefox joined
02:57
leprevost joined
02:58
fgomez left
02:59
fgomez joined,
fgomez left,
fgomez_ joined
|
|||
sorear | cognominal: the syntax is &a:(Int). However, the full syntax is impossible to implement (by reduction to Rice's theorem), and i don't think any implementation has even a partial version yet | 03:03 | |
r: multi sub a(Int $i) { say "Int $i" }; multi sub a(Str $i) { say "Str $i" }; sub doit(&f) { f(1) }; say &a.candidates | |||
p6eval | rakudo dca0fa: OUTPUT«sub a(Int $i) { ... } sub a(Str $i) { ... }» | ||
sorear | r: multi sub a(Int $i) { say "Int $i" }; multi sub a(Str $i) { say "Str $i" }; sub doit(&f) { f(1) }; say &a.candidates.first(/Int/) | 03:04 | |
p6eval | rakudo dca0fa: OUTPUT«No values matched in method gist at src/gen/CORE.setting:9059 in sub say at src/gen/CORE.setting:6802 in block <anon> at /tmp/oi7j5kxZbd:1» | ||
sorear | r: multi sub a(Int $i) { say "Int $i" }; multi sub a(Str $i) { say "Str $i" }; sub doit(&f) { f(1) }; say &a.candidates.first(rx/Int/) | ||
p6eval | rakudo dca0fa: OUTPUT«No values matched in method gist at src/gen/CORE.setting:9059 in sub say at src/gen/CORE.setting:6802 in block <anon> at /tmp/UbRpZyidam:1» | ||
sorear | r: multi sub a(Int $i) { say "Int $i" }; multi sub a(Str $i) { say "Str $i" }; sub doit(&f) { f(1) }; say &a.candidates.first({ .signature.gist ~~ /Int/ }) | ||
p6eval | rakudo dca0fa: OUTPUT«sub a(Int $i) { ... }» | ||
sorear | r: multi sub a(Int $i) { say "Int $i" }; multi sub a(Str $i) { say "Str $i" }; sub doit(&f) { f(1) }; doit(&a.candidates.first({ .signature.gist ~~ /Int/ })) | ||
p6eval | rakudo dca0fa: OUTPUT«Int 1» | ||
sorear | cognominal: is that a viable workaround? | 03:05 | |
03:06
adu joined
03:09
lestrrat left,
xinming_ left,
lestrrat joined
03:21
fgomez_ left,
xinming joined,
fgomez joined
03:23
derrazo joined,
derrazo left
|
|||
cognominal | that's ok. I did not know about Rice theorem. | 03:27 | |
sorear++ | |||
03:34
pat_js left
03:51
adu left
03:58
cognominal left,
cognominal joined
04:04
fgomez left,
fgomez joined
04:07
adu joined
04:09
flussence left
04:10
flussence joined
04:14
sisar joined
|
|||
sisar | o/ | 04:15 | |
phenny | sisar: 22 May 22:45Z <diakopter> tell sisar < benabik> Parrot builds with debugging by default and nqp/Rakudo use the same options as Parrot. | ||
sisar | twitter.com/chromatic_x/status/205...6118962178 :| | 04:20 | |
04:26
spaceships joined
04:28
slavik1 left
04:34
spaceships left
04:42
adu left
|
|||
moritz | \o | 04:52 | |
sorear | o/ moritz | 04:54 | |
05:05
cognominal_ joined
05:07
birdwindupbird joined
05:09
cognominal left
05:13
adu joined
05:18
wolfman2000 left
05:22
adu left
05:34
REPLeffect left
05:35
flussence left
05:38
flussence joined
05:39
wtw joined
05:58
cognominal_ left,
kaleem joined
05:59
DreamingInCode left
06:01
cognominal joined
06:04
brrt joined
06:19
adu joined
|
|||
dalek | ar: 7d37beb | moritz++ | skel/docs/announce/2012.05: [announce] whoops, spin back two years |
06:21 | |
moritz | star released, announcements sent | 06:27 | |
adu | cool | 06:36 | |
06:37
brrt left
06:38
mucker joined
06:50
NamelessTee joined
|
|||
tadzik | \o/ moritz++ | 06:59 | |
07:06
brrt joined
|
|||
frettled | moritz++ - goodie! | 07:06 | |
07:12
adu left
07:31
stol_ joined
07:53
fhelmberger joined
08:20
stol_ left
|
|||
sisar | mortz++ | 08:26 | |
08:26
dakkar joined
|
|||
sisar | who controls this account: twitter.com/#!/perl6 ? It needs to be revived. | 08:26 | |
moritz has no idea | 08:28 | ||
tadzik | great. Perl is now self-conscious, and it wants to be Perl 6 | ||
08:31
mucker left
08:32
raiph left,
mucker joined
|
|||
frettled | tadzik: what? :) | 08:33 | |
tadzik | ;) | ||
masak | PerlJam: forethought isn't some alternative side-story in the coffee-mug incident. it's right there in canon. "This was the most perfectly planned tantrum you have ever seen. If any of you know Jon, he likes control. This was a perfectly controlled tantrum." strangelyconsistent.org/blog/happy-...ary-perl-6 | 08:42 | |
moritz | eeks, it seems we have regressed on -M and nobody noticed :/ | 08:43 | |
frettled | So there's a test missing? | 08:46 | |
moritz | aye | ||
frettled | quick, group hug! | ||
moritz | and it was me who broke it. Of course. | ||
hugme: hug me | |||
hugme hugs moritz | |||
moritz | hugme: hug everybody | ||
hugme hugs everybody | |||
08:48
stol_ joined
|
|||
dalek | kudo/nom: a90efc7 | moritz++ | src/Perl6/Grammar.pm: unbreak -M command line option |
08:52 | |
08:52
mucker left
|
|||
moritz | ... and Test::Util doesn't support passing command line arguments before the script file name | 08:55 | |
frettled | oops | 08:56 | |
moritz | I'm currently coding a bit in matlab | 09:03 | |
and overall it seems to be a quite nice language for its domain | 09:04 | ||
but what I hate is that it uses the same bracketing for calling a function and for indexing into arrays/vectors/matrices | |||
m(1, 2) # could call a function with two arguments, or index into an at-least-2D matrix | |||
that's surprising, especially if you consider that matlab is mostly used for math stuff, and in math you have quite different notation for functions and for indexing | 09:06 | ||
09:09
lestrrat left
09:11
lestrrat joined
09:17
lestrrat left
09:18
lestrrat joined
|
|||
sisar too remembers being surprised by that | 09:20 | ||
masak | VB is famous for overloading its () syntax, too. | 09:24 | |
moritz | r: module A { constant b is export(:const) = 5 }; import A :const; say b | 09:25 | |
p6eval | rakudo a90efc: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&b' called (line 1)» | ||
masak | but in a way it makes a lot of sense. any of these container types could be seen as a function of sorts. | ||
I agree it's a crappy unification, but it's a unification :P | |||
moritz | r: module A { my $b is export(:const) = 5 }; import A :const; say $b | 09:26 | |
p6eval | rakudo a90efc: OUTPUT«===SORRY!===Variable $b is not declaredat /tmp/jsFBz0PuU8:1» | ||
masak | yay! it is a good backlog when Rice's theorem gets mentioned :) | 09:27 | |
moritz | but I didn't quite understand its relevance there | ||
if you declare sub f(Int &foo) { } then the signature doesn't restrain &foo to functions that return ints, but to functions that declare that they return an Int | 09:28 | ||
which is easy to check; no need to invoke Rice's theorem | |||
masak | troo | ||
moritz | or did I misunderstand the context? | ||
masak | I just assoomed it had something to do with the intractability of where clauses. | ||
but maybe that's entirely beside the point. | 09:29 | ||
moritz | ah, I'm missing the point too | 09:30 | |
it's about selecting one specific multi | |||
which is very possible, if you stick to nominal types | |||
masak | aye. | ||
moritz | which is the example that cognominal++ wanted | ||
masak | right, and sorear only said that a generalized version is impossible. | ||
which shouldn't stop us from doing the nominal-type cases. | 09:31 | ||
moritz | maybe we can give multis with where-clauses explicit names, and use those | ||
09:32
jqb joined
|
|||
moritz | multi a(Int $x where * > 0 ) is named('positive ints') { }; my &cand := &a:named('positive ints'); cand(3) | 09:32 | |
and the compiler can enforce uniqueness of names at compile time | 09:33 | ||
frettled | Is that syntax there specced? | ||
moritz | no, I'm speculating | ||
frettled | I think it could use a little bit more sugar. | 09:34 | |
moritz | I'm not sure. It's not a feature you're supposed to use often | ||
frettled | But if you already know which candidate multi to use, then it seems to me that it would be better if it wasn't a multi. | ||
moritz | it falls in the category "hairy things that should be possible" | 09:35 | |
frettled | I'm not sure it should. | ||
moritz | frettled: but there are good use cases | ||
frettled: for example if you implement a subclass of a numeric type | |||
09:36
bbkr joined
|
|||
moritz | something like class MyInt is Int { } | 09:36 | |
and then you want a multi sub infix:<+>(MyInt, MyInt) that reuses the parent classes' infix:<+>, but then casts the result into a MyInt | |||
then you explicitly want to call infix:<+>(Int, Int) | 09:37 | ||
frettled | Why would you want to do that if the Int in question satisfies MyInt? | 09:38 | |
moritz | and you can't just use callsame(), because you'll also specify an infix:<+>(MyInt, Int) and a (Int, MyInt) candidate | ||
frettled: so that you can fiddle the return type into a MyInt | |||
frettled: the parent's infix:<+> returns an Int, not a MyInt | |||
frettled: and because rakudo doesn't allow that, Instant isn't a subclass of Rat in Rakudo, but has-a Rat | 09:39 | ||
09:39
kresike joined
|
|||
kresike | morning all | 09:39 | |
moritz | though inheritance would have made other stuff much less effort | ||
\o kresike | 09:40 | ||
kresike | moritz, o/ | ||
frettled | morning, kresike :) | ||
kresike .oO(these o/ signs are so nice) | 09:41 | ||
morning frettled | |||
frettled | moritz: but knowing that, why wouldn't you just recast as Int? | ||
moritz | frettled: because that's not the return type I want | ||
moritz confused | 09:42 | ||
frettled | Wait, you just said that you wanted an Int as a return type instead of the MyInt | ||
moritz | no, the other way round | ||
I want MyInt + MyInt to return a MyInt | |||
sorry if that didn't come out clear | |||
frettled | So you want an infix:<+>(MyInt, MyInt) that returns Int? | ||
s/want/ don't want/ | |||
moritz | so, I need to re-dispatch to the Int + Int -> Int operator, and then change Int -> MyInt | 09:43 | |
and this re-dispatching is an IMHO valid use case for dispatching to a specific multi candidate | |||
frettled | I see your point, but why wouldn't infix:<+>(MyInt, MyInt) return a MyInt in the first place? | 09:44 | |
I guess that's my barrier for the example. | |||
moritz | frettled: how would you write infix:<+>(MyInt, MyInt) ? | ||
frettled | moritz: I wouldn't :D | ||
moritz | well, I'd write it as | 09:45 | |
sub infix:<+>(MyInt $a, MyInt $b) { MyInt( infix:<+>:(Int, Int).($a, $b) ) } | 09:46 | ||
and for that I need to select a candidate | |||
I wouldn't know how else to write it, except by re-inventing addition | |||
09:47
daxim_ joined
09:49
nebuchadnezzar left,
nebuchadnezzar joined
|
|||
frettled | I think I can come up with a better contrived example. | 09:51 | |
moritz | that's nice. I don't have a claim on the best contrieved example :-) | 09:52 | |
frettled | You have a custom type called Nat (for natural numbers), and one called NegNat, which are defined by: Int $x where * > 0 and Int $x where * < 0 | ||
NOW you get a selection problem. | |||
Before, you hadn't, because your "where" candidate was the only one using "where", therefore being more specific than the one that didn't. | |||
09:53
sisar left
|
|||
moritz | right, my example didn't cover that case | 09:53 | |
I was just arguing for the need to select multis at all | |||
09:53
sisar joined
|
|||
frettled | Still, it would be feasible to automatically select a candidate with a little bit of effort. You just can't do so generally for bazillions of candidates. | 09:53 | |
moritz | one could always pass concrete values along with the types to do the selection | 09:54 | |
&foo:(Int):val(-1) # gets the NegNat candidates | 09:55 | ||
modulo confusion, of course :-) | |||
frettled | It still looks like there is something wrong with the problem itself, though. | 09:57 | |
I'll go grab some lunch, and if I can come up with anything clever, I'll say it in a bit more than an hour or so. :) | 09:59 | ||
moritz: thanks for the challenge :) | |||
moritz | frettled: :-) | 10:00 | |
fwiw in the setting, I'd solve this problem with nqp::box_i(nqp::add_i(nqp::unbox_i($a), nqp::unbox_i($b)), MyInt) | |||
but that's not portable | 10:01 | ||
10:07
am0c joined
|
|||
moritz | wow, matlab has closures and anonymous functions | 10:10 | |
I'm starting to like it even more :-) | |||
10:14
Guest7594 left
10:18
dakkar left
|
|||
sisar | phenny, tell jnthn, i did obtain a backtrace (gist.github.com/2774389). Also see my comments on the gist for how I obtained it. Most importantly, I have no idea how the process works, I just worked on my intuition . So if you want me to rerun in some other way, do let me know. | 10:21 | |
phenny | sisar: I'll pass that on when jnthn is around. | ||
10:23
nebuchadnezzar left,
nebuchadnezzar joined
|
|||
moritz | maybe perl6 --ll-exception /home/siddhant/.perl6/bin/panda install LWP::Simple is also interesting (though gives a backtrace on a quite different level) | 10:24 | |
moritz has no idea about the context | |||
10:24
donaldh joined
|
|||
sisar | I was trying to investigate the non-deterministic module build failures we've been seeing lately with Panda | 10:25 | |
moritz | sisar++ | ||
sisar | I had no idea about --ll-exception ! | 10:26 | |
oh it is mentioned in `man perl6` ! | |||
10:26
dakkar joined
10:27
nebuchadnezzar left,
nebuchad` joined
10:28
[hds] joined
|
|||
sisar | phenny, tell jnthn, moritz++ gave me the idea for --ll-exception, so here is the gist for `perl6 --ll-exception /home/siddhant/.perl6/bin/panda install LWP::Simple` : gist.github.com/2774471. | 10:30 | |
phenny | sisar: I'll pass that on when jnthn is around. | ||
moritz | sisar: I'm afraid that's not too useful | 10:31 | |
sisar | oh | ||
moritz | sisar: because it gives the backtrace from inside panda, not from inside the perl6 process that tries to build the module | ||
my fault | |||
so the correct approach is to see what shell commands build() launches | 10:32 | ||
sisar | maybe the backtrace will help then... | ||
moritz | and add the --ll-exception option to that buid step | ||
so probably something like perl6 --ll-exception --target=pir --output=blib/lib/LWP/Simple.pir lib/LWP/Simple.pm | 10:33 | ||
sisar | moritz: maybe, before we load jnthn with so much information, I'd like to wait for his opinion on the backtrace :) | 10:34 | |
moritz | maybe :-) | 10:35 | |
10:36
donaldh left
|
|||
sisar afk | 10:36 | ||
10:37
mucker joined
10:40
nebuchad` is now known as nebuchadnezzar
11:00
JimmyZ_ joined
|
|||
frettled | moritz: maybe NQP should be made portable ;) | 11:02 | |
masak | frettled: portable!? why do you hate Parrot so much? :P | 11:11 | |
tadzik | :> | ||
11:11
NamelessTee left
|
|||
frettled | masak: :D | 11:14 | |
Maybe we should just skip Perl 6 and go for NQP instead, everything seems much simpler there. ;) | |||
masak | I think NQP will grow up to be quite a mature little language. | 11:15 | |
11:15
jaldhar left
|
|||
frettled | yup | 11:15 | |
masak | maybe a course could be focused around teaching NQP, and then adding on the Perl 6-specific parts in the second "half". | 11:16 | |
frettled | That would be pretty cool. | 11:22 | |
Or, if someone hasn't done so already: give a introductory talk about NQP, then publish the talk. | 11:23 | ||
11:27
dakkar left
11:30
dakkar joined
11:32
adu joined
11:36
stol_ left
11:37
jerome_ left
|
|||
moritz | Woodi: a blog post for you: perlgeek.de/blog-en/perl-6/2012-new....writeback | 11:39 | |
masak | moritz++ | 11:40 | |
11:41
mikemol joined
11:44
mucker left
11:53
jaldhar joined
|
|||
tadzik | moritz: nice one :) | 11:55 | |
I, for one, adore -MGrammar::Tracer | |||
moritz | except that it's broken in the release :( | ||
tadzik | aw | 11:56 | |
11:58
skids left
|
|||
bbkr | moritz++ # nice blog post about lib.pm | 12:03 | |
moritz | thanks everybody | 12:11 | |
12:16
jaldhar left
12:18
donaldh joined
12:28
stol_ joined,
donaldh left
|
|||
daxim_ | moritz, 2012-news-in-rakudo-2012-05-release.html =~ s/epxort/export/ | 12:37 | |
moritz | daxim_: thanks, fixed | 12:38 | |
daxim_++ | |||
12:39
daxim left
12:43
bluescreen10 joined
12:47
pat_js joined
12:50
leprevost left
12:52
PacoAir joined
12:53
thou joined
12:55
bluescreen10 left
|
|||
PerlJam | masak: Sure ... *now* it's canon. But it wasn't at the time it happened. The "true story" for those of us who weren't there didn't come out until later. | 13:00 | |
masak: my point was that all of my memories will be tainted by what I learned, thought or felt afterwards. | 13:01 | ||
13:06
Util joined,
fglock joined
13:07
Psyche^ joined,
jerome_ joined
13:10
Patterner left,
Psyche^ is now known as Patterner,
bluescreen10 joined
13:12
am0c left
13:18
ggoebel left
13:21
lichtkind joined
13:24
mikemol_ joined
13:28
skids joined
|
|||
masak | PerlJam: consented. | 13:34 | |
I wasn't there, so my memory of that day is 100% what I learned, thought or felt afterwards ;) | 13:35 | ||
13:35
am0c joined
|
|||
moritz vividly remembers not being there | 13:35 | ||
masak .oO( "I was facing north at the time." ) | 13:36 | ||
13:36
ggoebel joined
13:38
Facefox left
13:40
shinobicl joined,
Facefox joined,
Facefox left
13:43
Facefox joined
13:47
pat_js left
|
|||
masak implements loops in QAST | 13:50 | ||
tadzik | yay! | ||
colomon | go masak! | 13:52 | |
tadzik | go masak! go masak! go masak! go masak! ... | 13:53 | |
frettled | ooh | ||
JimmyZ_ | push! push! push! | 13:56 | |
13:56
adu left
|
|||
masak | heh. | 13:58 | |
kresike | masak, commit first, then push :) | 14:00 | |
masak | nqp occupies that sweet spot in that it's clearly a high-level language and flexible and expressive, but it's also close enough to the "metal" of the VM that it's suitable for implementing a compiler. | ||
I mean, I could just imagine swearing over code like this in PIR. here, it's wonderful. | 14:01 | ||
in some regards, nqp feels like Python, actually. | 14:02 | ||
Only One Way, regularly. fairly strict typing. looks more Serious and Official than Perl. | 14:03 | ||
daxim_ | serious business | 14:04 | |
masak | maybe it's the feel of "we gave you a reduced set of things to work with For Your Own Good" that's underlying all those things. | 14:05 | |
maybe I should say "manual type conversion" rather than "strict typing". | 14:06 | ||
14:11
lichtkind left
|
|||
masak | specifically, having this OO API for emitting backend code... lovely. | 14:12 | |
I wish *I* had thought of that! :) | 14:13 | ||
pmichaud++ jnthn++ | |||
moritz | now, is that OO API for emitting backend code copyrightable? :-) | 14:14 | |
masak | I believe a book could easily be written on top of that idea. | 14:15 | |
moritz looks forward to masak++'s commit | 14:17 | ||
masak | www.chris-granger.com/2012/05/21/th...-specific/ -- makes some interesting points. | ||
colomon | and it seems Perl 6 is well-positioned to take advantage of the trends he sees. :) | ||
masak | coincidentally :) | 14:18 | |
but actually taking advantage of those trends requires us to actively move into those domains, of course. | |||
14:19
kaleem left
14:20
Timbus|Away joined,
Timbus left,
Timbus|Away is now known as Timbus
14:23
kaare_ joined
14:26
PacoAir left
14:29
stol_ left,
adu joined
14:32
mtk left
14:34
am0c left
|
|||
masak has now managed to make a while loop that loops at most once :) | 14:35 | ||
just need to make it a little more powerful :P | |||
14:35
wtw left
|
|||
Woodi | moritz: thanx, looks I should at least have candidate what 'lib.pm' can be :) | 14:36 | |
14:36
HarryS left
14:38
geekosaur left,
HarryS joined
14:39
sudokode left
14:40
geekosaur joined,
sudokode joined
14:41
mtk joined
14:42
kaleem joined
14:44
replsos joined
14:45
replsos left,
replsos joined
|
|||
masak | warning: nqp suffers from the "variables can be used before they're declared in a lexical scope" problem. | 14:46 | |
nqp: say $a; my $a | |||
p6eval | nqp: OUTPUT«Confused at line 1, near "say $a; my"current instr.: 'nqp;HLL;Grammar;panic' pc 22008 (src/stage2/gen/NQPHLL.pir:7047) (src/stage2/gen/NQPHLL.pm:329)» | ||
masak | nqp: say($a); my $a | ||
p6eval | nqp: OUTPUT«» | ||
masak | it just bit me, and I was wondering why the thing I expected to be filled with a nice object was Undef. | 14:47 | |
moritz | right, it keeps track of them per-scope | ||
masak | nqp: say($a.WHAT); my $a | ||
p6eval | nqp: OUTPUT«Can only use get_what on a SixModelObjectcurrent instr.: '_block1000' pc 39 ((file unknown):43) (/tmp/Aw6bNQw9xb:1)» | ||
masak | meh. | ||
moritz | and only complains on codegen | ||
nqp: say($a.WHAT); my $a := 5; | |||
p6eval | nqp: OUTPUT«Can only use get_what on a SixModelObjectcurrent instr.: '_block1000' pc 39 ((file unknown):43) (/tmp/wMoaIusvKH:1)» | ||
replsos | basic pdf | 14:49 | |
masak | replsos: intermediate word document | 14:50 | |
advanced LaTeX | 14:51 | ||
moritz | an IRC channel is not a search box :-) | ||
dalek | p/toqast: 694648e | masak++ | / (2 files): [qast] implement while/until |
||
14:51
cognominal_ joined
|
|||
masak | well, that was fun. | 14:52 | |
what's the next thing on the list? :) | |||
14:55
cognominal left
14:56
benabik left,
rgrau left
14:58
NamelessTee joined
14:59
sirrobert joined
|
|||
sirrobert | are there any web frameworks in development for perl6? | 15:00 | |
I've searched around a bit, but didn't see anything. | 15:01 | ||
PerlJam | sirrobert: Bailador | ||
felher | sirrobert: github.com/tadzik/Bailador/ | ||
sisar | sirrobert: look for "Bailador" | ||
felher | *lol* :) | ||
sirrobert | heh thanks; looking now | ||
tadzik | :) | ||
that PoC has got some reputation | 15:02 | ||
felher | tadzik++ is to blame for Bailador :) There was also an AdventPost about it, i think. | ||
sirrobert | heh | ||
tadzik | I think it was just tadzikpost | ||
sirrobert | quick related question... | ||
tadzik | ttjjss.wordpress.com/2012/01/06/sta...on-perl-6/ | ||
sirrobert | I love perl5 (though I haven't been able to use it for a little over a year). I've followed perl6 for a few years. | ||
Now I've started my own tech startup... I *think* I want to use perl6. Help me convince myself? =) | 15:03 | ||
tadzik | huh, a brave one | ||
sirrobert | (my business partner really LOVES ruby and rails, but I ... don't =) | ||
tadzik | what do you need to use Perl 6 for? | ||
PerlJam | sirrobert: Use Perl 6 for what exactly? What does the startup do? | ||
tadzik | I'm afraid it may not be ready for your usage, especially as a Ruby on Fails replacement | 15:04 | |
* Rails | |||
sirrobert | Well, the heavy lifting that's speed dependent would be in C libs | ||
sisar | .oO ( intentional typo ? ) | ||
sirrobert | I would have us write the front-end (which is an internal-network web-based tool) in whatever. | ||
I'm not especially daunted by the lack of a major web front-end... we could contribute to a project like that. | |||
in a nutshell, we do "big-data" style performance monitoring on applications in arbitrarily large networks. | 15:06 | ||
PerlJam | sirrobert: and you'd want to use Perl 6 for the web front-end? | ||
masak | sirrobert: if you go with Perl 6 in your startup, you have to prepare for various potholes in the road. | ||
sirrobert | initially, anyway. | ||
PerlJam | sirrobert: and you wouldn't care if requests were serviced slightly slowly? | 15:07 | |
sirrobert | Yeah, I'm not too worried about potholes. | ||
Well, depends on what "slowly" means =) | |||
masak | sirrobert: I would advise you to use Perl 6 for minor scripts first, and then migrate slowly to things like web frontends. | ||
sirrobert: you're not worried about potholes? welcome to #perl6! :D | |||
sirrobert | heh | ||
hmm. | 15:08 | ||
So, I've written some small stuff in perl6 (a year ago, using Rakudo*). Why start there? | |||
tadzik decommutees | |||
masak | sirrobert: I would just suggest not taking too large a first bite. that's a common way to get nowhere. | ||
better to start with small things that work and migrate up/out to larger things that work. | 15:09 | ||
you will hit various scaling issues. | |||
PerlJam is dubious but hopeful | |||
sirrobert | masak: sure... I get that. hmm. | ||
My thought is something like, "Until someone uses it for serious stuff it won't get used for serious stuff." | 15:10 | ||
PerlJam | sirrobert: you'd certainly get lots of help from #perl6 I'll warrant. | ||
sirrobert++ | |||
colomon | sirrobert: well said | ||
sirrobert | (reading Bailador stuff now) | 15:11 | |
Thanks all, btw. | |||
I really loved Catalyst chaining (once I understood it). | 15:12 | ||
masak | sirrobert: it will be an "interesting" journey, in that you will have to write a lot of framework infrastructure yourself. | 15:13 | |
but that's really the main obstacle I see. | |||
sirrobert | Yeah, I actually see that as a positive. | ||
masak | sirrobert: if you do this, I personally guarantee to help you as much as I can. | ||
sirrobert | masak: thanks =) | ||
TimToady | where's your startup located, btw? | 15:14 | |
sirrobert | My CTO is on vacation for a month with his wife, so now is the time ;) | ||
15:14
birdwindupbird left
|
|||
PerlJam | sirrobert: heh! | 15:14 | |
masak | sirrobert: we need early adopters just like you, who are willing to roll with it and use Perl 6 in production environment. | ||
sirrobert | We're in NC, USA | ||
masak | environments* | ||
brrt | sirrobert: what server will you use? | ||
sirrobert | The good news is our product is targeted (initially) at high tech startups and larger enterprise companies. | ||
It's internally facing, not publicly consumable. Might be a really good candidate. | 15:15 | ||
15:15
benabik joined
|
|||
TimToady | indeed | 15:15 | |
sirrobert | Is there some kind of design doc for Bailador (besides the repo itself)? | ||
brrt | because i'm in the process of building mod_parrot, which will run parrot - and by extension, rakudo - in the apache web server | ||
PerlJam | sirrobert: Dancer :) | ||
sirrobert | PerlJam: heh | ||
15:16
driador joined
|
|||
TimToady | might be better to go the fastcgi route if you don't want to fight possible memory leaks so much | 15:16 | |
though that's a lot more stable these days | 15:17 | ||
sirrobert | TimToady: mem leaks in Bailador, you mean? | 15:18 | |
TimToady | I mean, as code gets tweaked in rakudo/parrot, write barriers could go missing temporarily | ||
sirrobert | Ah, fair enough | ||
TimToady | and long-running processes with multiple tasks will tend toward fratricide in those cases | 15:19 | |
but independent processes can be individually restarted more easily | |||
15:23
DreamingInCode joined
|
|||
TimToady | DreamingInCode: o/ | 15:23 | |
DreamingInCode | Morning TimToady | 15:25 | |
diakopter | anyone around who uses parrot/nqp/rakudo on mac os x? | 15:27 | |
estrai | I'm but currently I'm not on os x | ||
TimToady | my church in Cupertino is the wrong religion for that... :) | 15:28 | |
adu | diakopter: me | ||
TimToady | well, not exactly wrong, just orthogonal | 15:29 | |
diakopter | I'm trying to follow the recommended procedure. It's a fresh mac os x. I've just installed xcode (that took a while), now I've gone to Preferences..Downloads..Install Command Line Tools (gcc? clang?) | ||
benabik uses OS X. | 15:30 | ||
Yes, you have to install the command line tools, either from XCode or from the dev center. | 15:31 | ||
15:32
vlixes joined
|
|||
diakopter | what's the recommended git (package/dmg?) | 15:33 | |
benabik | I tend to install things via homebrew. | ||
diakopter | is that like macports or fink (both of which I fought years ago) | 15:34 | |
benabik | It's vaguely similar to macports, but I've found it somewhat better behaved. | ||
15:35
kaleem left
15:36
kaleem joined
15:37
fglock left
|
|||
benabik | But fink/ports/brew is the typical way to grab libraries and tools. | 15:37 | |
diakopter | I'm trying out brew. macports and fink made me cry when I used a mbp 3 years ago | ||
benabik | Yeah. I loved fink for a while, but it's starting to both lag and try to duplicate piles of system libraries and tools. | 15:38 | |
diakopter | seems I don't need to be root to install packages | ||
benabik | brew's preference is to install somewhere owned by the user. I just chowned /usr/local to myself. | 15:39 | |
15:39
cognominal_ left
15:40
cognominal joined
|
|||
sirrobert | Are perl6 modules installed globally (as with Perl5/Ruby) or locally to a project (as with node.js)? | 15:42 | |
moritz | sirrobert: we currently default to installing per-user | ||
sirrobert | moritz: per-*user*? where can I read about that? | 15:43 | |
I'm looking at the ecosystem repo, but I don't see info about that... | |||
15:44
am0c^ joined
|
|||
colomon | sirrobert: it installs to ~/.perl6 | 15:44 | |
moritz | sirrobert: the module installer is called panda, and that's what responsible for chosing the installation location | ||
sirrobert | colomon: Ah, I see what you mean. | ||
moritz | sirrobert: we just have Rakudo pick up modules in ~/.perl6/lib/ by default (as well as in its own installation location), so it is a kind of obvious installation target | 15:45 | |
sirrobert | moritz: Thanks | ||
moritz | sirrobert: it was more evolution than design :-) | ||
sirrobert | moritz: Yeah, that makes sense. I like how node.js installs to .node_modules in the project directory. | 15:46 | |
heh nod | |||
moritz | the design approaches we tried suffered from over-design and under-working :-) | ||
sirrobert | heh | ||
TimToady | and nobody has quite implemented what S11 specs for officially installed modules yet | ||
moritz | TimToady: you mean the immutability thingy? | ||
TimToady | for one | 15:47 | |
but maybe the increasing git mindfluence will move people toward that notion of identity | |||
basically, official modules are values, not containers :) | 15:48 | ||
moritz | for that to work, our compilers need to become values too | 15:49 | |
brrt | that is true for parrot | ||
15:50
stol_ joined
15:51
tokuhirom joined
|
|||
sirrobert | gotta go. thanks all =) | 15:52 | |
15:52
sirrobert left,
JimmyZ_ left
|
|||
TimToady | we need to encourage startups to take more risks :) | 15:53 | |
btw, is this "Catalyst chaining" something like what our .* does/did? | |||
TimToady is still thinking about how to hang declarative traits on a vertical slice of methods of the same name | 15:56 | ||
at least we generally know the parentage at compile time, which is something | |||
PerlJam | TimToady: catalyst chaining is hooking together subroutines to be executed based on the URL matching that happens. So a URL with /foo/5/bar/baz/27 might actually execute some setup sub for the "/foo/5" portion, then another sub for the "/bar" and another for "/baz/27" (the subs are "chained" together) | ||
s/with/of/ | |||
TimToady | okay, so might turn into .* with constraints, if it didn't fail non-bindings | 15:57 | |
which was discussed here some days ago | 15:58 | ||
well, perhaps not done with inheritance, but with .*@methodrefs or some such | |||
PerlJam | that sounds about right | 16:00 | |
16:03
dakkar left
|
|||
diakopter | hm | 16:04 | |
trying to build rakudo from git checkout | |||
I give it a --with-nqp and it ignores it and starts building its own nqp. then fails to find parrot even though I provide a --with-parrot= | 16:05 | ||
TimToady can't help, always uses --gen-parrot | |||
diakopter | I did use --gen-parrot for nqp; that worked | 16:06 | |
tadzik | diakopter: I use neither --with-nqp nor --with-parrot, I just have both installed | ||
16:07
replsos left,
brrt left
|
|||
diakopter | hm, there we go. I needed to make install nqp (which installs it to nqp/install/bin) | 16:08 | |
colomon | grammar experts: Right now the ABC grammar is entirely regexes. That works fine as long as the ABC file is correct. But when there is an error in the file, it seems to effectively go into an infinite loop. I'm assuming that is all backtracking and trying other options. How do I work around that? | 16:11 | |
masak | use tokens instead of regexes. | 16:12 | |
to a first approximation. | |||
TimToady | is the ABC grammar ambiguous enough to require backtracking? | ||
colomon | TimToady: I don't think so. Not in the large, for sure. | ||
PerlJam | colomon: put in calls to panic as one of the alternatives? | ||
TimToady | that's the other thing | 16:13 | |
see STD for prior art | |||
colomon | what exactly does using token do? | 16:14 | |
masak | enables :ratchet | ||
colomon | ...which means? :) | ||
masak | that is, makes all backtracking constructs non-backtracking by default. | ||
TimToady | S05 is your (big) friend :) | ||
colomon did try reading up on this in S05, honest | |||
masak | there are three backtracking modes: greedy (which starts long and shrinks), frugal (which starts short and grows), and ratchet (which starts long and stays that way). | 16:15 | |
16:16
am0c joined
|
|||
TimToady | you might find it runs faster if it doesn't have to remember all the choice points too | 16:16 | |
16:18
[hds] left
|
|||
colomon | I guess, at a first approximation, what I'm hoping to have it do is say, "I've recognized that's a bar of music. I'm never going to backtrack and try to interpret it as something else. | 16:19 | |
masak | right. | ||
colomon | Is it enough to just change "regex bar" to be "token bar"? | ||
TimToady | probably | ||
masak | as long as your tests still pass, yes. | ||
PerlJam | colomon: that's exactly what ratchet is for | ||
masak | most large languages have this trait, that they're one-pass or mostly one-pass. | 16:20 | |
garden paths are confusing to human readers as well, so language designers tend to avoid them. | |||
colomon | all my tests still pass. But that doesn't seem to have helped my problem. | 16:21 | |
TimToady | somewhere you might want: <bar> || <.panic: "An A, B, and C unwalk into a bar"> | ||
try changing all your regex to token | |||
16:22
kaleem left
|
|||
TimToady | course, it could just be an normal garden-variety infinite loop too | 16:22 | |
colomon | Hmm... that at least gets me an error! | ||
masak | \o/ | ||
PerlJam | could he say :ratchet on the grammar to make all regex act as token decls? | 16:23 | |
TimToady | now to get the right error, add more || | ||
why? "token" is just as short as "regex" | |||
colomon | ...but now two of the test files fail. :( | ||
TimToady | so maybe you're depending on backtracking for one or two items, like Perl 6 does :) | 16:24 | |
PerlJam | TimToady: just curiously exploring the option space. | ||
colomon | TimToady: sounds right. :) | ||
TimToady | PerlJam: seems like multiplying entities to me | ||
PerlJam | probably. I just never know when that's bad or good ;) | 16:25 | |
TimToady | and likely to confuse anyone who sees "regex" and doesn't realize it means "token" | ||
that's kinda like the feature in COBOL that could rename labels | |||
diakopter | hm, nieza startup/nop time is 1.2s; rakudo is .28s | 16:26 | |
arnsholt | moritz: Thanks for merging the cstr branch. My brane has been elsewhere lately | ||
PerlJam | You've just invoked a Godwinesque law by mentioning COBOL | ||
colomon | first thing that's failing is a test of this: token inline_field { '[' <alpha> ':' $<value>=[.*?] ']' } | ||
TimToady | unlike Hitler, COBOL didn't kill COBOL. | ||
arnsholt | Renaming labels? Nifty. Almost as cool as changing the value of literals =) | 16:27 | |
colomon | the token conflicts with the .*? somehow (he guessed?) | ||
TimToady | or maybe it did... | ||
diakopter | think of all those poor Hitlers who had to change their name | ||
sorear | good * #perl6 | ||
colomon | sorear! \o/ | ||
hmmm, changing just that one token back to a regex fixed all the test errors. | 16:28 | ||
PerlJam | colomon: Is the grammar at github.com/colomon/ABC/blob/master...Grammar.pm up-to-date except for the token changes? | ||
colomon | that actually kind of makes me worried... | ||
PerlJam: give me a moment, looks like it may be a day or two old | 16:29 | ||
TimToady | think of all those poor COBOLs who had to change their name... | ||
colomon | nope, that's the latest (minus the token changes) | ||
TimToady | I think most of 'em changed their name to Java | 16:30 | |
diakopter | COBOL->Oak->Java | 16:31 | |
PerlJam | colomon: at a guess I'd say it's because of ambiguous prefixes that start with '[' | ||
colomon | PerlJam: that's what I was thinking originally myself, but I got the fails when directly testing the inline_field regex/token | 16:32 | |
PerlJam | completely by itself? | ||
colomon | turns out the error message I was getting was because I was just assuming the alleged ABC file would match the grammar. | ||
PerlJam: yes | |||
16:33
NamelessTee left
|
|||
colomon | TimToady: tried your panic code, got the message Unhandled exception: Unable to resolve method panic in class Grammar | 16:34 | |
:( | |||
16:36
daxim_ left
16:40
fridim_ joined
16:43
REPLeffect joined
|
|||
moritz | panic isn't built-in | 16:49 | |
colomon | moritz: ah | 16:59 | |
btw, TimToady++ masak++ PerlJam++ # not going into a near infinite backtracking loop whenever an error is hit is a HUGE improvement in the ABC parser. | |||
16:59
am0c_ joined
17:00
PacoAir joined
17:03
cognominal_ joined
|
|||
dalek | ok: 7ca6798 | (Przemysław Wesołek)++ | src/ (2 files): Removed underscores from A<>'s and Z<>'s. Closes #68. |
17:06 | |
17:06
cognominal left
|
|||
kresike | bye all | 17:14 | |
17:14
kresike left
17:15
wolfman2000 joined
17:19
estrabd joined
|
|||
colomon | ooo, I think switching from regex to token has made the ABC code about 5% faster! | 17:19 | |
felher | What does the 'Q' in QAST stand for? | 17:21 | |
17:21
NamelessTee joined
|
|||
PerlJam | P++ | 17:21 | |
felher | Okay, what did the P stand for? :D | 17:22 | |
tadzik | Parrot, Perl/ | 17:23 | |
felher | okay, thnx u2 | ||
tadzik | yw | ||
17:25
alester left
17:39
stol_ left
17:45
uniejo joined,
uniejo left
17:47
cognominal___ joined
17:48
fridim_ left
17:51
cognominal_ left
|
|||
masak | <TimToady> unlike Hitler, COBOL didn't kill COBOL. | 17:52 | |
masak pictures Hitler killing COBOL | |||
sorear | o/ masak | ||
masak | sorear! \o/ | 17:53 | |
felher: the "P" always stands for "Patrick Michaud" :P | |||
felher: the gradual spread of the letter "Q" in the entire toolchain is a reflection on the fact that Patrick Michaud is upgrading from his ordinary, impressive self to a superhuman cyborg with capabilities that defy physics as we know it. | 17:55 | ||
or so I've heard. | |||
felher | Of course! I should have known that! :) | 17:56 | |
TimToady | masak: hearing voices now, are we? | ||
masak | TimToady: it would be quite awesome to be hearing voices, if the voices were really into strong AI and a hard Singularity takeoff. | 18:00 | |
TimToady | you mean like Kurzweil hears voices? :) | 18:01 | |
typical pianist, thinks the piano's voice is a substitute for all other voices... | 18:03 | ||
ショッピング & | 18:04 | ||
18:04
fhelmberger left
|
|||
masak kana read that without augmented tooling :) | 18:05 | ||
phenny: jp en "ショッピング"? | 18:06 | ||
phenny | masak: "Shopping" (ja to en, translate.google.com) | ||
18:06
am0c left
|
|||
masak | shuo2 ping4 :) | 18:06 | |
adu | TimToady: I would have said kaitoki | 18:07 | |
18:07
cognominal___ left
18:08
adu left,
cognominal joined,
am0c_ left
18:22
tokuhirom left,
tokuhirom joined
|
|||
[Coke] backscrolls, and suggests: Quantum Michuad. | 18:24 | ||
18:25
snearch joined
|
|||
masak | that does sound like a superhero. a bit like Dr Manhattan. | 18:26 | |
PerlJam | Coke++ | ||
18:27
tokuhirom left
|
|||
masak | Quantum Abstract Syntax Tree works quite well, too. practically a necessity if your language supports junctions :P | 18:29 | |
18:29
stol_ joined
18:31
REPLeffect left,
REPLeffect joined
|
|||
colomon | But Quantum Abstract Syntax Tree does *not* sound like a superhero. :( | 18:32 | |
PerlJam | As long as we don't start having files with a .qm suffix ... | ||
masak | no, only Quantum Michaud is allowed to have those. | 18:33 | |
colomon: maybe we should start referring to them as Awesome Syntax Trees instead. I never quite got what's so abstract about them -- I think the "abstract" was put in to make it a TLA. | 18:34 | ||
colomon | Quantum Awesome is a Good Combination. :) | 18:35 | |
PerlJam | masak: well, they are a little more abstract than the definite syntax you used to write the code in the first place. | ||
(just maybe not abstract in the right direction for you?) | |||
masak | probably not. | ||
ASTs feel quite concrete to me. | 18:36 | ||
colomon | diakopter++ | 18:39 | |
diakopter | for #perl6 perusal: host02.appflux.net/p6/Perl_6_S05_Sy..._Sheet.pdf with fixes from TimToady++ & sorear++ | 18:40 | |
18:40
snearch left
|
|||
colomon | cause and effect reversed! ;) | 18:41 | |
I'm tempted to print that out and hang it on my wall | |||
sorear | cause and effect reversed? | 18:42 | |
masak | colomon upping diakopter's karma before diakopter's announcement on-channel. | ||
colomon | what masak says. | 18:43 | |
PerlJam | diakopter++ nice | ||
masak | I think there's a simple explanation, such as colomon-diakopter privmsg. | ||
colomon | indeed. :) | ||
masak | no reason to bring in heavier hypotheses than that... oh, nice ;) | ||
PerlJam | diakopter: the goal-matcher description confuses me. | 18:44 | |
masak | in related news, I think Bell's theorem is rather nice. :) | ||
18:44
Chillance joined,
REPLeffect left
|
|||
dalek | mentaler: 2411e04 | tadzik++ | / (2 files): Sort modules by workingness |
18:44 | |
18:45
am0c^ left,
REPLeffect joined
|
|||
colomon | wait, actually lue's presence for so long disrupted #perl6's causality. yeah, that's the ticket... | 18:45 | |
diakopter | PerlJam: any suggestions? maybe specify "ternary"? | ||
sorear | masak: I think it's amazing how many people have problems with Bell's ... | ||
PerlJam | diakopter: maybe | 18:46 | |
masak | sorear: Aaronson had a *really* nice, short explanation in a blog post comment of his. I'll see if I can find it. | 18:47 | |
PerlJam | diakopter: what works in my head is a template A ~ B C and then talk about A B and C | ||
masak | it boils Bell's down to a level where it's hard to see any alternative to it. | ||
sorear | masak: yes, I am in part referring to Aaronson's last couple of comments | 18:48 | |
diakopter | oh, oops, I got the Nth thing wrong. fixing. | ||
masak | ah, here: www.scottaaronson.com/blog/?p=993#comment-43869 | ||
sorear: I find those two threads fascinating. not because it's hard to take sides, but because the topics are intriguing. | 18:49 | ||
sorear | you actually read that comment thread? | ||
18:49
snearch joined
|
|||
masak | about half of it. | 18:50 | |
I am quite interested in QM and QC. | |||
PerlJam | quantum mechanics and quality control? :) | 18:53 | |
masak | Quantum Computing ;) | ||
and I'm reluctantly fascinated with debates in which scientists deconstruct kooks. | |||
one nice realization of those threads was "if there's no way to express your physical theory as a computer simulation, then that probably means that it's not a physical theory". | 18:55 | ||
diakopter | PerlJam: see if you like the next version | 18:56 | |
kubrat | jnthn: masak: kudos for the amazing p6 tutorial at the IT meetup last week | 18:58 | |
you've won yourself a new recruit ;) | 18:59 | ||
masak | kubrat: \o/ | ||
kubrat: it was our pleasure. so nice to make a tutorial outside of the Perl bubble for once. | 19:00 | ||
we do feel that we have something amazing with Perl 6. the general sense of the audience at the IT meetup was such that it confirmed that feeling. that makes us come back with renewed energy, ready to redouble our efforts. | 19:01 | ||
PerlJam | diakopter: better I think. | 19:04 | |
diakopter: your original version of the nth() forms would also have worked btw. :1st or :st(1) or :st(5) or :nth(2) or :5th or any of the original forms or the new forms. | 19:07 | ||
diakopter: (though, you have "N:st" rather than ":Nst") | |||
19:10
stephenlb joined
|
|||
diakopter | oops | 19:10 | |
19:14
Facefox left
19:16
Facefox joined,
Facefox left
19:17
Facefox joined
19:25
lexu joined
19:26
brrt joined
19:28
pernatiy_ joined,
benabik left
19:29
pernatiy left
|
|||
masak | TimToady: S05 refers to "eager" but not "frugal". (discovered by diakopter++) mind if I make "frugal" the primary term in S05, while also referring to "eager"? | 19:30 | |
further digging reveals that "minimal" is actually the predominant term in S05 for that kind of backtracking. | 19:31 | ||
PerlJam | masak: ask forgiveness. :) I like the term "frugal" too | 19:32 | |
masak makes it so | |||
19:33
birdwindupbird joined
|
|||
diakopter | I prefer "minimal" | 19:34 | |
PerlJam | diakopter: you like the dichotomy between "maximal" and "minimal" ? | ||
masak | if greedy matching were ever referred to as "maximal", I might prefer "minimal" too. | 19:35 | |
19:35
lexu left
|
|||
diakopter | yeah.. I can't actually make the greedy/frugal dichotomy work as a metaphor in my head. | 19:35 | |
I can see how greedy means taking as much as possible | |||
19:36
brrt left
|
|||
dalek | ecs: cac7e30 | masak++ | S05-regex.pod: [S05] prefer term "frugal" to "eager"/"minimal" |
19:36 | |
diakopter | but I don't see how frugal can mean take as little as possible | ||
19:36
REPLeffect left
|
|||
masak | diakopter: maybe the resource being spent is $/ allocation memory :) | 19:36 | |
diakopter | eager is in there 3 other times | ||
masak | yes, but for other things. | 19:37 | |
as in, eager list context. | |||
19:37
REPLeffect joined
|
|||
diakopter | oh. | 19:38 | |
what is eager list context | |||
PerlJam | diametric opposite of lazy list context ;) | 19:39 | |
masak | nah, it's more of a sliding scale... :) | ||
diakopter | I don't see how eager meant frugal, then, in what masak replaced | ||
masak | lazy -- egaer -- hyper -- race | ||
eager* | 19:40 | ||
PerlJam | diakopter: it didn't. | ||
masak | diakopter: sorry, I was unclear. I replaced those where "eager" meant "frugal". I kept those where it meant "non-lazy". | ||
diakopter | masak: maximal is used in S05, right before one of the minimals you replaced | ||
masak | oh dang. | 19:41 | |
shoulda checked that. | |||
5 uses of "greedy", 2 uses of "maximal" (but only one of them in context) | |||
diakopter | PerlJam: why did masak replace eager with frugal, then? | 19:42 | |
was eager previously misused there? | 19:43 | ||
dalek | ecs: 68718e6 | masak++ | S05-regex.pod: [S05] ss/<(maximal)> matching/greedy/ Now in a new, even more consistent flavor! |
||
PerlJam | diakopter: I think so. It doesn't make enough sense to me in that paragraph. | ||
masak | which line are you referring to? | 19:44 | |
diakopter | the one where you replaced eager with frugal | ||
cognominal | I have written a nice routine to debug a match but it fails when I replace the block 'for' with a postfix one : gist.github.com/2777326 | ||
diakopter | To force the preceding atom.. | ||
cognominal | do I miss something or is this a bug? | 19:45 | |
s/fails/does not behave as the pristine version/ | |||
masak | cognominal: sounds like you're onto something. | 19:46 | |
PerlJam | diakopter: it's "eager" in terms of success. As soon as the first match is found, it eagerly stops. That's partly why like talking in terms of greedy/frugal since those terms are about consumption | ||
masak | cognominal: would appreciate a golfed version, svp. | ||
cognominal | also, the routine could make it into Match.pm with a more appropriate name | 19:47 | |
diakopter | PerlJam: I suppose I can see that. | 19:48 | |
but it's confusing because eager can also be taken to mean eagerly take as much it can | |||
someone would have to know about eager list context to get the reference, in other words. like I didn't. | 19:49 | ||
I mean, I'd heard of eager list context, I've just never really learned it. | |||
masak | that's yet another reason not to refer to both the list context and the quantifier backtracking mode as "eager". | 19:52 | |
one means "take as little as you can at first", the other mean "take it all". | |||
diakopter | so you're saying you're reversing your commit? | 19:53 | |
I'm cornfused :/ | |||
PerlJam | no, no, I think his commit makes the confusing less so | ||
masak | I removed one of the senses of "eager" from S05, so the current state should be less confusing. | 19:54 | |
PerlJam | Though, I suppose we could remove the part of the sentence where it mentions "eager matching" | ||
masak | well, the reason I put that in is that some parts of the industry use the term "eager". | 19:55 | |
and we're in a minority to call it "frugal". | |||
20:00
benabik joined
|
|||
cognominal | what is the rakudo flag to disable optimization? | 20:00 | |
tadzik | -O 0 maybe | 20:01 | |
it's not in --help thoug | 20:02 | ||
cognominal | --optimize=0 according to src/Perl6/Optimizer.pm | 20:03 | |
masak | should probably be in --help | 20:04 | |
masak looks into it | |||
cognominal | too bad, my code work the same unoptimized. I can't blame jonthn :) | 20:05 | |
masak | heh :) | 20:06 | |
PerlJam | Hrm. does --target=PAST not work anymore? | 20:09 | |
masak | you might get different results for --target=PAST and --target=past | 20:10 | |
but I almost never get anything sensible out of those. | |||
20:15
birdwindupbird left
20:20
mikemol_ left,
jqb left
20:21
mikemol left
20:25
sporous left
|
|||
PerlJam | cognominal: what's the difference in behaviors between the regular for loop and the statement modifier version? | 20:25 | |
20:25
sporous joined
|
|||
cognominal | apparently it exits the loop after the first element. | 20:27 | |
timotimo | how can i yadayadayada a method of a class and implement it later? i tried this: | ||
dalek | kudo/nom: 3aba24b | masak++ | src/Perl6/Compiler.nqp: [Perl6::Compiler] add --help line about --optimize tadzik++, cognominal++, for discovering that it was missing, and what it should be, respectively. |
||
timotimo | r: class A { method foo($a) { ... } }; method A::foo($a) { say "hello"; }; A().foo(1); | ||
p6eval | rakudo a90efc: OUTPUT«Useless declaration of a has-scoped method in mainlineNo such method 'A' for invocant of type 'Parcel' in <anon> at src/gen/BOOTSTRAP.pm:804 in <anon> at src/gen/BOOTSTRAP.pm:801 in any <anon> at src/gen/BOOTSTRAP.pm:796 in block <anon> at /tmp/85FdivhewN:… | ||
20:28
kaare_ left
|
|||
cognominal | Perljam, but I can't golf the conditions to trigger it | 20:28 | |
r: my $s; my $tits = '00' ~~ /(.)(.)/; $s ~= $_.key if $_.value ~~ Match for $tits.caps; say $s | |||
p6eval | rakudo a90efc: OUTPUT«01» | ||
cognominal | this one works correctly | ||
tadzik | might be worth to note what's the default level | ||
dalek | kudo/nom: 5e7559a | masak++ | src/core/Match.pm: [src/core/Match.pm] changed <> to q[] in .gist Suggested by pmichaud++. It may or may not be worth it to also escape all ']' in the matched text itself. |
||
kudo/nom: 7f40758 | masak++ | src/core/Match.pm: [src/core/Match.pm] removed root-level '=> ' |
|||
20:29
bluescreen10 left
|
|||
dalek | kudo/nom: 038718f | masak++ | docs/ChangeLog: [docs/ChangeLog] mention Match.gist |
20:29 | |
cognominal | but I am proud, of the call $tits.caps | 20:30 | |
masak | (that was the match-gist-fixup branch rebased/merged onto nom. we said we'd do that after release. feel free to test it a little if you like.) | ||
diakopter | cognominal: what | ||
's the one that doens't work | |||
20:31
stol_ left
|
|||
cognominal | diakopter, see gist.github.com/2777326 with a non trivial match | 20:32 | |
20:32
REPLeffect left
|
|||
PerlJam | cognominal: Try: do { $s ~= sprint $_.value, $_.key, $indent++ } if $_.value ~~ Match for $m.caps; | 20:32 | |
20:33
REPLeffect joined
|
|||
PerlJam | oh, that probably won't work. | 20:34 | |
cognominal | Unsupported use of do...for; in Perl 6 please use repeat...for | ||
PerlJam | Hrm. | 20:35 | |
masak | why are you programming by proxy? can't you just use p6eval? | ||
diakopter | r: my $s; my $tits = '00' ~~ /(.)(.)/; for $tits.caps { $s ~= $_.key if $_.value ~~ Match }; say $s | 20:36 | |
p6eval | rakudo a90efc: OUTPUT«01» | ||
20:38
Facefox left
|
|||
diakopter | cognominal: what's the error with a non-trivial Match | 20:40 | |
20:40
countley joined
20:41
tyatpi left
|
|||
diakopter | or wrong output | 20:41 | |
20:41
Facefox joined
20:42
bluescreen10 joined
|
|||
[Coke] | kubrat++ # welcome aboard. | 20:45 | |
jnthn | morning | 20:46 | |
phenny | jnthn: 10:21Z <sisar> tell jnthn i did obtain a backtrace (gist.github.com/2774389). Also see my comments on the gist for how I obtained it. Most importantly, I have no idea how the process works, I just worked on my intuition . So if you want me to rerun in some other way, do let me know. | ||
jnthn | er | ||
phenny | jnthn: 10:30Z <sisar> tell jnthn moritz++ gave me the idea for --ll-exception, so here is the gist for `perl6 --ll-exception /home/siddhant/.perl6/bin/panda install LWP::Simple` : gist.github.com/2774471. | ||
jnthn | evening | ||
... | |||
Yeah, I'm tired. :) | |||
masak | jnthn! \o/ | ||
20:46
stephenlb left
20:47
stephenlb joined
|
|||
diakopter | cognominal: example of a non-trivial match? | 20:47 | |
sprint ("FOO" ~~ /(F(O(O)))/) seems to do the right thing | |||
20:48
stephenlb left,
stephenlb joined
|
|||
masak | why are you discussing program input by proxy? :) | 20:49 | |
cognominal | diakopter I pushed my code into github.com/cognominal/p6peg ; perl6 Grammar.pm works correctly except with the postifx 'for' | ||
20:50
Facefox left
|
|||
cognominal | well correctly, meaning it print what is expected but my grammar is still wrong. I wrote sprint in the process of debugging it. | 20:50 | |
20:50
wolfman2000 left
|
|||
diakopter | haha; expletives | 20:50 | |
cognominal | masak, don't blame diakopter but me for not providing all the context. | 20:51 | |
masak | just pointing out that you're doing this the hard way. :) | ||
golfing a bug should be a speed dive towards minimal program and minimal input. | 20:52 | ||
PerlJam | cognominal: gist.github.com/2777720 | ||
20:52
muixirt joined
20:53
Facefox joined,
Facefox left
|
|||
PerlJam | If jnthn or someone who can explain what's going on will vet the patch, I'll commit it :) | 20:53 | |
20:53
REPLeffect left,
Facefox joined,
Facefox left
|
|||
diakopter | it's not supposed to indent like that | 20:54 | |
so another thing is not working as intended | |||
cognominal | Perljam: I added the expletives because when parsing a grammar with itself, I got confused between the parser and the parsee | ||
PerlJam | well, at least it doesn't just stop at the first one :) | 20:55 | |
20:55
Facefox joined,
Facefox left
|
|||
diakopter | the $indent++ needs pulled out of the for loop to work as it seems to be intended | 20:56 | |
PerlJam | oh, the identation is a bug in the original co | ||
er, cod | |||
eCODE! | |||
blah | |||
skids | .o0(grammar YosemiteSam) | ||
20:56
REPLeffect joined
|
|||
cognominal | perljam: sorry I pushed with the two loop one in another | 20:56 | |
jnthn | PerlJam: The patch looks a lot less fishy than your typing. | ||
muixirt | hi, bug #108508 seems to be fixed in latest rakudo star | 20:57 | |
20:57
Facefox joined
|
|||
diakopter | cognominal: why regexes and not tokens and rules? ooc | 20:59 | |
cognominal | diakopter. yes, the indent code is wrong. | ||
PerlJam | cognominal: reload gist.github.com/2777720 for the bug fixed output | ||
cognominal | that was a blind attempt at fixing code. This did not change anything. | ||
jnthn | muixirt: Thanks; I've tagged that ticket testneeded. | 21:01 | |
diakopter | cognominal: typo classChaRange in regex class | 21:03 | |
cognominal | I can I allow you tu push into my depot? | 21:05 | |
*How can I | |||
21:06
skids left
|
|||
cognominal | jnthn, diakopter, perljam. you can push into the p6peg depot | 21:07 | |
21:08
REPLeffect left,
REPLeffect joined
|
|||
PerlJam | jnthn: I really have no idea what to put for a commit message on that patch. "Wrap a lexical environment around the target statement of a for modifier" ??? something like that? | 21:09 | |
I only have mild guesses without much definite knowledge | |||
jnthn | PerlJam: You're just making it a closure to pass to map | 21:10 | |
PerlJam: We normally pass closures to map so that makes sense. | |||
PerlJam | so, if it wasn't a closure before, how did statement_mod_for even work? | 21:11 | |
jnthn | PerlJam: Incorrectly in some cases :) | 21:12 | |
sjn | o/ | ||
jnthn | sjn! \o/ | ||
PerlJam: I think it didn't capture the lexical environment properly | 21:13 | ||
sjn is looking for our Polish friends who haven't sent their reimbursement stuff after the hackathon | |||
jnthn | And cognominal's case exposed it | ||
sjn | tadzik: you're hereby reminded again :) | ||
cognominal | I don't think that's the first time I got bitten by that bug. So thx very much. | 21:14 | |
dalek | kudo/nom: 558fd04 | duff++ | src/Perl6/Actions.pm: Make statement into a closure for map |
||
sjn | how did the "leave a message to someone who's not here" bot work again? | ||
PerlJam | phenny: tell sjn to do as I do | 21:16 | |
phenny | PerlJam: I'll pass that on when sjn is around. | ||
sjn | hi! | 21:17 | |
phenny | sjn: 21:16Z <PerlJam> tell sjn to do as I do | ||
sjn | yay! | ||
PerlJam | afk | ||
21:18
wolfman2000 joined
|
|||
sjn | phenny: tell sergot Send sjn the reimbursement receipts! :) | 21:18 | |
phenny | sjn: I'll pass that on when sergot is around. | ||
tadzik | sjn: yeah, I know. WizzAir's still blind to emails, there are plans to just call them and lay stuff out | 21:21 | |
21:21
bluescreen10 left
|
|||
sjn | tadzik: ok, then send me what you have in Polish :) | 21:21 | |
and put some red circles around the important numbers | 21:22 | ||
tadzik | hehe | ||
where do I find this now... | 21:23 | ||
21:28
cognominal_ joined
21:32
cognominal left
21:38
alester joined
21:40
countley left
21:47
muixirt left,
whiteknight joined
21:48
whiteknight is now known as Guest36290
21:49
stol_ joined
|
|||
masak | 'night, #perl6 | 21:50 | |
tadzik | g'night | ||
cognominal_ | 'nigh | 21:51 | |
'night! | |||
21:53
lestrrat left,
tyatpi joined
21:54
lestrrat joined
21:59
thou left
22:15
PacoAir left,
replsos joined
22:16
shinobicl left
22:18
REPLeffect left
22:20
PZt left,
PZt joined
|
|||
jnthn | sleep & | 22:25 | |
22:25
thou joined,
thou left
|
|||
sorear wanders back | 22:26 | ||
22:27
thou joined
22:28
thou left
22:32
REPLeffect joined
22:33
benabik left
22:36
Facefox left
22:37
Facefox joined,
Facefox left
22:39
Facefox joined,
Chillance left,
Chillance joined
22:40
stol__ joined,
stol_ left,
skids joined
22:43
replsos_ joined
22:45
replsos left,
replsos_ is now known as replsos
22:51
NamelessTee left
22:52
Khisanth left
23:01
tokuhirom joined
23:04
stol__ left
23:06
sisar left,
Khisanth joined
23:11
sisar joined
23:15
replsos_ joined
23:17
replsos left,
replsos_ is now known as replsos
23:21
snearch left
23:22
Chillance left
23:36
replsos_ joined
23:38
DreamingInCode left
23:39
replsos_ left,
replsos left,
crazedpsyc left,
jrockway left
23:42
ivan`` left
23:43
jtpalmer left
23:46
helloworld joined
23:52
DreamingInCode joined
23:53
preflex left
23:55
preflex joined
23:59
REPLeffect left
|