»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
raiph | m: pir::foo__bar() | 00:03 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===To compile on the MoarVM backend, QAST::VM must have an alternative 'moar' or 'moarop'» | ||
raiph | m: pir::foo_bar() | 00:04 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!===pir::foo_bar missing a signature» | ||
00:06
pat_js left
|
|||
raiph | sjn: ^^ seems to be from trying to run on moar code with calls to pir: (parrot) ops with __ in the name ? | 00:07 | |
s/on moar/(on moar)/ | 00:09 | ||
sjn | raiph: yeah, that may be it | 00:10 | |
my $client = mysql_init( pir::null__P() ); | |||
is there a way around that? | |||
psch | r: $*VM.config.keys.grep("moar").say | 00:11 | |
camelia | rakudo-moar 315ec6: OUTPUT«moar» | ||
..rakudo-parrot 315ec6: OUTPUT«» | |||
psch | ISTR there was something about parrot that'd get fixed soonish, but i have no idea if your problem is related | 00:12 | |
sjn | ok | 00:13 | |
00:14
grondilu left
|
|||
psch | sjn: although, in the end your problem is a pir op appearing to moar, which actually shouldn't happen | 00:16 | |
i'd still lean towards "the module doesn't seem well maintained", although i'm not completely sure what you're working with there | 00:17 | ||
sjn psch looking at the examples in zavolaj | 00:20 | ||
raiph | sjn: was there a message of the form "Error while compiling op xxx: " just prior to the "To compile on..."? | 00:21 | |
sjn | raiph: no, this was when actually trying to *run* the mysql example in zavolaj | 00:22 | |
under moar | |||
hm, the postgresql example seems to work | 00:23 | ||
good enough for me | 00:24 | ||
raiph | k | ||
dalek | rl6-roast-data: 8226dcd | coke++ | / (5 files): today (automated commit) |
00:27 | |
[Coke] | 3 failures on moar-jit, 97 on moar-nojit, 7 on jvm. parrot is clean | 00:28 | |
00:28
bcode left
00:29
bcode joined
00:31
Ven left
|
|||
timotimo | someone get us out of this mess! | 00:46 | |
psch: yeah, unbase is a regular sub call under the hood | 00:48 | ||
if we want it to curry into WhateverCode, we'd have to special-case it | |||
00:52
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
psch | i remember that there was a discussion about auto priming min, but i can't find it anymore | 00:53 | |
although i supposed "methods and operator-looking-sub auto prime" is a decent guideline | |||
timotimo: i don't particularly want colon-pair unbase to be autoprimed. Whatever just looked more generally applicable in my mental model | 00:54 | ||
but blocks with placeholders are the general case, and Whatever is sugar for some cases, which i'm ok with | 00:55 | ||
psch .oO( although i think that's also not *quite* correct...) | |||
m: my @a = <1 2 3>; @a[{$^a} - 1].say | |||
camelia | rakudo-moar 315ec6: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: *%_) in sub infix:<-> at src/gen/m-CORE.setting:4476 in block <unit> at /tmp/vBMu5s87pl:1» | ||
psch | m: my @a = <1 2 3>; @a[* - 1].say | 00:56 | |
camelia | rakudo-moar 315ec6: OUTPUT«3» | ||
psch shrugs. | |||
m: my @a = <1 2 3>; @a[+@a - 1].say | |||
camelia | rakudo-moar 315ec6: OUTPUT«3» | ||
psch .oO( superstitious plus ) | |||
vendethiel | whoops, time to sleep | 01:00 | |
g'night, #perl6 :-) | |||
psch | 'night vendethiel | 01:01 | |
raiph | \o ven | 01:05 | |
01:05
kjs_ joined
01:12
leont left
01:47
raiph left
01:48
pecastro left
01:53
kjs_ left
|
|||
psch sleep & | 01:59 | ||
01:59
psch left
02:05
pecastro joined
02:34
chenryn joined
02:36
chenryn left
02:39
chenryn joined
02:48
Mso150_e left
02:52
chenryn left
02:56
Mso150_e joined
03:21
erkan left
03:22
erkan joined,
erkan left,
erkan joined
|
|||
raydiak | we need more 6ers in like new zealand and eastern russia to fill this daily lull in my entertainment^W^W#perl6 :) | 03:23 | |
03:37
thou joined
03:38
Mso150_e left
03:39
Mso150_e joined
03:44
tinyblak joined
03:47
thou left
03:49
tinyblak left
03:54
raiph joined
03:59
rmgk is now known as Guest21073,
rmgk_ joined,
Guest21073 left,
rmgk_ is now known as rmgk
04:09
BenGoldberg left
04:20
Mso150_e_i joined,
Mso150_e left
04:27
tinyblak joined
04:35
raiph left
|
|||
j4janicej | raydiak: Will Western Canada work?! | 04:43 | |
-! | |||
fuck | |||
raydiak | heh why not? | 04:47 | |
j4janicej: puts you in the same time zone as me, if I'm not mistaken | 04:48 | ||
j4janicej | raydiak: you're mistaken but you're real close :) | ||
i'm not a perler, but i wish i was :P | 04:49 | ||
my focus has been on resolving gender identity issues | |||
raydiak | perl is a good hobby to have | 04:50 | |
j4janicej | not really | ||
05:04
xenoterracide_ left
05:20
Mso150_e_i left
05:21
Mso150_e_i joined
05:39
jfredett joined
05:52
Mso150_e_i left
05:53
Mso150 joined
06:13
anaeem1 joined
06:31
tinyblak_ joined
06:32
anaeem1 left
06:35
tinyblak left
06:38
tinyblak_ left
06:39
tinyblak joined
06:41
tinyblak_ joined
06:44
tinyblak left
06:47
chenryn joined
06:56
jfredett left
06:57
bjz left
07:08
Mso150 left
07:09
Mso150 joined
07:18
molaf_ joined
07:19
molaf__ left
07:28
Mso150 left
07:29
Mso150 joined
07:30
chenryn left
07:36
[Sno] left,
[Sno] joined
07:38
kaare_ joined
07:50
gfldex joined
07:58
lasse joined
|
|||
moritz | \o | 08:00 | |
08:10
notfix is now known as xfix
08:15
darutoko joined
08:19
kurahaupo joined
08:20
Isp-sec joined
08:25
FROGGS joined
08:28
chenryn joined
08:29
salv0 left
08:35
datums_nb joined
08:37
bjz joined
|
|||
vendethiel | .u doughnut | 08:42 | |
yoleaux | U+1F369 DOUGHNUT [So] (🍩) | ||
vendethiel | ... | ||
08:42
molaf_ left
08:43
molaf_ joined
08:46
salv0 joined
08:54
[Sno] left
08:56
[Sno] joined
08:59
yaketyyak joined,
yaketyyak left
09:22
chenryn left
09:27
kjs_ joined,
tinyblak joined
09:29
tinyblak_ left
09:32
bjz left
09:33
bjz joined,
Mso150 left,
Mso150_a joined
09:42
tinyblak left
09:43
tinyblak joined
09:45
Alina-malina left
09:47
Alina-malina joined
10:10
virtualsue joined
10:15
datums_nb left
10:17
rindolf joined
10:20
spider-mario joined
10:24
sqirrel_ joined
10:26
xfix is now known as notfix
10:29
oetiker_ left,
oetiker left
10:42
Mso150_a left
|
|||
masak | vendethiel: I feel like there's something awesome I'm not quite getting about the metacircularity I just implemented. | 10:46 | |
vendethiel: it's like, ok, now I have the interpreter implemented using only a few primitives that the interpreter defines. I get that part. in a sense, it's beautiful, and... economical. | 10:47 | ||
vendethiel: but I'm not getting the religious experience conveyed in weblog.raganwald.com/2006/11/signif...ar_22.html , for example. | |||
"This is the other half of the power of Lisp: if you want to change deeper fundamental language features like whether you have a Lisp-1 or a Lisp-n, or whether all evaluation is lazy, or…, or…, or… you can, because Lisp interprets Lisp and Lisp compiles Lisp." | 10:48 | ||
feels like the only thing I've managed so far is to make my original Perl 6 `eval` run slower, by implementing a Lisp `eval` on top of it ;) | 10:49 | ||
I *suspect*, but cannot prove, that this is because I need to "close the circularity" in more places than I have so far. | 10:50 | ||
10:58
oetiker joined
10:59
Guest1419 left
|
|||
masak thinks | 11:03 | ||
basically, any newfound power/flexibility needs to rely on the fact that there's now an `eval` function in the language, which can do dynamic interpretation. | |||
11:13
ghostlines joined
|
|||
vendethiel | masak: I'm not the one saying "wow, lisp is easy to implement in lisp" :) | 11:21 | |
(ftr, that quote put dijkstra away from lisp for a long time :P) | |||
dalek | nda/reporter: 5094916 | (Tobias Leich)++ | bin/panda: implement panda option "smoke" |
||
vendethiel | and, I said it before I think, lisps made some sacrifices to remove some meta-circularity for performance reasons | 11:22 | |
masak: did you push? | 11:23 | ||
.oO( a meta-circular dougt-nut 🍩 ) |
11:36 | ||
11:37
virtualsue left
|
|||
masak | vendethiel: I'm just trying to understand the details of the charm of metacircularity. | 11:40 | |
vendethiel | charm's not my biggest asset :P | 11:41 | |
masak: why do you like operators being able to be written in perl6 | |||
both for the implementor and for the user? | |||
masak | I like two things about that. | 11:42 | |
(a) I can define an operator, and it's instantly available in my scope. that's me, the user, *extending the language*. | 11:43 | ||
(b) I also think it's way cool that Perl 6 takes seriously the idea that operators are just funnily-spelled subroutines. | |||
vendethiel | for me, I add (c) I like the fact that the *language* uses the same constructs as the *user* | ||
masak: maybe relating those points to metacircularity can help :) | 11:44 | ||
masak | why is (c) a practical benefit, as opposed to a "wow, that's neat" thing? | ||
but yes, I see your point about all this relating to metacircularity. | 11:45 | ||
interestingly, though, Perl 6 (as implemented in Rakudo) isn't metacircular. | |||
NQP is, in the sense that C is. (but not in the sense that Lisp is, I think) | |||
vendethiel | because that means (a) it's not magical and faery thingie (b) it obeys rules I know (c) I'm familiar to and able better comprehend/relate/understand it | ||
11:46
denis_boyun_ joined
|
|||
vendethiel | nothing can be crazy, or at least not crazier than what I can do myself | 11:46 | |
to me, this kind of power means "not much language magic" | |||
masak | got it. | ||
vendethiel | I don't have any answers, btw. I only have pointers. I'm interested in answers as well | 11:47 | |
python as a language is saner than ruby. In "theory", it's a safer option with less corner cases. But interestingly, ruby's craziness (perlness?) has it with a lot of good APIs (imho) | 11:49 | ||
.oO( it's easy with EVAL ) |
11:50 | ||
11:53
erkan left
|
|||
masak | *nod* | 11:56 | |
awww. I found a really cute use for an introspective macro in some piece of code I was writing. it would genuinely eliminate boilerplate from my code. | |||
but when I try it, I run into some well-known lexical macro bugs. | 11:57 | ||
masak makes a note to try this again later after fixing said bug | |||
vendethiel | ha! :) | 11:58 | |
(what was it?) | |||
11:58
sqirrel_ left
|
|||
masak | the bug, or the macro? | 11:59 | |
vendethiel | I think I know the bug | 12:00 | |
so, the macro | |||
masak | mind if I keep it to myself until I can write it up properly? ;) | ||
it would be so much cooler to show if it actually worked. | |||
vendethiel | alrighty. | ||
masak | even though the introspection it does is textual -- no Qtrees yet. | 12:01 | |
vendethiel | m: say quasi{1} eqv quasi{1} | ||
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
vendethiel | masak: ^ how do I introspect? | ||
masak | m: macro foo($expr) { say $expr.Str; Nil }; foo "OH HAI" | 12:02 | |
camelia | rakudo-moar 315ec6: OUTPUT« "OH HAI"» | ||
masak | m: macro foo($expr) { say ~$expr; Nil }; foo "OH HAI" | ||
camelia | rakudo-moar 315ec6: OUTPUT« "OH HAI"» | ||
vendethiel | I guess :-) | ||
it's *not really* what I'm looking for, but close enough | |||
masak | cf "purely textual" above. | ||
I agree it's not optimal :) | 12:03 | ||
but it... opens up certain doors. | |||
vendethiel | the question being... | 12:04 | |
do you want to open these doors? | |||
.oO( macros are more of an ethical and philophical issue, or so it seems ) |
12:05 | ||
12:07
leont joined
|
|||
masak | I want to open these doors. in the long run, I want to open them with Qtrees, not with text. | 12:08 | |
and yes, there is ethics in there. but the same could be said about giving users access to subroutines. very dangerous tech! | |||
12:13
wollmers joined
|
|||
wollmers | .tell timotimo thx for %target.push: %(<a b a b>.pairs).invert; I will use it in my port port of Algorithm::Diff. | 12:17 | |
yoleaux | 1 Nov 2014 08:59Z <FROGGS_> wollmers: It looks like /:P5\X/ is post NFG... because right now "E\c[COMBINING GRAVE ACCENT]" ~~ /./ only matches 'E' | ||
12:17
chenryn joined
|
|||
yoleaux | wollmers: I'll pass your message to timotimo. | 12:17 | |
12:20
chenryn left
12:21
chenryn joined
|
|||
dalek | rlito: af53198 | (Shlomi Fish)++ | / (3 files): Made the error messages better. Now /usr/bin/node displays the message's text and a backtrace. Thanks to Havvy from #Node.js on Freenode for some insights. |
12:23 | |
12:25
wollmers left
12:26
kurahaupo left
12:30
kjs_ left,
[Sno] left
12:31
danaj joined
12:41
cognominal joined
12:42
PZt left
12:51
isBEKaml joined
12:59
virtualsue joined
13:05
ab5tract joined,
[Sno] joined
13:12
denis_boyun_ left
13:13
chenryn left
|
|||
ab5tract | hmmm... i baggified (<=) before noticing that (<+) seems to be conceptually exactly the same | 13:14 | |
13:14
chenryn joined
|
|||
ab5tract | as a baggified (<=), at least as far as i reasoned it | 13:15 | |
13:16
isBEKaml left
|
|||
ab5tract | does it make sense to have a separate baggy-specific operator here? | 13:18 | |
13:19
ghostlines left
13:22
isBEKaml joined
|
|||
ab5tract | it almost feels as if it is a holdout from before MMD was implemented? | 13:23 | |
timotimo | unlikely, we must have had MMD for a very long time | 13:29 | |
yoleaux | 12:17Z <wollmers> timotimo: thx for %target.push: %(<a b a b>.pairs).invert; I will use it in my port port of Algorithm::Diff. | ||
13:29
chenryn left
13:30
chenryn joined
|
|||
ab5tract | timotimo: hmmm.. do you have any thoughts on the overlap? should (<=) be left set only? what about (<)? because there is not a strict Baggy subset operator currently | 13:34 | |
timotimo | hm, good question | ||
i don't have a good intuition on that yet; have mostly been concerning myself with sets rather than bags | 13:35 | ||
and then there's Mixes as well | |||
are they called mixes still? | |||
ab5tract | haven't heard anything about mixes | ||
timotimo | basically bags with Num values | ||
rather than Int | |||
ab5tract | that's a pretty confusing name | 13:36 | |
ab5tract just notices them for the first time on: doc.perl6.org/language/Sets_Bags_an...#class_Mix | 13:37 | ||
here is the only mention in set_operators.pm: sub mix(*@args --> Mix) { Mix.new(@args) } | 13:38 | ||
timotimo | hmm | ||
13:39
chenryn left
|
|||
ab5tract | and i don't see a test file for mixes in S03-operators | 13:39 | |
whereas set and bag both have files | 13:40 | ||
timotimo | m: say Mix | ||
camelia | rakudo-moar 315ec6: OUTPUT«(Mix)» | ||
13:41
chenryn joined
13:42
pecastro_ joined
13:43
pecastro left
13:44
cognominal left,
raiph joined
|
|||
ab5tract | m: my $m = mix( %( 1 => 2.3, 2 => 0.7 ) ); my $n = mix( %( 1 => 3.3, 2 => 1.7 ) ); say $m (<+) $n | 13:49 | |
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
ab5tract | m: my $m = mix( %( 1 => 2.3, 2 => 0.7 ) ); my $n = mix( %( 1 => 3.3, 2 => 1.7 ) ); say $m (<) $n | ||
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
ab5tract | m: my $m = mix( %( 1 => 2.3, 2 => 0.7 ) ); my $n = mix( %( 1 => 3.3, 2 => 1.7 ) ); say $m (<=) $n | ||
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
ab5tract | all of which should return true | 13:50 | |
at least, in my opinion | |||
masak agrees | 13:51 | ||
timotimo | yup | 13:52 | |
ab5tract | i'm willing to code that in :) | ||
however, i'd argue that (<+) doesn't add anything | 13:53 | ||
if (<=) is meant to DWIM for bags and mixes | |||
timotimo | what is the supposed role of <+? | 13:54 | |
ab5tract | "Returns True if $a is a Baggy subset of $b, i.e., if all the elements of $a are in $b and each argument of $a is weighed at least as heavily as the element is in $b." | 13:55 | |
timotimo | huh. | ||
ab5tract | sorry, that is for (>+) | ||
timotimo: hence my suspicion about MMD being missing... otherwise it's existence barely makes sense | 13:56 | ||
maybe masak has a clue? | |||
masak | the only thing I can think of is that they maybe somehow differ in their coercion behavior. | 13:59 | |
but I struggle to see how that'd matter for comparison ops. | 14:00 | ||
we have something similar going on, for example, between && and ?& | |||
m: say 42 && "OH HAI" | |||
camelia | rakudo-moar 315ec6: OUTPUT«OH HAI» | ||
masak | m: say 42 ?& "OH HAI" | ||
camelia | rakudo-moar 315ec6: OUTPUT«True» | ||
masak | so (x ?& y) is the same as ?(x && y) | 14:01 | |
except that I think that ?& also doesn't short-circuit. | |||
m: sub bar { say "no short-circuit!"; True }; say ?(0 && bar) | |||
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
masak | m: sub bar { say "no short-circuit!"; True }; say 0 ?& bar | ||
camelia | rakudo-moar 315ec6: OUTPUT«no short-circuit!False» | ||
masak | right. | ||
ab5tract | masak: as far as i can tell, there is no coercion in the comparison ops | 14:02 | |
masak | I could see coercion from Bag to Set being relevant sometimes. | ||
there are some bags one which would be smaller than the other (because different element counts) | 14:03 | ||
ab5tract | erm, sorry. that's not a true statement. we coerce from Any to Set | ||
masak | but projected down as sets they could be equal (because same elements) | ||
ab5tract | right | ||
masak | actually, the same thing might happen when projecting from mixes to bags | ||
so *if* all the ops would survive, I'd say they'd have to survive based on a difference in coercion like that. | 14:04 | ||
otherwise -- if it can be shown there is no such difference -- then yeah, we probably have too many right now :) | |||
ab5tract | but wouldn't it be better to lift any coercion out of the ops themselves? | ||
so if you want to check the bag as a set with (<), you would call $bag.Set (<) $other.Set | 14:05 | ||
masak | there's an argument can be made for that, yes. | ||
and maybe it should be. | |||
ab5tract | of course Any -> Set coercion would still make sense as a default | ||
masak | if that road is taken, it makes sense for the comparison ops we have left to use as much information in the operands as possible -- that is, always perform the moral equivalent of a mix comparison. | 14:06 | |
but I hasten to add that the default in Perl tends to be to place the coercion in the operator. | |||
14:06
telex joined
|
|||
ab5tract | i'm not sure i see another approach that doesn't involve creating two new ops for bags ( we are missing strict subbag and strict superbag ) and four new ops for mixes | 14:06 | |
masak | *nod* | ||
timotimo | coercing "Any" as a general rule could only ever result in Bag, not Mix | 14:07 | |
if you have a Hash, though, that could result in a Mix | |||
ab5tract | timotimo: well, currently all Any's coerce to Set for the comparison (excluding for now (<+) in the discussion) | 14:08 | |
i would put it like this | |||
(Any, Any) -> Set behavior | |||
(Set, Any) -> Set behavior | |||
14:09
spider-mario left
|
|||
ab5tract | sorry, that should be (Set, Any) || (Any, Set) | 14:09 | |
(Bag, Any) || (Any, Bag) -> Bag behavior | |||
etc | |||
that way we still have sensible coercion | |||
within the op itself, without blowing up the number of ops | 14:13 | ||
btw, is it possible that parameter values can be an infinite list? | |||
because coercion for LoLs in a set operator like (^) is also very complicated.. should it only ever coerce based on it's first argument? | 14:14 | ||
[(^)] $a.Set, $b.Bag, $c.Bag # should that coerce all the bags to sets or the set to bags? | 14:15 | ||
if the list is finite, you could give precedence to bags over sets | |||
but if not... | |||
14:17
chenryn left
|
|||
ab5tract | the whole lazy list thing is new ground for me, so i might not be thinking about it correctly | 14:17 | |
14:18
chenryn joined
|
|||
masak | it doesn't make sense to me that the coercion happen based on knowledge of all the elements of the list. | 14:20 | |
it should happen pairwise, for each application of (^) | |||
or not at all | |||
I guess because I consider (^) to be a binary op, not a chaining op. rightly or wrongly. | 14:21 | ||
ab5tract | that makes sense to me | 14:22 | |
i should have chosen a different op for the example :) | 14:23 | ||
masak | no, it's very interesting that you choose this one. | 14:27 | |
because I'm kinda changing my mind :) | |||
ab5tract | heh | ||
masak | m: say True ^ True | 14:28 | |
camelia | rakudo-moar 315ec6: OUTPUT«one(True, True)» | ||
masak | m: say ?(True ^ True) | ||
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
masak | m: say ?(True ^ True ^ True) | ||
camelia | rakudo-moar 315ec6: OUTPUT«False» | ||
masak | yeah. | ||
m: say True ^^ True | |||
camelia | rakudo-moar 315ec6: OUTPUT«Nil» | ||
ab5tract | i poked at it before, and then got to this exact question and wasn't able to progress further | ||
masak | m: say True ^^ True ^^ True | ||
camelia | rakudo-moar 315ec6: OUTPUT«Nil» | ||
masak | ^ and ^^ are clearly chaining in nature. | ||
so maybe for consistency, (^) should be, too. | 14:29 | ||
14:31
raiph left
|
|||
ab5tract | okay, so the precedence would be: mix > bag > set ? | 14:32 | |
masak | not sure which way you mean that. | 14:35 | |
but it would make sense to me if it always used the simplest type it could for the result. | |||
14:36
guru joined,
guru is now known as Guest76075,
Guest76075 is now known as ajr_
|
|||
ab5tract | in terms of precedence: Mix (<) Bag # coerce Bag to Mix | 14:36 | |
Set (<) Bag # coerce Set to Bag | 14:37 | ||
but actually when i am thinking about it, using the simplest if the arguments are not homogeneous also makes sense | 14:40 | ||
and perhaps more so :) | |||
masak | no, I think we mean the same thing. | 14:42 | |
I meant the simplest it *can*, without losing data. | |||
ab5tract | oh :) | ||
masak | so I agree with your two concrete examples. | ||
14:44
ilbot3 left
|
|||
ab5tract | \o/ | 14:44 | |
14:45
ilbot3 joined
|
|||
ab5tract | so then, should i take the approach of adding multi signatures for each combination, or should i take the approach of coercion within a single Any,Any sub based on inspecting the types of the operator? | 14:46 | |
considering that the logic for computing all of them will look the same, ie: so [&&] $a.keys.map({ $a{$_} > $b{$_} }) | 14:47 | ||
14:48
isBEKaml left
|
|||
masak | (a) whatever makes the tests pass (b) that looks nice | 14:48 | |
ab5tract | i was wondering if there were performance implications in either approach | 14:49 | |
masak | that's not a question that we can/should try to answer without measuring anyway | ||
the JIT is already more clever than we are | |||
ab5tract | hehe | ||
it's a shame, junctions would really make the single sub approach a lot more comfortable | 14:50 | ||
gist.github.com/ab5tract/7b8d2a82a2674f4d41be | 14:54 | ||
14:58
raiph joined
|
|||
ab5tract | masak: i updated the gist with two potential approaches. one is more human intensive, the other i can only imagine is more computer intensive. but maybe there is a cheaper way to approach what i am using th junction + given/when for | 15:05 | |
masak | have you run either variant against the spectests? | 15:06 | |
ab5tract | i haven't met spectests yet | ||
ab5tract goes for a look | 15:07 | ||
vendethiel | oh, fosdem is in bruxelles? | 15:09 | |
masak | always in Bruxelles, AFAIK. | 15:19 | |
vendethiel | I was worried I couldn't be back to france on that because of traveling stuff. But I can do france->bruxelles in like an hour | 15:20 | |
15:22
grondilu joined
|
|||
grondilu | will there be P6-related stuff in FOSDEM? | 15:22 | |
masak | yes. | ||
vendethiel | yep | ||
moritz | when implementing a game with several phases (where each phase has different rules), how do I best do that? | 15:36 | |
15:36
gtodd left
|
|||
moritz | have different rulesets for each phase, and a state machine? | 15:36 | |
vendethiel | moritz: a state machine of a class Rule? | ||
moritz | vendethiel: currently I tend to think that the state (machine) lives inside the Game, and the Game object has a ruleset for each phase | 15:38 | |
and maybe a Ruleset also returns the next phase | 15:39 | ||
vendethiel | you have to make sure you won't lose the game *g* | ||
yes, it makes sense to me as well | |||
moritz | in sovjet russia, the game loses me :-) | ||
masak | states as objects makes sense to me. | 15:40 | |
all states implementing some common interface. | |||
vendethiel | y u state? :p | 15:41 | |
15:45
gtodd joined
15:52
padllepop joined
|
|||
masak | ...because a state machine has states? | 15:53 | |
if it makes you feel all warm and fuzzy inside to think of it as a graph of labeled nodes with purely functional transitions, then you have my blessing. :P | 15:54 | ||
15:55
padllepop left
|
|||
vendethiel | I'm kidding, I'm kidding. | 15:57 | |
masak .oO( it was a referentially transparent joke! ) | 16:08 | ||
16:13
anaeem1 joined
16:15
ghostlines joined
16:24
colomon left
16:25
colomon joined
16:27
jfredett joined
|
|||
raydiak | \o | 16:27 | |
vendethiel | o | 16:30 | |
raydiak | omg ven where did your arm go!? | ||
16:30
molaf_ left
|
|||
vendethiel | I don't know :(. And damn, it was already painful with only one, but now... | 16:31 | |
raydiak | haha...working on anything interesting? | 16:32 | |
vendethiel | nope. php. | 16:33 | |
raydiak | guess it can't all be fun and games :) | 16:34 | |
16:36
kuimacro joined
16:37
chenryn left
16:44
Alina-malina left
16:45
Alina-malina joined,
molaf_ joined,
tinyblak left
16:46
tinyblak joined
16:51
adu joined
|
|||
[Coke] tries to fix his daughter's linux laptop and tries not to just throw it in the garbage. :P | 16:51 | ||
16:52
zakharyas joined
16:55
rindolf left
16:57
Alina-malina left
|
|||
grondilu | [Coke]: which distrib? (just curious) | 16:58 | |
ab5tract | does 'make spectest' give benchmark data? | 17:00 | |
timotimo | "time make spectest" would | 17:01 | |
ab5tract | ok | ||
timotimo | it'd not be terribly precise, mind you | ||
17:02
Alina-malina joined
|
|||
ab5tract | i'm just curious how to satisfy my curiousity for which approach is better: gist.github.com/ab5tract/7b8d2a82a2674f4d41be | 17:03 | |
erm, yes, that's me, curious^2 | 17:04 | ||
timotimo | i don't think the junction approach will work particularly well :( | ||
17:05
ptc_p6 joined
|
|||
timotimo | but i'm first afk | 17:05 | |
[Coke] | grondilu: ubuntu- the self update to 14.1 froze the machine, now it's unbootable. tryingt o make a usb key to boot from, but that also is unbootable. I can see my kid's home dir if I drop into recovery mode, but have no way to get the stuff off. Will bring it into work tomorrow and see if I can get someone with more experience to help me out. | ||
17:05
erkan joined
|
|||
ab5tract | [Coke]: my suggestion would be to try a different distro on the usb key. if that boots you can mount the home directory and transfer off whatever you want | 17:08 | |
something like crunchbang | |||
17:09
tinyblak_ joined,
tinyblak_ left,
tinyblak_ joined
|
|||
itz | I can recommend "Recovery is Possible" (RIP) linux distro for repair | 17:10 | |
ab5tract | timotimo: that can also be unravelled out of using a junction to ` if $a ~~ Mix or $b ~~ Mix {} ` | ||
17:11
tinyblak left
|
|||
ab5tract | but yeah, it seems to me that the better way will be individual multi definitions which cover all the combinations | 17:11 | |
[Coke] | itz, ab5tract, thanks. | 17:12 | |
(part of my issue is that the other machine I have to make the keys is an os x box, which makes me question some of the directions I'm trying. I -think- I'm using the mac to create a pc bootable key, but Iunno. :) | |||
itz | depending on distro dd(1) may work for USB key install | 17:14 | |
although not always : | |||
:) | |||
17:16
raiph left,
oetiker left,
Isp-sec left,
araujo left,
exixt left,
cosimo left,
aindilis` left,
Alula left
17:20
raiph joined,
oetiker joined,
Isp-sec joined,
araujo joined,
exixt joined,
cosimo joined,
aindilis` joined
17:21
tinyblak joined
17:23
virtualsue left
17:24
virtualsue joined
17:25
tinyblak left,
tinyblak_ left,
virtualsue left,
tinyblak joined
|
|||
timotimo | ab5tract: the optimizer can only unravel these junctions syntactically | 17:26 | |
the given/when will not allow it to do that | |||
17:27
virtualsue joined
17:29
khisanth_ is now known as Khisanth
|
|||
ab5tract | timotimo: i meant i could manually unravel them :) | 17:31 | |
timotimo | you can manually write "if $a | $b ~~ Bag" | 17:32 | |
that could work, but i'm not sure if the optimizer does that for ~~, because ~~ directly translates to .ACCEPTS | |||
in fact, i don't think it does work | |||
ab5tract | right | ||
then i will go the long-hand route | |||
timotimo | quite sadly, having elegant code in the setting is not always an option ;( | 17:33 | |
vendethiel | yeah, you have to leave timo write some code as well! | ||
the guy wants to participate | |||
17:34
jepeway joined
|
|||
timotimo | wow, sick burn | 17:34 | |
vendethiel | i k r m 7 | ||
timotimo | u wot m8 | ||
vendethiel hugs his timo | 17:35 | ||
.oO( yer a timo, timo ) |
|||
17:36
tinyblak_ joined
|
|||
jepeway | ola, #p6 | 17:37 | |
m: $*TZ = 0 # worky? | |||
camelia | rakudo-moar 315ec6: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/YCPQZ_Oe9u:1» | ||
vendethiel | m: my $*TZ = 1; | ||
camelia | ( no output ) | ||
jepeway | aha! tyvm, ven. | 17:38 | |
um...why worky? | |||
vendethiel | m: my $a ::= 1; $a = 2; | 17:39 | |
camelia | rakudo-moar 315ec6: OUTPUT«Cannot assign to an immutable value in block <unit> at /tmp/evZKDyfYyt:1» | ||
vendethiel | oh, that's implemented? | ||
17:40
tinyblak left
|
|||
jepeway just notices that clogs auto-update, no more button-mashing | 17:41 | ||
moritz | jepeway: not intentionally; I think that using the space bar for scolling also triggers the button, or something | 17:44 | |
ab5tract | timotimo: it was hard to imagine that having a code block with conditional logic would somehow work better than leveraging multi method dispatch | ||
17:45
raiph left
|
|||
ab5tract | if so, it would indicate to me that MMD would need optimizing | 17:45 | |
timotimo | very much depends | ||
ab5tract | go on :) | ||
timotimo | sometimes we can do the dispatch at compile time, sometimes we can do it at spesh time, we can always have a little cache at spesh time to give a little boost if it happens to be right the next time | 17:46 | |
17:46
tinyblak_ left
|
|||
timotimo | er, we *will* always have a little cache | 17:46 | |
ab5tract | ok | ||
17:47
tinyblak joined
|
|||
ab5tract | but is that VM-independent? | 17:47 | |
timotimo | no | ||
spesh is only on moarvm | |||
jvm does what it wants :P | |||
17:47
aindilis` left
|
|||
vendethiel | jvm does stuff. Might be what it wants, might be what you want, might be what the universe wants :P | 17:47 | |
17:47
ugator joined
|
|||
ab5tract | right | 17:47 | |
17:50
FROGGS_ joined
|
|||
jepeway | moritz: could be browser-based behavior, i s'pose (safari, fwiw) | 17:50 | |
moritz | jepeway: I've observed the same on firefox, so it's likely my sloppy js+DOM knowledge | 17:51 | |
ab5tract | then it seems to me that i shouldn't be coding to the optimizer but rather to a baseline "less costy" approach, no? | ||
timotimo | "the optimizer" is cross-backend, but only works on the AST | 17:52 | |
17:53
tinyblak_ joined
|
|||
ab5tract | i see! that's good news. to the JIT then | 17:53 | |
timotimo | mhm | ||
17:53
Sqirrel left
|
|||
timotimo | well, at least having natives variables is very good for all backends | 17:53 | |
17:53
FROGGS left
|
|||
timotimo | of course the jit on moarvm and jvm's code-gen both get very happy when they see native variables | 17:54 | |
17:56
tinyblak left
|
|||
timotimo | well, to be fair, parrot is also happy about native vars | 17:56 | |
moritz | timotimo: did you manage to fix your GC+nativecall issue? | 17:58 | |
from yesterday or Friday or so | 17:59 | ||
timotimo | yes, it turned out i modelled the CStructs from SDL with completely wrong sizes and SDL wrote some data over the boundaries of these structs | 18:01 | |
so it was my fault, really | |||
moritz | timotimo: still, cookies were promised. /msg me your snail mail address :-) | ||
18:02
anaeem1 left
|
|||
timotimo | omygosh! cookies! | 18:04 | |
18:06
ghostlines left
18:11
kjs_ joined
18:14
vendethiel- joined
18:16
vendethiel left
18:22
kernel joined,
kernel is now known as Guest97255
18:23
Guest33617 left
|
|||
timotimo | hum | 18:25 | |
generating an enum at compile time is giving me trouble of the "cannot invoke null object" kind | |||
oh, i think i know what i did wrong | |||
jepeway | m: $*TZ.say | 18:33 | |
camelia | rakudo-moar 315ec6: OUTPUT«3600» | ||
jepeway | m: $*TZ.say ; my $*TZ=0; $*TZ.say # hrm? | 18:34 | |
camelia | rakudo-moar 315ec6: OUTPUT«(Any)0» | ||
18:34
ajr_ left
|
|||
jepeway | why that first (Any)? | 18:34 | |
FROGGS_ | because you (re)declared $*TZ in that block | 18:35 | |
m: $*TZ.say; { my $*TZ=0; $*TZ.say } | |||
camelia | rakudo-moar 315ec6: OUTPUT«36000» | ||
jepeway | so, "my" was compile-time; setting to 0 was runtime; printing before set meant (Any)? | 18:36 | |
FROGGS_ | m: my $foo = 42; { say $foo; my $foo = 21 } | ||
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/t5kh__Vxu2Lexical symbol '$foo' is already bound to an outer symbol;the implicit outer binding must be rewritten as OUTER::<$foo>before you can unambiguously declare a new '$foo' in this sc…» | ||
FROGGS_ | that explains it better perhaps | ||
jepeway: but yes, your explanation is correct | 18:37 | ||
jepeway | and "my" affects entire block, not just subsequent statements within block? | 18:38 | |
FROGGS_ | correct | 18:39 | |
jepeway | ok. tad surprised, but grokking will come, I s'pose. | 18:40 | |
jepeway well, hopes, anyways | 18:41 | ||
18:43
Sqirrel joined
18:44
SevenWolf joined,
raiph joined
18:46
Guest97255 left,
thilp left
18:48
Guest97255 joined
18:50
kurahaupo joined
18:52
raiph left
|
|||
timotimo | so ... how do i create an enum at compile-time without going through the MOP? | 18:56 | |
or through EXPORT | |||
18:57
tinyblak_ left,
tinyblak joined
|
|||
vendethiel- | m: say ('Prefix' andthen "$_ * ") ~ 'topic name' | 18:59 | |
camelia | rakudo-moar 315ec6: OUTPUT« * topic name» | ||
vendethiel- | m: say ('Prefix' andthen { "$_ * " }) ~ 'topic name' | 19:00 | |
camelia | rakudo-moar 315ec6: OUTPUT«Prefix * topic name» | ||
19:00
davido__ joined
19:02
davido_ left
19:06
rindolf joined
19:07
tinyblak left
19:10
thou joined
19:17
araujo left
19:21
araujo joined
19:24
cognominal joined,
xenoterracide_ joined
19:28
kaare_ left
19:30
Sqirrel left,
kaare_ joined
19:31
Sqirrel joined,
Sqirrel left
19:32
Sqirrel joined
19:33
denis_boyun_ joined
19:38
ptc_p61 joined
19:40
ptc_p6 left,
panchiniak joined
19:49
labster joined
19:50
cognominal left
19:54
Mso150_a joined
19:57
colomon left
|
|||
jepeway | m: class I { has int $.i; method p(Int $ii) returns I { I.new(i => $.i + $ii) } } ; class J is I {}; my $j = J.new().p(2) ; say $j # what's a good way to keep $j a (J)? | 19:58 | |
camelia | rakudo-moar 315ec6: OUTPUT«I.new(i => 2)» | ||
timotimo | you want to keep $j an undefined instance of J? | ||
19:59
colomon joined
|
|||
jepeway | sorry, no, too loose with the notation, i guess. i meant "what do i do to make $j be an instance of class J." override method p(), of course, but anything smarter? | 20:00 | |
timotimo | you can use "self.new" instead of I.new | 20:02 | |
that should give you a new J if you call J.p | |||
moritz | replace I.new by self.WHAT.new | ||
jepeway | oh, derp. | ||
moritz | m: class I { has int $.i; method p(Int $ii) returns I { self.WHAT.new(i => $.i + $ii) }}; class J is I {}; my $j = J.new().p(2) ; say $j | ||
camelia | rakudo-moar 315ec6: OUTPUT«J.new(i => 2)» | ||
jepeway | m: class I { has int $.i; method p(Int $ii) returns I { self.new(i => $.i + $ii) } } ; class J is I {}; my $j = J.new().p(2) ; say $j # what's a good way to keep $j a (J)? | 20:03 | |
camelia | rakudo-moar 315ec6: OUTPUT«J.new(i => 2)» | ||
jepeway | do i need the .WHAT? | 20:04 | |
and...what if I couldn't (easily) modify class I? | 20:07 | ||
moritz | then you override method p in the subclass | 20:10 | |
jepeway | ayup. i guess i could grovel through all methods in I to find those returning an I and override them to return J's if I first implement J.new(I $i) | 20:14 | |
20:14
bjz left
|
|||
moritz | in general, inheriting from a class only makes sense if that class was designed with inheritance in mind | 20:18 | |
if not, a has-a relation is often more useful and less surprising | |||
jepeway | what's p6 to call I.p() from within J.p()? a la Java's super.p()? | 20:20 | |
20:20
bjz joined
|
|||
moritz | nextsame/nextwith | 20:21 | |
FROGGS_ | or self.I::p, right? | 20:22 | |
moritz | yes | ||
jepeway | sure, prefer composition over inheritance. trying to implement a replacement class that overrides a few choice methods, so reached for inheritance first. | 20:23 | |
20:23
zakharyas left
20:26
sqirrel_ joined
|
|||
jepeway found perl6advent.wordpress.com/2010/12/1...s-cousins/ | 20:29 | ||
dalek | nda/reporter: cca058d | (Tobias Leich)++ | bin/panda: initialize exclude param in target smoke |
||
20:31
FROGGS_ is now known as FROGGS
20:36
darutoko left
|
|||
jepeway | m: class DT is DateTime {} ; my DT $x .= new().later(seconds => 2) | 20:36 | |
camelia | rakudo-moar 315ec6: OUTPUT«===SORRY!=== Error while compiling /tmp/CHKKZ0VTw1Two terms in a rowat /tmp/CHKKZ0VTw1:1------> ss DT is DateTime {} ; my DT $x .= new()⏏.later(seconds => 2) expecting any of: method arguments…» | ||
20:36
bjz left
|
|||
jepeway | m: class DT is DateTime {} ; my DT $x = DT.new().later(seconds => 2) | 20:37 | |
camelia | rakudo-moar 315ec6: OUTPUT«Must provide arguments to DateTime.new() in method <anon> at src/gen/m-CORE.setting:13676 in any find_method_fallback at src/gen/m-Metamodel.nqp:2725 in any find_method at src/gen/m-Metamodel.nqp:988 in block <unit> at /tmp/8cmOXFOS33:1» | ||
synopsebot | Link: perlcabal.org/syn/S33.html#line_1 | ||
jepeway | m: class DT is DateTime {} ; my DT $x = DT.new(now).later(seconds => 2) | ||
camelia | rakudo-moar 315ec6: OUTPUT«Type check failed in assignment to '$x'; expected 'DT' but got 'DateTime' in block <unit> at /tmp/limvZMkFE2:1» | ||
jepeway | m: class DT is DateTime {} ; my DT $x = DT.new(now).later(hours => 2) | ||
camelia | ( no output ) | ||
jepeway | cf src/core/Temporal.pm:340 or so. | 20:38 | |
bug? | 20:40 | ||
moritz | dunno if bug, but "less than awesome" for sure | ||
I have a local patch that makes it more subclass-friendly | 20:41 | ||
spectesting now | |||
jepeway | coolio. | 20:44 | |
well, need to run, but will backlog (& watch commits). ty, moritz++, timotimo++, FROGGS++ | 20:49 | ||
moritz | std: my $a = [1, 2]; 'abc' ~~ /$a[0]/ | 20:54 | |
camelia | std 14ad63b: OUTPUT«Potential difficulties: Apparent subscript will be treated as regex at /tmp/rk8o2TRNe_ line 1:------> my $a = [1, 2]; 'abc' ~~ /$a⏏[0]/ [0] appears to be an old-school character class; please use <[0]> if you mean a character…» | 20:55 | |
timotimo | have fun :) | ||
dalek | kudo/nom: 0a3c954 | moritz++ | src/core/Temporal.pm: Make DateTime and Date more friendly to subclassing jepeway++ |
||
moritz | it looks like tests 4 to 7 in S05-metasyntax/litvar.t all assume something other than STD.pm6 does | 20:56 | |
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: 12a8179 | (Tobias Leich)++ | TODO.md: added TODO.md |
21:03 | |
21:05
Mso150_a left
21:07
Mso150_a joined
|
|||
dalek | rl6-roast-data: 6b2a7c3 | coke++ | / (5 files): today (automated commit) |
21:07 | |
21:08
lasse left
|
|||
timotimo | scrolling starfield \o/ | 21:09 | |
FROGGS | \o/ | 21:11 | |
lol: | 21:13 | ||
Unsupported use of /i; in Perl 6 please use :i | |||
at lib\Cache\Memcached.pm:479 | |||
------> $ip ~~ s:g [ \[ | \] ] = '' i⏏f $ip.defined; | |||
timotimo | hah, ouch | ||
FROGGS | did I mention already that I love my cpandatesters thingy? :D | 21:14 | |
21:14
ghostlines joined
|
|||
FROGGS | though, I really start to hate the peeps that are meant to supply my virtual server | 21:15 | |
thay guarantee that the server is set up within 24 hours, and, well, that would have been Thursday morning | |||
21:15
sqirrel_ left
|
|||
raydiak | wow 24 hours alone is bad enough...do they build each instance by hand or something? :) | 21:17 | |
timotimo | FROGGS: if a shared host is enough for you, check out uberspace | 21:19 | |
they allow you to install and your own postgres, too | |||
and run* | 21:21 | ||
FROGGS | timotimo: well, I also need cpu and run to some degree | ||
which means that I ordered a six-core with 6 to 12 gig RAM or so | 21:22 | ||
timotimo | oh wow | ||
so you're running your own tests | |||
rather than just receiving panda reports? | |||
FROGGS | raydiak: normally it is done in minutes, but their order form is broken, so I've got a Schroedinger's Account | 21:23 | |
21:23
xenoterracide_ left
|
|||
raydiak | haha | 21:23 | |
21:23
xenoterracide_ joined
|
|||
FROGGS | timotimo: I know that the cpantesters servers are quite huge, and I want to be prepared :D | 21:23 | |
colomon | :) | ||
FROGGS | and yes, being able to smoke all commits would be sweet! | 21:24 | |
dalek | kudo/nom: 8739ee4 | usev6++ | src/Perl6/Grammar.nqp: Add method to throw typed exception X::Syntax::Regex::SolitaryQuantifier |
||
kudo/nom: 2bef929 | lizmat++ | src/Perl6/Grammar.nqp: Merge pull request #328 from usev6/nom Add method to throw typed exception X::Syntax::Regex::SolitaryQuantifier |
|||
FROGGS | right now my windows 7 box is smoking all ecosystem dists, before my ubuntu laptop did that | 21:25 | |
but I'd like to receive reports from real users | |||
moritz | does it report automatically? | 21:29 | |
FROGGS | one of the next steps is his: | ||
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: fe83cfa | (Tobias Leich)++ | TODO.md: added TODO: implement Etags to allow caching of css, js and fonts |
||
FROGGS | moritz: yes, with panda (branch reporter) and the env var PANDA_SUBMIT_TESTREPORTS | 21:30 | |
moritz puts it into the bashrc | 21:33 | ||
raydiak | reading "cpandatesters" makes my brain thrash around like it expects a single result but gets a junction of "C panda testers|cpan da testers|cpan datesters|cpanda testers" | 21:36 | |
moritz | ==> Successfully installed NativeCall | ||
Could not submit test report: Failed to connect: connection refused | |||
FROGGS: first piece of feedback: failing to submit a test report should not make panda die | 21:38 | ||
FROGGS | moritz: true, very true | ||
moritz | I did a 'panda install NativeCall Pod::To::HTML URI' but it died after installing NativeCall | ||
21:39
kurahaupo left
|
|||
dalek | href="https://cpandatesters.perl6.org:">cpandatesters.perl6.org: bc77a9a | (Tobias Leich)++ | TODO.md: added todo |
21:40 | |
timotimo | the profiler isn't terribly useful for nativecall-heavy stuff | ||
FROGGS | err, moritz++ | ||
raydiak: my current plan is to set up cpandatesters.org on my own server, and then perhaps make it also available as testers.perl6.org | 21:41 | ||
moritz | and if you are looking for more ideas: integration into modules.perl6.org | 21:42 | |
FROGGS | and github issues if possible | ||
raydiak | FROGGS: awesome...I think it's clever, was just being amused by how a person's mind can make up its own interpretation separate from the known facts in other parts of the same mind | 21:45 | |
21:45
xenoterracide_ left
|
|||
raydiak | but really what I opened this window for was to ask about .perl | 21:45 | |
how much to de care about how fast it is? | |||
or as a more direct question, is there any reason we haven't made it handle non-trivial reference structures yet? | 21:46 | ||
^^how much do we | |||
FROGGS | I think moritz has mused about making that work, right? | ||
moritz | FROGGS: not me. I think it was lizmat++ | 21:47 | |
FROGGS | ohh | ||
hmm, quite possible :o) | |||
21:47
kaare_ left
|
|||
raydiak | I keep running in to it, b/c I sometimes tend to use network structures other than trees | 21:47 | |
FROGGS | would be awesome to see that one fixed of course | 21:49 | |
raydiak | it doesn't seem hard, but if we're worried about how many .perls we can do per second, I am probably not the one to write it :) | 21:50 | |
21:50
xenoterracide_ joined
|
|||
raydiak | thus the "how much do we care how slow .perl is" question | 21:50 | |
moritz | raydiak: well, correct is more important first | 21:51 | |
FROGGS | it has always been "correct is better that fast" | ||
aye | |||
than* | |||
raydiak | hm...I may take a stab at it then | 21:53 | |
FROGGS | ++raydiak | ||
lizmat | my main reason for not pursuing self referential structures in .perl | ||
was that I didn't have a solution for representing them | 21:54 | ||
thoughts on that are very welcome | |||
moritz | my idea would be a dynamic var | ||
raydiak | iirc, p5 Data::Dumper literally puts them in separate vars | ||
moritz | with obj => $str | ||
and $str is the string which can be used to access stuff | 21:55 | ||
lizmat | my @a; @a[0] = @a # how would you represent that ? | ||
timotimo | 89.89% time spent in postcircumfix:<( )> | 21:56 | |
21:57
adu left,
Mso150_a left
|
|||
moritz | lizmat: I fear it must be printed out exactly like that | 21:57 | |
21:58
Mso150_a_y joined
|
|||
moritz | lizmat: probably wrapped in a do { } block | 21:58 | |
though it'll probably more look like do { my \PERL1 = Array.new(); PERL1[0] = PERL1; PERL1 } | 21:59 | ||
raydiak | data::dumper gives "$VAR1 = [ $VAR1 ]" :P | ||
moritz | raydiak: my perl 5.20 Data::Dumper hangs | 22:00 | |
sleep& | |||
raydiak | moritz: works on 5.18 here..."my @a; $a[0] = \@a; say Dumper(\@a);" | ||
'night moritz | |||
lizmat | good night moritz! | ||
moritz | good night everybody | 22:01 | |
colomon | o/. | 22:02 | |
22:02
Alula joined
|
|||
raydiak | \o you dropped something :) | 22:03 | |
colomon | ;) | ||
22:04
ptc_p61 left
|
|||
raydiak | but honestly, even if there are cases that turn out to be a real pain, compared to going in to an infinite loop, even some bizarre internal error is better imo | 22:05 | |
22:06
ugator left
|
|||
raydiak | I wasted more hours than I'll admit to the first time I ran into this :) | 22:06 | |
22:09
denis_boyun_ left,
orfjackal joined
22:10
xenoterracide_ left,
xenoterracide_ joined,
orfjackal left
|
|||
raydiak | lizmat: so what do you think of moritz's do block approach? | 22:13 | |
lizmat | looks good in principle... atm I'm busy with some other stuff, so I can't help right now | 22:14 | |
raydiak | np I'll leave you to it...I'll kick the idea around later when more people are around, perhaps | 22:17 | |
22:18
xenoterracide_ left
|
|||
dalek | nda: 3ed91f4 | Mouq++ | bin/panda: Fix `panda -h` `#=` was connecting the comments to the wrong MAIN candidates |
22:20 | |
nda: 45675dc | (Tobias Leich)++ | bin/panda: Merge pull request #110 from Mouq/master Fix `panda -h` |
|||
22:21
telex left
22:22
telex joined
22:28
xenoterracide_ joined
22:29
Isp-sec left
|
|||
tadzik | #| :( | 22:35 | |
22:35
ghostlines left
22:36
ghostlines joined
|
|||
FROGGS | :#( | 22:38 | |
22:43
rindolf left
22:44
xenoterracide_ left,
xenoterracide_ joined
22:49
ab5tract left
22:53
xenoterracide_ left
22:57
kjs_ left
23:11
thou left
23:16
thou joined
23:19
SevenWolf left,
SevenWolf joined
23:21
BenGoldberg joined
23:24
FROGGS left
23:27
molaf_ left
23:29
Mso150_a_y left,
Alina-malina left
23:30
Alina-malina joined
23:39
gfldex left
|
|||
timotimo | now i run into a null pointer somewhere | 23:40 | |
strange | |||
BenGoldberg | . o O (In soviet russia, null pointer runs into you!) | 23:41 | |
timotimo | the null pointer dereference happens during compilation of the module | 23:42 | |
i can't reproduce it outside of panda >:( | 23:50 |