»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:00 colomon left
dalek kudo: d4b72da | KodiB++ | src/builtins/Signature.pir:
[builtins/Signature] Use ObjectRef instead of Perl6Scalar.
00:09
kudo: fb57ef1 | KodiB++ | src/Perl6/Grammar.pm:
[Grammar] Permit ">>" after infix:<->.

This fixes RT #77800.
kudo: 3221cad | KodiB++ | src/ (6 files):
Merge branch 'perl6scalar-cleanup'
ast: 71fdf1d | KodiB++ | S03-metaops/hyper.t:
[hyper.t] Added tests for RT #77800.
00:10
00:11 justatheory left 00:13 jferrero left 00:14 lue joined
lue hello o/ 00:15
diakopter ahoi
00:17 Kodi left 00:19 Chillance left
sjohnson hi 00:24
00:35 risou joined 00:39 cdarroch left 00:47 Entonian left 00:49 QinGW joined 00:53 QinGW left 00:58 QinGW joined 01:04 mfollett joined 01:07 ggoebel left, risou left, colomon joined, risou joined 01:08 ggoebel joined 01:11 [Coke] joined 01:12 risou left, Banu joined 01:25 Banu left, Italian_Plumber joined 01:35 jaldhar joined 01:39 molaf_ joined 01:42 molaf left 01:52 meppl joined
colomon rakudo: my $a = Real.new; say $a.WHAT 01:53
p6eval rakudo 3221ca: OUTPUT«Real()␤»
01:58 justatheory joined 02:01 am0c^ joined 02:03 leprevost joined 02:07 leprevost left 02:09 leprevost joined 02:18 Thorben joined
Thorben Newbie question. Better to learn Perl 5 and then 6, or to learn 6 first and disreguard 5? 02:21
I guess, how big are the changes? C# to C++ big?
\xF0 learn either 02:22
the changes are substantial
Thorben Been working off the free ebook from perl.org 02:23
Based on a perl 5 build.
\xF0 there's lots of good teaching material on perl 5 out there 02:24
02:24 Italian_Plumber left
Thorben How difficult is it to make the transition from 5 to 6? 02:24
florz that question is impossible to answer 02:25
and mostly irrelevant
what's relevant as far as learning is concerned are concepts, not syntax 02:26
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
02:27 leprevost left
Thorben 5 seems more appropriate at the moment. Thanks. 02:31
02:42 satyavvd joined 02:56 leprevost joined 03:00 QinGW left 03:07 QinGW joined 03:11 meppel joined 03:12 meppl left, ash_ joined
ash_ rakudo: say do { given 1 { 'foo' when 1; default { 'fail' }; }; }; 03:13
p6eval rakudo 3221ca: OUTPUT«fail␤»
ash_ say do { given 1 { when 1 { 'foo' }; default { 'fail' }; }; };
rakudo: say do { given 1 { when 1 { 'foo' }; default { 'fail' }; }; };
p6eval rakudo 3221ca: OUTPUT«foo␤»
03:14 alester joined
ash_ can you not use when like: <statement> when <condition>; ? 03:14
std: say do { given 1 { 'foo' when 1; default { 'fail' }; }; }; 03:16
p6eval std 1d6fdf3: OUTPUT«ok 00:01 117m␤»
03:18 meppel left, meppl joined
s_mosher rakudo: say do { given 1 { 'foo'.say when 1; default { 'fail' }; }; }; 03:18
p6eval rakudo 3221ca: OUTPUT«foo␤fail␤» 03:19
s_mosher it just fails to break
ash_ hmm weird
perl5.14 is planning on having a slightly different functionality of given/when then it seems, or i might be interpreting this wrong 03:20
03:22 mfollett left
TimToady I think Perl 5 is doing it wrong 03:22
03:25 mfollett joined
TimToady when semantics are useful in places where you don't want break, and modifier when is appropriate for that task 03:26
druther force breakables to be in an official comb structure, not hidden down in statement modifiers
makes it real nice to write list comprehensions with a when inside a for modifier too 03:27
03:29 Thorben left
ash_ hmm, ya, i wasn't thinking like that, that would be annoying in perl5 if when implied last 03:30
since a for loop won't work the same
TimToady anyway, this is specced; see S04:952 03:31
ash_ kk
PerlJam ash_: where are you reading about 5.14's given/when?
ash_ transfixedbutnotdead.com/2010/08/30...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...
ash_ oh, sorry, i read that totally wrong 03:33
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
thats how: $a = do { given (1) { 'one' when 1; } }; would set $a = 'one' 03:35
rakudo: my $a = do { given (1) { 'one' when 1; } }; 03:36
p6eval rakudo 3221ca: ( no output )
ash_ thats a very ruby-esk way of doing things...
TimToady my impression is that p5's switch is fairly useless from the standpoint of returning values, but I could be misinformed 03:37
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:38
TimToady you can do that in p6 too, but sometimes you need a 'do' to parse the following as a statement 03:39
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' } }
p6eval rakudo 3221ca: OUTPUT«b␤»
TimToady yes, certainly, that's the final value of the block
ash_ ah, so that might be a rakudo bug 03:41
rakudo: my $a = do { given (1) { 'one' when 1; } }; say $a
p6eval rakudo 3221ca: OUTPUT«one␤»
ash_ oh, nm
TimToady what bug?
ash_ i thought i tried that a second ago and it didn't work...
TimToady you didn't 'say'
ash_ maybe i need to go lay down... # probably needs sleep
TimToady always needs sleep, most of the time... 03:42
ash_ rakudo: say do if 0 { 1 + 2 } else { 1 + 4 }; 03:43
p6eval rakudo 3221ca: OUTPUT«5␤»
ash_ rakudo: say if 0 { 1 + 2 } else { 1 + 4 };
p6eval rakudo 3221ca: OUTPUT«===SORRY!===␤Confused at line 22, near "say if 0 {"␤»
ash_ neat
i like do
rakudo: say do given 1 { 'foo' when 1; default { 'fail' }; }; 03:46
p6eval rakudo 3221ca: OUTPUT«fail␤»
ash_ is... that right?
s_mosher ash_, 'foo' there is evaluated in... whatever's Perlish for "void context" 03:47
ash_ rakudo: say do given 1 { 'foo' when 1; }; 03:48
p6eval rakudo 3221ca: OUTPUT«foo␤»
ash_ thats weird
oh
i see
hmm
03:49 envi joined
ash_ rakudo: say do given 1 { 'foo'.say when 1; default { 'fail' } }; 03:49
p6eval rakudo 3221ca: OUTPUT«foo␤fail␤»
03:51 mncharity joined
mncharity fyi, on perl6.org/ and perl6.org/compilers/ , the STD.pm links are varieties of "404". 03:52
ash_ rakudo: { say $^x } if 1; 04:03
p6eval rakudo 3221ca: ( no output )
ash_ rakudo: { say $^x } for 1..3;
p6eval rakudo 3221ca: OUTPUT«1␤2␤3␤»
ash_ rakudo: if 1 -> $x { say $x }
p6eval rakudo 3221ca: OUTPUT«1␤»
ash_ rakudo: { say $^x } if 1; 04:04
p6eval rakudo 3221ca: ( no output )
ash_ :-(
bug... i think
S04:693 say: { say $^x } if foo(); is equiv to "if foo() -> $x { say $x }" 04:05
rakudo: { say $^x } if 1; if 1 -> $x { say $x }
p6eval rakudo 3221ca: OUTPUT«1␤»
ash_ rakudo disagrees 04:06
ash_ submits rakudo bug
mncharity anyone around know the state of STD_P5.pm6 vs MAD vs PPI ? 04:12
04:13 pythonian4000 is now known as pythonian4000afk
ash_ how do you send updates to the bug tracker at rt.perl.org ? 04:21
04:23 mncharity left
ash_ well anyone listening with control over the rt, ticket 78124 and 77750 are duplicates 04:30
ash_ sleep... 04:38
04:57 alester left
sorear People :/ 05:11
diakopter I replied to mncharity by email 05:15
sorear You found his email? 05:16
All I found was that he's a #concatenative regular
diakopter he wrote Elf
perl.net.au/wiki/Elf 05:19
sorear aye 05:20
05:21 agentzh joined, sftp left 05:23 irclogbot_backup joined, irclogbot_backup left, Guest23195 joined
sorear diakopter: mm, this looks like my kind of compiler 05:25
05:28 Guest23195 left 05:29 pythonian4000afk is now known as pythonian4000 05:33 justatheory left 05:41 pythonian4000 is now known as pythonian4000afk, LaVolta joined 05:44 masonkramer left, masonkramer joined
diakopter sorear: nod. I assumed you knew about it 05:49
sorear diakopter: I hadn't looked at it in much depth before 05:50
05:52 mfollett left 06:00 leprevost left
diakopter fixes links on perl6.org 06:02
diakopter and updates /compilers
sorear hmm, linux 2.6.32 adds support for memory usage in free(1), this seems like a good excuse to upgrade 06:11
06:12 wtw joined
dalek ecza/master: 22654de | sorear++ | src/C (3 files):
Remove the simulated evaluation stack

This bit of technical debt has been with us since before it was renamed niecza.
06:15
06:16 kjeldahl joined
diakopter sorear: Wow! perlito is extremely active recently, and those commit comments are very interesting! github.com/sorear/niecza/commit/226...a1483bc349 06:18
it's plain, however, why fglock tends to stay away from #perl6 :)
these days.
erm, wrong url.
github.com/fglock/Perlito/commits/master/ 06:19
that's the one I meant to paste
sorear: but your diff is very interesting too :)
moritz_ diakopter: why does he stay away? 06:20
diakopter probably the same reasons I should too :/ distractibility 06:21
I mean, if his productivity in Perlito is any evidence
plainly he places code success over socializing 06:22
on irc.
moritz_: commit/push pending for perl6.org 06:23
diakopter looks for a writeup on masak's p6-on-rakudo 06:26
sorear Hello from Linux 2.6.32
diakopter found it 06:27
moritz_ good morning sorear
sorear /usr/bin/time reports peak memory now
\o/
06:27 QinGW1 joined
moritz_ wants it 06:27
06:29 QinGW2 joined, QinGW left 06:30 QinGW joined 06:31 QinGW1 left
diakopter moritz_: is mildew in Mu ? 06:32
moritz_ diakopter: I think so, yes 06:33
06:33 QinGW2 left
dalek : 8968a74 | diakopter++ | v6/README:
remove mention of old old old sprixel
06:44
href="https://perl6.org:">perl6.org: e73d475 | diakopter++ | source/compilers/index.html:
update perl6.org putter++ and others for prompting it.
06:48
06:51 Guest23195 joined
diakopter I'm not married to most of those changes; please commit/push corrections ;) 06:52
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:54
I guess the usual response to that is "we'll know it when we see it"; :/ 06:55
07:01 baux joined
sorear What line? 07:02
diakopter :) S01 is very short 07:03
the 4th to last sentence or something
07:07 masak joined
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 blogs.perl.org/users/lichtkind/ posts with the tag perl6 to planet6
masak: 29 Sep 22:22Z <lichtkind> tell masak its blogs.perl.org/users/lichtkind/perl-6/
diakopter masak: I added yapsi to perl6.org
moritz_ finds that amusing 07:08
masak phenny: tell [Coke] lichtkind says blogs.perl.org/users/lichtkind/perl-6/
phenny masak: I'll pass that on when [Coke] is around.
masak diakopter: thanks!
diakopter++
diakopter oh; it's not updated yet 07:09
07:15 mberends left
masak really likes the "some not quite there features" list in the R* announcement 07:19
for several reasons, actually.
it's honest to have such a list. it probably pre-empts some irritated/disappointed questions. and the list itself is inspiring. :) 07:20
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
TimToady: please don't do that.
probably just unfamiliarity with git. it does have merge as a default, after all. 07:27
moritz_ pulling with git pull --rebase most likely helps 07:33
masak aye, that's what I tend to do. there are other ways, too. 07:35
git embraces TIMTOWTDI :) 07:36
also, moritz_++ for the .get_value/.set_value spec change. in spite of all. :) 07:39
I liked the patch, but I winced at the wording "*perceived* privacy". that was probably the idea, though. 07:41
07:42 pythonian4000afk is now known as pythonian4000
masak I just changed s/perceived privateness/privacy/. hope that's OK. 07:45
dalek ecs: 66610ca | masak++ | S12-objects.pod:
[S12] minor wording tweaks
07:49
07:50 tadzik joined 07:56 satyavvd left
masak <ash_> well anyone listening with control over the rt, ticket 78124 and 77750 are duplicates 07:57
masak merges
sorear Any reason why I shouldn't s/_/-/ to be consistant with everything else in P6? 07:58
07:59 nymacro joined
sorear hello masak. 07:59
masak hi.
07:59 Guest23195 left
masak sorear: yes. there tends to be an aversion towards dashes and underscores in "core" names in general. 07:59
but introspection is non-core enough for that to be OK. 08:00
08:00 ruoso left
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:00
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
I may or may not have switched back because vim color-codes things nicer for me with underscores.
(er, that may or may not have influenced the switch back, I mean) 08:03
moritz_ so far all meta model methods have _ instead of - 08:05
08:05 nymacro left
moritz_ also the low level module loading/importing primitives 08:05
tadzik hello 08:07
masak tadzik! \o/ 08:10
08:14 ruoso joined
diakopter masak: there, updated. perl6.org/compilers/ 08:22
masak \o/
08:30 timbunce joined 08:31 timbunce left, timbunce_ joined 08:32 nymacro joined
masak replied to Damian on p6l 08:33
08:34 fod left
moritz_ masak++ # wording fix 08:34
moritz_ also has an idea what to write, but waits until masak's email hit p6l, so that he does't duplicate effort 08:36
masak it should also have gone directly to you, since I didn't change the recipient list that Damian chose. 08:37
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 :)
yes, there was a bit of ambiguity where to put the start of the conversation.
08:41 x19290 joined, icwiener joined, orafu left, x19290 left 08:46 kjeldahl left
moritz_ seems rakudo on newest parrot has quite a few new regressions 08:50
diakopter sorear: triumph! sprixel has nested compilation units, either just-in-memory or on-disk-as-well. :) 08:51
moritz_ \o/ 08:54
masak wow, Damian holds a more extreme and pronounced variant of my views.
moritz_ diakopter: do you maintain the sprixel compilation on the p6eval server? 08:55
08:55 x19290 joined 08:56 wamba joined 08:57 nymacro left, nymacro joined 08:59 x19290 left, x19290 joined
x19290 I have an install log of rakudo-star-2010.08. 09:00
sorear wow, TheDamian is insane
x19290 It says when I typed `make install',
moritz_ sorear: how so? :-)
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
diakopter moritz_: b/c it's in the infancy of the 9th or so rewrite
09:02 dakkar joined
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
:)
09:02 Guest23195 joined
x19290 hello 09:03
sorry for my rudeness
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.)
x19290 I have an install log of rakudo-star-2010.08.
It says when I typed `make install',
lib/parrot/2.7.0/languages/perl6/lib/Form/Grammar.pir was installed.
But now I rebuild/reinstall rakudo-star-2010.08,
I cannot find lib/parrot/2.7.0/languages/perl6/lib/Form/Grammar.pir
What's wrong?
moritz_ x19290: hwo do you try to rebuild/reinstall? 09:04
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 ;)
sorear masak: Does your colleague know about java.lang.reflect?
x19290 i installed everything on /opt/rakudo
i rm -rf /usr/src/rakudo-*
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... :)
x19290 untared 2010.08.tar.gz on /usr/src
masak sorear: he's undecided on java.lang.Serializable. this seems to be news to him.
x19290 and on parrot directory, perl Configure.pl --prefix=/opt/rakudo
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
x19290 on parrot directory, make install. I have a write permission on /opt
moritz_ x19290: you can try it with removing /opt/rakudo first too...
x19290: though I'd recommend you take the 2010.09 release
09:08 pythonian4000 is now known as pythonian4000afk
moritz_ sometimes installed versions of parrot and rakudo can interact badly with the build process :( 09:08
diakopter sorear: ah.
sorear: well, on windows...
;)
sorear diakopter: MSDN says that code loaded from IE's Local Domain skips verification
x19290 I said I removed /opt/rakudo first. 09:09
diakopter you said /usr/src...
x19290 sorry.
moritz_ did you also remove the unpacked sources? 09:10
x19290 yes.
09:10 jest joined
moritz_ then something on your system must have changed inbetween 09:10
moritz_ has no idea what that could be
x19290 Should I have Form/Grammar.pir or not?
moritz_ no; it's a generated file 09:11
x19290 ok.
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
x19290 Thank you very much moritz_. 09:13
moritz_ x19290: thank you for trying rakudo, and reporting trouble
x19290 quit
09:13 x19290 left
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:13
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
to work with it, you must know exactly that it's an Attribute 09:15
masak both of those views should go on p6l.
(IMHO)
09:16 stepnem joined
moritz_ a reason for opaque objects is performance, btw :-) 09:16
masak aye. 09:17
diakopter (you're assuming a LOT about an optimizer :P)
moritz_ diakopter: both jnthn and sorear are working on meta objects that compile attribute accesses down to array slot accesses 09:18
instead of hash-ish accesses
masak moritz_: doesn't necessarily mean that the hash can be dropped altogether, though.
just that the array is the primary means of access.
moritz_ right 09:19
diakopter ok, but I don't see how that's related to opaqueness.
masak for example, in Yapsi, the exact same situation occurs with normal lexical blocks. but we still want to be able to introspect them.
diakopter I was referring to how unused slots can be optimized away..
moritz_ in which case get_value and set_value are free to die() with a helpful message
sorear Privacy in Perl is a convention, and I'd like to keep it that way 09:20
It's not like Java, where privacy is what prevents you from saying Runtime.getRuntime().securityManager = null; installBackdoor();
Security and encapsulation are concerns best separated, IMO 09:21
moritz_ correct
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
maybe it should be restricted to only those attributes with accessors 09:25
sorear the Perl 6 'has' is very constraining
Moose's has takes named arguments, dozens of them
one of which is :init_arg
masak moritz_: many years ago, I had a similar complaint/comment.
sorear YOU control how the default .new parses stuff
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 :-)
masak with Damian rocking the boat, it suddenly feels less insane to clamor for a more encapsulated Perl 6. 09:29
let's see if someone comes up with a new, consistent model which still allows for .new and serialization.
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.
one big question seems to be "how DO you set a private attribute?"
(by breaking encapsulation, I guess) 09:31
sorear $!foo = 2;
masak sorear: funny guy.
moritz_ phenny: tell jnthn about trac.parrot.org/parrot/ticket/1807#comment:1 - seems you partially broke line numbers along the way
phenny moritz_: I'll pass that on when jnthn is around.
masak I admit I didn't express myself very precisely. :P 09:32
"how DOES .new assign values to private attributes?"
(under a hypothetical new model which respects encapsulation)
sorear .new passes them down to CREATE 09:33
which is pretty low level, and has to see the attributes to give them values
s/values/storage/
moritz_ sorear: I thought it passed them to .bless ?
09:33 Alias joined
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
moritz_: I thought bless called CREATE
09:34 orafu joined
masak no, I think bless modifies an already CREATEd tabula rasa object. 09:34
but I might be wrong. 09:35
moritz_ sorear: in rakudo you can call self.bless($repr, |%attribute_values)
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.
sorear reblessing in general makes sense 09:36
it's not a very commonly used operation, but when I need it, I need it
09:36 sundar joined
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
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
more likely .CREATE already gives it the right class.
in which case .bless is a bit of misnomer.
moritz_ I kinda think of .CREATE as creating a low-level storage thing 09:40
and .bless magically associates it with a new high-level object
masak right, but does .CREATE make different low-level storage things for classes A and B? 09:42
moritz_ that might very well be the case 09:43
at least it's allowed to
masak in either case, bless having re-bless capabilities isn't too far-fetched. 09:44
moritz_ agreed
masak it just magically associates a new high-level object with an old low-level storage thing :)
actually, reblessing to wider types is obvious from this viewpoint. 09:45
09:45 mavrc left
masak reblessing to narrowr types might require a new low-level $repr object to accomodate the new attrs. 09:45
09:48 mavrc joined 09:56 zb left 09:58 sundar left
masak nom & 10:00
10:00 Italian_Plumber joined 10:02 orafu left, QinGW left 10:04 mavrc left 10:06 jest left 10:20 zb joined 10:23 mavrc joined 10:26 daxim joined 10:27 ruoso left 10:35 LaVolta left, kjeldahl joined 10:41 Italian_Plumber left 10:45 qwebirc21435 left, pythonian4000afk is now known as pythonian4000, sandra_f joined 10:46 sandra_f left 10:56 Italian_Plumber joined 10:59 orafu joined 11:01 tadzik left 11:02 tadzik joined 11:06 sjn left 11:09 sjn joined 11:13 maddog007 joined 11:14 maddog007 left 11:20 ggoebel left
masak I'm still getting OpenFoundry emails, even after the demise of the Pugs SVN repo. anyone know how to make it stop? :) 11:22
[Coke] TheDamian++ 11:28
phenny [Coke]: 07:08Z <masak> tell [Coke] lichtkind says blogs.perl.org/users/lichtkind/perl-6/
[Coke] ugh. that URL has no visible "FEED" button. 11:29
11:30 icwiener left
[Coke] if someone can translate that to an rss/atom link, I can planetsix it. 11:30
masak it's blogs.perl.org, it's gotta have rss/atom. 11:31
sorear blogs.perl.org/users/lichtkind/atom.xml
moritz_ yes, but not per tag
sorear oh
masak this Twitterer wants it all, but is sad about something -- what? twitter.com/meettya/status/25965877970 11:32
seems he thinks it'll be another 5 years before Perl 6 matches Perl 5. 11:33
that actually sounds accurate, for some values of 'matches'.
colomon TheDamian++ indeed 11:34
masak what is this, suddenly a lot of privacy proponents appear out of the bushes? 11:35
where were you when moritz_ and I argued a few days ago? :)
moritz_ the sheer mass of proponents doesn't mean it's a more sensible(sic!) position :-) 11:36
see also: PHP
masak didn't say it was.
moritz_ I know :-)
masak just saying I didn't feel their support then as I do (indirectly) now.
11:36 tadzik left
dalek ecza/master: 52eeda0 | sorear++ | / (4 files):
Factor out CodeGen's internal type inferrer
11:36
ecza/master: b8b0f44 | sorear++ | / (6 files):
Kill off CLRImportObject for real
ecza/master: 3d28e35 | sorear++ | / (12 files):
Start playing with a CgOp type remapper
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.␤»
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
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
/tmp/tmp4c6c66f6.tmp: line 1: viv: command not found
while building niecza
masak Juerd++ # tnx.nl/php.html
[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.
[Coke] gets back to cold fusion & javascript.
OPENFOUNDRY-- # STOP SENDING ME EMAILS ARRRRRGH 11:41
moritz_ installs a newer STD.pm
niecza: say 1 11:42
p6eval niecza 3d28e35: OUTPUT«1␤»
moritz_ niecza: class A { method b() { say "oh hai" }; A.b; A.new.b();
p6eval niecza 3d28e35: OUTPUT«===SORRY!===␤Unable to parse block at /tmp/CRYdz96T3Q line 1:␤------> class A ⏏{ method b() { say "oh hai" }; A.b; A.ne␤Couldn't find final '}'; gave up at /tmp/CRYdz96T3Q line 1 (EOF):␤------> od b() { say "oh hai" }; A.b;
..A.new.b();⏏…
moritz_ niecza: class A { method b() { say "oh hai" } }; A.b; A.new.b(); 11:43
p6eval niecza 3d28e35: OUTPUT«oh hai␤oh hai␤»
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)
..[0x00…
moritz_ niecza: class A { has $.x = 3; method p($y) { say "$.x $y" } }; A.new().p(5); A.new(x => '2 + 3 =').p(5);
[Coke] hey, masak, how do I say "please stop sending me emails" in chinese?
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)
..[0x00…
moritz_ niecza: class A { has $.x; method p($y) { say "$.x $y" } }; A.new().p(5); A.new(x => '2 + 3 =').p(5);
p6eval niecza 3d28e35: OUTPUT«Any() 5␤Any() 5␤»
[Coke] ah, nevermind, I'll just blacklist em. (*&@#$#@. 11:45
moritz_ sorear: TODO: attribute default values, and attribute initialization in default .new()
masak [Coke]: 停止发送电子邮件给我!
moritz_ niecza: class A { }; say A.new;
p6eval niecza 3d28e35: OUTPUT«A()<instance>␤»
masak oops, that was without "please"... 11:46
moritz_ niecza: class A { }; say A.WHAT;
p6eval niecza 3d28e35: OUTPUT«A()␤»
moritz_ niecza++
masak [Coke]: 请你不要再发邮件我!
moritz_ (not perl 6 related, but I found this nice to read: jcole.us/blog/archives/2010/09/28/m...hitecture/ )
[Coke] masak: too late. I really wish I knew for sure that pugs is the reason they keep sending me (*&#$ emails. 11:49
masak: thanks though.
masak [Coke]: let me know how it goes.
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.
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.
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:51
sorear yeah, usability is hard to quantify. 11:52
moritz_ indeed
to a large degree it depends on the availability of builtins, and the quality of error messages 11:53
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
masak Juerd: I see. wonder why I've heard about PHP but not about PLP (until now), though.
moritz_ sorear: well, it was good enough to guess that it had to do with the = 11:55
from Kernel.Assign
11:58 pythonian4000 is now known as pythonian4000afk 12:01 satyavvd joined
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:07
I often use PLP without using its features 12:09
Just CGI-ish scripts, but instead of #!/usr/bin/perl and use CGI, I type "<:" at the beginning. 12:10
12:12 jest joined
daxim wakaba.c3.cx/s/code/perlhp 12:13
12:13 agentzh left
moritz_ wakaba.c3.cx/perlhp/PerlHP.pm looks like it could be ported to Perl 6 (provided sufficient insanity) 12:15
daxim the clean CPAN version is <p3rl.org/Markup::Perl>, better use that as starting point 12:16
12:16 jferrero joined 12:24 sftp joined 12:36 ggoebel joined 12:46 qwebirc80927 joined 13:01 Robinux left
Juerd Something like PerlHP and PLP can be written in a few hours 13:07
13:08 ggoebel left 13:11 masak left, masak joined, am0c^ left
flussence wonders if it'd be worth the effort to implement a strict subset of PHP as a template language 13:13
13:13 Robinux joined
masak flussence: watch out -- that's probably how PHP got started! :P 13:15
tadzik :D 13:16
Personal Home Page, no? :)
moritz_ masak: I know for sure that PHP didn't start out as a strict subset of today's PHP
tadzik: I thought People Hate Perl :-)
now it means People Hate PHP :-)
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
moritz_ nice try :-) 13:18
flussence PHP6 is the biggest disappointment ever :(
13:18 Patterner left
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"
tadzik same here ;) 13:19
masak man, do we have a twisted sense of humour...
moritz_ flussence: disappointment is in the eye of the beholder; since I didn't expect anything from it, I'm not disappointed at all
flussence that's what I get for using it, I guess :)
masak "...biggest disappointment since Java 7..." 13:20
which, last I heard, will get closures after all. oh yay.
13:20 Trashlord left
tadzik maybeItWillEvenGetRidOfThisHorribleCamelCase 13:21
masak wouldn't keep his hopes up
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
masak lots of other languages on the JVM already support closures, AFAIU.
the question for Java has mostly been how to cram it nicely into the existing model. 13:23
13:23 Trashlord joined
moritz_ I guess it's possible to implement closures on any turing complete VM :-) 13:23
"cram it nicely" :-) 13:24
jest but seriously, I still don't quite understand the claims that it is impossible to run Perl over JVM 13:25
moritz_ jest: it's not theoretically impossible; it's just that porting the perl 5 compiler to any VM is HARD 13:26
PerlJam wonders if Damian will make an appearance here soon :) 13:27
13:28 pmurias joined
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:28
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.
moritz_ masak: if you do, please make it integrate well with Rakudo :-)
masak moritz_: that's a very good point.
moritz_: that should be among the top two goals or so.
13:30 Psyche^ joined, Psyche^ is now known as Patterner
masak and probably a feature in its first release. 13:30
"you can run it from Rakudo! just do 'use v5' inside a block of code"
moritz_ imagines masak's face while reading toke.c in the perl 5 source tree 13:31
masak hehe
pmurias masak: getting STD_P5 to work would be a usefull goal by itself
masak pmurias: then I'll reduce my goals to that for the mo.
13:33 isBEKaml joined
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:38
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
more the lack of time and people to actually implement them
masak someone should start a matchmaking service between cool ideas and lurkers/newcomers in here :) 13:40
moritz_ I did; with certain success
but then ran out of ideas
masak moritz_++ # challenges
moritz_ still we got try.rakduo.org and MAIN subs out of it
masak \o/ 13:41
moritz_ and ash_++ and patrickas++ as heavy contributors
13:41 nymacro left
moritz_ still hasn't sent out all the t-shirts 13:41
tadzik t-shirts?
moritz_ rakudo t-shirts for some of the participants 13:42
tadzik how can one earn one?
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
challenges are tempting, but I don't recall any of them recently 13:44
masak someone should help moritz_ think up new challenges.
moritz_ I've run out of ideas, and out of funds for t-shirts
masak I think funds for t-shirts can be arranged as well.
I'm willing to donate if I know how.
moritz_ aye; [particle]++ offered some funding from the Rakudo Consulting group 13:45
[particle] the offer still stands. 13:46
moritz_++ for the challenges
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
[particle] you know where to find me :) 13:47
moritz_ indeed :-)
13:47 kjeldahl joined 13:48 patspam joined, timbunce joined 13:49 timbunce_ left
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␤»
isBEKaml I still suck at perl6. :(
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␤»
masak std: sub !foo {}
p6eval std 1d6fdf3: OUTPUT«===SORRY!===␤Malformed block at /tmp/oGG8TPkPmx line 1:␤------> sub ⏏!foo {}␤ expecting any of:␤ name␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 114m␤»
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␤»
masak ah. :)
isBEKaml rakudo: class A { method !foo {} }
p6eval rakudo 3221ca: ( no output )
colomon rakudo: role Duration { has $.duration; }; my $a = Duration.new(:duration(10)); say :$a.perl
p6eval rakudo 3221ca: OUTPUT«"a" => .new(duration => 10)␤»
masak isBEKaml: you know that you'll never be able to call a sub through the A.foo syntax? 13:54
colomon known bug?
masak colomon: what's the bug?
appears to work fine.
isBEKaml masak: momentarily forgot. :/
masak oh, the lack of a name!
yes, something like that is known.
colomon masak: the string ".new(duration => 10)" is certainly not going to produce a valid object
masak rakudo: role A {}; say A.WHAT
p6eval rakudo 3221ca: OUTPUT«A()␤»
masak rakudo: role A {}; say A.new.WHAT 13:55
p6eval rakudo 3221ca: OUTPUT«A()␤»
PerlJam it's an anonymous class, so it has no name :)
moritz_ colomon: yes, known
tadzik roles can be instantiated?
colomon moritz_++
PerlJam tadzik: no
masak tadzik: not as such.
moritz_ but they automatically generated a class from itself
13:55 takadonet joined
tadzik hrm. How does .new... aha, got it 13:55
takadonet morning all
moritz_ which we call "punning", because we like puns :-)
PerlJam tadzik: an anonymous class is punned from the role
tadzik weird. Morning
colomon PerlJam: having no name does not justify having a broken .perl. :)
masak I've never actually seen a use of role-to-class punning in actual Perl 6 code.
colomon masak: well, I might be about to code one. :) 13:56
masak colomon: looking forward to that :)
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.
tadzik I don't get it. Roles can't be instantiated, but they automagically pun the classes from themselves, so that doesn't matter
moritz_ colomon: I don't quite see why you need a role at all
PerlJam tadzik: clearly it does matter.
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();
p6eval rakudo 3221ca: OUTPUT«hie!␤»
masak isBEKaml: with methods, it's OK. they're in different "namespaces".
isBEKaml rakudo: class A { method foo { say "hie!"; }; method !foo { say "eih!"; }; }; my $x = A.new; $x.!foo();
13:58 smash_ joined
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" :)
colomon moritz_: well, "otherwise unrelated" is an open question when you're in the design phase, no?
moritz_ would be just $x!foo
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.
tadzik PerlJam: so, why?
moritz_ colomon: I mean "that don't inherit from a common base class where it would make sense to put the common code"
masak rakudo: class A { method !foo { say "OH HAI" } }; A.new!foo
p6eval rakudo 3221ca: OUTPUT«OH HAI␤»
13:59 smash_ is now known as smash
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.
smash hello everyone
14:00 qwebirc80927 left
masak smash! \o/ 14:00
moritz_ masak: known bug
tadzik hello smash
colomon smash: \o/ indeed
moritz_ colomon: then a role is a good idea
masak moritz_: oh phew. thought we were about to have another discussion :P
moritz_ colomon: but I don't see why you need a special constructor
smash new rakudo-star do add to benchmarks i guess
great!
moritz_ masak: "moritz lenz, threatening with discussions since 1990 or so" 14:01
masak "run away! run away!"
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
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');
isBEKaml std: class A { method foo { }; method !foo { }; }; 14:03
moritz_ (though I guess that music notes last longer than 12ps :-)
p6eval std 1d6fdf3: OUTPUT«ok 00:01 115m␤»
colomon moritz_: I was just realizing that
isBEKaml nor does std. :(
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!␤»
moritz_ isBEKaml: so, where's the problem?
isBEKaml: two methods, one foo, one !foo; both can be called
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
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
14:05 Mowah joined
moritz_ isBEKaml: the idea is to leave the programmer the most freedom he wants 14:05
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!
masak isBEKaml: that seems to trouble you. why?
isBEKaml :D
moritz_ isBEKaml: if that's your problem, you shouldn't ever use a workshop :-)
masak or a hammock. 14:07
moritz_ or a sailing ship
masak or a rope.
moritz_ those usually come with some rope
isBEKaml moritz_: a workshop? like the ones filled with lathe, anvil and the like?
moritz_ isBEKaml: right 14:08
colomon moritz_++: no worries
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 ?
moritz_ gottreu: use List::Util qw(shuffle); (shuffle @x)[0..41) 14:11
gottreu is [) valid in p5? 14:12
moritz_ sorry, meant ]
isBEKaml moritz_: Never quite liked it except perhaps the woodshop. ;)
14:12 ggoebel joined
moritz_ loves sailing 14:12
gottreu ok, i saw some crazy interval stuff...either earlier this week or years ago in the irc logs
moritz_ crazy stuff? can't have been here, we raise the bar of the common sanity level.. *SCNR* 14:13
14:13 orafu left
gottreu 'crazy' meaning of a impressively level of hackitude 14:14
isBEKaml this week and years ago in the same sentence. that's the first symptom of addiction. :O 14:15
14:15 wamba left
isBEKaml or simply lost track of time? ;) 14:15
moritz_ or just a different perception of time
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 :-)
isBEKaml or the *last* of freedom -- :P 14:17
moritz_ :-)
isBEKaml SCNR
PerlJam wonders what gottreu means by "interval"
isBEKaml rakudo: my $x = { say $^x }; $x(42); ## #78142 looked interesting, so... 14:19
p6eval rakudo 3221ca: OUTPUT«42␤»
flussence oh, I think I remember what he was talking about
isBEKaml \o/
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)
flussence ^yeah, that
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...
PerlJam gottreu: that would be 1..10 and 1..^10 (and 1^..10)
14:22 wtw left 14:24 ggoebel left, ggoebel joined
gottreu rakudo: sub circumfix:<[ )>(@a) { @a[0] ..^ @a[1] }; say [0,10) 14:25
p6eval rakudo 3221ca: OUTPUT«0123456789␤»
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 14:42 pmurias left 14:46 orafu joined 14:49 isBEKaml left
colomon doh! ABC appears to break ufo now.... 14:54
masak d'oh!
colomon trying to pull latest ufo now... 14:55
seems to work fine now. wonder what that was? 14:59
moritz_ lack of computrons? 15:00
masak cosmic rays? 15:02
colomon happened repeatedly, so cosmic rays seems out. 15:03
it erased the old Makefile and didn't generate a new one.
I did a git pull, merged in my local changes again, and then everything was fine.
slavik blame ext4 :P 15:05
15:06 justatheory joined, _twitch joined 15:12 daxim left 15:14 mfollett joined
sorear good * #perl6 15:19
15:21 ruoso joined, ggoebel left
masak sorear: \o 15:21
ash_ the error ticket #78142 is about is when you use a block with an if 15:22
rakudo: { say $^x } if 1;
p6eval rakudo 3221ca: ( no output )
ash_ rakudo: if 1 -> $x { say $x }
p6eval rakudo 3221ca: OUTPUT«1␤»
ash_ according to S04, those should be the same thing 15:23
moritz_ rakudo still follows the old spec
ash_ ah
i didn't know the spec changed in that area recently
moritz_ fsvo "recently"
15:24 Ross joined, Ross left, Ross joined
ash_ well, at least a tickets there to help remind someone that knows the p6 grammar :P 15:26
pmichaud good morning, #perl6 15:28
15:28 wamba joined
colomon o/ 15:29
ash_ how does autovivication work across files? 15:30
sorear I do not beleive these concepts interact in any way.
moritz_ same as it works within a single file
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:32
maybe the word autovivication is the wrong one to use 15:33
pmichaud that's just a rakudo bug.
moritz_ that's more related to stubbing and symbol table/type object relation than to autoviv
ash_ got ya 15:35
15:36 icwiener joined 15:38 Cory1013 joined 15:39 Cory1013 left
pmichaud did TT #1807 get resolved yet (pct patch breaks line numbers)? 15:44
moritz_ I don't think so 15:45
moritz_ git svn rebase's parrot
nope
pmichaud okay, I'll fix. 15:46
moritz_ ++pmichaud
pmichaud jnthn++ forgot to rebase his copy of pct before merging it back into trunk :-(
so he ended up undoing a number of pct changes, including the line number changes
15:47 Trashlord left
moritz_ I wonder why the diff seemed to contain unrelated changes 15:47
*wondered 15:48
15:49 Trashlord joined 15:51 cogno joined
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.
parrot tests pass, now trying rakudo + tests 15:57
15:59 wamba left 16:05 kjeldahl left 16:07 kjeldahl joined
pmichaud tests pass, committing fix 16:08
moritz_ \o/ 16:09
16:09 jest left
moritz_ bumping PARROT_REVISION would be a nice addition 16:09
pmichaud r49387
haven't run a full spectest yet -- doing that now.
jnthn o/ 16:14
phenny jnthn: 09:31Z <moritz_> tell jnthn about trac.parrot.org/parrot/ticket/1807#comment:1 - seems you partially broke line numbers along the way
16:15 cogno_ joined, cogno left
jnthn moritz_: That patch accientally reverted some changes it shouldn't have. 16:15
But a follow-up patch put them back. 16:16
oh, maybe incompletely. hm
oh, pmichaud++ already got it
sorry 'bout that. 16:17
(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:19
16:22 cogno_ left 16:25 ggoebel joined 16:30 isBEKaml joined 16:31 Entonian joined
sorear hello jnthn 16:34
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:35
obviously each backend needs a different set of calling conventions, but it's not obvious how to write frontend code polymorphic over that 16:36
16:39 dukeleto left
jnthn sorear: Two things come to mind. 16:40
16:41 pmichaud left
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
16:41 PerlJam left 16:42 cogno joined
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
16:42 Util left, cogno left, dalek left, cogno joined, Juerd left
sorear jnthn: Caller issues don't really bug me; the main issue is the polymorphic binder 16:43
jnthn Define polymorphic.
(in this context)
16:43 cdarroch joined, cdarroch left, cdarroch joined
sorear Able to work properly on more than one backend 16:43
jnthn Oh 16:44
OK, I'd never considered that a goal.
I don't mind carefully writing and optimizing the binder per backend because it's a critical path
sorear the current niecza "binder" is a compile-time module which generates ENTER code
jnthn Same for things like multi-dispatch caching.
OK. I think the binder should be a separate thingy that takes as input a capture, a signature and a bind target. 16:45
16:45 baux left
jnthn (where the bind target is usually a lexpad) 16:45
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.
sorear It's not the *right* factoring, but it's better than the obvious alternatives on .net
16:46 juerd joined
juerd feather0 just died 16:47
sorear feather0 = physical box?
juerd The good news is, apart from that the fire alarm still works, that feather2 and 3 aren't on it.
sorear fire alarm!?!?
jnthn !!
juerd sorear: Ya.
First time in our server room 16:48
diakopter [Coke]: I replied to openfoundry and they replied in Engrish
jdv79 pictures
sorear never thought of servers as being particularly flammable
juerd jdv79: I was next door when it happened and got there in time
jnthn Power supplies can die quite impressively.
juerd It definitely is the power supply 16:49
sorear jnthn: Need fuel as well as ignition source
juerd I was making fun of Google's powers when it happened and it was a weird moment.
sorear: Well, there was smoke but I haven't seen any flame.
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
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.
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...
juerd diakopter: Oh, it'll happen :)
No doubt there.
afk 16:52
moritz_ is happy that pugs svn isn't on feather anymore :-)
diakopter they're watching this unfold on irc.perl6.org. "...those poor people..."
juerd Unfold? 16:53
moritz_ wonders if unfold is available as unfoldl and unfoldr
sorear diakopter: irc.perl6.org? neverheardofit
rdns to feather2, mm 16:54
16:54 cogno left
moritz_ redirects to the public logs 16:54
diakopter unfold.. as in "dramatic events unfold before one's eyes [like a storybook opening, I guess]" 16:55
17:00 dakkar left, juerd is now known as Juerd 17:01 kjeldahl left 17:04 corjolio joined, corjolio left
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
github.com/fglock/Perlito/commits/master
17:07 stkowski joined
[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
I expect feather1 to be down for a few days :( 17:10
17:10 kjeldahl joined
diakopter [Coke]: ah, oh. I emailed Shawn Chiou directly: [email@hidden.address] 17:11
Juerd Could someone notify some perl6 mailing list to spread the word, please?
[Coke] diakopter: YOU HAVE A REAL EMAIL ADDRESS!? ;)
I only ever found the contact@openfoundry one.
17:11 plainhao joined
diakopter I don't remember what sleuthing I did to find that. 17:12
but I got this reply: "I'm sorry for the inconvenient. We will help you to remove from the list asap."
and no emails since then (July this year)
Juerd I tried one of feather's harddisks in another server 17:13
That server promptly crashed.
What the.
diakopter [Coke]: oh, yeah, there was his email address in the email on Sat, Jul 17, 2010 17:14
[OpenFoundry] 致歉信(Apology Letter)-並請協助確認您個人專案因整合流程疏失而流失的釋出版本資訊
there's a phone number there too :)
Juerd jnthn: A very bad day for hardware, indeed.
jnthn Juerd: :( 17:16
diakopter moritz_: feel free to run try.rakudo.org on the p6eval box; I don't think port 80 is used 17:17
moritz_: oh, hm, uh-oh
moritz_ I thought feather3 was unaffected?
diakopter hopes Juerd can recover feather1
Juerd moritz_: Well, that other server that I mentioned...
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.
diakopter: We have backups
diakopter oh; whew :)
time to put some of that in git, too
17:18 hirschnase joined 17:22 Robinux left
sorear diakopter: this isn't even the first time feather1 has had to be completely restored from backups 17:22
(apparently you can't just move VMs; the last feather0 hardware migration required feather[1-3] to be deleted outright) 17:23
moritz_ apparently feather2 just died (or its network connection) 17:26
last line I received from it was
19:21:38 up 3 days, 17:20, 1 user, load average: 4.39, 2.83, 1.49
diakopter moritz_: Juerd was just mentioning that
(the disk from feather1 killed the host of the others
) 17:27
moritz_ oh
17:27 hugme left 17:29 Chillance joined
Juerd Apparently c25's sata took it so hard that two of its disk crashed 17:30
Hurrah for raid6 17:31
But it'll take a while to rebuild and it's not feasible to do it under load
[Coke] is reminded to make sure his backup job is working at home.
Juerd Remember how I just now said that we have backups? 17:32
I kind of forgot to re-enable those after feather2/3 were migrated.
Most recent one is 2010-07-21 17:33
17:33 s1n left
sorear Killer disks, huh? 17:33
Juerd Apparently.
Never had that before
It's insane
This shouldn't happen. It shouldn't even be possible.
moritz_
.oO( NSA technology meant for Iran )
17:34
diakopter .. if something in the disk melted/shorted...
flussence
.oO( quantum failure, like the LHC? )
17:35
17:35 patrickas joined
patrickas was watching the feather drama unfold in the logs ... 17:35
Juerd diakopter: Nothing got that hot 17:36
At least, there's no visible evidence of that happening
diakopter well, something inside the disk can get hot in and of itself (not from the environment) 17:37
17:37 s1n joined
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
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
The power led and all the drive power leds
flussence whoa, that does not sound good 17:39
Juerd flussence: In case you missed it... smoke came out of the PSU
flussence yow.
Juerd It's very un-good.
tadzik masak: strangelyconsistent.org/blog/6-buil...ou-needed, .classify, isn't the first output sorted? 17:40
17:40 Ross left 17:41 cogno joined
masak tadzik: yes...? 17:41
tadzik at the first glance, I thought that's .classify capability :)
masak not sure what you're asking. it seems to come out sorted, by key.
17:41 cogno left
masak I don't think that's spec. 17:41
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
p6eval rakudo 3221ca: OUTPUT«A aB bC cD dE eF fG gH hI iJ jK k␤»
masak not sure how it'd behave with heterogenous types in the keys.
Juerd Has anyone seen my request regarding sending something to a mailinglist about feather?
moritz_ didn't
Juerd Please inform the world that feather1 will be down for a while. 17:43
moritz_ I will
Juerd As either data recovery or restoring from backups will be necessary
The other server has priority, though. Sorry about that.
moritz_ that's fine 17:44
17:44 masonkramer left, masonkramer joined
moritz_ "erst die arbeit, dann das vergnügen" as we say in .de :-) 17:44
Juerd: so feather{2,3} are expected back relatively quickly? 17:45
(as in, hours and not days)
Juerd moritz_: ETA 6 hours
moritz_: They'll be back up when the raid6 resync is done
That takes 6 hours without load, a few weeks with load. 17:46
moritz_ ok, I'll write that
17:47 pmichaud joined
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
pmichaud: It died, with actual smoke
moritz_ mail sent to p6c 17:49
pmichaud I read the backlog.... sounds.... exciting (not in a good way)
Juerd moritz_: Thanks
pmichaud I'm glad we went ahead and moved pugs onto github :-)
Juerd I'm glad that feather2/3 were already migrated
They're offline too now, but they will be back in hours
I think I'll try those feather disks in a USB enclosure 17:50
pmichaud Juerd: as always, your efforts and abilities are amazing.
Juerd Can't have them take down more boxes.
masak moritz_: does that mean "arbete först, nöje sedan"?
pmichaud Juerd++
moritz_ masak: I don't understand the "nöje sedan" part :-)
jnthn Ain't a Sedan a type of car? :-) 17:51
Juerd pmichaud: I was here too early to practice my fire extinguisher skills
moritz_ roughly "work goes first, joy/leisure comes later"
pmichaud anyway, it's good that we're getting some real smoke tests.
moritz_ lol
Juerd ha-ha.
jnthn heh
masak moritz_: if my guess is correct, then de:"vernügen" equals sv:"nöje"
diakopter mimics dalek: github.com/diakopter/sprixel/commit...93e22f2f0b 17:52
Juerd [21752.688657] sdc: sdc1 sdc2 sdc3 < sdc5 sdc6 > 17:55
One of the disks appears to have survived the ordeal!
moritz_ \o/
Juerd If anyone needs certain data sooner rather than later, let me know
masak Juerd++ # neprikantata heroo 17:56
diakopter well, the info (except the large log files) under /home/drain/ would be nice
so we can get dalek going again
17:57 pyrimidine left, lichtkind joined
Juerd masak: Dankon *rugxigxas* 17:57
lichtkind o/
phenny lichtkind: 11:39Z <[Coke]> tell lichtkind - do you have an RSS feed for that that respects the Perl 6 tag?
masak :)
17:58 Entonian_ joined
Juerd [21910.562136] VFS: Can't find ext3 filesystem on dev sdc6. 17:58
That's not good though
6 is the data partition; rootfs on 5 mounted fine
lichtkind [Coke]: its, blogs.perl.org/users/lichtkind/perl-6/, thanks 17:59
moritz_ lichtkind: that's not an RSS URL
Juerd Oh, it's lvm 18:00
18:00 Entonian left
breinbaas cd postgresq 18:01
moritz_ no such directory 18:02
[Coke] lichtkind: I need the /RSS/, not the user-visible HTTP.
breinbaas hm, EWRONGWINDOW (sorry)
lichtkind [Coke]: yes im searching
moritz_ no problem
[Coke] er, HTML. whoops.
Juerd I have feather1's data mounted now. Any other requests? 18:03
18:05 mfollett left, Entonian_ left, Entonian joined
lichtkind [Coke]: blogs.perl.org/users/lichtkind/atom.xml ß 18:05
moritz_ that's not tag specific 18:06
lichtkind moritz_: I I JUST SAW
shift lock
masak apparently :)
NOM & 18:07
18:07 masak left
tadzik Juerd: how much memory does feather have? 18:07
rokoteko Juerd: Well duh. Copy it somewhere safe, like another local hard disk?
Juerd tadzik: Currently, none.
rokoteko: Doing that already :)
tadzik well, I meant before the fire 18:08
rokoteko Just checking. :)
moritz_ just had this vision of himself shouting at his wife, and then saying in normal tone "sorry, forgot caps lock" :-)
Juerd rokoteko: But if people need data quick, I can build tgz's :)
18:08 exodist joined
Juerd tadzik: 2.5 GB 18:08
There wasn't any fire. Just smoke.
tadzik Juerd: how much of that memory could have been free, on average? 18:10
I filed a Parrot ticket about Parrot not building there, and I'm being asked such questions :)
diakopter parrot builds on the p6eval box, and it has 1GB ram 18:11
Juerd tadzik: juerd.nl/i/d58dc3794529cdd4337f43e2fd044204.png
18:11 mikehh joined
Juerd In case you're wondering what happened in week 35: svn was shut down 18:11
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:12
[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 :)=
[Coke] ;) 18:16
diakopter: that .png seems to kill my IE.
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:17
[Coke] ... I blame my poor 3G dev machine which is again memory starved. nevermind. 18:18
diakopter heh
lichtkind [Coke]: done ... I'll be back :) 18:19
18:20 smash left
diakopter scrutinizes CursorBase.pmc 18:20
tadzik 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:21
ash_ the server that is hosting try.rakudo.org is that one of the ones that is down? 18:22
i don't know which feather its on 18:23
18:23 _twitch left
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␤»
flussence tadzik: that sounds like more of a case of "don't do that"
18:23 perlpilot joined
jnthn tadzik: use Z[eeks] 18:23
tadzik flussence: like "Don't name your infixes with /^Z/"? :)
jnthn: oh, nice
Juerd ash_: It's on feather3. All feather servers are currently down. 18:24
tadzik but, it doesn't work I'm afraid
oh, my bad
colomon rakudo: our sub infix:<Zeeks>(@a, @b) { "{@a.perl} and {@b.perl}" }; say 1..3 Zeeks 4..6
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␤»
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?
p6eval rakudo 3221ca: OUTPUT«1..3 and 4..6␤»
ash_ Juerd: thanks
jnthn perlpilot: Real life smoke testing.
;-)
Juerd 1 not ok
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)
p6eval rakudo 3221ca: OUTPUT«1..3 and 4..6␤1 and 42 and 53 and 6␤»
jnthn perlpilot: Epic hardware fail.
Juerd Or the other way around? not ok 1?
jnthn not ok 1 # is tap 18:26
Juerd I keep forgetting the order
moritz_ not ok 1 - test description
Juerd -, not #?
jnthn Thankfully, we have test harnesses that remember :-)
Juerd: my # was meta :-)
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.
And that means you do have to remember the order :D
jnthn :-) 18:28
18:29 perlpilot is now known as PerlJam
Juerd ASOehtsn,t. psnrchoeurlchuoeuhtnsnaoteuh235n 18:29
F*
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? smolder.parrot.org/app/projects/tes...tory/5/838
Juerd The disk I'm backing up the feather data to, just had a head crash.
flussence oh crap.
Juerd Backup will have to wait until stores open. I'm out of spare disks.
jnthn wtf...I hope that's just unlucky coincidence. :/ 18:30
18:30 timbunce left, pmichaud left
PerlJam Juerd++ hardware-- 18:30
Juerd jnthn: Can't be something else
jnthn: It's a used USB drive
It wasn't even connected until I used it for that backup
jnthn Meh. *very* bad day for hardware. 18:31
Juerd++ # persistence :-)
Juerd Hm, maybe... 18:32
Maybe they have hard drives at Makro
A big store that's open for another 90 minutes
afk
PerlJam wonders if there's any grant money for a feather fail-over 18:33
of course, someone would have to provide bandwidth too.
tadzik Error validating server certificate for 'svn.parrot.org:443': -- anyone else gets this?
on perl Configure.pl -gen-parrot
flussence never seen that, and it's valid in my browser too... 18:34
PerlJam tadzik: not I
tadzik hrm
same here 18:35
ah, whatever
18:35 stkowski left 18:36 timbunce joined 18:38 stkowski joined 18:41 nymacro joined 18:43 Entonian left 18:46 jferrero left 18:55 hirschnase left 19:07 stkowski left
Juerd can haz harddisk 19:15
sjohnson heh 19:16
rough day for hardware here too. dhcp server at work won't give my boss's laptop an IP
Juerd Sounds like software
sjohnson my sound wouldn't work upon starting my computer up today 19:17
which has never happened.
for a while i thought a surge hit the building and destroyed some electreonics
but the sound works upon restarting my computer
Juerd [==============>......] recovery = 71.1% (496986792/698241024) finish=41.5min speed=80729K/sec 19:19
That's the server for feather[23]
When it's done, it needs another sync
19:20 Ross joined, Ross left, Ross joined 19:32 wamba joined 19:33 plainhao left 19:34 jferrero joined 19:38 envi left 19:40 icwiener left 19:41 timbunce left 19:44 lichtkind_ joined 19:45 lichtkind left 19:46 lichtkind_ is now known as lichtkind 19:47 timbunce joined 19:53 mfollett joined 19:57 patrickas left 19:58 Alias_ joined, Italian_Plumber left 19:59 Guest23195 left 20:01 Alias left 20:02 PerlJam left
Juerd The backup, from USB to USB goes at approx. 7 MB/s 20:04
That's pretty speedy. It's faster than what I could do directly from feather, while it was running
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
Then shut everything down and sync the remainder
By the way, I can really recommend the Sharkoon Quickport, or clones. 20:06
frettled Juerd: oh, so it's not just I who struggle with faulty hardware and recovery :( 20:07
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.
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.
Juerd: ah, the magic smoke that
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.
ash_ i now have 2 Time Machine backups of my computer that run every hour, i am tired of loosing stuff :-(
frettled the magic smoke that's needed to keep the computer running
Juerd knows about the magic smoke and has probably breathed too much of it. 20:09
frettled Juerd: don't let it go, man.
Juerd Well
At first I thought: we should keep the magic smoke IN the server room
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
Juerd There wasn't that much smoke. When I cut the power it was gone in a minute
But the smell stayed 20:11
Juerd is so relieved that one of the disks from feather has survived.
Juerd knocks on wood
Backup isn't done yet.
Meanwhile, c25's raid6 is redundant again. Now to get it back to N+2 20:12
frettled :) 20:13
20:13 Ross left
frettled RAID6 <3 20:13
Juerd Certainly
feather was N+2 too, by the way, with raid1
20:13 hugme joined, ChanServ sets mode: +v hugme
frettled Software-RAID? 20:14
Juerd feather2 is up
frettled: Always.
20:14 patspam left
ash_ rakudo: my $a = Mu.new(a => 3); 20:14
p6eval rakudo 927f41: ( no output )
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 :)
frettled: N+x is easy with RAID 1 :)
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. :(
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.
But not for, say, N=8.
Juerd Uhhuh :)
You hadn't specified that yet :)
But I have no idea 20:17
frettled has an 11-disk thingybob that would like N=7 + P=3 + S=1
But I
arghle
Juerd It's still scary, isn't it?
20:17 sftp left
frettled But I'm making do with N=7 + P=2 + S=2 20:17
Juerd How did you do the P=3? :)
frettled I don
Juerd I see
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
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
ash_: feather[23] are probably fine. feather2 is even already back up.
moritz_ hugme: hug Juerd
hugme hugs Juerd
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?
Juerd frettled: Not that much, but it consists of enormous amounts of very small files. 20:20
The data rate increased when I minimized the terminal that runs rsync -av
Terminal couldn't keep up
frettled heh
Juerd: since the new box I
Juerd (xterm)
feather1-data is 38 GB
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.
frettled: Oh, but we have backup space available
diakopter O_O
Juerd frettled: Realtime mirroring is HARD.
diakopter: ? 20:22
frettled Juerd: I wasn
diakopter kidding..
frettled 't thinking about realtime :)=
Juerd diakopter: ?
20:23 masak joined
masak ahoj, #perl6! 20:23
flussence
.oO( why is the graphics performance of a terminal window still a bottleneck in this day and age? )
frettled flussence: because of quantum. :)
diakopter many chains of buffers make for ..
frettled single-threaded interdependencies! 20:24
flussence actually, IIRC, xterm has a lazy-redraw option somewhere...
[particle] [waves] 20:25
20:25 pythonian4000afk is now known as pythonian4000
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
the lazy-redraw option is probably VT100 or something equally ancient
Juerd flussence: Truetype fonts, perhaps :) 20:26
jnthn ahoj, masak!
20:28 Ross joined, Ross left, Ross joined
flussence (I wonder if any *terms do asynchronous/lazy screen updating already...) 20:28
frettled flussence: most likely they do
flussence oh wait, that's the whole point of libxcb...
guess they get it for free then :) 20:29
frettled :) 20:30
masak I don't understand what Darren Duncan is saying on p6l. :( 20:33
diakopter I think I do 20:35
[particle] iiuc it's basically, "Common Programming Terms Considered Harmful to Mathematicians"
oh, didn't see the latest. 20:36
masak ok, I think I understand it now.
diakopter he's sorta proposing something like .NET's ISerializable msdn.microsoft.com/en-us/library/sy...zable.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.
diakopter .... effectively.
[particle] yes, it seems MONKEY_TYPING is getting overloaded 20:38
or, the proposals are to overload it
jnthn masak: I'm not at all keen on your suggestion that .^add_method should care about it, fwiw.
That's the *normal* way classes are actually made. 20:39
masak jnthn: nodnod
jnthn Not just a monkey patching mechanism.
I'm not being obtuse, I'm actually genuinely worried we'll get subtle bugs.
diakopter jnthn: do you (at least somewhat) agree with my claim that ISerializable is the logical conclusion of dduncan's wish?
masak jnthn: I agree with you.
jnthn diakopter: I probably need to read his mails. :-)
diakopter oh :)
masak I agree with moritz_-on-p6l that .perl is a useful debugging tool. 20:53
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:54
jnthn Ah, a thread I feel a need to weigh in on a little. :-) 20:55
[particle] Data::Dumper doesn't print sub bodies
jnthn [particle]: Nor does .perl in Rakudo :P
[particle] that's because you develop too slowly.
[particle] adds beer to jnthn++'s queue
jnthn :P 20:56
yay beer \o/
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
20:57 dwilliamii left
ash_ what was the original intent of .perl? 20:57
[particle] right, so enabling .perl on value types by default makes sense from the security perspective. 20:58
ash_: to be a built-in Data::Dumper replacement
moritz_ what's the security concern of .perl?
[particle] it outputs something you can eval
moritz_ so does join() :-)
jnthn You put your database password in the source and somebody just figured out how to .perl it ;-)
masak moritz_++ 20:59
[particle] moritz_: that last line from me was to ash, not to you
tadzik :D
masak jnthn: not p6's fault.
ash_ jnthn: if they have that kind of access, they could do it in almost any language
jnthn masak: I wasn't suggesting it was at all. :-)
moritz_ [particle]: ah :-)
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?
masak ash_: current.
ash_: think of it as an anti-eval; it gives you some Perl 6 code that can reconstruct the object.
21:02 cybergirl joined
masak that's why it's called .perl 21:02
jnthn diakopter: Hmm, I just found the post you were talking about. 21:03
I've tended to see .perl's *primary* usefulness as a debugging tool rather than a serialization format.
21:03 meraxes left
moritz_ right; you wan to avoid string eval for deserialization 21:04
*want
21:04 meraxes joined, cybergirl left
masak jnthn: agree. but it can be exploited for its encapsulation breaking. 21:04
jnthn It's a crappy serialization method.
[particle] yes, so should the default debugging tool for p6 break encapsulation *by default*?
jnthn [particle]: Er, huh. 21:05
[particle]: I *want* my debugging tools to tell me what's really in there.
That's why I debug stuff. :-)
moritz_ right :-)
[particle] then i think it's poorly huffmanized
.perl is so pretty and easy to use
masak that's why we like it!
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.
moritz_ loves hexdump. hexdump never lied to me
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
p6eval rakudo 927f41: OUTPUT«.new(c => Any, a => 1)␤»
masak we're in a bind; we want debugging and encapsulation, but they are mutually exclusive.
jnthn masak: I'd hate to imagine people would use .perl to get at private attributes then parse the string to pull them out.
masak ash_: yes, but those are bugs.
jnthn I mean, do people really suck that much?
:-)
[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.
masak jnthn: it's not mainly about the decadence of those people, but about allowing it in the first place.
[particle] A SHOTGUN
masak jnthn: *I've* done it, and I'm not terribly decadent.
jnthn masak: Oops. :-)
masak: Were you working around a Rakudo shortcoming? :-) 21:08
masak ash_: A.new(...) but B
jnthn: not really. just writing a serialization method.
this is all coming back to me right now, by the way.
21:08 Ross left
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".
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
21:09 thepler left
jnthn Because if we don't, people are going to resort to hacks like that. 21:09
masak ash_: (class { ... }).new(...)
moritz_ ash_: it is limited right now; but not necessarily conceptually
tadzik let's not document it
21:09 Ross joined, Ross left, Ross joined
tadzik sshh, no one will ever notice 21:09
or give it a fancy name, like allow_memoryleaks 21:10
21:10 kjeldahl left
frettled .amole 21:10
moritz_ jnthn: re set/bind_attr, I replied with a very similar email (but which hasn't hit p6l yet)
[particle] or call it .to_python and nobody will use it
tadzik :D
frettled [particle]++
tadzik better! .to_php
that will make all the people ashamed of themselves 21:11
masak jnthn: here: github.com/masak/druid/blob/master/...ame.pm#L50
moritz_ prefers as_mumble to to_mumble
to_ sounds like in-place conversion
ash_ does .perl have a way of serializing blocks into something? or do those turn into ...
frettled masak: deliciously evil
masak ごめんごめん 21:12
[particle] ash_: conceptually there is a way. rakudo doesn't implement it yet, but beer could help that
jnthn masak: ew. :P
moritz_ ash_: in principle it could store a referenced to the original source text
ash_: see Data::Dumper::Deparse for p5
or something
tadzik bah. That will require keeping all the source code with the compiled program
moritz_ I think it's in main Data::Dumper
when you set the Deparse = 1 option or so 21:13
masak jnthn: yes, ew. now tell me how to really do it.
jnthn: I think I would have introspected the attrs as well, had that been possible at the time.
frettled masak: は何もない
masak :)
er, I mean ^^ 21:14
jnthn masak: Why could the object not know how to serialize itself appropriately?
masak I don't mind objects knowing (and being able to get/set) their own private attrs.
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
.perl is a good example of how it's not limited.
jnthn
.oO( "went with the aliens on this one" is such a masak++ commit message )
masak haven't really been the same since that night... 21:16
*hasn't
21:16 Chillance left
masak "PackFile header failed during unpack" 21:17
I just want to emphasize how much that error message, meaning "wrong Parrot for this Rakudo", sucks.
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.
masak frettled: .subst is for replacing *parts* of a string :)
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
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
masak zzz & 21:21
21:21 masak left 21:24 Ross left
Juerd Backup complete 21:28
Juerd now has a full copy of the sole survivor disk 21:29
No read errors :)
frettled Time to get a second copy? :)
Juerd I prefer going to bed 21:35
I hope to think of a way to bring feather back tomorrow.
But my day's full of appointments with clients so don't count on a speedy recovery. 21:36
sjohnson bed! 21:39
21:43 Entonian joined 21:46 Sarten-X left
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
.inspect is generally for debugging, kinda like how .perl is used for debugging
jnthn ash_: Maybe we need to give the two a divorce in Perl 6. 21:48
ash_ serialization and debugging an object do seem like 2 different tasks, even if there is overlap in the data they show 21:49
21:50 sjn left
Juerd Isn't encapsulation broken by design, in Perl, anyway? 21:50
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
p6eval rakudo 927f41: OUTPUT«A.new(b => 3)␤»
21:52 timbunce left
tadzik what :O 21:52
21:53 sjn joined
ash_ it evaluated $a in the context of $b 21:53
21:53 juerd_ joined, Juerd left, juerd_ is now known as Juerd 21:54 Sarten-X joined
jnthn ash_: That behaviour is...twisted. 21:55
ash_: Unless the spec explicitly allows it, it may be on the chopping block.
21:55 ruoso left
ash_ ya, i am not sure if that is supposed to work, but it currently does :P 21:56
that could be useful though, its kinda like ruby's instance_eval
i think pmichaud said that should give an error saying it can't find $!b when it made the method 22:00
std: class A { has $!b }; my $a = method { $!b = 3; }; my $b = A.new; $b.$a(); say $b.perl
p6eval std 1d6fdf3: OUTPUT«ok 00:01 118m␤»
ash_ i guess you could feed it into viv to see if that output makes sense 22:01
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) :)
jnthn diakopter: Aye, I knew that. 22:06
lol...MONKEY_SEE \o/
22:06 mfollett left
jnthn TheDamian++ 22:06
ash_ jnthn, which part of that i did shouldn't work? 22:12
the $!b?
just wondering if there is any difference if i did .^add_method
jnthn ash_: I think it may want to try and resolve $!b at compile time 22:15
ash_: Maybe we have to just let anonymous methods lead to it being a lookup deferred until runtime though. 22:16
Maybe.
Otherwise life is hard for those constructing classes "by hand".
22:18 mavrc left 22:19 mavrc joined
ash_ does that change anything for prototype-ish inheritence? 22:20
22:22 bluescreen joined
jnthn I don't see a relation...but maybe I'm just too tired. :-) 22:26
ash_ just thinking, i am not exactly sure how to do prototype inheritence in perl6 yet, maybe i'll experiment with that some 22:28
jnthn Write PrototypeHOW ;-) 22:29
22:30 stkowski joined
ash_ hehe maybe, if i make any good progress, that would be nice 22:31
22:33 jferrero left 22:47 jferrero joined 22:49 Entonian left
jnthn pushes knowhow into the nqp-rx/nom bootstrap. 22:53
Hopefully I has hacking time/energy at the weekend to give NQPClassHOW a good shove forward.
jnthn gets rest
ash_ good night 22:55
lichtkind good night 23:01
23:01 lichtkind left 23:08 jest joined
jest hi 23:09
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:10
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
23:12 Mowah left
jest as there is no support for hierarchical indexes (yet), can I change all semicolons to commas in the book safely? 23:13
23:16 florz left
ash_ is perl 6 still planning on $ = eager and @ = lazy with lists? 23:19
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:24
flussence everything in src/core is built in afaik 23:25
ash_ anything in rakudo is built in by default, no use's required, for now anyway 23:30
rakudo: say IO::Socket::INET.so
p6eval rakudo 8827d0: OUTPUT«0␤»
ash_ didn't have to import it to use it, its already there
23:33 Italian_Plumber joined
jasonmay oh sweet 23:34
also IO::Socket::INET is what I was desiring, haha
masonkramer please don't make us use a pragma before we can use .perl
if people are dumb enough to use eval + .perl to break encapsulation, the language won't be able to save them 23:36
for other introspection, sure 23:37
23:39 tadzik left 23:41 cdarroch left 23:48 ruoso joined 23:58 tylercurtis joined