Camelia, the Perl 6 bug

IRC log for #perl6, 2010-09-30

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 colomon left #perl6
00:09 dalek rakudo: d4b72da | KodiB++ | src/builtins/Signature.pir:
00:09 dalek rakudo: [builtins/Signature] Use ObjectRef instead of Perl6Scalar.
00:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​4b72daaeadc86981981214e598e2ef8cfcea554
00:09 dalek rakudo: fb57ef1 | KodiB++ | src/Perl6/Grammar.pm:
00:09 dalek rakudo: [Grammar] Permit ">>" after infix:<->.
00:09 dalek rakudo:
00:09 dalek rakudo: This fixes RT #77800.
00:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​b57ef14d03f2b9ab40e1f17629e866c3e7258d8
00:09 dalek rakudo: 3221cad | KodiB++ | src/ (6 files):
00:09 dalek rakudo: Merge branch 'perl6scalar-cleanup'
00:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​221cad48af3215901c070d442a49317945258b2
00:10 dalek roast: 71fdf1d | KodiB++ | S03-metaops/hyper.t:
00:10 dalek roast: [hyper.t] Added tests for RT #77800.
00:10 dalek roast: review: http://github.com/perl6/roast/commit/71​fdf1d837b6869d9826d6f4d058678eb62c668a
00:11 justatheory left #perl6
00:13 jferrero left #perl6
00:14 lue joined #perl6
00:15 lue hello o/
00:15 diakopter ahoi
00:17 Kodi left #perl6
00:19 Chillance left #perl6
00:24 sjohnson hi
00:35 risou joined #perl6
00:39 cdarroch left #perl6
00:47 Entonian left #perl6
00:49 QinGW joined #perl6
00:53 QinGW left #perl6
00:58 QinGW joined #perl6
01:04 mfollett joined #perl6
01:07 ggoebel left #perl6
01:07 risou left #perl6
01:07 colomon joined #perl6
01:07 risou joined #perl6
01:08 ggoebel joined #perl6
01:11 [Coke] joined #perl6
01:12 risou left #perl6
01:12 Banu joined #perl6
01:25 Banu left #perl6
01:25 Italian_Plumber joined #perl6
01:35 jaldhar joined #perl6
01:39 molaf_ joined #perl6
01:42 molaf left #perl6
01:52 meppl joined #perl6
01:53 colomon rakudo: my $a = Real.new; say $a.WHAT
01:53 p6eval rakudo 3221ca: OUTPUT«Real()␤»
01:58 justatheory joined #perl6
02:01 am0c^ joined #perl6
02:03 leprevost joined #perl6
02:07 leprevost left #perl6
02:09 leprevost joined #perl6
02:18 Thorben joined #perl6
02:21 Thorben Newbie question. Better to learn Perl 5 and then 6, or to learn 6 first and disreguard 5?
02:21 Thorben I guess, how big are the changes? C# to C++ big?
02:22 \xF0 learn either
02:22 \xF0 the changes are substantial
02:23 Thorben Been working off the free ebook from perl.org
02:23 Thorben Based on a perl 5 build.
02:24 \xF0 there's lots of good teaching material on perl 5 out there
02:24 Italian_Plumber left #perl6
02:24 Thorben How difficult is it to make the transition from 5 to 6?
02:25 florz that question is impossible to answer
02:25 florz and mostly irrelevant
02:26 florz what's relevant as far as learning is concerned are concepts, not syntax
02:27 florz so, if you want to write production code, go with 5, if you want to have a cleaner language to play with, go with 6, I'd say
02:27 leprevost left #perl6
02:31 Thorben 5 seems more appropriate at the moment. Thanks.
02:42 satyavvd joined #perl6
02:56 leprevost joined #perl6
03:00 QinGW left #perl6
03:07 QinGW joined #perl6
03:11 meppel joined #perl6
03:12 meppl left #perl6
03:12 ash_ joined #perl6
03:13 ash_ rakudo: say do { given 1 { 'foo' when 1; default { 'fail' }; }; };
03:13 p6eval rakudo 3221ca: OUTPUT«fail␤»
03:13 ash_ say do { given 1 { when 1 { 'foo'  }; default { 'fail' }; }; };
03:13 ash_ rakudo: say do { given 1 { when 1 { 'foo'  }; default { 'fail' }; }; };
03:13 p6eval rakudo 3221ca: OUTPUT«foo␤»
03:14 alester joined #perl6
03:14 ash_ can you not use when like:  <statement> when <condition>; ?
03:16 ash_ std: say do { given 1 { 'foo' when 1; default { 'fail' }; }; };
03:16 p6eval std 1d6fdf3: OUTPUT«ok 00:01 117m␤»
03:18 meppel left #perl6
03:18 meppl joined #perl6
03:18 s_mosher rakudo: say do { given 1 { 'foo'.say when 1; default { 'fail' }; }; };
03:19 p6eval rakudo 3221ca: OUTPUT«foo␤fail␤»
03:19 s_mosher it just fails to break
03:19 ash_ hmm weird
03:20 ash_ perl5.14 is planning on having a slightly different functionality of given/when then it seems, or i might be interpreting this wrong
03:22 mfollett left #perl6
03:22 TimToady I think Perl 5 is doing it wrong
03:25 mfollett joined #perl6
03:26 TimToady when semantics are useful in places where you don't want break, and modifier when is appropriate for that task
03:26 TimToady druther force breakables to be in an official comb structure, not hidden down in statement modifiers
03:27 TimToady makes it real nice to write list comprehensions with a when inside a for modifier too
03:29 Thorben left #perl6
03:30 ash_ hmm, ya, i wasn't thinking like that, that would be annoying in perl5 if when implied last
03:30 ash_ since a for loop won't work the same
03:31 TimToady anyway, this is specced; see S04:952
03:31 ash_ kk
03:31 PerlJam ash_: where are you reading about 5.14's given/when?
03:32 ash_ http://transfixedbutnotdead.com/2010/08/​30/givenwhen-the-perl-switch-statement/ i think i read it wrong, let me re-read that article
03:32 TimToady me, I've more or less given up trying to tell the p5 folks how to borrow p6 features...
03:33 ash_ oh, sorry, i read that totally wrong
03:34 PerlJam TimToady: it's not like they have an implementation to learn from ...  oh, wait   :)
03:34 ash_ it says: given blocks returns the last evaluated expression, or an empty list if the block exited with break
03:35 ash_ thats how: $a = do { given (1) { 'one' when 1; } }; would set $a = 'one'
03:36 ash_ rakudo: my $a = do { given (1) { 'one' when 1; } };
03:36 p6eval rakudo 3221ca:  ( no output )
03:36 ash_ thats a very ruby-esk way of doing things...
03:37 TimToady my impression is that p5's switch is fairly useless from the standpoint of returning values, but I could be misinformed
03:38 ash_ in ruby all statements, even control statements, return their last value of the block (or anything passed to c<return>); so you can say: a = <if statement> or a = any form of statement really, could be a given/when type statement or even a for loop
03:39 TimToady you can do that in p6 too, but sometimes you need a 'do' to parse the following as a statement
03:40 ash_ then should: my $a = do { given (1) { 'one' when 1; } }; $a eq 'one'?
03:40 TimToady rakudo: say do given 1 { when 0 { 'a' }; when 1 { 'b' }; default { 'c' } }
03:40 p6eval rakudo 3221ca: OUTPUT«b␤»
03:40 TimToady yes, certainly, that's the final value of the block
03:41 ash_ ah, so that might be a rakudo bug
03:41 ash_ rakudo: my $a = do { given (1) { 'one' when 1; } }; say $a
03:41 p6eval rakudo 3221ca: OUTPUT«one␤»
03:41 ash_ oh, nm
03:41 TimToady what bug?
03:41 ash_ i thought i tried that a second ago and it didn't work...
03:41 TimToady you didn't 'say'
03:41 ash_ maybe i need to go lay down... # probably needs sleep
03:42 * TimToady always needs sleep, most of the time...
03:43 ash_ rakudo: say do if 0 { 1 + 2 } else { 1 + 4 };
03:43 p6eval rakudo 3221ca: OUTPUT«5␤»
03:43 ash_ rakudo: say if 0 { 1 + 2 } else { 1 + 4 };
03:43 p6eval rakudo 3221ca: OUTPUT«===SORRY!===␤Confused at line 22, near "say if 0 {"␤»
03:43 ash_ neat
03:43 ash_ i like do
03:46 ash_ rakudo: say do given 1 { 'foo' when 1; default { 'fail' }; };
03:46 p6eval rakudo 3221ca: OUTPUT«fail␤»
03:46 ash_ is... that right?
03:47 s_mosher ash_, 'foo' there is evaluated in... whatever's Perlish for "void context"
03:48 ash_ rakudo: say do given 1 { 'foo' when 1; };
03:48 p6eval rakudo 3221ca: OUTPUT«foo␤»
03:48 ash_ thats weird
03:48 ash_ oh
03:48 ash_ i see
03:48 ash_ hmm
03:49 envi joined #perl6
03:49 ash_ rakudo: say do given 1 { 'foo'.say when 1; default { 'fail' } };
03:49 p6eval rakudo 3221ca: OUTPUT«foo␤fail␤»
03:51 mncharity joined #perl6
03:52 mncharity fyi, on http://perl6.org/ and http://perl6.org/compilers/ , the STD.pm links are varieties of "404".
04:03 ash_ rakudo: { say $^x } if 1;
04:03 p6eval rakudo 3221ca:  ( no output )
04:03 ash_ rakudo: { say $^x } for 1..3;
04:03 p6eval rakudo 3221ca: OUTPUT«1␤2␤3␤»
04:03 ash_ rakudo: if 1 -> $x { say $x }
04:03 p6eval rakudo 3221ca: OUTPUT«1␤»
04:04 ash_ rakudo: { say $^x } if 1;
04:04 p6eval rakudo 3221ca:  ( no output )
04:04 ash_ :-(
04:04 ash_ bug... i think
04:05 ash_ S04:693 say:  { say $^x } if foo(); is equiv to "if foo() -> $x { say $x }"
04:05 ash_ rakudo: { say $^x } if 1; if 1 -> $x { say $x }
04:05 p6eval rakudo 3221ca: OUTPUT«1␤»
04:06 ash_ rakudo disagrees
04:06 * ash_ submits rakudo bug
04:12 mncharity anyone around know the state of STD_P5.pm6 vs MAD vs PPI ?
04:13 pythonian4000 is now known as pythonian4000afk
04:21 ash_ how do you send updates to the bug tracker at rt.perl.org ?
04:23 mncharity left #perl6
04:30 ash_ well anyone listening with control over the rt, ticket 78124 and 77750 are duplicates
04:38 * ash_ sleep...
04:57 alester left #perl6
05:11 sorear People :/
05:15 diakopter I replied to mncharity by email
05:16 sorear You found his email?
05:16 sorear All I found was that he's a #concatenative regular
05:16 diakopter he wrote Elf
05:19 diakopter http://perl.net.au/wiki/Elf
05:20 sorear aye
05:21 agentzh joined #perl6
05:21 sftp left #perl6
05:23 irclogbot_backup joined #perl6
05:23 irclogbot_backup left #perl6
05:23 Guest23195 joined #perl6
05:25 sorear diakopter: mm, this looks like my kind of compiler
05:28 Guest23195 left #perl6
05:29 pythonian4000afk is now known as pythonian4000
05:33 justatheory left #perl6
05:41 pythonian4000 is now known as pythonian4000afk
05:41 LaVolta joined #perl6
05:44 masonkramer left #perl6
05:44 masonkramer joined #perl6
05:49 diakopter sorear: nod. I assumed you knew about it
05:50 sorear diakopter: I hadn't looked at it in much depth before
05:52 mfollett left #perl6
06:00 leprevost left #perl6
06:02 * diakopter fixes links on perl6.org
06:02 * diakopter and updates /compilers
06:11 sorear hmm, linux 2.6.32 adds support for memory usage in free(1), this seems like a good excuse to upgrade
06:12 wtw joined #perl6
06:15 dalek niecza/master: 22654de | sorear++ | src/C (3 files):
06:15 dalek niecza/master: Remove the simulated evaluation stack
06:15 dalek niecza/master:
06:15 dalek niecza/master: This bit of technical debt has been with us since before it was renamed niecza.
06:15 dalek niecza/master: review: http://github.com/sorear/niecza/commit/2​2654de35249404898e79a0a935949a1483bc349
06:16 kjeldahl joined #perl6
06:18 diakopter sorear: Wow! perlito is extremely active recently, and those commit comments are very interesting!  http://github.com/sorear/niecza/commit/2​2654de35249404898e79a0a935949a1483bc349
06:18 diakopter it's plain, however, why fglock tends to stay away from #perl6 :)
06:18 diakopter these days.
06:18 diakopter erm, wrong url.
06:19 diakopter http://github.com/fglock/Perlito/commits/master/
06:19 diakopter that's the one I meant to paste
06:19 diakopter sorear: but your diff is very interesting too :)
06:20 moritz_ diakopter: why does he stay away?
06:21 diakopter probably the same reasons I should too  :/ distractibility
06:21 diakopter I mean, if his productivity in Perlito is any evidence
06:22 diakopter plainly he places code success over socializing
06:22 diakopter on irc.
06:23 diakopter moritz_: commit/push pending for perl6.org
06:26 * diakopter looks for a writeup on masak's p6-on-rakudo
06:26 sorear Hello from Linux 2.6.32
06:27 * diakopter found it
06:27 moritz_ good morning sorear
06:27 sorear /usr/bin/time reports peak memory now
06:27 sorear \o/
06:27 QinGW1 joined #perl6
06:27 * moritz_ wants it
06:29 QinGW2 joined #perl6
06:29 QinGW left #perl6
06:30 QinGW joined #perl6
06:31 QinGW1 left #perl6
06:32 diakopter moritz_: is mildew in Mu ?
06:33 moritz_ diakopter: I think so, yes
06:33 QinGW2 left #perl6
06:44 dalek mu: 8968a74 | diakopter++ | v6/README:
06:44 dalek mu: remove mention of old old old sprixel
06:44 dalek mu: review: http://github.com/perl6/mu/commit/896​8a74981811d95b889623a8d2b2b95282d6485
06:48 dalek perl6.org: e73d475 | diakopter++ | source/compilers/index.html:
06:48 dalek perl6.org: update perl6.org  putter++ and others for prompting it.
06:48 dalek perl6.org: review: http://github.com/perl6/perl6.org/commit/​e73d475c169c0e0ec7862b7ae3d02b1187f3cbf8
06:51 Guest23195 joined #perl6
06:52 diakopter I'm not married to most of those changes; please commit/push corrections ;)
06:54 * diakopter is also still waiting for clarification of S01's "first practical implementation" phrase. _any_ criteria to help narrow down "practical" would be much appreciated.
06:55 diakopter I guess the usual response to that is "we'll know it when we see it"; :/
07:01 baux joined #perl6
07:02 sorear What line?
07:03 diakopter :) S01 is very short
07:03 diakopter the 4th to last sentence or something
07:07 masak joined #perl6
07:07 masak oh hai, #perl6!
07:07 phenny masak: 29 Sep 22:15Z <lichtkind> tell masak of course i just ramble here since weeks to finde someone who redirects the http://blogs.perl.org/users/lichtkind/ posts with the tag perl6 to planet6
07:07 phenny masak: 29 Sep 22:22Z <lichtkind> tell masak its http://blogs.perl.org/users/lichtkind/perl-6/
07:07 diakopter masak: I added yapsi to perl6.org
07:08 * moritz_ finds that amusing
07:08 masak phenny: tell [Coke] lichtkind says http://blogs.perl.org/users/lichtkind/perl-6/
07:08 phenny masak: I'll pass that on when [Coke] is around.
07:08 masak diakopter: thanks!
07:08 masak diakopter++
07:09 diakopter oh; it's not updated yet
07:15 mberends left #perl6
07:19 * masak really likes the "some not quite there features" list in the R* announcement
07:19 masak for several reasons, actually.
07:20 masak it's honest to have such a list. it probably pre-empts some irritated/disappointed questions. and the list itself is inspiring. :)
07:26 masak a merge commit to p6l? :( there's really no need to send those to p6l, let alone make one in the first place...
07:26 masak TimToady: please don't do that.
07:27 masak probably just unfamiliarity with git. it does have merge as a default, after all.
07:33 moritz_ pulling with  git pull --rebase   most likely helps
07:35 masak aye, that's what I tend to do. there are other ways, too.
07:36 masak git embraces TIMTOWTDI :)
07:39 masak also, moritz_++ for the .get_value/.set_value spec change. in spite of all. :)
07:41 masak I liked the patch, but I winced at the wording "*perceived* privacy". that was probably the idea, though.
07:42 pythonian4000afk is now known as pythonian4000
07:45 masak I just changed s/perceived privateness/privacy/. hope that's OK.
07:49 dalek specs: 66610ca | masak++ | S12-objects.pod:
07:49 dalek specs: [S12] minor wording tweaks
07:49 dalek specs: review: http://github.com/perl6/specs/commit/66​610ca4c1bfa509dcb1d6ce0c5c4fcd75234526
07:50 tadzik joined #perl6
07:56 satyavvd left #perl6
07:57 masak <ash_> well anyone listening with control over the rt, ticket 78124 and 77750 are duplicates
07:57 * masak merges
07:58 sorear Any reason why I shouldn't s/_/-/ to be consistant with everything else in P6?
07:59 nymacro joined #perl6
07:59 sorear hello masak.
07:59 masak hi.
07:59 Guest23195 left #perl6
07:59 masak sorear: yes. there tends to be an aversion towards dashes and underscores in "core" names in general.
08:00 masak but introspection is non-core enough for that to be OK.
08:00 ruoso left #perl6
08:00 masak when they are allowed, the established rule seems to be: undescore for "low-level" things, dashes for other things. I think this counts as low-level.
08:02 masak as a side note, I used to be a big fan of dashes in sub and method names ever since dashes were allowed. lately I've switched entirely to underscores. don't know if this is a phase, or if the dashes thing was. :)
08:02 masak I may or may not have switched back because vim color-codes things nicer for me with underscores.
08:03 masak (er, that may or may not have influenced the switch back, I mean)
08:05 moritz_ so far all meta model methods have _ instead of -
08:05 nymacro left #perl6
08:05 moritz_ also the low level module loading/importing primitives
08:07 tadzik hello
08:10 masak tadzik! \o/
08:14 ruoso joined #perl6
08:22 diakopter masak: there, updated.  http://perl6.org/compilers/
08:22 masak \o/
08:30 timbunce joined #perl6
08:31 timbunce left #perl6
08:31 timbunce_ joined #perl6
08:32 nymacro joined #perl6
08:33 * masak replied to Damian on p6l
08:34 fod left #perl6
08:34 moritz_ masak++ # wording fix
08:36 * moritz_ also has an idea what to write, but waits until masak's email hit p6l, so that he does't duplicate effort
08:37 masak it should also have gone directly to you, since I didn't change the recipient list that Damian chose.
08:38 moritz_ masak: thanks. I've also searched for the place in the IRC logs to link to, and mine is just 2 lines different from yours :-)
08:38 masak :)
08:38 masak yes, there was a bit of ambiguity where to put the start of the conversation.
08:41 x19290 joined #perl6
08:41 icwiener joined #perl6
08:41 orafu left #perl6
08:41 x19290 left #perl6
08:46 kjeldahl left #perl6
08:50 moritz_ seems rakudo on newest parrot has quite a few new regressions
08:51 diakopter sorear: triumph!  sprixel has nested compilation units, either just-in-memory or on-disk-as-well. :)
08:54 moritz_ \o/
08:54 masak wow, Damian holds a more extreme and pronounced variant of my views.
08:55 moritz_ diakopter: do you maintain the sprixel compilation on the p6eval server?
08:55 x19290 joined #perl6
08:56 wamba joined #perl6
08:57 nymacro left #perl6
08:57 nymacro joined #perl6
08:59 x19290 left #perl6
08:59 x19290 joined #perl6
09:00 x19290 I have an install log of rakudo-star-2010.08.
09:00 sorear wow, TheDamian is insane
09:00 x19290 It says when I typed `make install',
09:00 moritz_ sorear: how so? :-)
09:01 diakopter moritz_: no, not really
09:01 moritz_ diakopter: would be nice if you did, as soon as sprixel is in a shape that it can run simple commands from IRC
09:01 diakopter moritz_: b/c it's in the infancy of the 9th or so rewrite
09:02 dakkar joined #perl6
09:02 diakopter it won't be there for years or so, since its purpose is now solely to get STD running on the CLR ..
09:02 diakopter :)
09:02 Guest23195 joined #perl6
09:03 x19290 hello
09:03 x19290 sorry for my rudeness
09:03 masak sorear: my colleague does Java for a living. I explained the situation with attribute un-privacy to him, and asked what he thought. "Do you even have to ask?" he said. (he's firmly in the "restrict the power of the programmer for his own good" camp.)
09:03 x19290 I have an install log of rakudo-star-2010.08.
09:03 x19290 It says when I typed `make install',
09:03 x19290 lib/parrot/2.7.0/languages/​perl6/lib/Form/Grammar.pir was installed.
09:03 x19290 But now I rebuild/reinstall rakudo-star-2010.08,
09:03 x19290 I cannot find lib/parrot/2.7.0/languages/​perl6/lib/Form/Grammar.pir
09:03 x19290 What's wrong?
09:04 moritz_ x19290: hwo do you try to rebuild/reinstall?
09:05 masak x19290++ # clear description of problem
09:05 diakopter masak, sorear, for what it's worth, the CLR permits getting/setting anything/everything anywhichwhere, as long as your CIL to access such private parts is emitted at runtime ;)
09:05 sorear masak: Does your colleague know about java.lang.reflect?
09:05 x19290 i installed everything on /opt/rakudo
09:05 x19290 i rm -rf /usr/src/rakudo-*
09:06 sorear masak: does your colleague support deleting java.lang.Serializable, the RMI framework, and most of the java web service stuff?  because it breaks encapsulation in exactly the same way as Any.perl
09:06 masak sorear: he says he does. and that he suspects that that would make Java just as bad as Perl... :)
09:06 x19290 untared 2010.08.tar.gz on /usr/src
09:06 masak sorear: he's undecided on java.lang.Serializable. this seems to be news to him.
09:06 x19290 and on parrot directory, perl Configure.pl --prefix=/opt/rakudo
09:07 masak sorear: (it certainly is to me)
09:07 sorear diakopter: IIUC it works at compile time too, as long as you load the code off a hard disk and don't pass --security=verify-all
09:07 x19290 on parrot directory, make install. I have a write permission on /opt
09:07 moritz_ x19290: you can try it with removing /opt/rakudo first too...
09:07 moritz_ x19290: though I'd recommend you take the 2010.09 release
09:08 pythonian4000 is now known as pythonian4000afk
09:08 moritz_ sometimes installed versions of parrot and rakudo can interact badly with the build process :(
09:08 diakopter sorear: ah.
09:08 diakopter sorear: well, on windows...
09:08 diakopter ;)
09:08 sorear diakopter: MSDN says that code loaded from IE's Local Domain skips verification
09:09 x19290 I said I removed /opt/rakudo first.
09:09 diakopter you said /usr/src...
09:09 x19290 sorry.
09:10 moritz_ did you also remove the unpacked sources?
09:10 x19290 yes.
09:10 jest joined #perl6
09:10 moritz_ then something on your system must have changed inbetween
09:10 * moritz_ has no idea what that could be
09:10 x19290 Should I have Form/Grammar.pir or not?
09:11 moritz_ no; it's a generated file
09:11 x19290 ok.
09:11 moritz_ should be built during the 'make install' step (yes, should be 'make', but the build system is a bit broken right now)
09:11 qwebirc21435 joined #perl6
09:13 x19290 Thank you very much moritz_.
09:13 moritz_ x19290: thank you for trying rakudo, and reporting trouble
09:13 x19290 quit
09:13 x19290 left #perl6
09:13 masak from Damian's email: "As it stands at the moment, it's not clear to me why we even bother with opaque objects, if it's going to be this trivial to break encapsulation." -- best rendering of my unease into words so far. TheDamian++
09:14 sorear I don't think $obj.^attributes<foo>.GET_VALUE($obj) is exactly trivial
09:14 moritz_ I also don't buy the argument of passing Attribute objects around
09:15 moritz_ to work with it, you must know exactly that it's an Attribute
09:15 masak both of those views should go on p6l.
09:15 masak (IMHO)
09:16 stepnem joined #perl6
09:16 moritz_ a reason for opaque objects is performance, btw :-)
09:17 masak aye.
09:17 diakopter (you're assuming a LOT about an optimizer :P)
09:18 moritz_ diakopter: both jnthn and sorear are working on meta objects that compile attribute accesses down to array slot accesses
09:18 moritz_ instead of hash-ish accesses
09:18 masak moritz_: doesn't necessarily mean that the hash can be dropped altogether, though.
09:18 masak just that the array is the primary means of access.
09:19 moritz_ right
09:19 diakopter ok, but I don't see how that's related to opaqueness.
09:19 masak for example, in Yapsi, the exact same situation occurs with normal lexical blocks. but we still want to be able to introspect them.
09:19 diakopter I was referring to how unused slots can be optimized away..
09:19 moritz_ in which case get_value and set_value are free to die() with a helpful message
09:20 sorear Privacy in Perl is a convention, and I'd like to keep it that way
09:20 sorear It's not like Java, where privacy is what prevents you from saying Runtime.getRuntime().securityManager = null; installBackdoor();
09:21 sorear Security and encapsulation are concerns best separated, IMO
09:21 moritz_ correct
09:24 masak well, Damian is only talking about encapsulation, and that it's too easily broken in Perl 6 right now.
09:24 moritz_ to be fair, .new has always bothered me a bit
09:25 moritz_ maybe it should be restricted to only those attributes with accessors
09:25 sorear the Perl 6 'has' is very constraining
09:25 sorear Moose's has takes named arguments, dozens of them
09:25 sorear one of which is :init_arg
09:25 masak moritz_: many years ago, I had a similar complaint/comment.
09:25 sorear YOU control how the default .new parses stuff
09:27 masak moritz_: but it was around the time when I was learning about the private/public distinction in Perl 6 (and how it differs from Java), so I thought "oh, that's probably just the way things are"
09:27 moritz_ masak: well, that's probably just the way things are :-)
09:29 masak with Damian rocking the boat, it suddenly feels less insane to clamor for a more encapsulated Perl 6.
09:29 masak let's see if someone comes up with a new, consistent model which still allows for .new and serialization.
09:30 moritz_ masak: I'd be happy with such a model, if it's roughly as convenient as the current one
09:30 masak of course.
09:30 masak one big question seems to be "how DO you set a private attribute?"
09:31 masak (by breaking encapsulation, I guess)
09:31 sorear $!foo = 2;
09:31 masak sorear: funny guy.
09:31 moritz_ phenny: tell jnthn about http://trac.parrot.org/par​rot/ticket/1807#comment:1 - seems you partially broke line numbers along the way
09:31 phenny moritz_: I'll pass that on when jnthn is around.
09:32 masak I admit I didn't express myself very precisely. :P
09:32 masak "how DOES .new assign values to private attributes?"
09:32 masak (under a hypothetical new model which respects encapsulation)
09:33 sorear .new passes them down to CREATE
09:33 sorear which is pretty low level, and has to see the attributes to give them values
09:33 sorear s/values/storage/
09:33 moritz_ sorear: I thought it passed them to .bless ?
09:33 Alias joined #perl6
09:34 sorear in Smalltalk, CREATE is a method on the metaclass.  I wonder if that would be a better way to think about it.
09:34 sorear moritz_: I thought bless called CREATE
09:34 orafu joined #perl6
09:34 masak no, I think bless modifies an already CREATEd tabula rasa object.
09:35 masak but I might be wrong.
09:35 moritz_ sorear: in rakudo you can call self.bless($repr, |%attribute_values)
09:35 masak that, by the way, is why I've already thought re-blessing to a narrower class makes a lot of sense. because that's what the normal bless already does.
09:36 sorear reblessing in general makes sense
09:36 sorear it's not a very commonly used operation, but when I need it, I need it
09:36 sundar joined #perl6
09:37 masak I think I've more or less convinced jnthn of the use case already.
09:37 moritz_ masak: I don't understand; in self.bless($repr, |%foo) neither 'self' nor $repr is of a parent type of the generated object
09:37 mavrc joined #perl6
09:39 masak moritz_: I always thought of .CREATE as creating a new, defined Mu object, and .bless as giving it the right class (and attribute slots, and attribute values). that may or may not actually be the case, though.
09:39 masak more likely .CREATE already gives it the right class.
09:39 masak in which case .bless is a bit of misnomer.
09:40 moritz_ I kinda think of .CREATE as creating a low-level storage thing
09:40 moritz_ and .bless magically associates it with a new high-level object
09:42 masak right, but does .CREATE make different low-level storage things for classes A and B?
09:43 moritz_ that might very well be the case
09:43 moritz_ at least it's allowed to
09:44 masak in either case, bless having re-bless capabilities isn't too far-fetched.
09:44 moritz_ agreed
09:44 masak it just magically associates a new high-level object with an old low-level storage thing :)
09:45 masak actually, reblessing to wider types is obvious from this viewpoint.
09:45 mavrc left #perl6
09:45 masak reblessing to narrowr types might require a new low-level $repr object to accomodate the new attrs.
09:48 mavrc joined #perl6
09:56 zb left #perl6
09:58 sundar left #perl6
10:00 masak nom &
10:00 Italian_Plumber joined #perl6
10:02 orafu left #perl6
10:02 QinGW left #perl6
10:04 mavrc left #perl6
10:06 jest left #perl6
10:20 zb joined #perl6
10:23 mavrc joined #perl6
10:26 daxim joined #perl6
10:27 ruoso left #perl6
10:35 LaVolta left #perl6
10:36 kjeldahl joined #perl6
10:41 Italian_Plumber left #perl6
10:45 qwebirc21435 left #perl6
10:45 pythonian4000afk is now known as pythonian4000
10:45 sandra_f joined #perl6
10:46 sandra_f left #perl6
10:56 Italian_Plumber joined #perl6
10:59 orafu joined #perl6
11:01 tadzik left #perl6
11:02 tadzik joined #perl6
11:06 sjn left #perl6
11:09 sjn joined #perl6
11:13 maddog007 joined #perl6
11:14 maddog007 left #perl6
11:20 ggoebel left #perl6
11:22 masak I'm still getting OpenFoundry emails, even after the demise of the Pugs SVN repo. anyone know how to make it stop? :)
11:28 [Coke] TheDamian++
11:28 phenny [Coke]: 07:08Z <masak> tell [Coke] lichtkind says http://blogs.perl.org/users/lichtkind/perl-6/
11:29 [Coke] ugh. that URL has no visible "FEED" button.
11:30 icwiener left #perl6
11:30 [Coke] if someone can translate that to an rss/atom link, I can planetsix it.
11:31 masak it's blogs.perl.org, it's gotta have rss/atom.
11:31 sorear http://blogs.perl.org/users/lichtkind/atom.xml
11:31 moritz_ yes, but not per tag
11:31 sorear oh
11:32 masak this Twitterer wants it all, but is sad about something -- what? http://twitter.com/meettya/status/25965877970
11:33 masak seems he thinks it'll be another 5 years before Perl 6 matches Perl 5.
11:33 masak that actually sounds accurate, for some values of 'matches'.
11:34 colomon TheDamian++ indeed
11:35 masak what is this, suddenly a lot of privacy proponents appear out of the bushes?
11:35 masak where were you when moritz_ and I argued a few days ago? :)
11:36 moritz_ the sheer mass of proponents doesn't mean it's a more sensible(sic!) position :-)
11:36 moritz_ see also: PHP
11:36 masak didn't say it was.
11:36 moritz_ I know :-)
11:36 masak just saying I didn't feel their support then as I do (indirectly) now.
11:36 tadzik left #perl6
11:36 dalek niecza/master: 52eeda0 | sorear++ | / (4 files):
11:36 dalek niecza/master: Factor out CodeGen's internal type inferrer
11:36 dalek niecza/master: review: http://github.com/sorear/niecza/commit/5​2eeda06eab20d1122e8e6d5924ddec2bea70746
11:36 dalek niecza/master: b8b0f44 | sorear++ | / (6 files):
11:36 dalek niecza/master: Kill off CLRImportObject for real
11:36 dalek niecza/master: review: http://github.com/sorear/niecza/commit/b​8b0f44034521d3dbf53fbf94d84e5ea9ce699c1
11:36 dalek niecza/master: 3d28e35 | sorear++ | / (12 files):
11:36 dalek niecza/master: Start playing with a CgOp type remapper
11:36 dalek niecza/master: review: http://github.com/sorear/niecza/commit/3​d28e35b5f6976b26fe466be20986c87a25b4a1e
11:37 moritz_ niecza: say 1
11:37 p6eval niecza eb45fca: OUTPUT«Can't call method "syml" on unblessed reference at /home/p6eval/niecza/src/CompilerDriver.pm line 156.␤»
11:37 masak by the way, PHP is sensible if your goal is "deploy now". :) it's still unmatched in that regard, IMO.
11:37 tadzik joined #perl6
11:38 masak granted, it's less-than-sensible if you want to do more advanced things than that :P
11:38 moritz_ Executing: viv --noperl6lib -5 -o src/Niecza/Grammar.pmc src/Niecza/Grammar.pm6
11:38 moritz_ /tmp/tmp4c6c66f6.tmp: line 1: viv: command not found
11:38 moritz_ while building niecza
11:38 masak Juerd++ # http://tnx.nl/php.html
11:39 [Coke] phenny: tell lichtkind - do you have an RSS feed for that that respects the Perl 6 tag?
11:39 phenny [Coke]: I'll pass that on when lichtkind is around.
11:39 * [Coke] gets back to cold fusion & javascript.
11:41 [Coke] OPENFOUNDRY-- # STOP SENDING ME EMAILS ARRRRRGH
11:41 * moritz_ installs a newer STD.pm
11:42 moritz_ niecza: say 1
11:42 p6eval niecza 3d28e35: OUTPUT«1␤»
11:42 moritz_ niecza: class A { method b() { say "oh hai" }; A.b; A.new.b();
11:42 p6eval niecza 3d28e35: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse block at /tmp/CRYdz96T3Q line 1:␤------> [32mclass A [33m⏏[31m{ method b() { say "oh hai" }; A.b; A.ne[0m␤Couldn't find final '}'; gave up at /tmp/CRYdz96T3Q line 1 (EOF):␤------> [32mod b() { say "oh hai" }; A.b;
11:42 p6eval ..A.new.b();[33m⏏…
11:43 moritz_ niecza: class A { method b() { say "oh hai" } }; A.b; A.new.b();
11:43 p6eval niecza 3d28e35: OUTPUT«oh hai␤oh hai␤»
11:44 moritz_ niecza: class A { has $.x = 3; method p($y) { say "$.x $y" } }; A.new().p(5); A.new(x =>  '2 + 3 =').p(5); A.p(6)
11:44 p6eval niecza 3d28e35: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.Kernel.Assign (Niecza.Frame th, Niecza.Variable lhs, Niecza.Variable rhs) [0x00000] in <filename unknown>:0 ␤  at SAFE.G496infix_58_60_61_62C (Niecza.Frame th)
11:44 p6eval ..[0x00…
11:44 moritz_ niecza: class A { has $.x = 3; method p($y) { say "$.x $y" } }; A.new().p(5); A.new(x =>  '2 + 3 =').p(5);
11:44 [Coke] hey, masak, how do I say "please stop sending me emails" in chinese?
11:44 p6eval niecza 3d28e35: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.Kernel.Assign (Niecza.Frame th, Niecza.Variable lhs, Niecza.Variable rhs) [0x00000] in <filename unknown>:0 ␤  at SAFE.G496infix_58_60_61_62C (Niecza.Frame th)
11:44 p6eval ..[0x00…
11:44 moritz_ niecza: class A { has $.x; method p($y) { say "$.x $y" } }; A.new().p(5); A.new(x =>  '2 + 3 =').p(5);
11:44 p6eval niecza 3d28e35: OUTPUT«Any() 5␤Any() 5␤»
11:45 [Coke] ah, nevermind, I'll just blacklist em. (*&@#$#@.
11:45 moritz_ sorear: TODO: attribute default values, and attribute initialization in default .new()
11:45 masak [Coke]: 停止发送电子邮件给我!
11:45 moritz_ niecza: class A { }; say A.new;
11:45 p6eval niecza 3d28e35: OUTPUT«A()<instance>␤»
11:46 masak oops, that was without "please"...
11:46 moritz_ niecza: class A { }; say A.WHAT;
11:46 p6eval niecza 3d28e35: OUTPUT«A()␤»
11:46 moritz_ niecza++
11:46 masak [Coke]: 请你不要再发邮件我!
11:46 moritz_ (not perl 6 related, but I found this nice to read: http://jcole.us/blog/archives/2010/09/28/mys​ql-swap-insanity-and-the-numa-architecture/ )
11:49 [Coke] masak: too late. I really wish I knew for sure that pugs is the reason they keep sending me (*&#$ emails.
11:49 [Coke] masak: thanks though.
11:49 masak [Coke]: let me know how it goes.
11:50 sorear moritz_: yeah.  I haven't revisited default new since adding named parameters
11:50 [Coke] They've ignored me for years. I finally got around to just programmatically ignoring their emails instead of manually ignoring them.
11:50 masak [Coke]: if I knew you were actually going to send it to them, I'd have given you the sentence in traditional hanzi. now they will think you're a mainlander.
11:51 moritz_ sorear: no problem, I was just looking to which degree niezca is usable... from reading the commit logs I don't get much of an idea about that
11:52 sorear yeah, usability is hard to quantify.
11:52 moritz_ indeed
11:53 moritz_ to a large degree it depends on the availability of builtins, and the quality of error messages
11:54 Juerd masak: PLP is, when installed, just as sensible for the "deploy now" case. And you get a much nicer programming language (Perl! :))
11:54 sorear the bad error message you got is very clearly a bug, I don't have a working MMD Str yet
11:54 masak Juerd: I see. wonder why I've heard about PHP but not about PLP (until now), though.
11:55 moritz_ sorear: well, it was good enough to guess that it had to do with the =
11:55 moritz_ from Kernel.Assign
11:58 pythonian4000 is now known as pythonian4000afk
12:01 satyavvd joined #perl6
12:07 Juerd masak: Because PLP doesn't have an organization pushing it, and because a huge part of the Perl community loathes the underlying ideas.
12:09 Juerd I often use PLP without using its features
12:10 Juerd Just CGI-ish scripts, but instead of #!/usr/bin/perl and use CGI, I type "<:" at the beginning.
12:12 jest joined #perl6
12:13 daxim http://wakaba.c3.cx/s/code/perlhp
12:13 agentzh left #perl6
12:15 moritz_ http://wakaba.c3.cx/perlhp/PerlHP.pm looks like it could be ported to Perl 6 (provided sufficient insanity)
12:16 daxim the clean CPAN version is <http://p3rl.org/Markup::Perl>, better use that as starting point
12:16 jferrero joined #perl6
12:24 sftp joined #perl6
12:36 ggoebel joined #perl6
12:46 qwebirc80927 joined #perl6
13:01 Robinux left #perl6
13:07 Juerd Something like PerlHP and PLP can be written in a few hours
13:08 ggoebel left #perl6
13:11 masak left #perl6
13:11 masak joined #perl6
13:11 am0c^ left #perl6
13:13 * flussence wonders if it'd be worth the effort to implement a strict subset of PHP as a template language
13:13 Robinux joined #perl6
13:15 masak flussence: watch out -- that's probably how PHP got started! :P
13:16 tadzik :D
13:16 tadzik Personal Home Page, no? :)
13:16 moritz_ masak: I know for sure that PHP didn't start out as a strict subset of today's PHP
13:16 moritz_ tadzik: I thought People Hate Perl :-)
13:16 moritz_ now it means People Hate PHP :-)
13:17 tadzik or Please Help Programming
13:17 masak there should be a "People Hate Perl 6", and then they should cause it to suffer delays -- oh wait...
13:17 kjeldahl left #perl6
13:18 moritz_ nice try :-)
13:18 flussence PHP6 is the biggest disappointment ever :(
13:18 Patterner left #perl6
13:18 flussence "we're finally implementing Unicode! Maybe! Oh never mind we'll do it later."
13:18 masak I thought you were going to say "the biggest disappointment since Perl 6"
13:19 tadzik same here ;)
13:19 masak man, do we have a twisted sense of humour...
13:19 moritz_ flussence: disappointment is in the eye of the beholder; since I didn't expect anything from it, I'm not disappointed at all
13:19 flussence that's what I get for using it, I guess :)
13:20 masak "...biggest disappointment since Java 7..."
13:20 masak which, last I heard, will get closures after all. oh yay.
13:20 Trashlord left #perl6
13:21 tadzik maybeItWillEvenGetRidOfThisHorribleCamelCase
13:21 * masak wouldn't keep his hopes up
13:22 moritz_ hey, closures will make it easier to implement Perl 6 on the JVM :-)
13:22 * moritz_ wonders what happened to those attempts to implement Perl 6 on some Lisp backends
13:22 masak lots of other languages on the JVM already support closures, AFAIU.
13:23 masak the question for Java has mostly been how to cram it nicely into the existing model.
13:23 Trashlord joined #perl6
13:23 moritz_ I guess it's possible to implement closures on any turing complete VM :-)
13:24 moritz_ "cram it nicely" :-)
13:25 jest but seriously, I still don't quite understand the claims that it is impossible to run Perl over JVM
13:26 moritz_ jest: it's not theoretically impossible; it's just that porting the perl 5 compiler to any VM is HARD
13:27 * PerlJam wonders if Damian will make an appearance here soon  :)
13:28 pmurias joined #perl6
13:28 * masak has been sorely tempted for some time now to put together a concerted effort to put Perl 5 on the Parrot virtual machine
13:29 jest well, if C++0x got lambda, everything other can
13:29 masak it would involve STD_P5, some Rakudo people, and some Perl 5 people.
13:29 moritz_ masak: if you do, please make it integrate well with Rakudo :-)
13:29 masak moritz_: that's a very good point.
13:29 masak moritz_: that should be among the top two goals or so.
13:30 Psyche^ joined #perl6
13:30 Psyche^ is now known as Patterner
13:30 masak and probably a feature in its first release.
13:30 masak "you can run it from Rakudo! just do 'use v5' inside a block of code"
13:31 * moritz_ imagines masak's face while reading toke.c in the perl 5 source tree
13:31 masak hehe
13:31 pmurias masak: getting STD_P5 to work would be a usefull goal by itself
13:31 masak pmurias: then I'll reduce my goals to that for the mo.
13:33 isBEKaml joined #perl6
13:38 pmurias masak: when we have STD_P5 we could use that do build a variety of cool stuff: a translator to Perl 6, tool support which can handle Devel::Declare, etc.
13:39 masak pmurias: I'd be a champion for that, except I'm already a champion for the "when we have *STD* we could use that to build a variety of cool stuff" line :)
13:39 * moritz_ notes that lack of cool project ideas certainly isn't one of Perl 6's problems
13:39 moritz_ more the lack of time and people to actually implement them
13:40 masak someone should start a matchmaking service between cool ideas and lurkers/newcomers in here :)
13:40 moritz_ I did; with certain success
13:40 moritz_ but then ran out of ideas
13:40 masak moritz_++ # challenges
13:40 moritz_ still we got try.rakduo.org and MAIN subs out of it
13:41 masak \o/
13:41 moritz_ and ash_++ and patrickas++ as heavy contributors
13:41 nymacro left #perl6
13:41 * moritz_ still hasn't sent out all the t-shirts
13:41 tadzik t-shirts?
13:42 moritz_ rakudo t-shirts for some of the participants
13:42 tadzik how can one earn one?
13:43 moritz_ 1) travel back in time 2) participate in at least one of the challenges 3) have luck at the lottery at the end
13:43 tadzik sounds like a nice excuse to dive deeper
13:44 tadzik challenges are tempting, but I don't recall any of them recently
13:44 masak someone should help moritz_ think up new challenges.
13:44 moritz_ I've run out of ideas, and out of funds for t-shirts
13:44 masak I think funds for t-shirts can be arranged as well.
13:44 masak I'm willing to donate if I know how.
13:45 moritz_ aye; [particle]++ offered some funding from the Rakudo Consulting group
13:46 [particle] the offer still stands.
13:46 [particle] moritz_++ for the challenges
13:46 moritz_ [particle]: and I might come back to it, after getting a grasp on what I spent so far, and when I have new ideas
13:47 [particle] you know where to find me :)
13:47 moritz_ indeed :-)
13:47 kjeldahl joined #perl6
13:48 patspam joined #perl6
13:48 timbunce joined #perl6
13:49 timbunce_ left #perl6
13:51 isBEKaml rakudo: class A { sub foo { say "hi!"; }; sub !foo { say "bar!"; }; }; my $x = A.new; $x.foo();
13:51 p6eval rakudo 3221ca: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤  in 'foo' at line 1:/tmp/a0dCit0VHd␤  in main program body at line 22:/tmp/a0dCit0VHd␤»
13:51 isBEKaml I still suck at perl6. :(
13:52 isBEKaml rakudo: class A { sub foo { say "hi!"; }; sub !foo { say "bar!"; }; }; my $x = A.new; $x.foo;
13:52 p6eval rakudo 3221ca: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤  in 'foo' at line 1:/tmp/j09JLdb4oq␤  in main program body at line 22:/tmp/j09JLdb4oq␤»
13:52 masak std: sub !foo {}
13:52 p6eval std 1d6fdf3: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/oGG8TPkPmx line 1:␤------> [32msub [33m⏏[31m!foo {}[0m␤    expecting any of:␤     name␤   routine_def␤        trait␤Parse failed␤FAILED 00:01 114m␤»
13:53 masak rakudo: class A { sub !foo {} }
13:53 p6eval rakudo 3221ca: OUTPUT«Could not find sub &foo␤  in main program body at line 22:/tmp/1Qrpy3tsYH␤»
13:53 masak ah. :)
13:53 isBEKaml rakudo: class A { method !foo {} }
13:53 p6eval rakudo 3221ca:  ( no output )
13:53 colomon rakudo: role Duration { has $.duration; }; my $a = Duration.new(:duration(10)); say :$a.perl
13:53 p6eval rakudo 3221ca: OUTPUT«"a" => .new(duration => 10)␤»
13:54 masak isBEKaml: you know that you'll never be able to call a sub through the A.foo syntax?
13:54 colomon known bug?
13:54 masak colomon: what's the bug?
13:54 masak appears to work fine.
13:54 isBEKaml masak: momentarily forgot. :/
13:54 masak oh, the lack of a name!
13:54 masak yes, something like that is known.
13:54 colomon masak: the string ".new(duration => 10)" is certainly not going to produce a valid object
13:54 masak rakudo: role A {}; say A.WHAT
13:54 p6eval rakudo 3221ca: OUTPUT«A()␤»
13:55 masak rakudo: role A {}; say A.new.WHAT
13:55 p6eval rakudo 3221ca: OUTPUT«A()␤»
13:55 PerlJam it's an anonymous class, so it has no name :)
13:55 moritz_ colomon: yes, known
13:55 tadzik roles can be instantiated?
13:55 colomon moritz_++
13:55 PerlJam tadzik: no
13:55 masak tadzik: not as such.
13:55 moritz_ but they automatically generated a class from itself
13:55 takadonet joined #perl6
13:55 tadzik hrm. How does .new... aha, got it
13:55 takadonet morning all
13:55 moritz_ which we call "punning", because we like puns :-)
13:55 PerlJam tadzik: an anonymous class is punned from the role
13:55 tadzik weird. Morning
13:55 colomon PerlJam: having no name does not justify having a broken .perl.  :)
13:55 masak I've never actually seen a use of role-to-class punning in actual Perl 6 code.
13:56 colomon masak: well, I might be about to code one.  :)
13:56 masak colomon: looking forward to that :)
13:57 colomon of course, I'm still very confused about my design, so maybe not.  :)
13:57 isBEKaml masak: well, I was about to look at how p6 treated 2 methods one private and other not. so hit that one off.
13:57 tadzik I don't get it. Roles can't be instantiated, but they automagically pun the classes from themselves, so that doesn't matter
13:57 moritz_ colomon: I don't quite see why you need a role at all
13:57 PerlJam tadzik: clearly it does matter.
13:58 moritz_ colomon: do you want to share code between otherwise unrelated classes?
13:58 isBEKaml rakudo: class A { method foo { say "hie!"; }; method !foo { say "eih!"; }; }; my $x = A.new; $x.foo();
13:58 p6eval rakudo 3221ca: OUTPUT«hie!␤»
13:58 masak isBEKaml: with methods, it's OK. they're in different "namespaces".
13:58 isBEKaml rakudo: class A { method foo { say "hie!"; }; method !foo { say "eih!"; }; }; my $x = A.new; $x.!foo();
13:58 smash_ joined #perl6
13:58 p6eval rakudo 3221ca: OUTPUT«===SORRY!===␤Confused at line 22, near "$x.!foo();"␤»
13:58 masak isBEKaml: ...and there's a reason they're called "private methods" :)
13:58 colomon moritz_: well, "otherwise unrelated" is an open question when you're in the design phase, no?
13:58 moritz_ would be just $x!foo
13:59 masak isBEKaml: you can't call them from the outside.
13:59 isBEKaml masak: my point was not about private methods per se. notice that there are two methods with the same name - only one being private.
13:59 tadzik PerlJam: so, why?
13:59 moritz_ colomon: I mean "that don't inherit from a common base class where it would make sense to put the common code"
13:59 masak rakudo: class A { method !foo { say "OH HAI" } }; A.new!foo
13:59 p6eval rakudo 3221ca: OUTPUT«OH HAI␤»
13:59 smash_ is now known as smash
13:59 masak er. I stand corrected. :(
13:59 colomon moritz_: I want to share code between two classes which are primarily related by that shared code.  I would have done that without roles in C++ without thinking about it.  But then, it seems like an application for roles.
13:59 smash hello everyone
14:00 qwebirc80927 left #perl6
14:00 masak smash! \o/
14:00 moritz_ masak: known bug
14:00 tadzik hello smash
14:00 colomon smash: \o/ indeed
14:00 moritz_ colomon: then a role is a good idea
14:00 masak moritz_: oh phew. thought we were about to have another discussion :P
14:00 moritz_ colomon: but I don't see why you need a special constructor
14:00 smash new rakudo-star do add to benchmarks i guess
14:00 smash great!
14:01 moritz_ masak: "moritz lenz, threatening with discussions since 1990 or so"
14:01 masak "run away! run away!"
14:01 moritz_ colomon: I guess you have an attribute in your role; that is going to get flattened out in the classes you mix your role into
14:02 isBEKaml is that thing about two methods with the same name in a class known? rakudo doesn't seem to catch ambiguities here.
14:02 moritz_ so you can do things like  role duration { has $.duration }; class Note does duration { ... }; my $n = Note.new(duration => '12ps');
14:03 isBEKaml std: class A { method foo { }; method !foo {  }; };
14:03 moritz_ (though I guess that music notes last longer than 12ps :-)
14:03 p6eval std 1d6fdf3: OUTPUT«ok 00:01 115m␤»
14:03 colomon moritz_: I was just realizing that
14:03 isBEKaml nor does std. :(
14:04 isBEKaml rakudo: class A { method foo { say "hie!"; }; method !foo { say "eih!"; }; }; my $x = A.new; $x.foo(); $x!foo();
14:04 p6eval rakudo 3221ca: OUTPUT«hie!␤eih!␤»
14:04 moritz_ isBEKaml: so, where's the problem?
14:04 moritz_ isBEKaml: two methods, one foo, one !foo; both can be called
14:04 moritz_ colomon: that's what I wanted to tell you after reading your first blog post mentioning roles, but either I didn't, or I didn't explaini well
14:05 isBEKaml moritz_: I don't see it that way. public and private seem to be acting in two different zones. was that the intended idea?
14:05 Mowah joined #perl6
14:05 moritz_ isBEKaml: the idea is to leave the programmer the most freedom he wants
14:06 masak isBEKaml: they're supposed to be acting in two different zones.
14:06 isBEKaml moritz_: whatever you do, just don't give him enough rope to hang himself!
14:06 masak isBEKaml: that seems to trouble you. why?
14:06 isBEKaml :D
14:06 moritz_ isBEKaml: if that's your problem, you shouldn't ever use a workshop :-)
14:07 masak or a hammock.
14:07 moritz_ or a sailing ship
14:07 masak or a rope.
14:07 moritz_ those usually come with some rope
14:07 isBEKaml moritz_: a workshop? like the ones filled with lathe, anvil and the like?
14:08 moritz_ isBEKaml: right
14:08 colomon moritz_++: no worries
14:10 isBEKaml masak: my thinking was public and private things that are part of the class and they are merely modifiers specifying access to the class attributes. as such, they shouldn't really behave like they are living in a parallel universe. Moreover, classes are merely holders for their attributes and their behaviour is defined by the modifiers specified on their attributes.
14:10 gottreu what's the closest thing to @x.pick(42) in Perl5 ?
14:11 moritz_ gottreu: use List::Util qw(shuffle); (shuffle @x)[0..41)
14:12 gottreu is [) valid in p5?
14:12 moritz_ sorry, meant ]
14:12 isBEKaml moritz_: Never quite liked it except perhaps the woodshop. ;)
14:12 ggoebel joined #perl6
14:12 * moritz_ loves sailing
14:12 gottreu ok, i saw some crazy interval stuff...either earlier this week or years ago in the irc logs
14:13 moritz_ crazy stuff? can't have been here, we raise the bar of the common sanity level.. *SCNR*
14:13 orafu left #perl6
14:14 gottreu 'crazy' meaning of a impressively level of hackitude
14:15 isBEKaml this week and years ago in the same sentence. that's the first symptom of addiction. :O
14:15 wamba left #perl6
14:15 isBEKaml or simply lost track of time? ;)
14:15 moritz_ or just a different perception of time
14:16 gottreu i've haven't been reading the irc logs cover to cover . . .
14:16 moritz_ now *that's* the first real sign of sanity :-)
14:17 isBEKaml or the *last* of freedom -- :P
14:17 moritz_ :-)
14:17 isBEKaml SCNR
14:17 * PerlJam wonders what gottreu means by "interval"
14:19 isBEKaml rakudo: my $x = { say $^x }; $x(42); ## #78142 looked interesting, so...
14:19 p6eval rakudo 3221ca: OUTPUT«42␤»
14:19 flussence oh, I think I remember what he was talking about
14:19 isBEKaml \o/
14:19 gottreu in the mathematical sense.    (1..10) vs. (1..10] and how one includes ten and one doesn't.  open vs. closed intervals (if i remember my terminolgoy)
14:19 flussence ^yeah, that
14:20 PerlJam gottreu: ah, ok
14:20 flussence I think someone tried to define a circumfix operator for that at the time and it didn't work...
14:20 PerlJam gottreu: that would be 1..10 and 1..^10  (and 1^..10)
14:22 wtw left #perl6
14:24 ggoebel left #perl6
14:24 ggoebel joined #perl6
14:25 gottreu rakudo: sub circumfix:<[ )>(@a) { @a[0] ..^ @a[1] }; say [0,10)
14:25 p6eval rakudo 3221ca: OUTPUT«0123456789␤»
14:26 gottreu it seems lue was doing that on july 22 of this year.
14:26 flussence of course I could've remembered wrong...
14:39 satyavvd left #perl6
14:42 pmurias left #perl6
14:46 orafu joined #perl6
14:49 isBEKaml left #perl6
14:54 colomon doh!  ABC appears to break ufo now....
14:54 masak d'oh!
14:55 colomon trying to pull latest ufo now...
14:59 colomon seems to work fine now.  wonder what that was?
15:00 moritz_ lack of computrons?
15:02 masak cosmic rays?
15:03 colomon happened repeatedly, so cosmic rays seems out.
15:03 colomon it erased the old Makefile and didn't generate a new one.
15:03 colomon I did a git pull, merged in my local changes again, and then everything was fine.
15:05 slavik blame ext4 :P
15:06 justatheory joined #perl6
15:06 _twitch joined #perl6
15:12 daxim left #perl6
15:14 mfollett joined #perl6
15:19 sorear good * #perl6
15:21 ruoso joined #perl6
15:21 ggoebel left #perl6
15:21 masak sorear: \o
15:22 ash_ the error ticket #78142 is about is when you use a block with an if
15:22 ash_ rakudo: { say $^x } if 1;
15:22 p6eval rakudo 3221ca:  ( no output )
15:22 ash_ rakudo: if 1 -> $x { say $x }
15:22 p6eval rakudo 3221ca: OUTPUT«1␤»
15:23 ash_ according to S04, those should be the same thing
15:23 moritz_ rakudo still follows the old spec
15:23 ash_ ah
15:23 ash_ i didn't know the spec changed in that area recently
15:23 moritz_ fsvo "recently"
15:24 Ross joined #perl6
15:24 Ross left #perl6
15:24 Ross joined #perl6
15:26 ash_ well, at least a tickets there to help remind someone that knows the p6 grammar :P
15:28 pmichaud good morning, #perl6
15:28 wamba joined #perl6
15:29 colomon o/
15:30 ash_ how does autovivication work across files?
15:30 sorear I do not beleive these concepts interact in any way.
15:30 moritz_ same as it works within a single file
15:32 ash_ sorear: bug 76606 in the bug tracker is what i am talking about, if you had class foo::a { }; and class foo { } in 1 file, its fine, but if you make them separate files it gives an error, so saying foo was redeclared
15:33 ash_ maybe the word autovivication is the wrong one to use
15:33 pmichaud that's just a rakudo bug.
15:33 moritz_ that's more related to stubbing and symbol table/type object relation than to autoviv
15:35 ash_ got ya
15:36 icwiener joined #perl6
15:38 Cory1013 joined #perl6
15:39 Cory1013 left #perl6
15:44 pmichaud did TT #1807 get resolved yet  (pct patch breaks line numbers)?
15:45 moritz_ I don't think so
15:45 * moritz_ git svn rebase's parrot
15:45 moritz_ nope
15:46 pmichaud okay, I'll fix.
15:46 moritz_ ++pmichaud
15:46 pmichaud jnthn++ forgot to rebase his copy of pct before merging it back into trunk  :-(
15:46 pmichaud so he ended up undoing a number of pct changes, including the line number changes
15:47 Trashlord left #perl6
15:47 moritz_ I wonder why the diff seemed to contain unrelated changes
15:48 moritz_ *wondered
15:49 Trashlord joined #perl6
15:51 cogno joined #perl6
15:55 moritz_ the good news is that all rakudo failures on latest parrot are related to the line number thing, so fixing that should make rakudo run fine on parrot HEAD
15:55 pmichaud I'm testing the fix now.
15:57 pmichaud parrot tests pass, now trying rakudo + tests
15:59 wamba left #perl6
16:05 kjeldahl left #perl6
16:07 kjeldahl joined #perl6
16:08 pmichaud tests pass, committing fix
16:09 moritz_ \o/
16:09 jest left #perl6
16:09 moritz_ bumping PARROT_REVISION would be a nice addition
16:09 pmichaud r49387
16:09 pmichaud haven't run a full spectest yet -- doing that now.
16:14 jnthn o/
16:14 phenny jnthn: 09:31Z <moritz_> tell jnthn about http://trac.parrot.org/par​rot/ticket/1807#comment:1 - seems you partially broke line numbers along the way
16:15 cogno_ joined #perl6
16:15 cogno left #perl6
16:15 jnthn moritz_: That patch accientally reverted some changes it shouldn't have.
16:16 jnthn But a follow-up patch put them back.
16:16 jnthn oh, maybe incompletely. hm
16:16 jnthn oh, pmichaud++ already got it
16:17 jnthn sorry 'bout that.
16:19 jnthn (It happened because when I did svn up to check my changes worked with latest, realclean didn't catch something and I got a very broken Parrot build. So I blew away the checkout, got a clean one and then re-saved the files I'd changed. I can only assume by that point I was probably sufficiently frustrated with the whole thing to just hit commit when the Parrot and nqp-rx tests passed and forgot to read the diff...)
16:22 cogno_ left #perl6
16:24 ingy left #perl6
16:25 ggoebel joined #perl6
16:30 isBEKaml joined #perl6
16:31 Entonian joined #perl6
16:34 sorear hello jnthn
16:35 sorear jnthn: I'm playing with various refactors in the name of backend portabilty.  One thing that I think I'm going to have huge issues with is the calling convention
16:36 sorear obviously each backend needs a different set of calling conventions, but it's not obvious how to write frontend code polymorphic over that
16:39 dukeleto left #perl6
16:40 jnthn sorear: Two things come to mind.
16:41 pmichaud left #perl6
16:41 jnthn 1) We hide a bunch of stuff behind PAST in Rakudo, so it's just a case of compiling PAST::Op for methodcall and call for however that platfrom wants to make captures.
16:41 PerlJam left #perl6
16:42 cogno joined #perl6
16:42 jnthn 2) I suspect Capture and Signature can look fairly similar accross backends so the main task for a given platform is writing a carefully optimized binder.
16:42 Util left #perl6
16:42 cogno left #perl6
16:42 dalek left #perl6
16:42 cogno joined #perl6
16:42 Juerd left #perl6
16:43 sorear jnthn: Caller issues don't really bug me; the main issue is the polymorphic binder
16:43 jnthn Define polymorphic.
16:43 jnthn (in this context)
16:43 cdarroch joined #perl6
16:43 cdarroch left #perl6
16:43 cdarroch joined #perl6
16:43 sorear Able to work properly on more than one backend
16:44 jnthn Oh
16:44 jnthn OK, I'd never considered that a goal.
16:44 jnthn I don't mind carefully writing and optimizing the binder per backend because it's a critical path
16:44 sorear the current niecza "binder" is a compile-time module which generates ENTER code
16:44 jnthn Same for things like multi-dispatch caching.
16:45 jnthn OK. I think the binder should be a separate thingy that takes as input a capture, a signature and a bind target.
16:45 baux left #perl6
16:45 jnthn (where the bind target is usually a lexpad)
16:46 sorear the alternatives are using a full CPS sub per sub (quite heavy) or using a non-CPS sub for the binder, but needing inferior runloops for default and where (wtf)
16:46 jnthn I don't think generating code in the sub to unpack the signature is the right factoring. But maybe I misunderstood what you mean.
16:46 sorear It's not the *right* factoring, but it's better than the obvious alternatives on .net
16:46 juerd joined #perl6
16:47 juerd feather0 just died
16:47 sorear feather0 = physical box?
16:47 juerd The good news is, apart from that the fire alarm still works, that feather2 and 3 aren't on it.
16:47 sorear fire alarm!?!?
16:47 jnthn !!
16:47 juerd sorear: Ya.
16:48 juerd First time in our server room
16:48 diakopter [Coke]: I replied to openfoundry and they replied in Engrish
16:48 jdv79 pictures
16:48 * sorear never thought of servers as being particularly flammable
16:48 juerd jdv79: I was next door when it happened and got there in time
16:48 jnthn Power supplies can die quite impressively.
16:49 juerd It definitely is the power supply
16:49 sorear jnthn: Need fuel as well as ignition source
16:49 juerd I was making fun of Google's powers when it happened and it was a weird moment.
16:49 juerd sorear: Well, there was smoke but I haven't seen any flame.
16:50 * jnthn had a power supply shoot some flames out the back several years back. Scared the heck out of the guy sat on the desk accross from me.
16:50 juerd Anyway, I'll try another PSU
16:50 juerd If that doesn't work... I don't have spare hardware at the moment, so I'd have to migrate feather1 the hard, slow and annoying way.
16:51 diakopter and the other feather0 users haven't timed out yet...
16:51 jnthn Bad day for hardware. My keyboard at $dayjob broke today too...
16:51 juerd diakopter: Oh, it'll happen :)
16:51 juerd No doubt there.
16:52 juerd afk
16:52 * moritz_ is happy that pugs svn isn't on feather anymore :-)
16:52 diakopter they're watching this unfold on irc.perl6.org.  "...those poor people..."
16:53 juerd Unfold?
16:53 * moritz_ wonders if unfold is available as unfoldl and unfoldr
16:53 sorear diakopter: irc.perl6.org?  neverheardofit
16:54 sorear rdns to feather2, mm
16:54 cogno left #perl6
16:54 moritz_ redirects to the public logs
16:55 diakopter unfold.. as in "dramatic events unfold before one's eyes [like a storybook opening, I guess]"
17:00 dakkar left #perl6
17:00 juerd is now known as Juerd
17:01 kjeldahl left #perl6
17:04 corjolio joined #perl6
17:04 corjolio left #perl6
17:05 * diakopter wants to reiterate to everyone my recommendation to take a look at perlito's commit activity the past few months (extremely high)
17:05 diakopter http://github.com/fglock/Perlito/commits/master
17:07 stkowski joined #perl6
17:09 [Coke] diakopter: I have replied to them about 4 times over the years and never got any reply whatsoever.
17:09 Juerd More than just the PSU of feather0 is broken
17:10 Juerd I expect feather1 to be down for a few days :(
17:10 kjeldahl joined #perl6
17:11 diakopter [Coke]: ah, oh.  I emailed Shawn Chiou directly: shawn.chiou@citi.sinica.edu.tw
17:11 Juerd Could someone notify some perl6 mailing list to spread the word, please?
17:11 [Coke] diakopter: YOU HAVE A REAL EMAIL ADDRESS!? ;)
17:11 [Coke] I only ever found the contact@openfoundry one.
17:11 plainhao joined #perl6
17:12 diakopter I don't remember what sleuthing I did to find that.
17:12 diakopter but I got this reply: "I'm sorry for the inconvenient. We will help you to remove from the list asap."
17:12 diakopter and no emails since then (July this year)
17:13 Juerd I tried one of feather's harddisks in another server
17:13 Juerd That server promptly crashed.
17:13 Juerd What the.
17:14 diakopter [Coke]: oh, yeah, there was his email address in the email on Sat, Jul 17, 2010
17:14 diakopter [OpenFoundry] 致歉信(Apology Letter)-並請協助確認您個人專案因整合流程疏失而流失的釋出版本資訊
17:14 diakopter there's a phone number there too :)
17:14 Juerd jnthn: A very bad day for hardware, indeed.
17:16 jnthn Juerd: :(
17:17 diakopter moritz_: feel free to run try.rakudo.org on the p6eval box; I don't think port 80 is used
17:17 diakopter moritz_: oh, hm, uh-oh
17:17 moritz_ I thought feather3 was unaffected?
17:17 * diakopter hopes Juerd can recover feather1
17:17 Juerd moritz_: Well, that other server that I mentioned...
17:18 diakopter b/c a lot of that botnix conf was not backed up anywhere, afaik
17:18 Juerd moritz_: It kind of hosted feather[23] and a few other virtuals.
17:18 Juerd diakopter: We have backups
17:18 diakopter oh; whew :)
17:18 diakopter time to put some of that in git, too
17:18 hirschnase joined #perl6
17:22 Robinux left #perl6
17:22 sorear diakopter: this isn't even the first time feather1 has had to be completely restored from backups
17:23 sorear (apparently you can't just move VMs; the last feather0 hardware migration required feather[1-3] to be deleted outright)
17:26 moritz_ apparently feather2 just died (or its network connection)
17:26 moritz_ last line I received from it was
17:26 moritz_ 19:21:38 up 3 days, 17:20,  1 user,  load average: 4.39, 2.83, 1.49
17:26 diakopter moritz_: Juerd was just mentioning that
17:26 diakopter (the disk from feather1 killed the host of the others
17:27 diakopter )
17:27 moritz_ oh
17:27 hugme left #perl6
17:29 Chillance joined #perl6
17:30 Juerd Apparently c25's sata took it so hard that two of its disk crashed
17:31 Juerd Hurrah for raid6
17:31 Juerd But it'll take a while to rebuild and it's not feasible to do it under load
17:31 * [Coke] is reminded to make sure his backup job is working at home.
17:32 Juerd Remember how I just now said that we have backups?
17:32 Juerd I kind of forgot to re-enable those after feather2/3 were migrated.
17:33 Juerd Most recent one is 2010-07-21
17:33 s1n left #perl6
17:33 sorear Killer disks, huh?
17:33 Juerd Apparently.
17:33 Juerd Never had that before
17:33 Juerd It's insane
17:33 Juerd This shouldn't happen. It shouldn't even be possible.
17:34 moritz_ .oO( NSA technology meant for Iran )
17:34 diakopter .. if something in the disk melted/shorted...
17:35 flussence .oO( quantum failure, like the LHC? )
17:35 patrickas joined #perl6
17:35 * patrickas was watching the feather drama unfold in the logs ...
17:36 Juerd diakopter: Nothing got that hot
17:36 Juerd At least, there's no visible evidence of that happening
17:37 diakopter well, something inside the disk can get hot in and of itself (not from the environment)
17:37 s1n joined #perl6
17:37 Juerd I see
17:37 diakopter (way overly hot, I mean)
17:37 x3nU is now known as konojacki
17:38 konojacki is now known as x3nU
17:38 Juerd Well, that might have happened. When I got there, the whole thing was rapidly blinking as if the power switch were connected to a stroboscope.
17:38 Juerd The power led and all the drive power leds
17:39 flussence whoa, that does not sound good
17:39 Juerd flussence: In case you missed it... smoke came out of the PSU
17:39 flussence yow.
17:39 Juerd It's very un-good.
17:40 tadzik masak: http://strangelyconsistent.org/blog/6-builti​ns-in-perl-6-that-you-never-knew-you-needed, .classify, isn't the first output sorted?
17:40 Ross left #perl6
17:41 cogno joined #perl6
17:41 masak tadzik: yes...?
17:41 tadzik at the first glance, I thought that's .classify capability :)
17:41 masak not sure what you're asking. it seems to come out sorted, by key.
17:41 cogno left #perl6
17:41 masak I don't think that's spec.
17:42 masak but yes, I also noticed that it tends to do that.
17:42 moritz_ rakudo: say <a b c d e f g h i j k>.classify: *.uc
17:42 p6eval rakudo 3221ca: OUTPUT«A  aB      bC      cD      dE      eF      fG      gH      hI      iJ      jK      k␤»
17:42 masak not sure how it'd behave with heterogenous types in the keys.
17:42 Juerd Has anyone seen my request regarding sending something to a mailinglist about feather?
17:42 * moritz_ didn't
17:43 Juerd Please inform the world that feather1 will be down for a while.
17:43 moritz_ I will
17:43 Juerd As either data recovery or restoring from backups will be necessary
17:43 Juerd The other server has priority, though. Sorry about that.
17:44 moritz_ that's fine
17:44 masonkramer left #perl6
17:44 masonkramer joined #perl6
17:44 moritz_ "erst die arbeit, dann das vergnügen" as we say in .de :-)
17:45 moritz_ Juerd: so feather{2,3} are expected back relatively quickly?
17:45 moritz_ (as in, hours and not days)
17:45 Juerd moritz_: ETA 6 hours
17:45 Juerd moritz_: They'll be back up when the raid6 resync is done
17:46 Juerd That takes 6 hours without load, a few weeks with load.
17:46 moritz_ ok, I'll write that
17:47 pmichaud joined #perl6
17:48 * pmichaud decides now is a good time to start migrating irssi to another host.
17:48 Juerd pmichaud: Yes, especially since feather1 won't be up for a while
17:48 Juerd pmichaud: It died, with actual smoke
17:49 moritz_ mail sent to p6c
17:49 pmichaud I read the backlog.... sounds.... exciting (not in a good way)
17:49 Juerd moritz_: Thanks
17:49 pmichaud I'm glad we went ahead and moved pugs onto github :-)
17:49 Juerd I'm glad that feather2/3 were already migrated
17:49 Juerd They're offline too now, but they will be back in hours
17:50 Juerd I think I'll try those feather disks in a USB enclosure
17:50 pmichaud Juerd: as always, your efforts and abilities are amazing.
17:50 Juerd Can't have them take down more boxes.
17:50 masak moritz_: does that mean "arbete först, nöje sedan"?
17:50 pmichaud Juerd++
17:50 moritz_ masak: I don't understand the "nöje sedan" part :-)
17:51 jnthn Ain't a Sedan a type of car? :-)
17:51 Juerd pmichaud: I was here too early to practice my fire extinguisher skills
17:51 moritz_ roughly "work goes first, joy/leisure comes later"
17:51 pmichaud anyway, it's good that we're getting some real smoke tests.
17:51 moritz_ lol
17:51 Juerd ha-ha.
17:51 jnthn heh
17:51 masak moritz_: if my guess is correct, then de:"vernügen" equals sv:"nöje"
17:52 * diakopter mimics dalek: http://github.com/diakopter/sprixel/commit​/136c86b36fa58ce403cd8443d31ac893e22f2f0b
17:55 Juerd [21752.688657]  sdc: sdc1 sdc2 sdc3 < sdc5 sdc6 >
17:55 Juerd One of the disks appears to have survived the ordeal!
17:55 moritz_ \o/
17:55 Juerd If anyone needs certain data sooner rather than later, let me know
17:56 masak Juerd++ # neprikantata heroo
17:56 diakopter well, the info (except the large log files) under /home/drain/ would be nice
17:56 diakopter so we can get dalek going again
17:57 pyrimidine left #perl6
17:57 lichtkind joined #perl6
17:57 Juerd masak: Dankon *rugxigxas*
17:57 lichtkind o/
17:57 phenny lichtkind: 11:39Z <[Coke]> tell lichtkind - do you have an RSS feed for that that respects the Perl 6 tag?
17:57 masak :)
17:58 Entonian_ joined #perl6
17:58 Juerd [21910.562136] VFS: Can't find ext3 filesystem on dev sdc6.
17:58 Juerd That's not good though
17:58 Juerd 6 is the data partition; rootfs on 5 mounted fine
17:59 lichtkind [Coke]: its, http://blogs.perl.org/users/lichtkind/perl-6/, thanks
17:59 moritz_ lichtkind: that's not an RSS URL
18:00 Juerd Oh, it's lvm
18:00 Entonian left #perl6
18:01 breinbaas cd postgresq
18:02 moritz_ no such directory
18:02 [Coke] lichtkind: I need the /RSS/, not the user-visible HTTP.
18:02 breinbaas hm, EWRONGWINDOW (sorry)
18:02 lichtkind [Coke]: yes im searching
18:02 moritz_ no problem
18:02 [Coke] er, HTML. whoops.
18:03 Juerd I have feather1's data mounted now. Any other requests?
18:05 mfollett left #perl6
18:05 Entonian_ left #perl6
18:05 Entonian joined #perl6
18:05 lichtkind [Coke]: http://blogs.perl.org/users/lichtkind/atom.xml ß
18:06 moritz_ that's not tag specific
18:06 lichtkind moritz_: I I JUST SAW
18:06 lichtkind shift lock
18:06 masak apparently :)
18:07 masak NOM &
18:07 masak left #perl6
18:07 tadzik Juerd: how much memory does feather have?
18:07 rokoteko Juerd: Well duh. Copy it somewhere safe, like another local hard disk?
18:07 Exodist left #perl6
18:07 Juerd tadzik: Currently, none.
18:07 Juerd rokoteko: Doing that already :)
18:08 tadzik well, I meant before the fire
18:08 rokoteko Just checking. :)
18:08 * moritz_ just had this vision of himself shouting at his wife, and then saying in normal tone "sorry, forgot caps lock" :-)
18:08 Juerd rokoteko: But if people need data quick, I can build tgz's :)
18:08 exodist joined #perl6
18:08 Juerd tadzik: 2.5 GB
18:08 Juerd There wasn't any fire. Just smoke.
18:10 tadzik Juerd: how much of that memory could have been free, on average?
18:10 tadzik I filed a Parrot ticket about Parrot not building there, and I'm being asked such questions :)
18:11 diakopter parrot builds on the p6eval box, and it has 1GB ram
18:11 Juerd tadzik: http://juerd.nl/i/d58dc3794​529cdd4337f43e2fd044204.png
18:11 mikehh joined #perl6
18:11 Juerd In case you're wondering what happened in week 35: svn was shut down
18:12 lichtkind [Coke]: looks like i have to do open a new blog i just try it inc more and then maybe post the new URL, thanks for doing that task
18:14 [Coke] lichtkind: might be worth asking dave cross if we can get tag-based feeds.
18:14 lichtkind [Coke]: yes thats what im currently about to do :)=
18:16 [Coke] ;)
18:16 [Coke] diakopter: that .png seems to kill my IE.
18:17 diakopter there was a time when IE couldn't handle pngs with alpha channels, but that was like 8 years ago.. it doesn't kill my IE8
18:18 [Coke] ... I blame my poor 3G dev machine which is again memory starved. nevermind.
18:18 diakopter heh
18:19 lichtkind [Coke]: done ... I'll be back  :)
18:20 smash left #perl6
18:20 * diakopter scrutinizes CursorBase.pmc
18:21 tadzik http://wklej.org/id/395620/ -- just from the top of my head, what if we want to use Zip with 'eeks' now, we're screwed?
18:22 ash_ the server that is hosting try.rakudo.org is that one of the ones that is down?
18:23 ash_ i don't know which feather its on
18:23 _twitch left #perl6
18:23 colomon rakudo: our sub infix:<Zeeks>(@a, @b) { "{@a.perl} and {@b.perl}" }; say Zeeks(1..3, 4..6)
18:23 p6eval rakudo 3221ca: OUTPUT«Could not find sub &Zeeks␤  in main program body at line 22:/tmp/PvygxwFsAy␤»
18:23 flussence tadzik: that sounds like more of a case of "don't do that"
18:23 perlpilot joined #perl6
18:23 jnthn tadzik: use Z[eeks]
18:23 tadzik flussence: like "Don't name your infixes with /^Z/"? :)
18:23 tadzik jnthn: oh, nice
18:24 Juerd ash_: It's on feather3. All feather servers are currently down.
18:24 tadzik but, it doesn't work I'm afraid
18:24 tadzik oh, my bad
18:24 colomon rakudo: our sub infix:<Zeeks>(@a, @b) { "{@a.perl} and {@b.perl}" }; say 1..3 Zeeks 4..6
18:24 p6eval rakudo 3221ca: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Int instead␤  in 'infix:<Zeeks>' at line 22:/tmp/5Z6_YHZFD2␤  in main program body at line 22:/tmp/5Z6_YHZFD2␤»
18:25 colomon rakudo: our sub infix:<Zeeks>(@a, @b) { "{@a.perl} and {@b.perl}" }; say (1..3) Zeeks (4..6)
18:25 perlpilot what happened to feather?
18:25 p6eval rakudo 3221ca: OUTPUT«1..3 and 4..6␤»
18:25 ash_ Juerd: thanks
18:25 jnthn perlpilot: Real life smoke testing.
18:25 jnthn ;-)
18:25 Juerd 1 not ok
18:25 colomon rakudo: our sub infix:<Zeeks>(@a, @b) { "{@a.perl} and {@b.perl}" }; say (1..3) Zeeks (4..6); our sub infix:<eeks>($a, $b) { "$a and $b" }; say (1..3) Z[eeks] (4..6)
18:25 p6eval rakudo 3221ca: OUTPUT«1..3 and 4..6␤1 and 42 and 53 and 6␤»
18:25 jnthn perlpilot: Epic hardware fail.
18:25 Juerd Or the other way around? not ok 1?
18:26 jnthn not ok 1 # is tap
18:26 Juerd I keep forgetting the order
18:26 moritz_ not ok 1 - test description
18:26 Juerd -, not #?
18:26 jnthn Thankfully, we have test harnesses that remember :-)
18:26 jnthn Juerd: my # was meta :-)
18:27 moritz_ # is for TODO and SKIP comments
18:27 Juerd jnthn: Yea, well, when I ported p5 tests to p6 for pugs, I noticed that most didn't use any Test module.
18:28 Juerd And that means you do have to remember the order :D
18:28 jnthn :-)
18:29 perlpilot is now known as PerlJam
18:29 Juerd ASOehtsn,t. psnrchoeurlchuoeuhtnsnaoteuh235n
18:29 Juerd F*
18:29 flussence while we're on the subject, does anyone know why my boxes seem to fail 9 tests here, but everyone else seems to pass? http://smolder.parrot.org/app/p​rojects/test_file_history/5/838
18:29 Juerd The disk I'm backing up the feather data to, just had a head crash.
18:29 flussence oh crap.
18:29 Juerd Backup will have to wait until stores open. I'm out of spare disks.
18:30 jnthn wtf...I hope that's just unlucky coincidence. :/
18:30 timbunce left #perl6
18:30 pmichaud left #perl6
18:30 PerlJam Juerd++  hardware--
18:30 Juerd jnthn: Can't be something else
18:30 Juerd jnthn: It's a used USB drive
18:30 Juerd It wasn't even connected until I used it for that backup
18:31 jnthn Meh. *very* bad day for hardware.
18:31 jnthn Juerd++ # persistence :-)
18:32 Juerd Hm, maybe...
18:32 Juerd Maybe they have hard drives at Makro
18:32 Juerd A big store that's open for another 90 minutes
18:32 Juerd afk
18:33 * PerlJam wonders if there's any grant money for a feather fail-over
18:33 PerlJam of course, someone would have to provide bandwidth too.
18:33 tadzik Error validating server certificate for 'https://svn.parrot.org:443': -- anyone else gets this?
18:33 tadzik on perl Configure.pl -gen-parrot
18:34 flussence never seen that, and it's valid in my browser too...
18:34 PerlJam tadzik: not I
18:34 tadzik hrm
18:35 tadzik same here
18:35 tadzik ah, whatever
18:35 stkowski left #perl6
18:36 timbunce joined #perl6
18:38 stkowski joined #perl6
18:41 nymacro joined #perl6
18:43 Entonian left #perl6
18:46 jferrero left #perl6
18:55 hirschnase left #perl6
19:07 stkowski left #perl6
19:15 * Juerd can haz harddisk
19:16 sjohnson heh
19:16 sjohnson rough day for hardware here too.  dhcp server at work won't give my boss's laptop an IP
19:16 Juerd Sounds like software
19:17 sjohnson my sound wouldn't work upon starting my computer up today
19:17 sjohnson which has never happened.
19:17 sjohnson for a while i thought a surge hit the building and destroyed some electreonics
19:17 sjohnson but the sound works upon restarting my computer
19:19 Juerd [==============>......]  recovery = 71.1% (496986792/698241024) finish=41.5min speed=80729K/sec
19:19 Juerd That's the server for feather[23]
19:19 Juerd When it's done, it needs another sync
19:20 Ross joined #perl6
19:20 Ross left #perl6
19:20 Ross joined #perl6
19:32 wamba joined #perl6
19:33 plainhao left #perl6
19:34 jferrero joined #perl6
19:38 envi left #perl6
19:40 icwiener left #perl6
19:41 timbunce left #perl6
19:44 lichtkind_ joined #perl6
19:45 lichtkind left #perl6
19:46 lichtkind_ is now known as lichtkind
19:47 timbunce joined #perl6
19:53 mfollett joined #perl6
19:57 patrickas left #perl6
19:58 Alias_ joined #perl6
19:58 Italian_Plumber left #perl6
19:59 Guest23195 left #perl6
20:01 Alias left #perl6
20:02 PerlJam left #perl6
20:04 Juerd The backup, from USB to USB goes at approx. 7 MB/s
20:04 Juerd That's pretty speedy. It's faster than what I could do directly from feather, while it was running
20:05 Juerd Good to know. Next time when I want to migrate, I should just take out one of the RAID members, put it in a USB thing and rsync that first
20:05 Juerd Then shut everything down and sync the remainder
20:06 Juerd By the way, I can really recommend the Sharkoon Quickport, or clones.
20:07 frettled Juerd: oh, so it's not just I who struggle with faulty hardware and recovery :(
20:08 ash_ e-sata is faster than USB if your just doing straight up file transfers (but you need the hardware support if you can find a harddrive case with an e-sata port)
20:08 Juerd frettled: Feather's PSU started smoking, so, no.
20:08 * frettled had the rather unpleasant experience of discovering that backups had failed _silently_ for a server, and the time of discovery was after the most importan disk drive gave up.
20:08 frettled Juerd: ah, the magic smoke that
20:08 Juerd ash_: Definitely, but I don't have esata on my new laptop. For my old laptop I had a cardbus card, but the new one only takes those express cards and I never got around to getting one of those.
20:08 ash_ i now have 2 Time Machine backups of my computer that run every hour, i am tired of loosing stuff :-(
20:08 frettled the magic smoke that's needed to keep the computer running
20:09 * Juerd knows about the magic smoke and has probably breathed too much of it.
20:09 frettled Juerd: don't let it go, man.
20:09 Juerd Well
20:09 Juerd At first I thought: we should keep the magic smoke IN the server room
20:10 Juerd But I didn't because I didn't like the smell.
20:10 * ash_ hands Juerd a big fan to blow the smoke out a window
20:10 Juerd There wasn't that much smoke. When I cut the power it was gone in a minute
20:11 Juerd But the smell stayed
20:11 * Juerd is so relieved that one of the disks from feather has survived.
20:11 * Juerd knocks on wood
20:11 Juerd Backup isn't done yet.
20:12 Juerd Meanwhile, c25's raid6 is redundant again. Now to get it back to N+2
20:13 frettled :)
20:13 Ross left #perl6
20:13 frettled RAID6 <3
20:13 Juerd Certainly
20:13 Juerd feather was N+2 too, by the way, with raid1
20:13 hugme joined #perl6
20:14 frettled Software-RAID?
20:14 Juerd feather2 is up
20:14 Juerd frettled: Always.
20:14 patspam left #perl6
20:14 ash_ rakudo: my $a = Mu.new(a => 3);
20:14 p6eval rakudo 927f41:  ( no output )
20:15 frettled Juerd: Have you found a way of configuring an N+3 RAID?
20:15 Juerd frettled: Except for really high-end cases, software raid is more reliable and performs better. And it's fully controller independent so if the controller breaks you pick any other one, or even USB :)
20:15 Juerd frettled: N+x is easy with RAID 1 :)
20:15 frettled Juerd: I know the advantages and disadvantages all too well, having enjoyed what happens when a software RAID blows because of, well, a faulty PSU.  :(
20:16 Juerd I've set up an N+3 raid1 for a SSL signing server that can't have backups.
20:16 frettled Well, sure, for N=1 and N=3, N+3 is easy.
20:16 frettled But not for, say, N=8.
20:16 Juerd Uhhuh :)
20:16 Juerd You hadn't specified that yet :)
20:17 Juerd But I have no idea
20:17 * frettled has an 11-disk thingybob that would like N=7 + P=3 + S=1
20:17 frettled But I
20:17 frettled arghle
20:17 Juerd It's still scary, isn't it?
20:17 sftp left #perl6
20:17 frettled But I'm making do with N=7 + P=2 + S=2
20:17 Juerd How did you do the P=3? :)
20:17 frettled I don
20:17 Juerd I see
20:17 ash_ Juerd: so.... has anything been lost from any of the feathers? or do you know yet? (might of already been covered, just wondering) I don't remember if i backed up the apache conf for try.rakudo.org
20:17 sftp joined #perl6
20:18 frettled arghle!  DArnit!  New keyboard, with the enter key sticking out where the ' is supposed to be.
20:18 Juerd ash_: So far, everything can be read from the old feather1 filesystem
20:18 Juerd ash_: feather[23] are probably fine. feather2 is even already back up.
20:18 moritz_ hugme: hug Juerd
20:18 * hugme hugs Juerd
20:19 ash_ ah, cool, i'll be sure to add that conf to the try.rakudo repo so we have it on hand
20:19 frettled Juerd: How much data is there for the Perl 6-related stuff, BTW?
20:20 Juerd frettled: Not that much, but it consists of enormous amounts of very small files.
20:20 Juerd The data rate increased when I minimized the terminal that runs rsync -av
20:20 Juerd Terminal couldn't keep up
20:20 frettled heh
20:20 frettled Juerd: since the new box I
20:20 Juerd (xterm)
20:20 Juerd feather1-data is 38 GB
20:21 frettled I'm setting up is running proper virtualization (Xen), I thought I could consider offering mirror space.
20:21 Juerd I think rsync attacks its source alphabetically. It's now doing diakopter's homedir.
20:21 Juerd frettled: Oh, but we have backup space available
20:21 diakopter O_O
20:21 Juerd frettled: Realtime mirroring is HARD.
20:22 Juerd diakopter: ?
20:22 frettled Juerd: I wasn
20:22 diakopter kidding..
20:22 frettled 't thinking about realtime :)=
20:22 Juerd diakopter: ?
20:23 masak joined #perl6
20:23 masak ahoj, #perl6!
20:23 flussence .oO( why is the graphics performance of a terminal window still a bottleneck in this day and age? )
20:23 frettled flussence: because of quantum. :)
20:23 diakopter many chains of buffers make for ..
20:24 frettled single-threaded interdependencies!
20:24 flussence actually, IIRC, xterm has a lazy-redraw option somewhere...
20:25 * [particle] [waves]
20:25 pythonian4000afk is now known as pythonian4000
20:25 frettled flussence: that kind of bottleneck is, BTW, why my Perl programs with progress reports often include a counter that I check for % 100 or % 1000 on :)
20:25 frettled the lazy-redraw option is probably VT100 or something equally ancient
20:26 Juerd flussence: Truetype fonts, perhaps :)
20:26 jnthn ahoj, masak!
20:28 Ross joined #perl6
20:28 Ross left #perl6
20:28 Ross joined #perl6
20:28 flussence (I wonder if any *terms do asynchronous/lazy screen updating already...)
20:28 frettled flussence: most likely they do
20:28 flussence oh wait, that's the whole point of libxcb...
20:29 flussence guess they get it for free then :)
20:30 frettled :)
20:33 masak I don't understand what Darren Duncan is saying on p6l. :(
20:35 diakopter I think I do
20:35 [particle] iiuc it's basically, "Common Programming Terms Considered Harmful to Mathematicians"
20:36 [particle] oh, didn't see the latest.
20:36 masak ok, I think I understand it now.
20:37 diakopter he's sorta proposing something like .NET's ISerializable   http://msdn.microsoft.com/en-us/library/syst​em.runtime.serialization.iserializable.aspx   where classes can control their own serialization
20:37 masak it seems to me people want to use MONKEY_TYPING for turning on all kinds of bad behavior nowadays, only one of which is actually monkey-typing/patching.
20:37 diakopter .... effectively.
20:38 [particle] yes, it seems MONKEY_TYPING is getting overloaded
20:38 [particle] or, the proposals are to overload it
20:38 jnthn masak: I'm not at all keen on your suggestion that .^add_method should care about it, fwiw.
20:39 jnthn That's the *normal* way classes are actually made.
20:39 masak jnthn: nodnod
20:39 jnthn Not just a monkey patching mechanism.
20:39 jnthn I'm not being obtuse, I'm actually genuinely worried we'll get subtle bugs.
20:39 diakopter jnthn: do you (at least somewhat) agree with my claim that ISerializable is the logical conclusion of dduncan's wish?
20:39 masak jnthn: I agree with you.
20:39 jnthn diakopter: I probably need to read his mails. :-)
20:39 diakopter oh :)
20:53 masak I agree with moritz_-on-p6l that .perl is a useful debugging tool.
20:54 masak let's remember that its purpose is to be a Data::Dumper replacement, and Data::Dumper (or rather the blessed-hashrefs Perl 5 OO pseudostandard) doesn't care about encapsulation one bit.
20:55 jnthn Ah, a thread I feel a need to weigh in on a little. :-)
20:55 [particle] Data::Dumper doesn't print sub bodies
20:55 jnthn [particle]: Nor does .perl in Rakudo :P
20:55 [particle] that's because you develop too slowly.
20:55 * [particle] adds beer to jnthn++'s queue
20:56 jnthn :P
20:56 jnthn yay beer \o/
20:57 masak printing sub bodies is not so bad from an encapsultion point of view. it might be from a security point of view, but then you shouldn't have .perl'd it in the first place, should you?
20:57 dwilliamii left #perl6
20:57 ash_ what was the original intent of .perl?
20:58 [particle] right, so enabling .perl on value types by default makes sense from the security perspective.
20:58 [particle] ash_: to be a built-in Data::Dumper replacement
20:58 moritz_ what's the security concern of .perl?
20:58 [particle] it outputs something you can eval
20:58 moritz_ so does join() :-)
20:58 jnthn You put your database password in the source and somebody just figured out how to .perl it ;-)
20:59 masak moritz_++
20:59 [particle] moritz_: that last line from me was to ash, not to you
20:59 tadzik :D
20:59 masak jnthn: not p6's fault.
20:59 ash_ jnthn: if they have that kind of access, they could do it in almost any language
20:59 jnthn masak: I wasn't suggesting it was at all. :-)
20:59 moritz_ [particle]: ah :-)
21:01 masak jnthn: I'd say it's a security concern only in the "don't trust user input" category, which is a very wide, very general category.
21:01 ash_ so... is .perl for reconstructing the current state of the object or the original state of the object?
21:01 masak ash_: current.
21:01 masak ash_: think of it as an anti-eval; it gives you some Perl 6 code that can reconstruct the object.
21:02 cybergirl joined #perl6
21:02 masak that's why it's called .perl
21:03 jnthn diakopter: Hmm, I just found the post you were talking about.
21:03 jnthn I've tended to see .perl's *primary* usefulness as a debugging tool rather than a serialization format.
21:03 meraxes left #perl6
21:04 moritz_ right; you wan to avoid string eval for deserialization
21:04 moritz_ *want
21:04 meraxes joined #perl6
21:04 cybergirl left #perl6
21:04 masak jnthn: agree. but it can be exploited for its encapsulation breaking.
21:04 jnthn It's a crappy serialization method.
21:04 [particle] yes, so should the default debugging tool for p6 break encapsulation *by default*?
21:05 jnthn [particle]: Er, huh.
21:05 jnthn [particle]: I *want* my debugging tools to tell me what's really in there.
21:05 jnthn That's why I debug stuff. :-)
21:05 moritz_ right :-)
21:05 [particle] then i think it's poorly huffmanized
21:05 [particle] .perl is so pretty and easy to use
21:05 masak that's why we like it!
21:06 moritz_ exactly what you need for debugging
21:06 jnthn I'm glad you write such good code that you rarely need to debug it.
21:06 * moritz_ loves hexdump. hexdump never lied to me
21:06 ash_ rakudo: class A { has $.a }; role B { has $.c }; my $a = A.new(:a(1)); $a does B; say $a.perl # .perl is kinda limited when you do complex things
21:06 p6eval rakudo 927f41: OUTPUT«.new(c => Any, a => 1)␤»
21:06 masak we're in a bind; we want debugging and encapsulation, but they are mutually exclusive.
21:06 jnthn masak: I'd hate to imagine people would use .perl to get at private attributes then parse the string to pull them out.
21:06 masak ash_: yes, but those are bugs.
21:06 jnthn I mean, do people really suck that much?
21:06 jnthn :-)
21:07 [particle] .perl is to perl 6 what perl5 oo is to perl 5
21:07 ash_ masak: how would that look if there were no bugs? how can it say that B has ben added via .does and etc.
21:07 masak jnthn: it's not mainly about the decadence of those people, but about allowing it in the first place.
21:07 [particle] A SHOTGUN
21:07 masak jnthn: *I've* done it, and I'm not terribly decadent.
21:07 jnthn masak: Oops. :-)
21:08 jnthn masak: Were you working around a Rakudo shortcoming? :-)
21:08 masak ash_: A.new(...) but B
21:08 masak jnthn: not really. just writing a serialization method.
21:08 masak this is all coming back to me right now, by the way.
21:08 Ross left #perl6
21:08 moritz_ jnthn: that's why we now have .get_value in Attribute - to avoid having to parse .perl output :-)
21:08 jnthn Well, that's my problem with the "we must not allow a way to do this properly".
21:09 ash_ masak: what if it was anon? or didn't have a name? my point is more that .perl is very limited as a serialization tool
21:09 thepler left #perl6
21:09 jnthn Because if we don't, people are going to resort to hacks like that.
21:09 masak ash_: (class { ... }).new(...)
21:09 moritz_ ash_: it is limited right now; but not necessarily conceptually
21:09 tadzik let's not document it
21:09 Ross joined #perl6
21:09 Ross left #perl6
21:09 Ross joined #perl6
21:09 tadzik sshh, no one will ever notice
21:10 tadzik or give it a fancy name, like allow_memoryleaks
21:10 kjeldahl left #perl6
21:10 frettled .amole
21:10 moritz_ jnthn: re set/bind_attr, I replied with a very similar email (but which hasn't hit p6l yet)
21:10 [particle] or call it .to_python and nobody will use it
21:10 tadzik :D
21:10 frettled [particle]++
21:10 tadzik better! .to_php
21:11 tadzik that will make all the people ashamed of themselves
21:11 masak jnthn: here: http://github.com/masak/druid/bl​ob/master/lib/Druid/Game.pm#L50
21:11 * moritz_ prefers as_mumble to to_mumble
21:11 moritz_ to_ sounds like in-place conversion
21:11 ash_ does .perl have a way of serializing blocks into something? or do those turn into ...
21:11 frettled masak: deliciously evil
21:12 masak ごめんごめん
21:12 [particle] ash_: conceptually there is a way. rakudo doesn't implement it yet, but beer could help that
21:12 jnthn masak: ew. :P
21:12 moritz_ ash_: in principle it could store a referenced to the original source text
21:12 moritz_ ash_: see Data::Dumper::Deparse for p5
21:12 moritz_ or something
21:12 tadzik bah. That will require keeping all the source code with the compiled program
21:12 moritz_ I think it's in main Data::Dumper
21:13 moritz_ when you set the Deparse = 1 option or so
21:13 masak jnthn: yes, ew. now tell me how to really do it.
21:13 masak jnthn: I think I would have introspected the attrs as well, had that been possible at the time.
21:13 frettled masak: は何もない
21:13 masak :)
21:14 masak er, I mean ^^
21:14 jnthn masak: Why could the object not know how to serialize itself appropriately?
21:14 masak I don't mind objects knowing (and being able to get/set) their own private attrs.
21:15 masak jnthn: but I can't think of a way of limiting such knowledge and such powers to just that object (or that class).
21:15 masak .perl is a good example of how it's not limited.
21:15 jnthn .oO( "went with the aliens on this one" is such a masak++ commit message )
21:16 * masak haven't really been the same since that night...
21:16 masak *hasn't
21:16 Chillance left #perl6
21:17 masak "PackFile header failed during unpack"
21:17 masak I just want to emphasize how much that error message, meaning "wrong Parrot for this Rakudo", sucks.
21:18 frettled Looks like a clear case for use of .subst ;)
21:18 jnthn masak: That probably needs to be a Parrot chnage, since it's before Rakudo gets chance to take control and have its way with things.
21:18 masak frettled: .subst is for replacing *parts* of a string :)
21:19 jnthn masak: But I agree it's not clear at all to 99% of people.
21:19 masak I'll see about submitting a parrotbug.
21:19 wamba left #perl6
21:19 jnthn masak++
21:19 frettled jnthn: I think the only reason we're not in five nines territory, is that so many people are following the discussions on #perl
21:21 masak zzz &
21:21 masak left #perl6
21:24 Ross left #perl6
21:28 Juerd Backup complete
21:29 * Juerd now has a full copy of the sole survivor disk
21:29 Juerd No read errors :)
21:29 frettled Time to get a second copy? :)
21:35 Juerd I prefer going to bed
21:35 Juerd I hope to think of a way to bring feather back tomorrow.
21:36 Juerd But my day's full of appointments with clients so don't count on a speedy recovery.
21:39 sjohnson bed!
21:43 Entonian joined #perl6
21:46 Sarten-X left #perl6
21:47 ash_ in ruby, .inspect breaks encapsulation to print the state of instance variables, but it doesn't print it in an eval-able form
21:47 ash_ .inspect is generally for debugging, kinda like how .perl is used for debugging
21:48 jnthn ash_: Maybe we need to give the two a divorce in Perl 6.
21:49 ash_ serialization and debugging an object do seem like 2 different tasks, even if there is overlap in the data they show
21:50 sjn left #perl6
21:50 Juerd Isn't encapsulation broken by design, in Perl, anyway?
21:51 Juerd In the sense that if you really want to, it's just as accessible as any other variable
21:51 ash_ rakudo: class A { has $!b }; my $a = method { $!b = 3; }; my $b = A.new; $b.$a(); say $b.perl # encapsulation? where? :P
21:51 p6eval rakudo 927f41: OUTPUT«A.new(b => 3)␤»
21:52 timbunce left #perl6
21:52 tadzik what :O
21:53 sjn joined #perl6
21:53 ash_ it evaluated $a in the context of $b
21:53 juerd_ joined #perl6
21:53 Juerd left #perl6
21:53 juerd_ is now known as Juerd
21:54 Sarten-X joined #perl6
21:55 jnthn ash_: That behaviour is...twisted.
21:55 jnthn ash_: Unless the spec explicitly allows it, it may be on the chopping block.
21:55 ruoso left #perl6
21:56 ash_ ya, i am not sure if that is supposed to work, but it currently does :P
21:56 ash_ that could be useful though, its kinda like ruby's instance_eval
22:00 ash_ i think pmichaud said that should give an error saying it can't find $!b when it made the method
22:00 ash_ std: class A { has $!b }; my $a = method { $!b = 3; }; my $b = A.new; $b.$a(); say $b.perl
22:00 p6eval std 1d6fdf3: OUTPUT«ok 00:01 118m␤»
22:01 ash_ i guess you could feed it into viv to see if that output makes sense
22:04 Grimnir_ hmm... I'm looking a bit on roles. I have never really used many object oriented features, although I have used generics a bit in Java in a project, but that was with a very good java programmer. It seems as it's not that difficult. is there any examples any where?
22:04 jnthn It's more a semantic check than a syntactic one.
22:05 diakopter jnthn: 'mono' was named for the Spanish for 'monkey' (deliberately, of course) :)
22:06 jnthn diakopter: Aye, I knew that.
22:06 jnthn lol...MONKEY_SEE \o/
22:06 mfollett left #perl6
22:06 jnthn TheDamian++
22:12 ash_ jnthn, which part of that i did shouldn't work?
22:12 ash_ the $!b?
22:12 ash_ just wondering if there is any difference if i did .^add_method
22:15 jnthn ash_: I think it may want to try and resolve $!b at compile time
22:16 jnthn ash_: Maybe we have to just let anonymous methods lead to it being a lookup deferred until runtime though.
22:16 jnthn Maybe.
22:16 jnthn Otherwise life is hard for those constructing classes "by hand".
22:18 mavrc left #perl6
22:19 mavrc joined #perl6
22:20 ash_ does that change anything for prototype-ish inheritence?
22:22 bluescreen joined #perl6
22:26 jnthn I don't see a relation...but maybe I'm just too tired. :-)
22:28 ash_ just thinking, i am not exactly sure how to do prototype inheritence in perl6 yet, maybe i'll experiment with that some
22:29 jnthn Write PrototypeHOW ;-)
22:30 stkowski joined #perl6
22:31 ash_ hehe maybe, if i make any good progress, that would be nice
22:33 jferrero left #perl6
22:47 jferrero joined #perl6
22:49 Entonian left #perl6
22:53 * jnthn pushes knowhow into the nqp-rx/nom bootstrap.
22:53 jnthn Hopefully I has hacking time/energy at the weekend to give NQPClassHOW a good shove forward.
22:53 * jnthn gets rest
22:55 ash_ good night
23:01 lichtkind good night
23:01 lichtkind left #perl6
23:08 jest joined #perl6
23:09 jest hi
23:10 jest I'm working on implementing correct index entries in Pod::PseudoPod::LaTeX and noticed that "Using Perl 6" uses index terms inconsistently with Pod::PseudoPod spec.
23:12 jest In P::PP it is written that "Separate primary, secondary, and tertiary terms with a comma", like X<operators,binary>, where in the book a semicolon is used, like X<operators; binary>
23:12 Mowah left #perl6
23:13 jest as there is no support for hierarchical indexes (yet), can I change all semicolons to commas in the book safely?
23:16 florz left #perl6
23:19 ash_ is perl 6 still planning on $ = eager and @ = lazy with lists?
23:24 jasonmay so I see stuff in ./src/core/ for rakudo that I want to use, but they don't show up in INC out of the box. was there a step I missed in installing?
23:25 flussence everything in src/core is built in afaik
23:30 ash_ anything in rakudo is built in by default, no use's required, for now anyway
23:30 ash_ rakudo: say IO::Socket::INET.so
23:30 p6eval rakudo 8827d0: OUTPUT«0␤»
23:30 ash_ didn't have to import it to use it, its already there
23:33 Italian_Plumber joined #perl6
23:34 jasonmay oh sweet
23:34 jasonmay also IO::Socket::INET is what I was desiring, haha
23:34 masonkramer please don't make us use a pragma before we can use .perl
23:36 masonkramer if people are dumb enough to use eval + .perl to break encapsulation, the language won't be able to save them
23:37 masonkramer for other introspection, sure
23:39 tadzik left #perl6
23:41 cdarroch left #perl6
23:48 ruoso joined #perl6
23:58 tylercurtis joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs