Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-05-22

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:04 leprevost joined #perl6
00:07 pjcj joined #perl6
00:09 lestrrat joined #perl6
00:29 lichtkind_ joined #perl6
00:45 tokuhirom joined #perl6
00:49 pjcj joined #perl6
00:51 jaldhar joined #perl6
01:02 leprevost joined #perl6
01:08 scott_ joined #perl6
01:21 s1n joined #perl6
01:27 gsr joined #perl6
01:34 lestrrat joined #perl6
02:21 orafu joined #perl6
02:23 spaceships joined #perl6
02:37 araujo joined #perl6
02:37 araujo joined #perl6
02:51 japhb joined #perl6
03:33 bbkr_ joined #perl6
03:40 alester_ joined #perl6
03:51 araujo is there exist a substitution operator or something?
04:01 PerlJam araujo: subst?
04:01 localhost joined #perl6
04:02 araujo PerlJam, I was searching for replacing a pattern (substr is for index right?)
04:03 PerlJam not substr, subst
04:05 sisar joined #perl6
04:05 PerlJam Give me a minute to finish this email on my DNS woes and I'll conjur an example
04:07 araujo hehe thanks PerlJam
04:10 PerlJam r: "This is my string".subst(/string/, "fish");
04:10 p6eval rakudo dca0fa:  ( no output )
04:10 PerlJam oops
04:10 PerlJam r: say "This is my string".subst(/string/, "fish");
04:10 p6eval rakudo dca0fa: OUTPUT«This is my fish␤»
04:11 PerlJam r: say "This is my string".subst(:g, /is/, "at");
04:11 p6eval rakudo dca0fa: OUTPUT«That at my string␤»
04:14 araujo thanks PerlJam++
04:14 araujo :)
04:15 araujo PerlJam, I thought the s/pattern/replacement/ syntax was supported before?
04:16 PerlJam oh, it is ...
04:16 PerlJam r:  my $a = "This is my string";  $a ~~ s:g/is/at/; say $a;
04:16 p6eval rakudo dca0fa: OUTPUT«That at my string␤»
04:19 PerlJam There's also an assignment syntax that looks interesting ...
04:19 PerlJam r: $_ = "hello"; s[h] = "j"; .say
04:19 p6eval rakudo dca0fa: OUTPUT«jello␤»
04:19 araujo I was missing the :g there
04:19 araujo :P
04:20 araujo hehe
04:20 araujo nice
04:22 araujo though probably subst will suit better here
04:22 araujo :)
04:29 moritz good morning
04:31 sisar \o
04:42 japhb o/
04:43 japhb I've been snowed under by a big $day_job project, so haven't been able to backlog -- any big news from the last couple weeks?
04:44 moritz japhb: rakudo had quite some new features in its compiler release. sorear is going to rewrite parts of niecza in C# (currently p6)
04:45 NamelessTee joined #perl6
04:46 sorear japhb: sorear's classes have ended for the term and ey will be able to spend much more time on perl6
04:48 japhb moritz, Oooh, cool.  Fetching the release announcement ...
04:48 japhb sorear, Ah, excellent!  What parts are you rewriting, and why?  (/me guessing "performance" ...)
04:53 sorear japhb: Complicated reasons.  Performance is only part of the story
04:53 sorear it might help performance
04:54 japhb Oh?  This is really peaking my interest now.  Do you have your plans written down somewhere, or a good log link to read?
04:56 japhb moritz, wow, you're right, that is quite the impressive ChangeLog.  (The release announcement undersells it considerably, if you ask me.)
04:59 Araq joined #perl6
05:00 moritz well, we only ever pick 3 to 6 items out of the changelog for the release announcement
05:00 sorear japhb: Plans are in flux.  So far, everyone who has asked has gotten a different answer.
05:03 sorear japhb: Where is the changelog?
05:03 japhb moritz, Hmmm.  That seems kindof restrictive.  I mean, I understand wanting a zoomable level of detail, and the release announcement can easily be the most "zoomed out" LOD, but a big release is a big release, and deserves a little fanfare.
05:03 japhb sorear, *chuckle*
05:03 japhb sorear, For Rakudo?  docs/ChangeLog
05:05 japhb sorear, so I guess even if plans are in flux, I'm still curious what the basic motivation is?  Why convert high-level code to low-level code (or medium-level, if you prefer), when the project will remain mixed-level, if not for performance?  (I can imagine a couple possibilities, but they seem a bit out there.)
05:08 japhb Hmmm. Trying to catch up via 'git log' is an exercise in confusion.  Too many commits with messages like "first hacky shot at foo" or "beginning to implement bar", without any detail about what does and doesn't work. Of course, I bet I'm guiilty of doing the very same thing.  :-/
05:09 japhb (That was regarding the Rakudo 'git log', not niecza)
05:11 Araq left #perl6
05:16 sorear japhb: The only reason to have modules in a high level language is to save hassle, and... I don't think that's happening
05:16 sorear I feel like far too much of my time is going in to keeping the bootstrap and various glue layers working
05:18 birdwindupbird joined #perl6
05:18 japhb sorear, ah, so rewriting sections of mixed code to single-layer code mostly for maintainability and reduced effort in future iterations?
05:19 simcop2387 joined #perl6
05:20 sorear japhb: yes
05:21 sorear TimToady made disappointed comments.  I am unsure what to make of them.
05:22 adu joined #perl6
05:22 * TimToady just wishes that p6 would be as mature as C#  :)
05:23 sorear also
05:23 japhb Hmmm.  I can understand the disappointment.  It's an interesting data point -- and will be more interesting when you get enough done to see if your hunch was correct.  :-)
05:24 sorear because the niecza compiler is perl6, it needs to be compiled using an older version of niecza
05:24 sorear but niecza versions are tightly coupled to runtime versions, so the compiler process needs two runtime libraries loaded
05:25 sorear and both the compiler and the user code have independant settings with independant systems of types
05:25 sorear there are four places data can exist during compilation
05:25 sorear by moving to pure C# and eliminating the bootstrap, there will only be two places for data to exist
05:26 sorear which means less code dedicated to shuffling data around without doing meaningful operations on it
05:27 TimToady maybe if we designed a
05:28 TimToady VM that was specifically for Perl 6...oh wait...
05:28 bonsaikitten TimToady: maybe one could make it a bit more generic so it could run other bytecode-oriented things? :)
05:28 TimToady there's an idea
05:29 TimToady let's start with an object-oriented assembly language
05:29 TimToady what could possibly go wrong?  :D
05:34 xjiujiu joined #perl6
05:36 sorear meh, someone tried that already, didn't work well enough for my tastes
05:36 sorear :)
05:37 bonsaikitten TimToady: hmm, maybe an abstract assembler like MIX / MMIX ?
05:43 mattp_ joined #perl6
05:44 adu joined #perl6
05:46 tyatpi joined #perl6
05:47 takesako joined #perl6
05:50 kaleem joined #perl6
05:51 japhb sorear, ah yes, I believe I understand the problem.  It will be interesting to see how that attempted simplification turns out.
05:59 sorear it seems the largest proportion of the problems exist when compiling the setting, so I could also try eliminating the setting instead... that's less p6 code
06:00 replore_ joined #perl6
06:10 sorear The worst part of all of this is that I feel like a bad person for even entertaining the idea
06:13 brrt joined #perl6
06:24 jaldhar joined #perl6
06:24 benabik joined #perl6
06:39 japhb sorear, I understand the feeling, but I suspect the reality will be more nuanced: You're probably going to end up discovering all the ways that this is *not* as simplifying as it sounds.  Which I think will be really valuable data, both for other implementers and for possible tweaks to the language or setting.
06:40 wtw joined #perl6
06:41 masak morning, #perl6
06:41 phenny masak: 21 May 22:41Z <diakopter> tell masak see the r: LTA errors in irclogs
06:41 masak oki
06:41 * masak is still a few days back in the backlog
06:42 japhb o/
06:43 sorear masak!
06:48 masak \o/
06:50 tadzik \o/
06:54 cognominal joined #perl6
06:55 masak r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ] .= flip; .say
06:55 p6eval rakudo dca0fa: OUTPUT«===SORRY!===␤Missing assignment operator␤at /tmp/K3Mk8H1cgu:1␤»
06:55 masak aww :/
06:56 masak r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ].=flip; .say
06:56 p6eval rakudo dca0fa: OUTPUT«===SORRY!===␤Missing assignment operator␤at /tmp/S0_lmGNboZ:1␤»
06:56 masak r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ] = 'can haz'; .say
06:56 p6eval rakudo dca0fa: OUTPUT«I can hazcheezburger?␤»
06:56 masak oh!
06:56 masak r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ] = 'can haz '; .say
06:56 p6eval rakudo dca0fa: OUTPUT«I can haz cheezburger?␤»
06:56 masak r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+)>] = 'can haz'; .say
06:56 p6eval rakudo dca0fa: OUTPUT«I can haz cheezburger?␤»
06:57 sorear masak: s.=flip is not an actual Perl 6 feature, it only exists in niecza at the moment
06:57 masak something about assignment to s[] makes me inexplicably giddy.
06:57 masak sorear: you mean the spec doesn't actually state or imply that .= should work there?
06:58 sorear std: s[\W] .= perl
06:58 p6eval std 8632387: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'perl' used at line 1�Check failed�FAILED 00:00 42m�»
06:59 masak ooh http://tjs.azalayah.net/new.html
07:00 masak it's too visually similar to the compiler features table... but I like where this is going.
07:00 domidumont joined #perl6
07:04 jnthn morning, #perl6
07:04 moritz \o
07:04 xdbr joined #perl6
07:05 masak lol good moritz jnthn!
07:06 sorear o/ jnthn
07:12 erkan joined #perl6
07:12 erkan joined #perl6
07:12 dalek star: 067fc69 | moritz++ | skel/Configure.pl:
07:12 dalek star: forgot one version update
07:12 dalek star: review: https://github.com/rakudo/star/commit/067fc69f34
07:14 jnthn Q. How do you know a Star release is in progress? A. At least one "oops, I forgot to update this piece of duplicated information" commit flies by.
07:14 jnthn moritz++ for getting started on it :)
07:15 * jnthn really thinks we need something that takes a bit more of the manual work out of producing Star releases.
07:17 * masak looks for, but doesn't find, the "YA THINK" rage face
07:17 masak er, "YA THINK?"
07:28 sorear https://gist.github.com/2767337 I am now swapping
07:30 * sorear goads masak into asking probing questions.
07:30 masak don't feel dirty. cheating is technique. :)
07:31 masak I don't have any probing questions. I just think it's an interesting direction. might yield some advantages that we don't see right now.
07:36 sorear masak: yeah, I also think that since Rakudo is moving towards bootstrapping, Niecza moving away would help explore design space
07:39 masak exactly.
07:44 moritz "The setting is not compiled, it's all C# code: How will bounded serialization cope with version skew then?
07:44 moritz "
07:44 moritz which version skew?
07:46 moritz tadzik: is ufobuilder gone?
07:47 moritz seems like
07:47 dalek star: 9619c1b | moritz++ | skel/tools/build/Makefile.in:
07:47 dalek star: ufobuilder is gone
07:47 dalek star:
07:47 dalek star: do not try to install it anymore
07:47 dalek star: review: https://github.com/rakudo/star/commit/9619c1b2f9
07:50 Woodi hallo
07:52 masak Woodi! \o/
07:52 Woodi perl6 -v gives 'This is perl6 version 2012.04.1 built on parrot 4.3.0 revision 0'. Would be nice if it say 'Star' somewhere, at least it is helpful for me...
07:52 kaleem joined #perl6
07:52 masak huh. ufobuilder. the things people come up with... :)
07:53 [hds] joined #perl6
07:53 masak ufo is meant as a tool for developers. it's not for end users of a module.
07:53 moritz Woodi: I've opened https://github.com/rakudo/star/issues/7 for you
07:54 Woodi btw. backlogging yesterday evening makes me think we starting to be short on goals, clearly visible goals...
07:54 Woodi moritz: thanx :)
07:54 moritz I can't speak for everybody, but I have very clear goals
07:55 masak well, depends what you mean.
07:55 Woodi masak: ufo is realy usable, simple and clean to use tool...
07:55 masak it could be argued that at some point, we should do a similar kind of thrust and goal-picking as with Star in 2009.
07:56 sorear btw, tomorrow I'm going to draft a letter to Mark Overmeer, if noone beats me to it
07:56 masak ++sorear
07:56 moritz sorear: on what topic?
07:57 masak Woodi: heh! ufo is bloated with featuritis and probably does about twice of what it should :)
07:57 moritz ... except for the really interesting things :(
07:57 sorear moritz: having cpan6.org redirect to modules.perl.org or something else
07:57 Woodi but gets works done in few secs :)
07:57 moritz in particular, it doesn't get dependencies right
07:57 masak moritz: intra-module dependencies?
07:58 moritz masak: yes
07:58 masak do you have a concrete example?
07:58 moritz in JSON::Tiny, when I edit Grammar.pm, Tiny.pm doesn't get recompiled on 'make test''
07:59 moritz though now that I think of it, my Makefile might be old. Lemme re-check
07:59 Woodi btw. my problems on segfaulting with blib/* on OpenBSD gone now and I think it probably was too long patch for gmake or something...
08:00 sorear I have been informed by a friend of mine (who is possibly going to try to hire me next week) that cpan6.org and Overmeer is currently one of the loudest voices visible from outside the p6-bubble, and is sending an unintentionally negative message
08:01 moritz that's interesting to hear
08:01 masak yes, very.
08:05 sorear gist updated with some new thoughts
08:06 cognominal joined #perl6
08:13 sorear another thought which is crossing my mind is, how feasible would it be to eliminate the C# globals like Kernel.IntMO and force all boxing to go through something less direct?
08:14 fhelmberger joined #perl6
08:15 sorear towards the question of "how little hell can break loose if two COREs are allowed to coexist in a compartment?"
08:15 sorear eh. sleep&
08:18 masak 'night, sorear.
08:18 masak dream of heading in yet-untried directions.
08:24 NamelessTee joined #perl6
08:30 kresike joined #perl6
08:30 kresike hello all you happy people !
08:36 masak kresike! \o/
08:36 kresike masak, o/
08:38 dakkar joined #perl6
08:45 jrockway joined #perl6
08:48 daxim joined #perl6
08:48 tadzik moritz: yes, I removed it
08:49 tadzik masak: ufobuilder was a PoC Pies implementation
08:53 masak ok.
08:53 brrt joined #perl6
08:56 NamelessTee joined #perl6
08:57 * masak is finally backlogged
08:57 masak next time I'm away, I'd appreciate it if everyone refrained from speaking so much. :P
09:08 * masak .oO( was it something I said...? )
09:09 kresike masak, you either sleep less, or put a borg implant in your head and be here while sleeping :)
09:11 masak that sounds fantastic.
09:12 * kresike .oO( when does this masak character find time to write books about perl6 if he's online and working on developing it all the time ? )
09:12 ab5tract joined #perl6
09:14 masak metaphors related to time are odd. you neither "have time" or "find time". it keeps flowing through you, like a stream-based database, or the twitter firehose.
09:14 masak the only thing you can do is "seize the day". :)
09:16 kresike One whole day ? That's a lot of time ...
09:16 kresike Can't you "seize" say an hour or just a few minutes ?
09:18 masak you can seize any free contiguous period of time for any purpose.
09:19 masak I hope everyone has seen http://rjbs.manxome.org/rubric/entry/1959 -- HN thread: http://news.ycombinator.com/item?id=4006150
09:23 moritz rjbs++
09:42 Woodi can someone blog about latest Star ? there are things I have _no_idea_ how to sort them :) my list: lib.pm, roundrobin, how to use tag names, use with positional, why Real must be role, version literals. or maybe 2 blogs ? :)
09:43 masak sounds worthwhile.
09:44 masak sounds like something we should do on a regular basis, actually.
09:45 moritz fwiw I've can't remeber ever needing roundrobin
09:45 moritz I simply implemented it because it's in the specs and in the tests
09:54 cognominal joined #perl6
09:54 masak roundrobin sounds a bit like "oh, but someone might want *this* semantics that we didn't put into infix:<Z>" -- "who, exactly?" -- *waves hands*
09:55 moritz aye
09:57 masak r: .say for roundrobin(1, 2, 3; 4, 5, 6)
09:57 p6eval rakudo dca0fa: OUTPUT«1␤4␤2␤5␤3␤6␤»
09:57 masak \o/
09:58 masak r: my @a = <a b c d e>; my @b = <f g>; .say for roundrobin(@a, @b)
09:58 p6eval rakudo dca0fa: OUTPUT«a␤f␤b␤g␤c␤d␤e␤»
09:58 moritz r: .say for roundroubin(<a b c>; <X Y>; 3, 4)
09:58 p6eval rakudo dca0fa: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&roundroubin' called (line 1)␤»
09:58 moritz r: .say for roundrobin(<a b c>; <X Y>; 3, 4)
09:58 p6eval rakudo dca0fa: OUTPUT«a␤X␤3␤b␤Y␤4␤c␤»
09:58 masak "Did you mean: &roundrobin" :P
10:00 dalek star: 15013ee | moritz++ | skel/docs/UsingPerl6-draft.pdf:
10:00 dalek star: update Using Perl 6 to 2012.05 snapshot
10:00 dalek star: review: https://github.com/rakudo/star/commit/15013eeb85
10:00 dalek star: 281ce87 | moritz++ | skel/docs/announce/2012.05:
10:00 dalek star: prepare release announcement
10:00 dalek star: review: https://github.com/rakudo/star/commit/281ce87416
10:00 moritz everybody, please review and improve the announcement
10:00 moritz and please do it *before* I release :-)
10:01 moritz RC tarball forthcoming soon
10:03 thou joined #perl6
10:05 felher moritz: basic support for Version literlas <--- should Version start upper case?
10:05 jnthn Version is a type name
10:05 jnthn So I guess so
10:05 jnthn I hope it's spent "literals" too ;)
10:06 * moritz hopes it's spelled "literals" too :-)
10:06 felher Yes, it is :)
10:07 masak I hope it's spelled "spelled", too ;)
10:07 jnthn :P
10:09 * moritz eats some spelled bread. Erm wait, spelt!
10:09 moritz better spelt than spoiled
10:09 sjn what typo f bread is that? :)
10:11 moritz r: sub typo-f($x) { $x.WHAT.gist }; class Spelt is Str { }; my $x = nqp::box_s('bread', Spelt); say typo-f($x)
10:11 p6eval rakudo dca0fa: OUTPUT«Spelt()␤»
10:13 sjn itym "It's a correctly Spelt bread" :)
10:13 moritz r: sub typo-f($x) { $x.WHAT.gist }; class Spelt is Str { }; my $x = Spelt('bread'); say typo-f($x)
10:13 p6eval rakudo dca0fa: OUTPUT«No such method 'Spelt' for invocant of type 'Str'␤  in <anon> at src/gen/BOOTSTRAP.pm:799␤  in any <anon> at src/gen/BOOTSTRAP.pm:796␤  in block <anon> at /tmp/TfQKJis3Q_:1␤␤»
10:13 sjn (or alternatively, my jokes are too convoluted :-P)
10:14 masak sjn: like pretzels.
10:15 moritz somehow it always hurts my eyes to see the word "pretzels"
10:15 moritz because I come from a region where people regularly confuse and interchange 'b' and 'p', but always pronounce it as 'b'
10:15 moritz and it's spelled with a 'B' in German :-)
10:17 lestrrat joined #perl6
10:18 masak arguably "b" makes more sense than "p".
10:18 moritz at least the capital B :-)
10:20 bonsaikitten joined #perl6
10:24 drbean joined #perl6
10:27 tests joined #perl6
10:48 tadzik could someone install znc on feather?
10:55 * jnthn -> station
11:07 drbean joined #perl6
11:13 tyatpi joined #perl6
11:16 dalek tablets: 84339ac | raiph++ | docs/appendix-b-grouped.txt:
11:16 dalek tablets: Rename Callframe Methods section to Callframes. Fill out Callframes section.
11:16 dalek tablets: review: https://github.com/perl6/tablets/commit/84339ac170
11:16 dalek tablets: f2a093d | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
11:16 dalek tablets: Merge pull request #10 from raiph/patch-1
11:16 dalek tablets:
11:16 dalek tablets: Rename Callframe Methods section to Callframes and fill out section. raiph++
11:16 dalek tablets: review: https://github.com/perl6/tablets/commit/f2a093d7c7
11:18 MayDaniel joined #perl6
11:19 JimmyZ joined #perl6
11:39 snearch joined #perl6
11:47 [hds] r: my %h; %h<mog>.defined;
11:47 p6eval rakudo dca0fa:  ( no output )
11:48 moritz [hds]: you need to produce output, with say() or print() or so
11:48 [hds] moritz: yep, forgot that bit. (-;
11:48 [hds] but is that the correct way to check if a key has been assigned a value?
11:48 moritz well
11:48 [hds] r: my %h; say %h<mog>.defined;
11:48 p6eval rakudo dca0fa: OUTPUT«False␤»
11:49 moritz r: my %h; %h<mog> = Int; say %h<mog>.defined
11:49 p6eval rakudo dca0fa: OUTPUT«False␤»
11:49 moritz I've assigned a value, but it's not defined
11:49 [hds] hmmmmm, right.
11:49 moritz if you're not happy with that output, use
11:49 moritz r: my %h; %h<mog> = Int; say %h.exists('mog')
11:49 p6eval rakudo dca0fa: OUTPUT«True␤»
11:49 [hds] moritz: is there a better way of doing that?
11:49 moritz according to spec, that should be  %h<mog>:exists;
11:50 moritz but rakudo doesn't implement that part yet :(
11:50 [hds] r: my %h; %h<mog> = []; say %h<mog>.defined;
11:50 p6eval rakudo dca0fa: OUTPUT«True␤»
11:50 [hds] that's good enough for me. (-:
11:51 masak well, something can be undefined but still exist as a key.
11:51 masak undefined as a value but still exist as a key, I should say.
11:58 benabik joined #perl6
12:02 moritz r: my %h; %h<mog>.push: 1; say %h.perl
12:02 p6eval rakudo dca0fa: OUTPUT«("mog" => [1]).hash␤»
12:03 bluescreen10 joined #perl6
12:03 masak r: say now
12:03 p6eval rakudo dca0fa: OUTPUT«Instant:1337688247.873362␤»
12:03 masak r: say now R- now
12:03 p6eval rakudo dca0fa: OUTPUT«0.02538074␤»
12:04 masak r: my $t = now; my @a; push @a, $_ for 1..100; say now - $t
12:04 p6eval rakudo dca0fa: OUTPUT«0.0763741␤»
12:04 brrt joined #perl6
12:04 masak r: my $t = now; my %h; %h{$_} = $_ for 1..100; say now - $t
12:04 p6eval rakudo dca0fa: OUTPUT«0.0292684␤»
12:05 masak use hashes for all your array needs. they're faster. :P
12:05 moritz r: my $t = now; my @a; loop (my $i = i; $i <= 100; $i++) { @a.push: $i }; say now - $t
12:05 p6eval rakudo dca0fa: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \$v, Mu *%_)␤␤  in method Real at src/gen/CORE.setting:674␤  in sub infix:<<=> at src/gen/CORE.setting:2437␤  in sub infix:<<=> at src/gen/CORE.setting:2437␤  in block <anon> at /tmp/4t5wMHgLOr:1␤␤»…
12:06 moritz erm, what?
12:06 * masak submits rakuodbug
12:06 pmichaud good morning, #perl6
12:06 phenny pmichaud: 21 May 18:33Z <jnthn> tell pmichaud 56d136a takes a crack at extending LTM transitivity into protoregexes. It adds time to build the NFA (a good bit for term), but OTOH seems that we trim a load more early. We'd probably do better if <ident> got an NFA - suggestions?
12:06 masak moritz: oh!
12:06 masak moritz: my $i = i
12:06 moritz oh.
12:06 moritz r: my $t = now; my @a; loop (my $i = 1; $i <= 100; $i++) { @a.push: $i }; say now - $t
12:06 p6eval rakudo dca0fa: OUTPUT«0.05333191␤»
12:06 moritz masak++
12:07 moritz \o pmichaud
12:07 masak right. hashes are still faster, but some of the speed penalty is from the for loop.
12:07 masak pmichaud! \o/
12:07 moritz Rakudo Star release candidate at http://moritz.faui2k3.org/tmp/rakudo-star-2012.05.tar.gz
12:08 masak moritz++
12:10 pmichaud phenny: tell timtoady how strongly do you feel about RT #113026 (http://irclog.perlgeek.de/perl6/2012-05-21#i_5619358).  I thought about it some overnight, and auto-detecting modifications to the array during iteration seems contrary to immutable iterators.
12:10 phenny pmichaud: I'll pass that on when timtoady is around.
12:10 cognominal joined #perl6
12:14 JimmyZ_ joined #perl6
12:15 cognominal joined #perl6
12:15 felher Rakudo iterators are immutable? How does that work? Instead of asking a iterator to increment its position, i ask for a new iterator which has a higher position?
12:16 moritz well, they are immutable in the sense that whenever you ask for an iterator, you'll get an iterator that will return the same elements each time
12:16 moritz it doesn't mean they are actual value types that never change internally
12:17 masak right. "immutability as far as you are concerned" might be a more exact description. ;)
12:17 felher Ah, makes sense :) thnx
12:17 pmichaud the case I'm wondering about it something like
12:18 * moritz remebers "that" session in Oslo :-)
12:18 pmichaud r: my @a = <a b c d e f>;   for @a { @a[9] = 'j'; .say };
12:18 p6eval rakudo dca0fa: OUTPUT«a␤b␤c␤d␤e␤f␤»
12:19 pmichaud the only way the 'for' iterator can learn about the 'j' is if it first passes through the 'lazy' part of the array somehow.
12:20 moritz more indirection, even slower?
12:20 brrt joined #perl6
12:20 xinming_ joined #perl6
12:20 pmichaud essentially, yes.
12:21 * masak smiles happily at the output of 'panda list'
12:21 pmichaud in some sense it would mean that arrays and lists never are truly "fully generated", if there's always the possibility that pushing elements needs to affect existing iterators.
12:22 pmichaud anyway, afk for a bit -- @kids to @school
12:22 masak pmichaud, moritz: ISTR a p6l thread from years back where it was basically decided that for loops did a snapshot and looped on that.
12:22 masak I don't trust my search-fu enough to find that thread again, sadly.
12:22 moritz lol, p6l :-)
12:28 masak moritz: the RC seems to work well here.
12:29 moritz masak: great. Any obvious mistakes in the announcement?
12:29 moritz masak++ # testing the RC
12:33 fglock joined #perl6
12:33 masak moritz: release announcement looks good.
12:33 moritz \o/
12:33 moritz I'll wait a bit before releasing, to give others the option to test it too
12:34 drbean joined #perl6
12:34 masak not sure outsiders care about 'ported from ng branch', but I don't see how it hurts either.
12:36 eiro joined #perl6
12:36 eiro hello world!
12:37 masak eiro! \o/
12:37 kresike hi eiro
12:38 kresike did you use perl6 to write that ? :)
12:38 masak r: say "hello world!"
12:38 p6eval rakudo dca0fa: OUTPUT«hello world!␤»
12:39 kresike masak, eiro's version was much cleaner :)
12:39 * masak is delighted at p6eval's response time nowadays
12:42 moritz jnthn++ is largly to blame for that
12:43 masak I'll be happy to blame jnthn++ for ever worse atrocities in the future.
12:45 adu joined #perl6
12:45 dalek tablets: 22a6721 | (Herbert Breunung)++ | docs/ (3 files):
12:45 dalek tablets: explain, link and pave way for the ternary operator
12:45 dalek tablets: review: https://github.com/perl6/tablets/commit/22a67216fe
12:47 felher Yeah. I'm starting to use nom in little every-day-scripts, because i don't have to wait 15 seconds everytime i hit <CR> anymore. That's just amazing :)
12:48 masak it's a force multiplier.
12:52 masak so is getting features well-documented, error messages clear, and implementations available on various Linux distros.
12:52 moritz aye.
12:52 felher :)
12:52 moritz Currently I think that our really, really weak spot is documentation
12:53 moritz we have progressed in most other areas (compiler features, resource usage, error messages, module system)
12:53 masak I think you're right.
12:53 [Coke] +# 05/21/2012 - rakudo++ (22246); niecza (91.54%); pugs (34.81%)
12:53 [Coke] (slight drop by niecza, more failures)
12:53 masak moritz: I'd like to arrange a hackathon where we fix this.
12:54 masak moritz: one weekend of focused hacking by ~5 people should work in getting something significant in place.
12:54 moritz masak: count me in (modulo time/travel costs, as always)
12:54 masak and meeting up might combat the extreme thanklessness of working on documentation solo.
12:55 * masak dubs this future hackathon "the u4x hackathon", just because :)
12:55 moritz I remember working on the book when I didn't feel like the only one. It was great
12:55 masak moritz: part of the reason I'm not working on the book is that it's non-trivial to build.
12:55 masak the bar is higher than it need be.
12:56 moritz masak: the HTML version is trivial to build
12:56 masak ok.
12:56 masak good to know.
12:56 moritz 'make html'
12:56 moritz works without the whole latex craziness
12:57 masak excellent.
12:58 moritz it might currently miss the pictures, but iirc we only have one or two anyway
13:00 Juerd 14:56 < moritz> works without the whole latex craziness
13:00 PerlJam moritz: FYI, the book is bubbling up my list of things to do.  As crazy as it sounds, I'm hoping (again) we can generate something "publishable" this year   :-)
13:00 * Juerd grins
13:01 moritz Juerd: I'm not refering to merely needing latex and one, two packages
13:01 Juerd Two packages. Oh my.
13:03 moritz "not [...] merely"
13:03 masak referring # unless you're RFC 1945 :)
13:04 PacoAir joined #perl6
13:04 * moritz is later than 1945 :-)
13:04 cognominal joined #perl6
13:04 masak so you should get it right :P
13:04 * masak .oO( keep up! )
13:04 masak :P
13:06 Juerd We'll be stuck with "Referer" for ever.
13:06 leprevost joined #perl6
13:07 bluescreen10 joined #perl6
13:07 Psyche^ joined #perl6
13:08 moritz and, what was it, something_CREAT
13:08 masak creat(2)
13:08 masak http://linux.die.net/man/2/creat
13:08 moritz O_CREAT, O_EXCL, O_TRUNC  in man 2 open
13:09 masak well, software engineering has expanded in the past few decades into a space where identifiers can breathe properly.
13:10 moritz afaict in rakudo we still look up variables by name quite a bit
13:10 moritz so your programs actually do use less resources if you use short variable names :-)
13:10 masak pfeh.
13:10 felher *lol*
13:10 masak in other news, if you take shallower breaths, the air will last longer.
13:11 masak recommended practice is to hyperventilate really rapidly.
13:11 moritz I wonder if that one is actually true
13:11 stol_ joined #perl6
13:11 moritz (the shallower breathing, not the hyperventilating)
13:12 masak I have no idea.
13:13 masak if it helps for the analogy, take something that's obviously true: toothpaste, even when used once, works even the day after. so you can save it in a small cup and save some resources!
13:14 masak only need to buy half as much toothpaste.
13:14 moritz well, I never said it's a good idea to use short variables, or that the savings are big :-)
13:14 masak I know, I know.
13:14 masak :)
13:45 brrt moritz: thats probably not true (about the shallower breaths)
13:46 masak indeed. feels like hyperventilating would use up oxygen faster, not slower.
13:46 moritz brrt: yes, I guess the body just takes what oxygen it needs. If it can't, you'll become unconscious pretty quickly
13:46 brrt supposing you still breathe enough for normal metabolism, you'll simply exhale relatively more co2
13:47 brrt hyperventilating makes you dizzy because it makes the blood less acidic
13:47 brrt not much to do with o2, a lot with co2
13:48 brrt anyway, rant off :-)
13:48 masak interesting.
13:49 cognominal_ joined #perl6
13:49 masak I was once told that air in a room with people and no ventilation feels "used up" not because the o2 runs out, but because it becomes somewhat saturated with co2.
13:49 moritz yes, c02 becomes poisonous for the human body much faster than the O2 reduction becomes threatening
13:50 benabik Your body has basically no way to measure oxygen...  It kinda guesses based on CO2 levels.
13:51 benabik You learn a lot about gas exchange and the like when you do SCUBA.
13:51 moritz it has to do with the bindinig affinity of Hemoglobin to O2 and C02
13:51 moritz and because CO has such a high affinity, it's toxic
13:51 cognominal_ p6: 'a' ~~ /a/; say ~$/.WHAT
13:51 p6eval rakudo dca0fa: OUTPUT«use of uninitialized value of type Match in string context  in block <anon> at /tmp/gWZAhVgVyY:1␤␤␤»
13:51 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
13:51 p6eval ..niecza v17-23-gfb775fb: OUTPUT«␤»
13:52 moritz rakudo++
13:52 moritz niecza++ has the same result, but without warning. Odd
13:53 cognominal_ p6: 'a' ~~ /a/; say $/.WHAT
13:53 p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
13:53 p6eval ..rakudo dca0fa, niecza v17-23-gfb775fb: OUTPUT«Match()␤»
13:53 n0den1te joined #perl6
13:54 cognominal_ I am always confused with the string value of a type.  :(
13:55 moritz cognominal_: (nearly) all types stringify to the empty string
13:55 n0den1te r: say ~Int
13:55 p6eval rakudo dca0fa: OUTPUT«use of uninitialized value of type Int in string context  in block <anon> at /tmp/hcgEyuGIO4:1␤␤␤»
13:55 moritz and warn
13:55 moritz just like undef in p5
13:55 benabik left #perl6
13:55 cognominal_ yes, but I keep forgetting it.
13:55 benabik joined #perl6
13:55 n0den1te r: Int.perl.say
13:55 p6eval rakudo dca0fa: OUTPUT«Int␤»
13:55 drbean joined #perl6
13:55 n0den1te "~" doesn't stringify?
13:56 masak n0den1te: it does.
13:56 masak n0den1te: but you get a warning when you try to do it on a type object, which was what cognominal_ did.
13:56 n0den1te masak: so should MyType.perl.say
13:57 moritz r: say Int.^name
13:57 p6eval rakudo dca0fa: OUTPUT«Int␤»
13:57 n0den1te masak: I may be wrong, but that one looks inconsistent to me.
13:57 * masak reads about redox reactions, and wishes he could go back in time a few centuries and explain these things to an alchemist
13:57 n0den1te masak: redox? macros? :D
13:57 moritz masak: that and the periodic table :-)
13:57 leprevost joined #perl6
13:57 n0den1te Yeah, you're *that* guy.
13:57 masak n0den1te: .perl and stringification aren't the same thing.
13:57 masak n0den1te: :P
13:57 cognominal_ I would prefer it to return  Int:U  for example
13:58 moritz but Int !~~ Int:U
13:58 benabik left #perl6
13:58 benabik joined #perl6
13:58 brrt backlog: the whole 'poisonous' thing of CO2 is because it forms the blood acid-base buffer system
13:58 brrt and proteins are rather sensitive to acidity
13:58 cognominal_ I meant "Int:U"
13:59 moritz cognominal_: but where would that be useful?
13:59 n0den1te brrt: if you're talking of enzymes as proteins, then yeah - but then, I'm no biochemist. :P
14:00 cognominal_ r:  say Int ~~ Int:U
14:00 p6eval rakudo dca0fa: OUTPUT«True␤»
14:00 masak r: say Int:U ~~ Int:D
14:00 p6eval rakudo dca0fa: OUTPUT«True␤»
14:00 masak r: say Int:D ~~ Int:U
14:00 p6eval rakudo dca0fa: OUTPUT«True␤»
14:00 brrt all proteins :-) because the charge on amino acids depends on the acidity of the enviroment, and protein folding depends on the charges of amino acids
14:00 masak the smilies are probably transparent to smartmatching.
14:00 moritz cognominal_: we have the .Str/.gist distinction precisely because we want something (.gist) that returns more debugging info, and something (.Str) that doesn't clutter up our strings
14:01 moritz masak: they are simply ignored anywhere except in signatures
14:01 moritz known limitation
14:01 dalek tablets: 4e3f84c | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
14:01 dalek tablets: linkfixes in nav menu
14:01 dalek tablets: review: https://github.com/perl6/tablets/commit/4e3f84cfd3
14:01 moritz r: my Int:D $x = Int;
14:01 p6eval rakudo dca0fa:  ( no output )
14:01 masak moritz: ok.
14:02 n0den1te we are dying a slow death because we got degenerate enzyme reactions. :)
14:02 cognominal_ I know there is a rational and that I keep forgetting it.
14:02 brrt n0den1te: thats one way to see it
14:03 dalek tablets: 26cc707 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
14:03 dalek tablets: format fix in ternary entry
14:03 dalek tablets: review: https://github.com/perl6/tablets/commit/26cc70751a
14:04 lestrrat joined #perl6
14:04 cognominal_ ...probably because it makes me unconfortable.
14:05 masak isBEKaml: I'm not sure that's entirely fair to enzymes. :) most of the reactions keep us alive for years and years.
14:06 isBEKaml masak: sure, yeah. Just tell them to reuse all that wasted energy in reactions! :P
14:07 masak enzymes are often extremely energy-efficient at what they do. Nature has had billions of years traversing configuration spaces.
14:07 cognominal_ speaking of RNA and proteins, I am reading  Koonin, E. V. 2011. The Logic of Chance: The Nature and Origin of Biological Evolution.
14:08 masak cognominal_: looks interesting.
14:09 isBEKaml masak: I can see that coming from atleast 2 sources I read. One was the big encyclopedia of a book for biotechnologists (don't remember the name) and the other from Dawkins. :) Not to take anything away from you, ofcourse.
14:09 cognominal_ avoid the kindle version.
14:10 cognominal_ I lack physical space and I keep being burnt buying kindle. :(
14:10 cognominal_ Even displayed on a iPad, it is shit.
14:12 isBEKaml cognominal_: sure looks interesting. I vaguely remember sifting through pages in a bookstore...
14:14 isBEKaml .oO(Where did enzymes get into #perl6? )
14:14 moritz through breathing, I believe :-)
14:14 cognominal_ genomics is (so far) an epic failure as helping fighting disease but it is great to understand evolution.
14:14 moritz we do breathe while hacking
14:14 masak they've been here for years! o.O
14:15 masak cognominal_: how is it an epic failure? (not challenging this, just curious)
14:15 isBEKaml bah, #perl6 is all 1 and 0s
14:15 moritz cognominal_: is it? (genomics being an epic failure fighting diseases)
14:16 moritz cognominal_: got any more material about that?
14:16 isBEKaml moritz: I think he's referring to the whole genome sequencing exercise than the attempt to tackle diseases.
14:16 moritz cognominal_: I kinda thought that it helped a lot, albeit indirectly (ie helped understanding some biochemstry, which then in turn lead to better medication)
14:17 isBEKaml moritz: not that genome sequencing has been a failure, it's just too complex to be tackled by a select group of people, even as they are competent at what they do.
14:17 lestrrat joined #perl6
14:18 moritz I know that some people said things along the lines of "once we got the human genome sequenced, we can just identify all diseases and engineer medications for them"
14:18 brrt i kind of agree with the genomics statement
14:18 cognominal_ moritz: that's the point. It has been sold as solving problems when it is just a precondition to solve them.
14:18 brrt people in the 90s believed that if they knew the whole genome they would know all diseases
14:18 moritz cognominal_: ok, that I can readily agree with
14:18 adu hi
14:18 cognominal_ I am searching a Craig Venter quote about that.
14:18 brrt moritz beat me too it
14:19 masak hi adu!
14:19 moritz hello adu
14:19 adu :)
14:19 adu moritz: SMOE
14:19 masak yeah, just reading out the base pairs doesn't cure desease. I agree too :)
14:19 moritz people also believed some crazy stuff about Perl 6 solving all their computing problems :-)
14:20 isBEKaml *lol*
14:20 moritz adu: SMOE?
14:20 masak what, you mean it won't!?
14:20 cognominal_ Also, we have discovered we need to understand the proteome of stuff living in our guts as well to do any progress to understand human biology. That enlarges the problem space a lot.
14:20 adu Simple Matter of Engineering
14:20 masak I've spend all this time on Perl 6, and now you're telling me it won't even solve the Halting Problem?
14:20 moritz adu: ah, right. :-)
14:21 moritz masak: it might give you the proverbial shotgun :-)
14:21 kresike moritz, perl5 already did that :o)
14:21 * masak .oO( Perl 6 gives you enough shotguns to hang yourself )
14:22 moritz I'm kinda fond of that quote (don't know the exact words, or who uttered it): if Perl 5 gives you a swiss army chain saw, perl 6 gives you the swiss army
14:22 kresike masak, now the problem is tying them together
14:22 adu cognominal_: guts are complicated
14:22 isBEKaml masak: Perl6 gives you enough needles to pierce yourself with. It's just that you won't feel anything until you die. :P
14:22 adu moritz: I said that
14:22 moritz adu: you did? adu++
14:23 moritz #perl6: resolving questions about quotes by having the original author present :-)
14:23 adu but I think my exactish words were: if Perl5 is a swiss army knife, then is Perl6 the entire swiss army?
14:25 adu irc logs might also help
14:25 moritz yes; *handwave*
14:25 isBEKaml adu: moritz++ set up these irclogs. :)
14:25 masak moritz++
14:26 adu moritz++
14:26 isBEKaml moritz: selective amnesia? ;)
14:26 cognominal_ moritz++
14:26 adu isBEKaml: is that the lazy version of shooting yourself in the foot?
14:26 moritz isBEKaml: what? did we talk about anything earlier?
14:27 isBEKaml adu: that's what I was alluding to. glad you caught it. :D
14:27 isBEKaml moritz: no, you forgot about irclogs. :P
14:27 moritz I did? :-)
14:29 buubot_backup joined #perl6
14:29 cognominal_ moritz: reading stuff like http://www.spiegel.de/international/world/0,1518,709174,00.html, it seems that genomics will help design synthetic cells to replace huge factories we currenly used to produce many molecules.
14:30 masak isBEKaml: I thought moritz was referring to his irclog when he said "*handwave*" above.
14:31 * moritz was
14:32 isBEKaml masak: late realisation, yeah.
14:34 isBEKaml cognominal_: what's APoE?
14:38 * adu makes coffee
14:39 isBEKaml cognominal_: never mind. found it. Apoliprotein E, apparently - Wiki says it's the gene that's mostly the main culprit behind brain/neural diseases like Alzheimer's.
14:40 masak isBEKaml: "Wiki" is not an unambiguous shortening of "Wikipedia". there are thousands of wikis in the world, of which Wikipedia is but a very important one.
14:41 masak I've seen people use "wp" as a short form.
14:41 cognominal_ I say wp as a short for wikipedia
14:41 isBEKaml masak: yes, lazy fingers. too much typing all day. :(
14:43 * masak finds WikiPathways: http://www.wikipathways.org/index.php/Pathway:WP430
14:51 PerlJam wp == wordpress for me :)
14:51 moritz wordpedia :-)
14:55 slavik1 joined #perl6
14:56 adu karma adu
14:56 aloha adu has karma of 5.
14:57 adu yey
15:01 masak \o/
15:01 masak courtesy of the entire swiss army. :)
15:02 adu I noticed that commit messages have username increments
15:02 moritz yes
15:02 moritz give us patches, get karma in return :-)
15:02 adu maybe I should contribute something :)
15:02 mikemol joined #perl6
15:03 masak commits are a tolerated way to subvert the karma system :)
15:04 * TimToady superverts the karma system :)
15:04 phenny TimToady: 12:10Z <pmichaud> tell TimToady how strongly do you feel about RT #113026 (http://irclog.perlgeek.de/perl6/2012-05-21#i_5619358).  I thought about it some overnight, and auto-detecting modifications to the array during iteration seems contrary to immutable iterators.
15:30 derrazo joined #perl6
15:30 derrazo left #perl6
15:34 TimToady phenny: tell pmichaud I feel pretty strongly, but I think I don't want as much as you guys think I want. You can read a file that is growing, and it only matters when you hit the current end, no the end when you started.  Buffering is fine, snapshotting existing elements is fine.  Just go back and see if it has grown when you hit the end.
15:34 phenny TimToady: I'll pass that on when pmichaud is around.
15:36 sisar joined #perl6
15:38 TimToady phenny: tell pmichaud It's only one extra check for any array that hasn't grown.  Arrays and lists can both be defined lazily; the issue isn't immutability here, but policy toward changing your mind; the API disallows it with a list, but changing existing elements of an iterating array is merely erroneous.
15:38 phenny TimToady: I'll pass that on when pmichaud is around.
15:39 kaleem joined #perl6
15:43 fgomez joined #perl6
15:44 thou joined #perl6
15:47 Woodi :wq
15:47 * hugme hugs Woodi, good vi(m) user!
15:48 TimToady phenny: tell pmichaud I think this is an area where a tagmemic "you can use an array as a list" is warranted; it's a relatively cheap check; it enables a bit more cargo-cult learning (a Perl feature, you'll recall); and it preserves the abstract idea of the array's identity longer
15:48 phenny TimToady: I'll pass that on when pmichaud is around.
15:59 PerlJam TimToady: so, changing at the end is okay, but not in the middle?
16:00 sergot joined #perl6
16:00 sergot hi o/
16:00 SDKLive joined #perl6
16:00 kresike bye all
16:01 SDKLive hi all
16:01 masak hi, SDKLive
16:01 SDKLive i m new to perl
16:01 BinGOs joined #perl6
16:01 masak SDKLive: how do you like it so far?
16:01 masak SDKLive: are the perl people treating you well? are you getting the help and nourishment you require? :)
16:02 SDKLive came to perl irc for the first time
16:02 SDKLive it feels good
16:02 masak ooh!
16:03 masak r: say "welcome, SDKLive! »ö«"
16:03 p6eval rakudo dca0fa: OUTPUT«welcome, SDKLive! »ö«␤»
16:03 SDKLive so what is the best way to lern perl ?
16:03 masak a combination of reading stuff and trying stuff out, I would say.
16:03 masak be sure to check out http://learn.perl.org/
16:03 masak also http://www.onyxneon.com/books/modern_perl/index.html
16:03 SDKLive any good books with good examples you people recommend
16:04 masak and of course http://shop.oreilly.com/product/9780596004927.do
16:04 sisar SDKLive: just to be sure, you are aware of the difference between perl and perl6 ?
16:04 masak beyond that, it depends what you need.
16:05 SDKLive thx for the help
16:05 masak no problemo
16:05 SDKLive what perl 6 ?
16:05 masak hope you got what you came for.
16:05 masak Perl 6 is a branch of the very popular Perl language.
16:05 SDKLive what about perl 6 ? when its going come in action
16:05 masak whenever you run it on your computer. :)
16:05 masak r: say "here I am!"
16:05 p6eval rakudo dca0fa: OUTPUT«here I am!␤»
16:06 masak r: say [+] 1, 2, 3, 4
16:06 p6eval rakudo dca0fa: OUTPUT«10␤»
16:06 moritz (rakudo is the name of a Perl 6 compiler)
16:06 SDKLive hmm..
16:06 masak r: class Frog { method croak { say "croooaaak!" } }; Frog.new.croak
16:06 p6eval rakudo dca0fa: OUTPUT«croooaaak!␤»
16:06 sisar SDKLive: http://www.perl6.org/. And this channel is mainly for #perl6. Thogh we don't mind perl at all :)
16:07 sisar And you might also want to checkout #perl
16:07 masak at your own peril.
16:07 sisar masak: #perl is perilious ?
16:07 sorear good * #perl6
16:07 flussence .oO( it's perlious... )
16:07 masak sisar: opinions differ. I can't be there for long. too abrasive.
16:08 sisar sorear: p/
16:08 masak sorear! \o/
16:08 sisar *o/
16:08 sisar flussence: :)
16:08 * masak .oO( sisar waves and gets hit by a snowball )
16:08 * masak ==> le shoppe
16:09 SDKLive hey perl 6 got released or what?
16:09 PerlJam perl 6 was being held prisoner?
16:09 moritz SDKLive: we've had monthly releases for the last ~30 months
16:09 SDKLive ok
16:10 SDKLive that means its getting better monthly..
16:10 sisar SDKLive: it is incorrect to say perl6 has been released or not, it is more correct to say if a compiler has been released or not, since there are multiple compilers for perl6
16:11 sisar eg. rakudo, niecza, pelrito, pugs, etc.
16:11 SDKLive ok i didnt know about that
16:11 SDKLive every compiler will have different purpose
16:12 PerlJam .oO( I'll have 2 pelritos and a large Dr Pepper )
16:12 sisar SDKLive: http://perl6.org/compilers/ "Perl 6 is a language specification, and just like C or C++ there are multiple compilers for the language."
16:12 PerlJam SDKLive: I don't know about different purpose, but different focus.
16:13 SDKLive ok
16:13 PerlJam SDKLive: They all have a common purpose (implement Perl 6 spec), but each go about it in different ways.
16:13 SDKLive PerlJam: this is interesting
16:14 sisar SDKLive: so let me say this, welcome to #perl6 !
16:14 moritz it's like in politics. Everybody agrees that something must be done about unemployment, but not everybody agrees on the right approach :-)
16:15 SDKLive thank you for the welcome..
16:15 sisar .oO (this remind of that story about four men called Anybody, Somebody, Nobody and Everybody )
16:15 PerlJam moritz: right approach?!?  Give people jobs!  Problem solved!  ;)
16:17 moritz sisar: "Nobody spat in my face and Everybody laughed" -- that one? :-)
16:18 SDKLive thank you everybody for the support
16:18 SDKLive bye
16:18 sisar moritz: I was thinking about : http://www.corsinet.com/braincandy/hlife.html
16:19 SDKLive left #perl6
16:20 sisar "It ended up that Everybody blamed Somebody when Nobody did what Anybody could have done. "
16:23 lestrrat joined #perl6
16:24 cognominal joined #perl6
16:33 adu moritz: like the number
16:35 lichtkind joined #perl6
16:36 dalek tablets: e2203d0 | (Herbert Breunung)++ | docs/appendix- (2 files):
16:36 dalek tablets: ternary op made me think what belongs where, A <> G
16:36 dalek tablets: review: https://github.com/perl6/tablets/commit/e2203d00c4
16:36 dalek tablets: bbf5621 | (Herbert Breunung)++ | docs/appendix- (2 files):
16:36 dalek tablets: explain arity
16:36 dalek tablets: review: https://github.com/perl6/tablets/commit/bbf5621a41
16:38 itz joined #perl6
16:39 sorear [Coke]: ping
16:40 sorear [Coke]: lichtkind is here :)
16:47 adu moritz: http://www.shadowstats.com/alternate_data/unemployment-charts … people can't even agree on the number
16:50 PacoAir joined #perl6
16:54 thou_ joined #perl6
16:58 kaare_ joined #perl6
17:00 sporous joined #perl6
17:01 sorear adu: do not forget that moritz is Austrian; presumably they have better data there ;)
17:01 adu heh
17:01 adu SGS is U.S.
17:07 * moritz is not Austrian
17:08 adu moritz: European?
17:09 adu German?
17:10 icwiener joined #perl6
17:14 adu how would I go about writing a formatting tool?
17:15 moritz German, yes
17:15 adu like p6indent or p6fmt
17:15 moritz adu: that kinda depends on your goals
17:15 moritz adu: if you're fine with only formatting valid Perl 6, then I'd suggest you use one of the existing parsers to parse it
17:15 moritz adu: then get a parse tree from that, walk it recursively, and format it
17:16 adu my goals would be to parse some modifications to the language, like infix operators, and be somewhat configurable, like FilePackages=false
17:16 adu if FilePackages=true, then it would allow class X; but warn if FilePackages=false
17:17 adu kinda how c-indent has options
17:18 adu maybe have output options to, so class X; is rewritten as class X { … } with certain options enabled
17:18 adu or visa versa
17:19 lichtkind sorear: yes
17:20 adu I could call it vindent
17:22 wolfman2000 joined #perl6
17:25 adu joined #perl6
17:25 kresike joined #perl6
17:26 kresike hi all
17:26 lichtkind hai kresike
17:27 kresike hello lichtkind
17:35 dalek tablets: 6f6ceeb | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
17:35 dalek tablets: renaming table back to "callframe methods" because its about them and if you want rename it, fix backlinks from A too
17:35 dalek tablets: review: https://github.com/perl6/tablets/commit/6f6ceeb2ee
17:35 dalek tablets: 94eb17c | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
17:35 dalek tablets: add next 2 G terms
17:35 dalek tablets: review: https://github.com/perl6/tablets/commit/94eb17c334
17:35 dalek tablets: 2c4811e | (Herbert Breunung)++ | docs/appendix- (2 files):
17:35 dalek tablets: backlink arity and count
17:35 dalek tablets: review: https://github.com/perl6/tablets/commit/2c4811eb19
17:35 lichtkind kresike: can I help?
17:38 dalek tablets: 2a00cea | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
17:38 dalek tablets: having one syntax for "See also:" like in A
17:38 dalek tablets: review: https://github.com/perl6/tablets/commit/2a00cea2c0
17:46 tyatpi joined #perl6
17:51 kresike lichtkind, help with what ?
17:52 kresike could You somehow upload the perl6 book into my brain :)
17:54 cognominal joined #perl6
17:54 moritz cat UsingPerl6.pdf > /dev/brain
17:54 moritz :-)
17:55 kresike moritz, /dev/brain No such file or directory :)
17:55 moritz kresike: create one :-). mknod to the help
17:56 kresike hmmm, maybe I could ask the borg to implant me with a USB 3.0 port ...
17:56 sorear >> /dev/brain, rather?
17:56 kresike sorear, lol
17:56 kresike I guess the previous version wouldn't erase much important data ...
17:57 kresike my name maybe, or date of birth, but not much else
17:57 cognominal joined #perl6
17:58 stol_ joined #perl6
17:58 kresike moritz, useless, without a device behind it you cannot do anything with it
17:58 cognominal joined #perl6
17:58 kresike maybe ln -s /dev/null /dev/brain
18:00 kresike btw, is it considered rude for beginners like me to use p6eval ?
18:01 PerlJam kresike: nah, just don't over-use it (like some of the regulars tend to do even :)
18:01 PerlJam kresike: btw, you can also /msg it
18:02 kresike PerlJam, yes, I'm doing that ... I'm too shy :)
18:03 PerlJam kresike++
18:03 kresike I got the three implementations to give me three different outputs, I consider that a milestone :)
18:07 stepnem joined #perl6
18:09 kresike karma kresike
18:09 aloha kresike has karma of 1.
18:09 kresike weeee
18:09 moritz p6: say (1..200).pick
18:09 p6eval niecza v17-23-gfb775fb: OUTPUT«70␤»
18:09 p6eval ..rakudo dca0fa: OUTPUT«199␤»
18:09 p6eval ..pugs: OUTPUT«108␤»
18:10 moritz p6: say <good fast cheap>.pick(2); # a good ol' favorite
18:10 p6eval pugs: OUTPUT«fastgood␤»
18:10 p6eval ..rakudo dca0fa, niecza v17-23-gfb775fb: OUTPUT«cheap good␤»
18:10 kresike moritz, :)
18:11 kresike p6eval has a serious problem of split personalities
18:12 kresike it's harder to get the three implementations to give the same output then the other way around
18:20 adu kresike: 1 impl giving 3 outputs?
18:22 gfldex r: say 'output' xx 3;
18:22 p6eval rakudo dca0fa: OUTPUT«output output output␤»
18:23 gfldex that wasn't all that hard
18:25 kresike no comment :)
18:41 spider-mario joined #perl6
18:43 [particle]1 joined #perl6
18:48 pyrimidine joined #perl6
18:48 felher Say i have a class Vector. Can i declare an operator (say "+") within that class, so that "+" has direct access to the private attributes of instances of Vector, and still use it from the outside-world? Or do i have to make a method "add" and define "+" outside of the class and make it use that method?
18:48 PerlJam felher: no and no.
18:49 diakopter r: say 33 <== 44
18:49 p6eval rakudo dca0fa: OUTPUT«3344␤»
18:49 PerlJam (well, we could argue over the semantics of "direct access to the private attributes" a bit and make that first one "yes" :)
18:50 gfldex perl6 classes have no friends :(
18:50 PerlJam gfldex: that's not really true either.  They have "trust" relationships that are analogous to friends.
18:52 PerlJam gfldex: see S12:1389
18:52 felher PerlJam: The second "no" isn't related to "add a method and define an operator on the outside", is it? Because i don't see any problems with that? :)
18:53 PerlJam felher: The second "no" was more about "have to" than not :)
18:53 PerlJam TMTOWTDI after all
18:54 felher PerlJam: Ah, i see :)
18:54 felher PerlJam: thanks :)
18:54 felher PerlJam++
18:56 kresike PerlJam, what is the number 1389 in S12:1389 ?
18:57 PerlJam kresike: line number,  if you look at http://irclog.perlgeek.de/perl6/2012-05-22#i_5624307 you'll see that it's a link to the appropriate part of the synopsis
18:58 kresike PerlJam, thanks, I got the Synopsis chapter 12 part, just couldn't figure out the number.
19:02 dalek tablets: a9d1cb9 | (Herbert Breunung)++ | docs/appendix- (2 files):
19:02 dalek tablets: level up callframe emthods
19:02 dalek tablets: review: https://github.com/perl6/tablets/commit/a9d1cb9a82
19:09 thou joined #perl6
19:12 birdwindupbird joined #perl6
19:13 felher w
19:17 diakopter no one from #perl6 (except chromatic), afaict, commented on the Slashdot story yesterday that had tons of Perl6-related threads
19:18 PerlJam diakopter: URL?
19:18 diakopter http://developers.slashdot.org/story/12/05/21/2020223/perl-5160-released
19:18 diakopter lots of Perl 6 comments there
19:22 araujo joined #perl6
19:22 araujo joined #perl6
19:25 PerlJam I do not like the tenor of those perl6 comments.
19:25 havenn joined #perl6
19:27 zby_home joined #perl6
19:27 felher I forgot: how do i get a hash to not stringify its keys? And will that be the default one day?
19:28 colomon PerlJam: Wish I had time to explain on there how usable Perl 6 is right now...
19:28 havenn left #perl6
19:29 flussence felher: the syntax is "my X %hash{Y}", where X is the value type and Y is the key type. I think "Any" works there...
19:29 flussence r: my %hash{Any} = { 3/8 => 'bar' }; say %hash.perl;
19:29 p6eval rakudo dca0fa: OUTPUT«("0.375" => "bar").hash␤»
19:29 flussence maybe not...
19:29 thou_ joined #perl6
19:29 flussence r: my %hash{Str} = { 3/8 => 'bar' }; say %hash.perl;
19:29 p6eval rakudo dca0fa: OUTPUT«("0.375" => "bar").hash␤»
19:30 flussence r: my %hash{Num} = { 3/8 => 'bar' }; say %hash.perl;
19:30 p6eval rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Num but got Str instead␤  in method STORE_AT_KEY at src/gen/CORE.setting:6037␤  in block <anon> at src/gen/CORE.setting:5935␤  in block <anon> at /tmp/8jsk9nNeXV:1␤␤»
19:30 flussence r: my %hash{Num} = ( 3/8, 'bar' ); say %hash.perl;
19:30 p6eval rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Num but got Rat instead␤  in method STORE_AT_KEY at src/gen/CORE.setting:6037␤  in method STORE at src/gen/CORE.setting:5937␤  in block <anon> at /tmp/vU4lUrV3hl:1␤␤»
19:30 colomon r: my %hash{Rat} = { 3/8 => 'bar' }; say %hash.perl;
19:30 p6eval rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Rat but got Str instead␤  in method STORE_AT_KEY at src/gen/CORE.setting:6037␤  in block <anon> at src/gen/CORE.setting:5935␤  in block <anon> at /tmp/tNbx3f3zCh:1␤␤»
19:30 flussence oh, it was that => doing autoquoting
19:30 colomon oh
19:30 flussence r: my %hash{Num} = { (3/8) => 'bar' }; say %hash.perl;
19:30 colomon r: my %hash{Rat}; %hash{3/8} = "bar"; say %hash.perl;
19:30 p6eval rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Num but got Str instead␤  in method STORE_AT_KEY at src/gen/CORE.setting:6037␤  in block <anon> at src/gen/CORE.setting:5935␤  in block <anon> at /tmp/wDZNFu_uBT:1␤␤»
19:30 p6eval rakudo dca0fa: OUTPUT«(3/8 => "bar").hash␤»
19:31 flussence yep, colomon's is right
19:31 colomon ;)
19:31 felher thanks :)
19:32 colomon r: my %hash{Real}; %hash{3/8} = "bar"; say %hash.perl;
19:32 p6eval rakudo dca0fa: OUTPUT«(3/8 => "bar").hash␤»
19:32 colomon r: my %hash{Real}; %hash{3} = "bar"; say %hash.perl;
19:32 p6eval rakudo dca0fa: OUTPUT«(3 => "bar").hash␤»
19:33 colomon r: my %hash{Real}; %hash{3} = "bar"; say %hash.keys[0].WHAT
19:33 p6eval rakudo dca0fa: OUTPUT«Int()␤»
19:33 colomon r: say (3/8 => "bar").perl
19:33 p6eval rakudo dca0fa: OUTPUT«3/8 => "bar"␤»
19:33 colomon r: say (3/8 => "bar").key.WHAT
19:33 p6eval rakudo dca0fa: OUTPUT«Rat()␤»
19:34 flussence (I vaguely recall a conversation after key types were added mentioning Hash.perl was lacking...)
19:34 diakopter PerlJam: well, I think those comments are very representative of popular opinion/perception.
19:35 colomon sure, but popular opinion doesn't have a clue...
19:35 mikemol joined #perl6
19:36 diakopter I'm not sure I agree with that
19:37 colomon Well, let me put it like this: *I* am currently doing real world productive work using Perl 6.
19:38 diakopter the first negative-toned comment I see asserts that widespread adoption is a long ways off.
19:39 diakopter that one could be argued until it happens; no one really knows.
19:40 diakopter the next negative comment asserts that Perl 6's major failing is breaking backwards compatibility.
19:41 colomon Actually, as much as anything I'm complaining about chromatic here: "no implementation is anywhere close to practically useful."
19:41 diakopter however, it assumes that breaking backwards compatability also implies the lack of ability to use Perl 5 CPAN modules.  As pugs clearly demonstrated, that's not necessarily true.
19:43 moritz http://www.perlmonks.org/?node_id=971823
19:43 diakopter The next one says "I do want perl 6 -- I'm just not holding my breath for it to be usable very soon for real-world projects. ...  perl 6, which has been almost-usable-for-real-work for 5 years."
19:44 brrt joined #perl6
19:45 PerlJam moritz++
19:45 diakopter That's definitely debatable depending on your definition of real-world projects. If you need threads, you can't use rakudo. If you can't/won't use Mono or .NET (like chromatic), you can't use niecza.
19:46 flussence is he a "can't" or a "won't"? :)
19:46 diakopter won't
19:46 diakopter maybe can't too, I don't know
19:46 moritz he has license/patents concerns
19:47 moritz (as if parrot didn't infringe any patents...)
19:48 diakopter The next complains/asserts that Perl 6 is too big to ever complete.  This is certainly true by the definition of the full spec as written, as TimToady recently said on channel, but for a 1.0.0 release of the Synopses, it's not true, as that will happen sometime.
19:49 PerlJam I'm not sure that participating in such discussions is helpful nor do I believe rehashing them here is helpful.  I think "no one from #perl6 participating" was and is the right move.
19:49 diakopter The next asserts that multiple implementations cause confusion.  This is true, and unfortunate.
19:50 diakopter Why is it not helpful to rehash them here?  In order to respond to assertions/perception, analyzing them is required.
19:50 dalek panda: 7c2667a | (Carl Mäsak)++ | bin/panda:
19:50 dalek panda: [bin/panda] Make projects come out in alphabetical order
19:50 dalek panda: review: https://github.com/tadzik/panda/commit/7c2667a95d
19:50 dalek panda: 3cccd5d | tadzik++ | bin/panda:
19:50 dalek panda: Merge pull request #14 from masak/patch-1
19:50 dalek panda:
19:50 dalek panda: [bin/panda] Make projects come out in alphabetical order
19:50 dalek panda: review: https://github.com/tadzik/panda/commit/3cccd5dc60
19:52 diakopter chromatic complains that Rakudo wants VM-independence, implying that it's impossible for him to understand why.  What's wrong with the obvious explanation - independence from parrot?
19:52 PerlJam diakopter: perhaps I'm just tired.
19:53 PerlJam diakopter: chromatic doesn't see the need for "all the extra work" or something like that.
19:53 flussence random unrelated question - I found myself writing ":.method" the other day hoping it'd produce :method($_.method), but it doesn't. Is there any DRY-ish way to do that?
19:54 diakopter he doesn't think it's worth it. he thinks investing the effort in improving parrot would be time better spent.
19:56 pmurias joined #perl6
19:56 diakopter next, 3 refreshingly positive comments about Perl 6 from different folks.
19:56 pmurias diakopter: chromatic refuses to use a Perl6 on either the JVM or .NET
19:56 shinobicl joined #perl6
19:56 pmurias diakopter: so he doesn't see the point for VM independence
19:57 diakopter pmurias: that's a good point, too.
19:58 PerlJam flussence: I don't think so.
19:58 fibo joined #perl6
20:00 moritz flussence: I don't think so either, and so far I haven't had a use case for it
20:01 moritz flussence: usually if you want to call method .foo to fill a named parameter :foo, going through .capture and/or signature unpacking might (mind you, I said "might") be an option
20:01 diakopter the next comment says "Ultimate glue? That's why I'm interested in Perl 6. It's supposed to be able call C/C++ library functions directly. No more need for wrapper libraries, which is the majority of CPAN. No need for SWIG, which I find bloated." ... which makes me quizzical
20:03 pmurias diakopter: why quizzical?
20:03 diakopter the next comment is based on a misunderstanding about Perl 6 deprecating and supplanting perl.exe. Probably also a common misconception.
20:03 diakopter pmurias: I didn't realize such capability was a spec'd feature
20:04 pmurias diakopter: it's not
20:04 flussence bleh, messing with signatures is too complicated. I'll just do it the long way :)
20:04 felher diakopter++ #for doing the work and posting the interesting, perl6 related post here :)
20:04 diakopter pmurias: that's all I'm saying - that I didn't think it was spec'd, even if it's available on rakudo.
20:05 diakopter they said "supposed to", which I interpreted as "spec'd"
20:05 derrazo joined #perl6
20:06 diakopter the next assertion says in part "The '-e' of Perl 6 will probably stay so slow that it will not be as useful as Perl 5 as a simple tool for small tasks."
20:07 diakopter that remains to be seen, imho. It takes a lot of work to optimize that much.
20:07 moritz well, it'll be very hard to beat p5 at startup time
20:08 moritz python, ruby and php have a much larger startup time, which is a more realistic target
20:08 itz joined #perl6
20:09 cognominal p6: sub a($a, $b) { say "$a $b" } ; a(<a b> )
20:09 p6eval niecza v17-23-gfb775fb: OUTPUT«Unhandled exception: No value for parameter '$b' in 'a'␤  at /tmp/8XX2TxKLGK line 0 (a @ 1) ␤  at /tmp/8XX2TxKLGK line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3855 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3856 (mo…
20:09 p6eval ..pugs: OUTPUT«pugs: Extra space found after &a (...) -- did you mean &a(...) instead?␤»
20:09 p6eval ..rakudo dca0fa: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in sub a at /tmp/MJXZFtwPUd:1␤  in block <anon> at /tmp/MJXZFtwPUd:1␤␤»
20:10 cognominal r: say <a b>.WHAT
20:10 p6eval rakudo dca0fa: OUTPUT«Parcel()␤»
20:10 cognominal p6: sub a($a, $b) { say "$a $b" } ; a(|<a b> )
20:10 p6eval pugs: OUTPUT«*** ␤    Unexpected "<a"␤    at /tmp/VAOrIqk1_T line 1, column 36␤»
20:10 p6eval ..rakudo dca0fa, niecza v17-23-gfb775fb: OUTPUT«a b␤»
20:12 felher Strings are immutable, right? So "class C { has Str $.foo }" doesn't allow someone outside of the class to change anything about $.foo?
20:14 masak felher: right, but not for the reason you give.
20:14 masak felher: it's because you didn't make the attribute accessor 'is rw'.
20:14 sisar Trued to install LWP::Simple, but got: https://gist.github.com/2628829. When it say "Parse errors: No plan found in TAP output" what does it mean?
20:15 masak r: for my $/ ();
20:15 p6eval rakudo dca0fa: OUTPUT«===SORRY!===␤Contextual %*PARAM_INFO not found␤»
20:15 * masak submits LTA error diakopter++ rakudobug
20:15 masak r: for our $:: ();
20:15 p6eval rakudo dca0fa: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
20:15 * masak submits LTA error diakopter++ rakudobug
20:16 felher masak: well, yeah. Str needs to be immuteable and $.foo must not be 'is rw'. If Str isn't immutable there might be a function .convert-to-upper-case, which changes $.foo, even though $.foo isn't 'is rw' :)
20:16 geekosaur sisar, "Non-zero wait status: 139" means it segfaulted
20:17 geekosaur the other error actually follows from that since the test framework didn't get a chance to run and therefore didn't output the expected TAP-formatted information
20:17 sisar geekosaur: oh. How can I debug segfaults ?
20:17 geekosaur uhhhh
20:18 masak felher: troo. Str objects are immutable in that sense, yes. the only way to "change" a Str is to get a new one.
20:18 felher masak: great :)
20:19 felher thnx :)
20:19 masak pzh :)
20:19 masak phenny: en ru "please."?
20:19 phenny masak: "пожалуйста." (en to ru, translate.google.com)
20:20 masak пж :)
20:20 geekosaur anyone else want to comment on debugging rakudo segfault with panda?  (on an unspecified platform...)
20:20 sisar on Ubuntu
20:21 moritz one problem is that we kinda conflate containers and values
20:21 moritz when you write   sub inplace(Str $x is rw) { }
20:21 moritz then that can only bind to a scalar container containing a Str
20:21 moritz but we never mention that container in the signature
20:22 derrazo left #perl6
20:23 moritz or phrased differently, the containers aren't really first-class citizens, in the sense that we usually try hard to hide them
20:23 moritz which works great most of the time, except that it confuses everybody when it comes to mutating containers that hold immutable values
20:26 araujo joined #perl6
20:28 felher I just think of 'is rw' as passing a pointer to the pointer, instead of a pointer to the object. So the pointer the passed pointer points to may be changed :) This works most of the time.
20:29 masak felher: actually, there are still unresolved difficulties in that area.
20:29 masak I wish we could resolve them satisfactorily. but it seems real tricky.
20:30 felher masak: difficulties such as?
20:30 masak let's see if I can remember them.
20:31 masak the spec says that readonly array variables are readonly "one level deep". that is, you can't push etc to the array itself; nor can you twiddle with its elements.
20:31 mj41_ hi, P5-to-P6 question: $self->SUPER::some_method() in P6 ?
20:32 masak mj41_: nextsame() if you're in that method.
20:32 masak mj41_: otherwise, hm.
20:32 snearch joined #perl6
20:32 mj41_ masak: thanks
20:32 masak did that help? oh, good.
20:32 moritz you can also write self.Explict::Class::Name::method()
20:32 masak oh, I thought that was just for roles.
20:33 moritz works for superclasses too, iirc
20:33 TimToady but don't, use nextsame instead
20:33 masak r: class A { method foo { say "OH HAI" } }; class B is A { method bar { self.A::foo } }; B.new.bar
20:33 p6eval rakudo dca0fa: OUTPUT«OH HAI␤»
20:33 dalek tablets: 6bce3f6 | moritz++ | docs/tablet-3-variables.txt:
20:33 dalek tablets: clear up some things about item context. Avoid the word "reference" where possible
20:33 dalek tablets: review: https://github.com/perl6/tablets/commit/6bce3f6bdb
20:33 masak huh, works! :)
20:33 PerlJam What's the use-case though?  When do you *want* to break out of normal dispatch into *another* method's super?
20:33 masak r: class A { method foo { say "OH HAI" } }; class B { method bar { self.A::foo } }; B.new.bar
20:33 p6eval rakudo dca0fa: OUTPUT«Cannot dispatch to a method on A because it is not inherited or done by B␤  in method dispatch:<::> at src/gen/CORE.setting:790␤  in method bar at /tmp/RZ6W84SCnj:1␤  in block <anon> at /tmp/RZ6W84SCnj:1␤␤»
20:33 masak hee.
20:34 masak PerlJam: that's what I was wondering too.
20:34 * masak turns back to felher
20:34 masak felher: so, the elements are immutable too.
20:35 dalek tablets: ccaa474 | moritz++ | docs/tablet-3-variables.txt:
20:35 dalek tablets: fix a precedence bug
20:35 dalek tablets: review: https://github.com/perl6/tablets/commit/ccaa47456f
20:35 masak now, imagine something like 'sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x'
20:35 masak this should fail according to that model.
20:36 masak r: sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x; say @x[3]
20:36 p6eval rakudo dca0fa: OUTPUT«42␤»
20:36 masak it doesn't. rakudo doesn't implement that.
20:36 masak n: sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x; say @x[3]
20:36 p6eval niecza v17-23-gfb775fb: OUTPUT«42␤»
20:36 dalek tablets: 007c3b4 | moritz++ | docs/tablet-3-variables.txt:
20:36 dalek tablets: avoid ambiguous wording
20:36 dalek tablets: review: https://github.com/perl6/tablets/commit/007c3b4552
20:36 masak neither does niecza.
20:36 masak there's a reason for that; it's tricky. :)
20:36 brrt joined #perl6
20:36 masak the same kind of trickiness shows up when you want to mark an array attribute as readonly, and its elements should also be, and one level down.
20:37 masak felher: you'll note that @x in the above isn't readonly at all (and that's correct), but @a is readonly, because it's a parameter. but they're *the same array object*, which is where the tricky sits.
20:38 masak so somehow that indicates the need for a level of indirection of some sort -- a *view* of an array that can be readonly.
20:38 masak but it's not allowed to get in the way. it has to be entirely transparent to use.
20:38 moritz lichtkind: in the tablets it says multiple times that there are "no more references" in Perl 6, but they keep appearing everywhere in the text
20:38 felher masak: yeah, i see. Thanks a lot for that explanation :)
20:39 masak felher: and here the paths end. I wish we would solve this, because it's a bit embarrassing that the spec says one thing and we implement another. but it's like we want to but can't, because no-one's figgered out how.
20:40 masak in fact, this was a bit tricky to get right for scalars, too. but a few iterations we have it right, thanks to pmichaud++ and probably jnthn++ too.
20:40 * diakopter mind is boggled by https://s3.amazonaws.com/apple-campus2-project/SitePlan-Submittal3.pdf
20:40 masak s/a few iterations/a few iterations later/
20:41 NamelessTee joined #perl6
20:41 felher Hm... this makes me wonder. Is Scalar a class too? Just as Array is a class for @?
20:41 Woodi just writed something, maybe it can help ? http://79.187.154.250/  I hope, it is accessible...
20:41 moritz felher: it is, but usually you don't see it
20:42 moritz felher: because the Scalar container forwards basically all methods to its contents, even .WHAT
20:42 sergot good night o/
20:43 felher moritz: Ah, okay. I think i'd find it quite hard to grok if it were not :)
20:44 felher s/if it were not/if there isn't something like Scalar for scalars/
20:49 masak [backlog] what does "tagmemic" mean, really?
20:50 masak I usually google these things, but something tells me I might get a better answer by asking.
20:52 masak the humoristic effect of http://www.corsinet.com/braincandy/hlife.html seems to rest on the fact that it's hard to read according to the premise of the first paragraph.
20:53 masak for somebody who is perfectly able to take the first paragraph at its word, it's a rather unremarkable, pointless, repetitive story :)
20:57 au also, "S got angry about that because it was E's job" was kinda non sequitur. :)
20:57 ggoebel joined #perl6
20:58 lichtkind moritz: yes some parts are very dated, but the almost completed index A and B should be fine
20:59 masak au: yeah, it doesn't even make much sense when misread in the way obviously intended :)
21:00 au "this sentence no sense"
21:00 masak :D
21:00 masak oh btw, "this sentence no verb" is an autopun.
21:01 tadzik :P
21:01 tadzik I think you accidentally a word
21:01 au would "this sentence no autopun" be an autopun?
21:01 * diakopter cries
21:01 tadzik :P
21:01 arnsholt The Russel's paradox of autopuns =)
21:02 kresike night all o/
21:02 masak nijt, kresike
21:02 au \o
21:02 sorear felher: you can do multi infix:<+>($l, $r) is export { ... } inside the class, it will ahve direct-ish access to the attributes and will be usable from outside
21:03 masak au: ...no. mentioning autopuns does not an autopun make.
21:03 au but if it's not an autopun as you explained, wouldn't it be describing itself accurately?
21:03 masak it could be argued to be unproblematically self-referent, though :)
21:03 libertyprime joined #perl6
21:04 au concurred
21:04 masak we might have to agree to disagree on whether it's an autopun. I'm actually not entirely sure.
21:04 masak I notice that I am confused. :)
21:05 sorear diakopter: chromatic is a Parrot person who takes Rakudo's VM independance moves as personal affronts
21:05 masak it just seems to me that "this sentence no autopun" contains a clear *mention* (of autopuns), but no clear *use*.
21:05 tadzik well said
21:05 diakopter au: I made a more-complexly-worded version of that the other day and masak definitively said it wasn't an autopun, so congrats ;)
21:05 [Coke] hey, au.
21:06 sorear moritz: iirc, pugs has startup time in the millisecond range
21:06 au masak: yeah. the use relies on auto-completion of russel's paradox on the reader's behalf
21:06 masak diakopter: I wasn't sure whether you cried because you were thinking of au's sentence or whether you were reminded of that recent defeat :)
21:06 au \o [Coke]
21:06 felher sorear: awesome! Thnx :)
21:06 au $ time pugs -e0
21:06 au 0m0.066s
21:06 diakopter reminded
21:07 masak au: it's not uncommon for such auto-completion to figure in autopuns. they're very culturally rooted.
21:07 * masak hugs diakopter
21:07 * au to pun <- still holds the record of shorted autopun ever
21:07 au *shortest
21:07 masak :P
21:07 masak diakopter: I think the fault lies with me for explaining badly.
21:08 libertyprime joined #perl6
21:08 [Coke] "damn you autocorset."
21:08 masak *lol*
21:08 sorear pugs: sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x; say @x[3]
21:08 p6eval pugs: OUTPUT«42␤»
21:09 sorear o/ au!!!
21:09 rsimoes joined #perl6
21:10 lichtkind moritz: i make my changes rather topic wise, so once i get to the reference thing it will be cleansed in all tablets
21:10 au o/ ⇈ sorear
21:10 zipf joined #perl6
21:11 sorear .u ⇈
21:11 phenny U+21C8 UPWARDS PAIRED ARROWS (⇈)
21:11 jnthn evening, #perl6
21:11 masak jnthn! \o/
21:11 sorear paired arrows?  /me wonders if that's intended for molecular orbital diagrams
21:11 au it's the tetration symbol, actually
21:11 masak au: what are you working on these days? are you still at SocialText?
21:11 * sorear had dozed off but is now back in the present
21:12 au # https://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation
21:12 au masak: yeah. attending socialtext f2f meeting atm. still retainer @ socialtext and apple
21:12 au plus obra's checkmarkable.com
21:13 masak ooh
21:14 masak he twittled about that not long ago.
21:14 au "youtube for checklists, inspired by the p5p release process"
21:15 masak will check it out. (har har)
21:15 au nice remark
21:15 sisar jnthn: how to debug rakudo+panda segfaults ?
21:16 jnthn sisar: What platform are you on?
21:16 sisar jnthn: Ubuntu
21:16 * jnthn whips out the Visual Studio debugger in these situations... :)
21:16 jnthn sisar: Well, then run it under gdb.
21:17 jnthn sisar: It should give a backtrace.
21:17 jnthn Lemme know if you need guidance.
21:18 sisar jnthn: i simply tried `gdb panda install LWP::Simple` and it said "/home/siddhant/.perl6/bin/panda": not in executable format: File format not recognized". (my gdb-fu is limited to debugging small c programs)
21:21 jnthn sisar: you'll need to
21:21 jnthn gdb perl6
21:21 jnthn r /home/siddhant/.perl6/bin/panda install LWP::Simple
21:21 jnthn then when it explodes, type bt
21:22 sisar ok, will try that.
21:22 sisar thanks
21:24 shinobicl niecza: my Date $d;
21:24 p6eval niecza v17-23-gfb775fb: OUTPUT«[31m===[0mSORRY![31m===[0m��Malformed my at /tmp/agCyYgWyXN line 1:�------> [32mmy[33m�[31m Date $d;[0m��Parse failed��»
21:25 ggoebel joined #perl6
21:29 daxim joined #perl6
21:31 adu joined #perl6
21:31 skids https://gist.github.com/2771728  # <--- Fun with Proxy and CStruct attributes.
21:32 masak skids: cool.
21:33 masak looks like there are a few potential rakudobugs in there.
21:33 jnthn More NYI than bugs.
21:33 diakopter r: https://gist.github.com/2771728
21:33 p6eval rakudo dca0fa: OUTPUT«1958-10-24␤2012-10-10␤2012-10-10␤2012-11-11␤»
21:34 daxim in a grammar, what's the straight-forward way to describe a repeated token/rule separated by commas, no trailing comma?  e.g. data  foo bar { fnord quux {3}, {34}, {356} }
21:34 daxim I imagine there must be some idiom for that
21:34 skids There's a special construct, but I don't remember it offhand.
21:35 masak daxim: <rule>+ % <sep>
21:35 jnthn <the_rule>+ % ','
21:35 daxim I knew I could count on yall
21:35 masak :)
21:41 sisar Well, this is weird. URI was built and passed all test when running under gdb ! No segfault !
21:42 sisar s/running/intalling using panda
21:42 tadzik rebuild it, try again
21:42 sisar tadzik: you want a segfault, don't you :p
21:43 tadzik yes :)
21:43 dalek tablets: fd28b7e | (Herbert Breunung)++ | docs/ (3 files):
21:43 dalek tablets: explain terminators
21:43 dalek tablets: review: https://github.com/perl6/tablets/commit/fd28b7e01b
21:43 dalek tablets: 0db0540 | (Herbert Breunung)++ | docs/tablet-3-variables.txt:
21:43 dalek tablets: Merge branch 'master' of github.com:perl6/tablets
21:43 dalek tablets: review: https://github.com/perl6/tablets/commit/0db054029f
21:43 tadzik also, it will work
21:43 tadzik both URI and Panda compile non-deterministically for some reason
21:44 sisar will the backtrace help in any way ?
21:45 jnthn Sometimes they do.
21:46 lichtkind moritz: seen you changes now, these were once true, its almost the oldest parts of the tablets
21:47 flussence_ joined #perl6
21:48 PerlJam lichtkind: tablet 0 bothers me.
21:49 PerlJam lichtkind: It looks like it takes ideas of Perl 6 from the future and transports them to 2000
21:49 PerlJam lichtkind: or, let's say ... that's not how I remember it.
21:50 * masak 's interest gets piqued
21:50 masak https://github.com/perl6/tablets/blob/master/docs/tablet-0-history.txt in case others are interested.
21:52 masak I'm sorry, I find it very hard to tell what the text is about.
21:52 masak it feels like a draft of some kind.
21:55 PerlJam I've attributed the ... quirkiness to an impedence mismatch between languages.
21:55 sisar jnthn: Wht causes the error mentioned at nqp/src/6model/serialization_context.c:105 ? Because that is the non-deterministic error which we get when installing modules.
21:55 sisar *What
21:56 dalek tablets: d95593e | (Herbert Breunung)++ | docs/tablet-3-variables.txt:
21:56 dalek tablets: fix whole array section
21:56 dalek tablets: review: https://github.com/perl6/tablets/commit/d95593ede1
21:57 masak PerlJam: no, it just doesn't feel all that focused. it could be made a lot clearer, I think.
21:57 lichtkind PerlJam: i hardly started tablet 0
21:57 masak there you go, then.
21:57 lichtkind PerlJam: feel free to edit it
21:58 masak or start anew.
21:58 masak PerlJam: ooc, were you there at the conf where Perl 6 was announced?
21:59 sorear who here was?
21:59 PerlJam no, I was not actually at TPC
21:59 sorear other than TimToady
21:59 sisar masak: is there any video or transcript of that announcement ?
21:59 masak sisar: I've seen a transcript, yes.
21:59 masak don't remember where. it's probably out there on the web somewhere.
21:59 sorear hmm, I was thinking of the coffee mug incident
22:00 jnthn sisar: Well, that bit of code is just doing a bounds check on an index lookup.
22:00 masak sorear: that wasn't the announcement, though.
22:00 sorear the proper announcement may have seen more people
22:00 masak yes.
22:00 Facefox joined #perl6
22:00 jnthn sisar: It's only really interesting if we know what is below it in the call stack.
22:00 PerlJam masak: As I usually do though, I was participating vicariously via IRC and other avenues.
22:01 sisar jnthn: should that error leak out?
22:01 sisar i mean, it does not even mention any line no. or anything.
22:02 masak PerlJam: I'd be interested to hear about your recollection of that day.
22:02 jnthn sisar: There's no sensible line number it could report really
22:02 jnthn sisar: It means "the calling code tried to access an object at an index that does not exist"
22:02 jnthn sisar: It should never happen.
22:03 jnthn sisar: And it's going to be the C callstack that is interesting, I expect.
22:03 sisar how can i get more information for the cause?
22:03 jnthn Not the HLL one
22:03 jnthn sisar: If you have the gdb skills you could set a breakpoint at the error.
22:03 jnthn And then look at the call stack at that point.
22:03 jnthn I don't know gdb enough to tell you how to do that.
22:04 sisar i was not able to reproduce the segfault i and tadzik++ were hoping for
22:05 jnthn Yeah. It feels like some kind of heap corruption. :/
22:05 sisar well, brekapoints i know. But given the complexity of perl6/nqp, i doubt i'll be able to do anything
22:06 jnthn sisar: If you put a breakpoint on that error, and can get it to fire, the call stack may well mean something to me.
22:06 sisar ok, i'll try to get a calltrace.
22:07 masak 'night, #perl6
22:08 jnthn sisar: OK. Please gist it if you do
22:08 jnthn I'm teaching tomorrow so must go and sleep very soon.
22:08 sisar jnthn: sure.
22:10 jnthn OK, thanks :)
22:10 * jnthn -> sleep
22:11 PerlJam masak: I don't know if I could give you an honest recollection any more.  For instance, I do remember hearing/reading about the coffee mug incident as if it happened in "legendary" style.  ("Jon Orant smashed a coffee mug and we all stopped arguing then he said 'blah blah blah'")  But then I also remember hearing about how many coffee mugs were actually involved and how much forethought went into the whole thing.
22:16 sorear orwant
22:16 PerlJam aye, that guy :)
22:21 adu joined #perl6
22:31 DreamingInCode joined #perl6
22:33 sisar well before i run `gdb perl6` don't i need to compile pler6 for gdb-debugging first? Hoq do I do that?
22:33 sisar *perl6
22:33 sisar *How
22:34 diakopter sisar: I think I heard somewhere it's the default
22:34 diakopter maybe I'm wrong
22:34 sisar diakopter: ok.
22:35 sisar diakopter: familiar with gdb ?
22:35 diakopter no :(
22:35 sisar no problem.
22:36 sisar diakopter: nqp is also "compiled" for gdb-debugging ?
22:37 diakopter I don't know. I just remember others being instructed to try using gdb, and nothing was mentioned about special builds of parrot, nqp, or rakudo
22:38 sisar diakopter: ok.
22:39 * sisar afk
22:40 benabik Parrot builds with debugging by default and nqp/Rakudo use the same options as Parrot.
22:41 * diakopter memory didn't fail me for once
22:45 diakopter phenny: tell sisar  < benabik> Parrot builds with debugging by default and nqp/Rakudo use the same options as Parrot.
22:45 phenny diakopter: I'll pass that on when sisar is around.
22:50 DreamingInCode joined #perl6
23:02 fgomez joined #perl6
23:08 [particle] joined #perl6
23:19 cognominal_ joined #perl6
23:35 DreamingInCode1 joined #perl6
23:41 DreamingInCode joined #perl6
23:45 ponbiki joined #perl6
23:49 libertyprime joined #perl6

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

Perl 6 | Reference Documentation | Rakudo