Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-10-25

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:16 replore_ joined #perl6
00:20 Entonian joined #perl6
00:21 [Coke] joined #perl6
00:22 * [Coke] sighs, as this screen session/terminal is not utf happy
00:23 [Coke] joined #perl6
00:23 [Coke] \o/\
00:31 bitpart joined #perl6
00:36 bonsaikitten joined #perl6
00:38 flussence aagh
00:38 flussence I can *feel* my brain melting after watching that video.
00:41 diakopter mtnviewmark
00:41 diakopter used to be in this channel years ago
00:46 ggoebel joined #perl6
00:50 packetknife joined #perl6
01:07 f00li5h joined #perl6
01:18 flussence joined #perl6
01:36 TimToady finally getting a chance to backlog
01:37 TimToady .oO(You can't just make shit up and expect to sound like MJD, doofus!)
01:42 sorear o/ TimToady
01:47 alc joined #perl6
01:52 odoacre joined #perl6
02:02 wolfman2000 joined #perl6
02:20 jlaire joined #perl6
02:32 envi_ joined #perl6
02:34 Transformer joined #perl6
02:38 envi_ joined #perl6
02:53 s1n1 joined #perl6
03:12 dalek niecza/serialize: 5f9e2f8 | sorear++ | / (5 files):
03:12 dalek niecza/serialize: Implement isolating compartment system
03:12 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/5f9e2f8182
03:16 kaleem joined #perl6
03:22 djanatyn joined #perl6
03:27 djanatyn joined #perl6
03:38 preflex joined #perl6
03:42 Transformer joined #perl6
04:03 moritz good morning
04:05 sorear good morning moritz.
04:06 TimToady o/
04:08 kaare_ joined #perl6
04:27 molaf joined #perl6
05:01 drbean joined #perl6
05:12 SHODAN joined #perl6
05:12 orafu joined #perl6
05:14 alester joined #perl6
05:28 dalek niecza/serialize: 2664568 | sorear++ | / (2 files):
05:28 dalek niecza/serialize: Implement auto-compilation of referenced modules
05:28 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/266456849d
05:28 dalek niecza/serialize: 4494faa | sorear++ | lib/ (2 files):
05:28 dalek niecza/serialize: Fix handling of eval "use Foo" when Foo has INIT blocks
05:28 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/4494faa605
05:29 sorear $.level++; # single-step debugging of JIT output at the instruction level, after exhausting all other ideas for debugging a hang :|
05:30 TimToady congratulations on your, er, promotion
05:31 TimToady "Gold comes and goes, but experience points are forever."
05:31 sorear mono --jitmap is much more useful than the documentation makes it sound
05:33 sorear an early version of 4494faa contained a bug which manifested by twisting the call stack into a circle, causing $*foo to hang at a sufficiently low level that most of my debugging tools didn't work
05:36 * TimToady turns into a pumpkin early tonight &
05:42 drbean joined #perl6
05:47 dual joined #perl6
05:50 sorear now /serialize has all the important features back, I think
05:51 sorear I'd like to get a couple optimizations down before Oct31, also need to fix spectest regressions and work out how to do the bootstrap
05:51 sorear probably should add BEGIN too to keep the users excited :)
05:51 * sorear sleep
05:59 wtw joined #perl6
06:00 GlitchMr joined #perl6
06:04 flussence joined #perl6
06:31 koban joined #perl6
06:33 tadzik good morning #perl6
06:36 moritz good morning tadzik
06:56 cognomore joined #perl6
07:01 donri joined #perl6
07:20 daniel-s joined #perl6
07:49 mj41_nb joined #perl6
07:52 mj41 joined #perl6
08:08 HarryS joined #perl6
08:15 cognominal finalement l'état français va faire profiter les lybines de notre monopole de la violence, Heu, je veux dire notre savoir faire sécuritaire. Bravo à mam qui a préparé le terrain mais qui a vanté notre commerce au mauvais endroit au mauvais moment.  Le gouvernement Fillon récoltera la thune et less charlots socialiste qu'on élira récupérerons les emmerdes que ça provoquera.
08:15 cognominal http://www.lefigaro.fr/international/2011/10/24/01003-20111024ARTFIG00726-la-police-francaise-reprend-du-service-a-tripoli.php
08:16 moritz fausse channel? :-)
08:18 cognominal again.  :(
08:20 masak good morning #perl6
08:20 cognominal good morning
08:21 moritz good morning masak, cognominal
08:25 * masak se sent fatigué
08:26 masak Malgré le fait que j'ai dormi suffisamment.
08:27 mux j'ai cru que je m'étais encore trompé de channel
08:27 masak hehe :)
08:28 masak ce n'est pas mon intention de tromper.
08:29 mux use french;
08:29 moritz j'avait problemes de comprendre le Francais. Je peux l'exercer plus
08:29 moritz s/t/s/ # iirc :-)
08:29 cognominal { use english; I  tend to confuse #perlfr and #perl6 and masak want to make my confuse more thorough }
08:30 masak yes :)
08:30 cognominal moritz ~ s/de/pour/
08:30 ab5tract joined #perl6
08:30 mux frogs are everywhere, hiding in your channels
08:31 cognominal cheese eating surrender monkeys :)
08:31 mux moritz: to be perfectly pedantic that would be "J'avais des problèmes pour comprendre le français"
08:31 masak mux: coa-coa ;)
08:31 moritz mux: seems I have even more problems writing French :-)
08:31 cognominal or "à comprendre"
08:32 mux indeed
08:32 masak "à comprendre" feels more sensible than "pour comprendre"...
08:32 mux I was about to use 'à' but since you used 'pour' I thought that would have been confrontational
08:32 mux :D
08:32 moritz bonsaikitten: fwiw my 'perl Configure.pl' doesn't build any nqp or parrot, unless I pass some --gen-{parrot,nqp} flags to it. What exactly was the invocation where it was otherwise for you?
08:33 masak why is it "le français" when "langue" is feminine?
08:33 bonsaikitten moritz: perl Configure.pl
08:34 moritz bonsaikitten: and what did it do?
08:34 bonsaikitten moritz: as far as I can tell it works if you have nqp and parrot already installed
08:34 moritz ... and if not, it complains about the fact
08:34 bonsaikitten so, first time you install it the magic happens, every time after that it finds preinstalled
08:34 mux masak: because we're weird :-)
08:34 mux I'm sorry but I have no better explanation to offer heh
08:34 moritz bonsaikitten: which invocation made the magic happen_
08:34 bonsaikitten masak: because ze francais is le POWERFUL, so it is masculine, non?
08:34 moritz s/_/?/
08:35 bonsaikitten moritz: just perl Configure.pl - test in a clean chroot and you should be able to trigger it
08:35 moritz bonsaikitten: if I  rm -rf install/   and then run perl Configure.pl, it doesn't build anything for me
08:35 moritz it says
08:35 moritz ===SORRY!===
08:35 moritz Unable to find an NQP executable.
08:35 cognominal "langage" is masculine but it is an hyperonym of "langue" which is more appropriate for a natural language.
08:35 bonsaikitten moritz: hmm, ok, nice mismatch
08:35 envi_ joined #perl6
08:36 moritz bonsaikitten: I can set up a chroot for testing, but I somehow don't see how that magic could happen
08:36 bonsaikitten moritz: let me try to trigger it again
08:37 masak cognominal: ah, so it's "langage" that's implied. I agree that "language" is more appropriate than "tongue".
08:38 moritz bonsaikitten: and btw the nqp "release" can be downloaded from https://github.com/perl6/nqp/tags -- though the contents of rakudo's tools/build/NQP_REVISION might be out of date
08:38 bonsaikitten ok
08:39 moritz we should document that.
08:40 cognominal masak: I don't think anything is implied, français is just used as a noun. In English, you can verb a noun as says TimToady, so we feel entitled to noun adjectives.
08:42 cognominal mux, tu es angevin comme les seins de la chanson de Bobby Lapointe?
08:42 masak cognominal: I'll take your word for it.
08:42 bonsaikitten moritz: ah, indeed, it aborts if neither is set
08:43 mux cognominal: non je suis parisien ;-)
08:43 cognominal mux, tu viens aux réunions techniques ou sociales des mongueurs?
08:44 mux cognominal: non j'ai jamais fait; je suis pas vraiment un hardcore perler
08:45 cognominal you should, we need to do some proselytism for Perl 6
08:46 cognominal mux, apparently you facebook page is not up to date, it says Angers for your living place?
08:46 cognominal tu fais une prépa?
08:46 mux cognominal: to be honest, I'm not really a perl 6 enthusiast; I hope I won't get hated for that, but I mostly come in here because I love seeing your discussions
08:47 mux cognominal: it does?! wait, that's very weird.
08:47 mux ah non j'ai 30 ans je fais pas de prépa :-P t'es sur la bonne page?
08:47 moritz mux: we won't hate you if you are civil, which you are :-)
08:47 masak mux: it's fine not to be a Perl 6 enthusiast :)
08:47 mux I'm no perl hater either, for what it's worth!
08:48 masak mux: excellent!
08:48 masak mux: what do you generally program in?
08:48 moritz bonsaikitten: does that mean we can close https://rt.perl.org/rt3/Ticket/Display.html?id=102062 ?
08:48 cognominal ho I confused Maxime Horion with Maxime Henrion
08:48 mux masak: python @ work these days; but I mostly enjoy C and Haskell otherwise
08:48 mux (obviously not for the same reasons heh)
08:49 mux cognominal: ah, that would explain it
08:49 masak I think I could live with doing Python at work.
08:49 mux oh yeah, things would be a lot worse
08:49 mux could*
08:49 masak I would probably miss Perl a bit, but... right, a lot worse.
08:50 mux I had never used python extensively prior to this job, but I have to say I quite like it.
08:50 daxim joined #perl6
08:51 cognominal someday we will have to create a #social-per6 to spare the backloggers
08:51 masak awww :)
08:51 masak but yes, that day will probably come.
08:57 dakkar joined #perl6
08:57 bonsaikitten moritz: yes
08:59 moritz bonsaikitten: thanks, will do
09:04 kranius hello perl6
09:04 moritz good localtime kranius
09:05 masak hello kranius
09:18 daxim jnthn, masak, http://conferences.yapceurope.org/tcpw2011/schedule?day=2011-11-05
09:19 daxim masak, can you turn your abridged perl 6 history blog post into a lightning talk?  we have lots of time to kill
09:21 masak daxim: sure thing.
09:22 masak ugh, back-to-back presentations :)
09:22 masak daxim: I'll just submit a lightning talk, then.
09:24 masak daxim: submitted.
09:25 wk joined #perl6
09:28 daxim :thumb:
09:28 moritz jnthn: https://github.com/mlschroe/rakudo/commit/ac0119208694680468fb1d68fd2fdb2e841d26be is fine by me, though I'd now make $type a native int :-)
09:50 moritz wow, setting compilation now takes 1.5G of RAM :(
09:51 envi_ joined #perl6
09:51 jnthn moritz: Is that up significantly in recent days?
09:52 jnthn masak: We could suggest interleaving our slots if you prefer that...
09:52 moritz jnthn: dunno, I remember something like 1.1 or 1.2G at last month's release
09:53 masak jnthn: I think I do prefer that. and it's more variety for the listeners as well.
09:55 moritz woah, RT search is pretty broken
09:55 moritz I've just searched for 'given'
09:55 moritz and... *drummroll*... no results!
09:55 moritz like, we never had any bugs with given/when?
09:56 masak huh.
09:56 moritz https://rt.perl.org/rt3/Ticket/Display.html?id=78234
09:56 masak same here!
09:56 moritz is even an open bug with 'given' in the title
09:56 moritz hm, maybe some stupid stopword analysis?
09:57 masak maybe, but why 'given'?
09:58 masak where do we submit rtbugs? :)
09:58 moritz perlbug-admin@perl.org
09:59 masak do you want to, or shall I?
09:59 moritz mux: please do it
09:59 * masak assumes mistab and does it
09:59 moritz yes, mistab
10:00 moritz sorry
10:00 moritz and btw that RT #78234 is now solved :-)
10:01 dalek roast: 87785c0 | moritz++ | S05-grammar/methods.t:
10:01 dalek roast: tests for RT #73680
10:01 dalek roast: review: https://github.com/perl6/roast/commit/87785c0831
10:03 moritz maybe I shouldn't close it immediately, as it would make it harder for the perlbug-admin to reason about the search issue
10:03 masak \o/
10:03 masak should closed-ness affect whether a search finds it?
10:03 moritz maybe the search defaults to neither-closed-no-rejected
10:04 * jnthn will fix "state" stuff later on today
10:04 moritz nom: sub a() { } given 3
10:04 p6eval nom 1fd3f8:  ( no output )
10:05 masak jnthn: \o/
10:06 masak mail sent.
10:06 moritz masak++
10:06 dalek roast: 148cafa | moritz++ | S04-statements/given.t:
10:06 dalek roast: tests for RT #78234, sub declaration inside a "given"
10:06 dalek roast: review: https://github.com/perl6/roast/commit/148cafaf06
10:11 darkop joined #perl6
10:13 wamba joined #perl6
10:26 grondilu joined #perl6
10:26 grondilu perl6: multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n*($n-1)! }
10:26 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected "$n"␤    expecting operator or "!!"␤    at /tmp/aZKKaz5c3A line 1, column 49␤»
10:26 p6eval ..niecza v10-61-gbacff10:  ( no output )
10:26 p6eval ..rakudo 1fd3f8: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
10:26 grondilu perl6: multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n*($n-1)! }; say 4!
10:27 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected "$n"␤    expecting operator or "!!"␤    at /tmp/VfgPTGv1cn line 1, column 49␤»
10:27 p6eval ..rakudo 1fd3f8: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
10:27 p6eval ..niecza v10-61-gbacff10: OUTPUT«24␤»
10:27 grondilu I'm looking forward to see this kind of stuff on rakudo
10:28 moritz b: multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n*($n-1)! }; say 4!
10:28 p6eval b 1b7dd1: OUTPUT«24␤»
10:28 moritz it was implemented in the auld days
10:28 jnthn Well, we're in theory meant to be moving to QRegex for parsing.
10:30 jnthn So I mostly put off adding those things back.
10:30 jnthn As it'd be "throwaway"
10:30 jnthn But at the rate QRegex is moving maybe it's worth it.
10:31 moritz nom: say so 'aaa' ~~ /(.)+a/
10:32 p6eval nom 1fd3f8: OUTPUT«Bool::True␤»
10:32 moritz ah, that bug was fixed at least
10:32 moritz so it seems the remaining blockers are <?before> and proto regexes
10:33 jnthn Right.
10:38 Grrrr joined #perl6
10:39 agentzh joined #perl6
10:39 MayDaniel joined #perl6
10:40 preflex joined #perl6
10:51 smash joined #perl6
10:52 smash hello everyone
10:55 masak hi smash
11:03 masak moritz++ # statistical results with significance given
11:06 jnthn "This is a significant slowdown!"
11:06 masak ooc, why *wouldn't* green threads slow things down?
11:06 masak aren't green threads just doing scheduling on the same core?
11:07 jnthn yeah, basically...
11:07 jnthn But if there's only one thing to do...
11:07 benabik I thought the test wasn't using threads, so the slowdown is important.
11:07 jnthn No, it's not using them.
11:07 flussence depends how expensive an OS-level context switch is relative to what you're using threads for
11:07 jnthn flussence: These aren't even threads.
11:08 jnthn Or at least, not OS-level ones.
11:09 flussence (I don't really understand green threads other than they're a program-internal construct)
11:10 * jnthn is curious where the name came from.
11:10 flussence .oO( according to htop, all threads are green... )
11:10 jnthn ;)
11:15 sirmacik joined #perl6
11:15 sirmacik joined #perl6
11:29 kaare_ joined #perl6
11:31 benabik joined #perl6
11:36 kaleem joined #perl6
11:36 kaleem joined #perl6
11:37 kaleem joined #perl6
11:38 Psyche^ joined #perl6
11:40 moritz masak: nine++ mentioned he had a patch that made the green threads zero overhead when not used
11:40 moritz btw I'd appreciate it if somebody check the math in https://gist.github.com/1312199
11:40 masak ooh
11:41 masak moritz: can you tell me, in laymen's terms, when to subtract 1 in the std_dev formula and when not to?
11:42 moritz masak: I think I should have subtracted one
11:42 masak ok.
11:43 moritz and the explanation is "whenever you calculated the mean/average/expected variable from your data, and not from some a priori knowledge"
11:44 masak ah, ok.
11:44 masak at least that's a simple rule, even though I don't grok it yet.
11:44 mtk joined #perl6
11:44 moritz so the significance is reduced to 20.7σ
11:44 moritz masak++
11:44 * flussence reads http://simple.wikipedia.org/wiki/Standard_deviation
11:45 masak that's still pretty bloody significant.
11:45 moritz masak: me neither. It has something to do with degrees of freedom, and calculating the average from the sample means that you gave up one degree of freedom already *handwave&
11:46 moritz s/'&'/*/
11:46 flussence rakudo: https://gist.github.com/1312199
11:46 p6eval rakudo 1fd3f8: OUTPUT«Original: 33.965 ± 0.0858943537143158␤Patched:  36.1474 ± 0.0471445436927753␤Patched version is slower than the original by 6.43%, signficance 23.2σ␤»
11:47 moritz oh, Unicode fail
11:47 flussence probably github's fault...
11:47 masak moritz: yeah, I also heard the "degrees of freedom" spiel...
11:48 * moritz reads http://duramecho.com/Misc/WhyMinusOneInSd.html
11:48 masak moritz: I even think I understand that bit, but I don't grok the whole picture.
11:48 mls_ hi perl6!
11:49 moritz "Essentially, the mean used is not the real mean but a estimate of the mean based on samples of data found in the experiment. This estimate is, of course, biased towards fitting the found data because that is how you got it. Therefore estimating how widely spread around the real mean the data samples are by calculating how spread around the estimated mean they are is going to give a value biased slightly too low. Using n-1 instead of n compensates."
11:49 moritz that's a better explanation than I've read before
11:49 moritz hi mls_!
11:49 masak mls_! \o/
11:50 JimmyZ joined #perl6
11:50 masak moritz: I've heard the "compensates" explanation before, too. it feels far too hand-wavey for me.
11:50 masak I wish I had a more solid understanding of statistics... :)
11:50 * masak reads the longer explanation
11:50 moritz that's why I'm reading the rest of that website now :-)
11:51 moritz masak: stop being scary :-)
11:51 masak pfft, that wasn't identical enough :)
11:52 masak so... FIRST initially had ENTER semantics, but then it got START semantics for a while, until it finally got the FIRST semantics it has now... :)
11:52 masak (and on the way, we got the ENTER and START phasers)
11:55 agentzh joined #perl6
11:56 * moritz finds the use of '&' for 'and' in English quite annoying
11:57 masak does it get easier if you read it out loud as "et"? :)
12:02 moritz .oO( am per sand )
12:03 donri joined #perl6
12:06 dalek evalbot: 122a01c | moritz++ | lib/EvalbotExecuter.pm:
12:06 dalek evalbot: try to fix UTF-8 from gist.github.com
12:06 dalek evalbot: review: https://github.com/perl6/evalbot/commit/122a01cebf
12:07 donri left #perl6
12:07 p6eval joined #perl6
12:07 moritz nom: https://gist.github.com/1312199
12:08 moritz nom: https://gist.github.com/1312199
12:08 p6eval nom 1fd3f8: OUTPUT«Original: 33.965 ± 0.0960328068943109␤Patched:  36.1474 ± 0.0527092022326273␤Patched version is slower than the original by 6.43%, signficance 20.7σ␤»
12:08 p6eval nom 1fd3f8: OUTPUT«Original: 33.965 ± 0.0960328068943109␤Patched:  36.1474 ± 0.0527092022326273␤Patched version is slower than the original by 6.43%, signficance 20.7σ␤»
12:08 moritz \o/
12:08 smash joined #perl6
12:09 masak how come the encoding suddenly works?
12:09 moritz masak: see the last dalek report
12:09 masak ah. :)
12:10 donri joined #perl6
12:10 masak yes, it makes perfect sense that a decode_utf8 is needed there.
12:11 masak so it wasn't github's fault as flussence assumed. github++
12:13 moritz diakopter++ probably just didn't think of Unicode when implementing the fetching from gist.github.com
12:16 masak it's not so much thinking of Unicode -- more thinking about buffers and strings.
12:17 moritz right
12:21 donri left #perl6
12:22 daniel-s joined #perl6
12:24 mux (warning, genuinely curious question, no troll) does perl 6 (or perl 5 for that matter, but I suppose I'd have noticed) has something similar to Python's context managers? (as in, the syntax; the actual functionality is piece of cake to implement)
12:25 moritz what is a context manager?
12:26 mux the with thingie
12:26 mux such as:
12:26 mux with open('somefile', 'r'):
12:26 masak Perl 6 has 'given'.
12:26 mux damn, scrap that
12:26 mux with open('somefile', 'r') as f:
12:27 mux ...do something with f...
12:27 mux at this point it's closed
12:27 masak given open('somefile', 'r') -> $f { ... }
12:27 mux masak: thanks
12:27 flussence for open('somefile', :r) -> $f { } ?
12:27 masak we don't -- can't -- do automatic closing, though.
12:27 mux well there's more to it than just that example with open()
12:27 mux masak: ah, then given is pretty useless
12:27 masak except with LEAVE phasers or something.
12:27 masak which one could then fold into a macro, I guess.
12:28 masak flussence: using 'for' there looks like a p5ism to me.
12:28 mux the point of context managers being that they guarantee your 'leaving' function will be called, whether exception or anything else happened or not
12:28 flussence I'm just more used to using -> with for, I guess both work...
12:28 masak mux: yeah, sounds like you're describing LEAVE, and/or KEEP/UNDO.
12:28 flussence or DESTROY
12:29 masak I'll believe in DESTROY when I see it :)
12:29 mux masak: sounds like it, but once again, what makes context managers interesting and practical in python is the syntax
12:29 mux anyone can code in continuation passing style
12:30 masak the collaboration between Rakudo and Parrot doesn't seem to be tight enough to produce something like DESTROY support.
12:30 masak mux: well, macros would solve that, AFAICS.
12:30 mux that makes sense
12:30 masak it's actually a really nice use case for macros.
12:30 mux I now feel pretty stupid for asking if some /syntax/ could be implemented in Perl 6
12:30 mux I don't see how the answer could have been no :D
12:30 moritz :-)
12:31 preflex joined #perl6
12:32 masak I agree it's nice to have the semantics you ask for.
12:32 masak I think it'd have to be something like LEAVE + macro.
12:33 moritz given open('filename', :w) { LEAVE { .close }; ... } # not really pretty
12:33 mux I had no doubts that the semantics could be implemented, but the way you talk about it makes me think it's slightly more involved than I would have hoped
12:34 masak does Python use refcounting?
12:34 mls_ yes
12:35 masak then that's why it's not as simple in Perl 6.
12:35 mls_ (plus a garbage collectore to get rid of cycles)
12:35 masak there's a nice thread about this in the p6l archives.
12:35 tokuhiro_ joined #perl6
12:35 moritz oh, it can even be  LEAVE .close
12:35 moritz no need for the brackets
12:36 masak mux: http://groups.google.com/group/perl.perl6.language/browse_frm/thread/1b9b274859624bd4/c3144a3ea3629125?pli=1
12:36 jnthn Well, the C# way involves having some syntax using (foo) { ... }
12:36 jnthn And foo.Dispose() gets called at block exit
12:36 jnthn Even if there are exceptions.
12:37 jnthn Essentially it gives a way for objects to get a callback when they're going out of some scope.
12:37 benabik A way of doing RAII with GC?
12:37 jnthn For IO handles Dispose just delegates to close
12:38 masak jnthn: sounds interesting.
12:38 jnthn yeah, it's useful and abused for DSL-ish stuff :)
12:39 masak it would be easy to combine LEAVE .dispose; and and aptly-named macro with some sort of 'does Disposing' role that IO and db handles and other things could do.
12:39 jnthn aye
12:40 MayDaniel joined #perl6
12:40 moritz nom: LEAVE say 'x'
12:40 p6eval nom 1fd3f8: OUTPUT«===SORRY!===␤LEAVE phaser not yet implemented at line 1, near ""␤»
12:45 mux masak: thanks!
12:46 moritz woah, > 200 nicks in here
12:46 grondilu joined #perl6
12:49 masak we used to be ~100 not so long ago, right?
12:49 xinming joined #perl6
12:49 moritz yes
12:50 masak I suspect it's my recent shouting and swearing that has made the channel more accessible... :P
12:50 moritz any new users want to tell us where they came from, and what got them interested in Perl 6?
12:50 PerlJam nah, it's just everyone is on line at the same time as  their -away or -work versions are also online.
12:50 PerlJam not to mention all of the bots :)
12:50 masak WELCOME, NEW USERS. WE COME IN PEACE.
12:51 * masak does a robot dance and emits bleep-bloop noises
12:51 mux I came in here because I heard Perl 6 is the new Java!
12:51 * mux hides
12:51 masak :D
12:51 PerlJam It's certainly not the old Java
12:51 moritz mux: we might start hating you after all :-)
12:51 * mux grins
12:52 masak nah. sticks and stones... :)
12:53 * grondilu wonders if he's a new user
12:53 masak if you have to ask... :)
12:55 bluescreen10 joined #perl6
12:56 grondilu I'm just a typical linux nerd.  Programmation is just a hobbie to me.  I suck at C or C++ but I have huge respect for these languages.  I know and enjoy bash and I started learning Perl more seriously when I began writing CGI scripts.  I love the syntax and the fact that we can write very concise programs.  I dived into Perl6 recently and I think the concept is hyper-cool.  I'm also happen to be an old member of the #bitcoin community.  That's it.
12:56 Trashlord joined #perl6
12:57 moritz grondilu: thanks for sharing, nice to hear
12:57 masak grondilu++
12:57 PerlJam grondilu: you don't think any of the perl6 implementations are hyper-cool?  :)
12:57 grondilu PerlJam: well no, actually.  Most of them lack a lot of features, don't they?
12:58 PerlJam grondilu: sure, but what's the criteria for "hyper-coolness" then?  Implement 80% of the spec?  90%? or will only 100% do?
12:59 benabik 110%
12:59 jnthn > sub foo { state $a = 5; say $a++ }; foo; foo; foo
12:59 jnthn 5
12:59 jnthn 6
12:59 jnthn 7
12:59 jnthn \o/
12:59 masak jnthn++!
12:59 moritz \o/
12:59 grondilu I don't know exatly, but more than the current state anyway
12:59 * jnthn tests
12:59 jnthn .oO( The current state just improved :P )
13:00 moritz that's fine, I also want some more features
13:00 moritz currently I mostly miss NCI
13:00 benabik The awesome thing is that the current state is always getting better…  Except when it doesn't.
13:00 masak maybe I'm wizened from having submitted a fair number of bug reports... but "hyper-cool" isn't something that will just happen one day. not even at the mythical time point when we reach 100% features.
13:00 PerlJam benabik: the current state is always better than *something*  :)
13:00 Juerd PerlJam: Something's always better than the current state :(
13:00 masak "hyper-cool" happens little by little as things start to Just Work... which happens some time after a feature lands :)
13:01 benabik use DRTR; do_it
13:01 grondilu I just whish I'll still be alive when 100% is reached.  I just want to see that happen.  It will be incredible, I think.
13:01 masak "Do Right The Ring"? :/
13:01 benabik And it will even know to correct the typo in DTRT.
13:01 masak JDFI
13:01 pnu joined #perl6
13:01 moritz benabik: that needs to be an NCI wrapper around libjustdoit :-)
13:02 * jnthn needs to try and get back to the NCI stuff
13:03 jnthn It'd help if I could get a libffs binary or figure out how to build it on my platform, I guess
13:03 * grondilu forgot to tell you that he's french and lives in Paris.
13:05 PerlJam grondilu: are neighborhoods in Paris named in some way?
13:05 mux grondilu: oh, hi neighbour!
13:05 mux PerlJam: some are
13:06 moritz arondisments or so
13:06 mux arrondissements are a legal divison
13:06 PerlJam grondilu: one of my uncles traced my mom's family name (Tassin) back through history and supposedly it originates from a little community that used to be outside of Paris but has since been subsumed into the city.
13:06 mux division*
13:06 mux we also have some other names
13:06 PerlJam I was wondering if it still had some distinctiveness.
13:07 mux PerlJam: what is the community's name?
13:07 PerlJam mux: not sure but it had something to do with tassin :)   mumble-tassin or tassin-mumble is how I've always imagined it.
13:08 mux oh
13:08 mux doesn't ring a bell to me
13:08 preflex joined #perl6
13:08 * moritz only knows Tessin
13:08 moritz http://dyncall.org/ looks interesting
13:09 mux the only tassin the french google maps knows about is Tassin-la-Demi-Lune, which seems to be a small town near Lyon
13:09 moritz offers source package, windows and mac os X PPC packages for download
13:09 cognominal there is a Tassin suburb of Lyon
13:10 cognominal http://fr.wikipedia.org/wiki/Tassin-la-Demi-Lune
13:10 PerlJam cognominal: heh, I wsa just googling that  :)
13:11 * grondilu never heard the world "Tassin"
13:12 moritz as does http://www.nongnu.org/cinvoke/
13:12 grondilu s/world/word/
13:12 moritz both seem to have sufficiently permissive licenses too
13:12 dalek rakudo/nom: 481a027 | jnthn++ | src/ (4 files):
13:12 dalek rakudo/nom: Give initialization of state variables START semantics.
13:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/481a027027
13:12 * masak finds http://www.perlfoundation.org/perl6/index.cgi?when_will_perl_6_be_released
13:13 masak doesn't say which January it was last edited...
13:13 dalek roast: 335d2ce | jnthn++ | S04-declarations/state.t:
13:13 dalek roast: Unfudge some state tests.
13:13 dalek roast: review: https://github.com/perl6/roast/commit/335d2ce6ec
13:14 moritz http://www.nongnu.org/cinvoke/faq.html is slightly amusing
13:14 PerlJam masak: looks like there was a third 80% ... and maybe there will be a fourth 80% too
13:15 bluescreen10 joined #perl6
13:16 masak turns out being disruptive doesn't work well with having a fixed schedule...
13:16 moritz http://sourceware.org/libffi/ says it's been ported to windows/cygwin and windows/mingw
13:16 moritz looks like no msvc
13:18 PerlJam masak: It's because revolutions tend to have a watershed event than people can pin to a timeline and say "*this* is when things really happened"   The only problem is that it obscures all of the work before and after that made the revolution successful.
13:18 Juerd We've had electricity into our homes for how long now?
13:19 benabik masak: I'm seeing references to a libffi-msvc but no repository for it.
13:19 PerlJam Juerd: I don't know about you, but I've always had electricity in my home  ;)
13:20 Juerd We're taking it for granted, can hardly imagine the world without. But it took a lot of research and experiments before the first building was electrified. Nobody seems to care about all the work that was done before that.
13:20 moritz benabik: https://github.com/stevedekorte/io/tree/master/addons/CFFI/source/libffi-msvc maybe?
13:20 Juerd I think people will use Perl 6 without bitching about how long it took to get there, once it's out.
13:20 benabik moritz: That appears to be an import of it, not the original, but yes.
13:20 Juerd Or at least, after a few years :)
13:21 Juerd PerlJam: We have had some outages, but apart from that I've never visited any home that didn't have mains Ac
13:21 Juerd s/c$/C/
13:21 PerlJam Juerd: IF perl 6 finds a nice niche or two, I agree.
13:21 Juerd If or iff?
13:21 drbean joined #perl6
13:21 PerlJam just if
13:22 Juerd 'cause I don't think programming languages require a niche to be succesful
13:22 PerlJam I'm not smart enough to know all of the factors that make a programming language successful.
13:22 Juerd Marketing is increasingly important.
13:22 benabik moritz: The original seems to be http://code.google.com/p/libffi-msvc/, but that URL gives 403 Forbidden
13:23 moritz wow, I didn't know about private google code projects
13:24 masak Perl 6, as far as I can tell, *is* out. and released.
13:25 GlitchMr joined #perl6
13:25 masak anyway, that imaginary timeline is comforting to look at :)
13:26 jnthn moritz: dyncall looks kinda nice
13:26 masak I do think that the "hack, hack, hack" phase is more jagged than the timeline pretends.
13:27 benabik Yeah.  Looks like libffi works in MSVC but it involves hackery with the build process.
13:27 PerlJam masak: you can always make your own updated and improved timeline  :)
13:28 benabik moritz: https://github.com/atgreen/libffi/blob/master/msvcc.sh
13:28 jnthn .sh?
13:28 benabik Okay, done with that now.
13:29 benabik I think it needs cygwin/msys for the build system.
13:29 jnthn yeah... :(
13:29 jnthn Well, the other thing is that I don't like sending users off chasing dependencies all over.
13:29 PerlJam Timothy Wall?
13:37 [Coke] statistics IS handwavy. Anyone who tells you different is trying to sell you something.
13:37 im2ee joined #perl6
13:38 moritz [Coke]: I'm not convinced. At least the foundations of statistics are derived from nice and simple axioms
13:38 moritz most applications are handwavy, yes
13:41 [Coke] I'm willing to believe that I just had a bad stats teacher at univ. who was trying to sell his new book. ;)
13:42 arnsholt I'm with moritz. Statistics are certainly abused a lot, but statistics is actually very useful
13:47 dalek rakudo/nom: 3e8f571 | jnthn++ | src/Perl6/SymbolTable.pm:
13:47 dalek rakudo/nom: Make uninitialized int default to 0 and an uninitialized num default to NaN.
13:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3e8f571ea4
13:52 mls_ Hmm, I thought lexicals get initialized by the static lexpad?
13:53 jnthn mls_: In general yes. In this case it was easier (and likely cheaper) this way.
13:53 mls_ is that not true for native types?
13:53 mls_ ah, ok.
13:53 jnthn It coulda been done the other way too, but it would have involved a bigger refactor.
13:54 finanalyst joined #perl6
13:55 lateau_ joined #perl6
13:55 finanalyst hi I am running rakudo star on ubuntu and came accross: error:imcc:syntax error, unexpected COMMA (',')
13:55 im2ee Hello! :)
13:56 finanalyst i tried perl6 -c file.p6 first and syntax was OK
13:57 jnthn yeah, it looks like a code gen fail
13:57 jnthn Which comes beyond what -c does
13:57 moritz finanalyst: so what's in file.p6?
13:57 finanalyst how can i locate the problem?
13:58 moritz delete lines from (a copy of) the file until you've narrowed it down to a few lines
13:58 finanalyst moritz: I am using perl6 to generate svg for rating scale comparisons
13:58 moritz finanalyst: are you using any Q:PIR blocks or pir:: or something?
13:58 finanalyst moritz: no
13:58 finanalyst only perl6
13:59 moritz that's odd
13:59 moritz and most likely a rakudobug
14:00 jnthn --target=pir will dump the generated code, which will contain the error somewhere. IMCC may (should) have given a line number too...
14:00 finanalyst i have some line numbers in 'file unknown' in the error message. Any way to use that information
14:01 moritz jnthn: unless it's from an eval
14:01 finanalyst jnthn: will look now
14:02 SHODAN joined #perl6
14:02 jnthn moritz: true
14:08 finanalyst I also have the following error:  "error:imcc:syntax error ... somewhere" what is a ... ?
14:09 moritz it doesn't mean anything, other than IMCC is mightily confused
14:09 am0c joined #perl6
14:11 lateau_ joined #perl6
14:14 mj41 joined #perl6
14:14 mj41_nb joined #perl6
14:18 daniel-s joined #perl6
14:19 finanalyst i found the offending line, now trying to reproduce it in a simple case
14:20 benabik finanalyst++
14:30 sftp joined #perl6
14:35 moritz nom: sub h(int $x) { $x div 2 }; my Int $I = 84; say h $I
14:35 p6eval nom 3e8f57: OUTPUT«Cannot unbox argument to '$x' as a native int␤  in sub h at /tmp/F2iywyn4MZ:1␤  in block <anon> at /tmp/F2iywyn4MZ:1␤  in <anon> at /tmp/F2iywyn4MZ:1␤»
14:35 moritz jnthn: ^^ why not? bug?
14:37 packetknife joined #perl6
14:38 preflex joined #perl6
14:40 jnthn Looks like.
14:40 jnthn nom: sub h(int $x) { $x div 2 }; my Int $I = 84; say h nqp::p6decont($I)
14:40 p6eval nom 3e8f57: OUTPUT«42␤»
14:40 jnthn ah
14:40 jnthn ok, easy to fix bug.
14:41 mls_ (isn't it a bit dangerous that both rakudo and nqp define how storage_spec looks like?)
14:43 jnthn mls_: In what sense?
14:43 mls_ they could get out of sync
14:43 mls_ storage_spec.h should live only in nqp
14:43 jnthn mls_: sixmodelobject.h too
14:44 mls_ yes
14:44 jnthn mls_: For now they just get copied on updates
14:44 mls_ yes, nothing we need to fix right now
14:45 jnthn It should be possible to get nqp's make install to put them somewhere
14:45 jnthn And then Rakudo to get at them that way
14:45 jnthn I didn't really have the motivation to spend time on that though...keeping the two in sync with the occasional changes that happen is less effort :)
14:45 jnthn But I agree that it's probably better to have nqp install the .h files :)
14:45 mls_ sure. Just thought I should mention it ;)
14:52 * [Coke] should check in his stupid "check_explode" script that makes sure unrun test files are still exploding in the same way. (since it's at home behind a dead wifi hub)
14:53 sorear good * #perl6
14:53 [Coke] sorear: ho.
14:55 sorear looks like niecza/serialize failed 17/329 spec-test files (overnight run)
14:55 sorear not as bad as I feared
14:59 im2ee joined #perl6
14:59 fsergot joined #perl6
14:59 GlitchMr Is there something in Perl 6 which works like "use Safe" in Perl 5?
15:00 moritz nothing specced
15:00 moritz various Perl 6 compilers have safe modes of varying degree of robustness
15:01 GlitchMr :(
15:01 GlitchMr ...
15:01 GlitchMr Oh well...
15:01 moritz see the perl6/evalbot/ source on github for how they are invoked
15:01 moritz though note that p5's Safe.pm isn't safe either
15:02 [Coke] IWBNI there was a spec demarcation of safe/unsafe.
15:02 [Coke] I miss Modula-3 sometimes.
15:03 GlitchMr ... wait... so evalbot is made in Perl 5 :P
15:03 moritz yes
15:03 GlitchMr $P0['&run'] = s
15:03 GlitchMr $P0['&open'] = s
15:03 GlitchMr $P0['&slurp'] = s
15:03 GlitchMr $P0['&unlink'] = s
15:03 GlitchMr $P0['&dir'] = s
15:04 GlitchMr ... ok...
15:04 moritz and why not? it's a nice language
15:04 GlitchMr Oh well. I'm making IRC bot in PHP :).
15:04 benabik …  Because it's a nice language?
15:04 GlitchMr well, not exactly
15:05 GlitchMr It has some limitations... but it's pretty nice
15:05 GlitchMr It was made for websites...
15:05 GlitchMr not IRC bots, but at least it's possible to make IRC bot in PHP
15:05 benabik I'll admit I haven't used it a lot, but the only thing I've liked about it is that it was easy to embed into HTML…  And even that leads to a lot of horrible things.
15:05 benabik Hm.  You could use node.js to make a Javascript IRC bot.
15:06 benabik I wonder if someone has.
15:06 benabik http://code.google.com/p/jsircbot/
15:06 moritz I'm pretty sure somebody has
15:06 GlitchMr Node.js sounds interesting
15:06 dalek roast: fc81518 | moritz++ | S02-types/native.t:
15:06 dalek roast: new file for basic native type tests
15:06 dalek roast: review: https://github.com/perl6/roast/commit/fc81518d13
15:06 dalek roast: 1429c23 | moritz++ | S02-types/native.t:
15:06 dalek roast: test for auto(un)boxing
15:06 dalek roast: review: https://github.com/perl6/roast/commit/1429c23067
15:06 GlitchMr JS is nice language
15:07 * moritz coughs
15:07 moritz JS is... acceptable and powerful. But not nice.
15:07 GlitchMr At least it can overwrite functions, unlike PHP
15:08 dalek rakudo/nom: 9897b01 | moritz++ | t/spectest.data:
15:08 dalek rakudo/nom: run new test file for native types
15:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9897b01e3a
15:08 benabik JS has driven a lot of very interesting work in compiler design.
15:08 benabik I'll give it that.  :-D
15:09 GlitchMr PHP is like parentheses everywhere
15:09 GlitchMr So I really don't care about JS, because it's pretty much that
15:09 jnthn moritz: Did you file RT for that bug earlier?
15:10 moritz jnthn: not yet, just pushed a test... should I?
15:11 GlitchMr If there is something as flexible as include in PHP, I could find JS interesting :).
15:11 GlitchMr And everything is object :)
15:12 moritz everything? is a function call an object in PHP?
15:12 GlitchMr in JS...
15:12 GlitchMr I said about JS
15:12 moritz ok
15:12 moritz is a function call an object in JS?
15:13 moritz are scopes objects?
15:13 * moritz hates the "everything is an object" meme
15:13 GlitchMr ok, ok
15:13 GlitchMr Functions itself are objects and result of functions can be objects too
15:14 GlitchMr are objects*
15:14 moritz I know, and that wasn't my question
15:14 [Coke] moritz: sheesh.
15:14 GlitchMr >>> a.valueOf
15:14 GlitchMr function valueOf() { [native code] }
15:15 jnthn moritz: Please, so I don't forget it.
15:15 GlitchMr Ok... ALMOST everything is an object.
15:15 GlitchMr Happy?
15:15 jnthn moritz: Even better if you note where the test is, then when I fix it I just resolve the ticket ;)
15:16 jnthn well, and unfudge
15:16 MayDaniel joined #perl6
15:17 moritz GlitchMr: not really
15:17 moritz GlitchMr: because it doesn't tell my anything
15:17 moritz GlitchMr: in perl 5, almost everything is an object. Like, except anything that isn't a blessed reference
15:17 GlitchMr >>> typeof /regular expressions/
15:17 GlitchMr "object"
15:17 GlitchMr ok, that was a joke
15:18 GlitchMr But I can use "." operator everywhere
15:18 GlitchMr in JS
15:18 GlitchMr ...
15:18 moritz now that's a much more interesting statement
15:18 GlitchMr ok, on everything what is objecty
15:18 GlitchMr ok, on everything what is object*
15:18 GlitchMr >>> 2.0.toString()
15:18 GlitchMr "2"
15:19 JimmyZ nom: say 2.0.String;
15:19 p6eval nom 3e8f57: OUTPUT«Method 'String' not found for invocant of class 'Rat'␤  in block <anon> at /tmp/BQCVDDFv7F:1␤  in <anon> at /tmp/BQCVDDFv7F:1␤»
15:19 GlitchMr >>> new Number(42) + 3
15:19 GlitchMr 45
15:19 JimmyZ nom: say 2.0.Str;
15:19 p6eval nom 3e8f57: OUTPUT«2␤»
15:19 moritz jnthn: #102158 is yours
15:20 benabik nom: 2.0.WHAT.say
15:20 p6eval nom 3e8f57: OUTPUT«Rat()␤»
15:20 GlitchMr >>> new Array(1,2,3,4,5)
15:20 GlitchMr Array [1, 2, 3, 4, 5]
15:20 benabik nom: say 2.0
15:20 p6eval nom 3e8f57: OUTPUT«2␤»
15:20 JimmyZ nom: say Num(42) + 3 #this one is NYI
15:20 benabik Huh.  I would have expected it to keep the ".0".
15:20 p6eval nom 3e8f57: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Num' called (line 1)␤»
15:21 jnthn moritz: danke
15:21 GlitchMr perl6: say Num(42) + 3
15:21 p6eval niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: Unable to resolve method postcircumfix:<( )> in class Num␤  at /tmp/3F5PlXYwR9 line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2182 …
15:21 p6eval ..rakudo 3e8f57: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Num' called (line 1)␤»
15:21 p6eval ..pugs b927740: OUTPUT«*** No such subroutine: "&Num"␤    at /tmp/DxkCnJ3yaN line 1, column 5 - line 2, column 1␤»
15:21 GlitchMr ...
15:21 JimmyZ NYI
15:21 GlitchMr Whatever
15:21 moritz benabik: would you expect  'say 2.00' to preserve both 0s?
15:21 GlitchMr New York I...
15:21 GlitchMr :P
15:21 GlitchMr I know... Not Yet Implemented.
15:22 benabik moritz: Not really.  Just used to floats/rats distinguishing themselves from ints on output.  I wouldn't call it wrong, just unexpected.
15:23 moritz nom: say 2e0
15:23 p6eval nom 3e8f57: OUTPUT«2␤»
15:23 moritz nom: say 2e0.perl
15:23 p6eval nom 3e8f57: OUTPUT«2e0␤»
15:23 moritz benabik: I'd be fine with either way (2 vs 2.0)
15:23 benabik nom: 2.0.perl.say
15:23 p6eval nom 3e8f57: OUTPUT«2/1␤»
15:23 moritz (except that surely a lot of spectests depend on the current stringification)
15:24 moritz nom: use Test; plan 1; is 6 / 3, 2, 'foo'
15:24 p6eval nom 3e8f57: OUTPUT«1..1␤ok 1 - foo␤»
15:24 moritz things like that
15:24 benabik Does is use string equality?
15:25 moritz anyway, if @larry.pick decides to spec it to stringify in another way, I'll do my best to change roast appropriately
15:25 moritz benabik: yes
15:33 GlitchMr Notepad++ tries to actually parse Perl... it fails... but it's pretty nice :)
15:33 GlitchMr It actually tries to find regular expressions...
15:33 nornagest joined #perl6
15:34 nornagest Hi.
15:34 moritz hi nornagest
15:38 GlitchMr http://img41.imageshack.us/img41/3295/notepadplusplusq.png
15:38 GlitchMr Hello :)
15:39 GlitchMr ... Notepad++ is weird sometimes...
15:39 [Coke] hey, why didn't the evalbot try to run that png!
15:39 moritz perl isn't trivial to parse (neither version)
15:40 moritz [Coke]: it ate it, and feasts on the pixel dust
15:40 GlitchMr Yeah, I find it weird that Notepad++ even tries to parse it
15:40 im2ee Have somebody ever tried the Go language? :)
15:40 moritz [Coke]: so subsequent evaluations will be a little slower
15:40 moritz niecza: say 1
15:40 p6eval niecza v10-61-gbacff10: OUTPUT«1␤»
15:40 moritz just like that :-)
15:41 * jnthn uses Notepad++
15:41 jnthn It does OK with NQP...and a bit less OK with full-on Perl 6. :)
15:42 GlitchMr It's worse with Perl 6, but hey, it doesn't yet support it
15:43 im2ee karma Notepad
15:43 aloha Notepad has karma of 5.
15:43 im2ee :)
15:43 GlitchMr karma Notepad++
15:44 aloha Notepad++ has karma of 0.
15:44 GlitchMr ... :P
15:44 GlitchMr Notepad++++
15:44 im2ee Notepad++++
15:44 im2ee :)
15:44 GlitchMr karma Notepad++
15:44 aloha Notepad++ has karma of 0.
15:44 GlitchMr ...
15:44 jasonmay (Notepad++)++
15:44 moritz karma Notepad
15:44 im2ee karma Notepad
15:44 aloha Notepad has karma of 10.
15:44 aloha Notepad has karma of 10.
15:44 GlitchMr lol
15:44 jasonmay karma Notepad++
15:44 aloha Notepad++ has karma of 0.
15:44 moritz karma C
15:44 GlitchMr You cannot add karma to Notepad++
15:44 aloha C has karma of 667.
15:44 GlitchMr Probably because of its name
15:45 jnthn C-- # just to be evil ;)
15:45 im2ee +++
15:45 im2ee karma +
15:45 aloha + has karma of 0.
15:45 GlitchMr C-- is actual language
15:45 GlitchMr http://www.cminusminus.org/
15:45 im2ee :D
15:46 GlitchMr Let me guess m/[^+]+[+][+]/
15:46 [Coke] {Notepad++}++
15:46 GlitchMr ok, it's actually more complex
15:46 GlitchMr But whatever
15:46 [Coke] karma Notepad++
15:46 aloha Notepad++ has karma of 0.
15:46 GlitchMr karma notepad
15:46 aloha notepad has karma of 14.
15:46 GlitchMr (Notepad++)++
15:46 GlitchMr karma notepad
15:46 aloha notepad has karma of 15.
15:47 [Coke] I swear that used to work. ah well, don't care. ;)
15:47 GlitchMr It's just not possible to increase karma of Notepad++
15:47 GlitchMr oh wait... I have just 5.9.3... I should update
15:47 GlitchMr lol
15:48 GlitchMr ---------------------------
15:48 GlitchMr Notepad++ update
15:48 GlitchMr ---------------------------
15:48 GlitchMr No update is available.
15:48 GlitchMr ---------------------------
15:48 GlitchMr OK
15:48 GlitchMr ---------------------------
15:48 GlitchMr O_o
15:53 dual joined #perl6
15:56 thou joined #perl6
15:58 GlitchMr perl6: $_ = 'aa'; s☝a☝b☝; say $_;
15:58 p6eval niecza v10-61-gbacff10: OUTPUT«ba␤»
15:58 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\9757'␤decodeUTF8': bad data: '\9757'␤decodeUTF8': bad data: '\9757'␤Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require…
15:58 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "s\u261da\u261db\u261d; sa"␤»
15:59 benabik niecza++
15:59 GlitchMr kind of makes sense...
15:59 benabik niecza does a lot of complex parsing right.
15:59 GlitchMr perl6: $_ = 'aa'; s:g♺a♺b♺; say $_;
15:59 p6eval niecza v10-61-gbacff10: OUTPUT«bb␤»
15:59 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "s:g\u267aa\u267ab\u267a; "␤»
15:59 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\9850'␤decodeUTF8': bad data: '\9850'␤decodeUTF8': bad data: '\9850'␤Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require…
15:59 GlitchMr :)
15:59 envi_ joined #perl6
15:59 GlitchMr This is awesome :).
16:00 benabik pugs apparently doesn't speak UTF8?
16:00 benabik GlitchMr: You can use `.say` instead of `say $_`
16:00 envi_ joined #perl6
16:00 GlitchMr perl6: $_ = 'aa'; s:g❴a❵❴b❵; say $_;
16:00 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Missing assignment operator at /tmp/foiBjdHhCE line 1:�------> [32m$_ = 'aa'; s:g�a�[33m�[31m�b�; say $_;[0m��Parse failed��»
16:00 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "s:g\u2774a\u2775\u2774b\u2775;"␤»
16:00 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\10100'␤decodeUTF8': bad data: '\10101'␤decodeUTF8': bad data: '\10100'␤decodeUTF8': bad data: '\10101'␤*** s{...}{...} is deprecated; write s{...}='...' instead.␤    at /tmp/r7DXRcMO4q line 1, column 19␤Error eval perl5: "if (!$INC{'Pugs/Run…
16:00 benabik nom: .= 'aa'; .say # I wonder
16:00 p6eval nom 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near ".= 'aa'; ."␤»
16:01 benabik niezca: .= 'aa'; .say
16:01 GlitchMr perl6: $_ = 'aa'; s:g⎩a⎭⎩b⎭; say $_;
16:01 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Unrecognized regex metacharacter ⎭ (must be quoted to match literally) at /tmp/SCexgYbcDP line 1:�------> [32m$_ = 'aa'; s:g⎩a⎭[33m�[31m⎩b⎭; say $_;[0m���Unhandled Exception: System.IndexOutOfRangeException: Array index …
16:01 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "s:g\u23a9a\u23ad\u23a9b\u23ad;"␤»
16:01 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\9129'␤decodeUTF8': bad data: '\9133'␤decodeUTF8': bad data: '\9129'␤decodeUTF8': bad data: '\9133'␤*** ␤    Unexpected end of input␤    expecting block, "\\", variable name or "\9129"␤    at /tmp/JjkQOMEXHD line 2, column 1␤»
16:01 masak why is nom confused over Unicode regex delimiters?
16:01 jnthn std: .= 'aa'; .say
16:01 GlitchMr ... actually, I should just ask niecza
16:01 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Confused at /tmp/_vgyl2tOLj line 1:â�¤------> [32m.=[33mâ��[31m 'aa'; .say[0mâ�¤    expecting dotty method or postfixâ�¤Parse failedâ�¤FAILED 00:01 118mâ�¤Â»
16:02 benabik jnthn: Yeah, didn't know if it would work.  I suppose asking std is a better way to figure it out.
16:02 GlitchMr niecza: $_ = 'aa'; s:g«a»«b»; .say
16:02 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Missing assignment operator at /tmp/WkGYptBRDq line 1:�------> [32m$_ = 'aa'; s:g«a»[33m�[31m«b»; .say[0m��Parse failed��»
16:02 benabik Hm.  .= means something different, doesn't it.
16:02 GlitchMr niecza: $_ = 'aa'; s:g“a”“b”; .say
16:02 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Missing assignment operator at /tmp/AfO_6Lwud0 line 1:�------> [32m$_ = 'aa'; s:g“a�[33m�[31m“b�; .say[0m��Parse failed��»
16:02 GlitchMr ... it doesn't seem to support pair of operators though...
16:03 benabik Missing assignment operator?
16:03 flussence std: q「?」
16:03 p6eval std 580b69a: OUTPUT«ok 00:01 118m␤»
16:03 flussence woo
16:03 GlitchMr benabik, it aplies method
16:03 flussence niecza: q「?」
16:03 p6eval niecza v10-61-gbacff10:  ( no output )
16:03 GlitchMr perl6: 'wow'.say
16:03 flussence niecza: q「?」.say
16:03 GlitchMr perl6: 'wow'.=say
16:03 p6eval pugs b927740, rakudo 9897b0, niecza v10-61-gbacff10: OUTPUT«wow␤»
16:03 p6eval niecza v10-61-gbacff10: OUTPUT«?␤»
16:03 p6eval rakudo 9897b0: OUTPUT«wow␤Cannot assign to a non-container␤  in method dispatch:<.=> at src/gen/CORE.setting:722␤  in block <anon> at /tmp/0UyPWRDxUW:1␤  in <anon> at /tmp/0UyPWRDxUW:1␤»
16:03 p6eval ..pugs b927740: OUTPUT«wow␤*** Can't modify constant item: VStr "wow"␤    at /tmp/i4aFBN03Y3 line 1, column 1 - line 2, column 1␤»
16:03 p6eval ..niecza v10-61-gbacff10: OUTPUT«wow␤␤Unhandled Exception: assigning to readonly value␤  at /tmp/SHseeYwN9N line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2182 (CORE module-CORE @ 58) ␤ …
16:03 benabik GlitchMr: Yeah, I remembered that after the fact.
16:04 GlitchMr perl6: my $var = 2; $var .= say; say $var.perl
16:04 p6eval niecza v10-61-gbacff10: OUTPUT«2␤Bool::True␤»
16:04 p6eval ..pugs b927740: OUTPUT«2␤\Bool::True␤»
16:04 p6eval ..rakudo 9897b0: OUTPUT«2␤Bool.new()␤»
16:04 GlitchMr Bool.new()...
16:04 GlitchMr ok...
16:05 GlitchMr niecza: my $_ = '1/4'; s¼4¼2¼; .say
16:05 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     's¼4¼2¼' used at line 1â�¤â�¤Potential difficulties:â�¤  Useless redeclaration of variable $_ (see ??? line ???) at /tmp/5tsXxbUinr line 1:â�¤------> [32mmy $_ [33mâ��[31m= '1/4'; s¼4¼2¼; .say[0mâ�¤â�¤â�¤Unhandled E…
16:05 benabik niecza: $_ = 'aa'; s「a」「b」; .say
16:05 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Missing assignment operator at /tmp/8FgqUo8ZG2 line 1:�------> [32m$_ = 'aa'; s「a�[33m�[31m「b�; .say[0m��Parse failed��»
16:06 GlitchMr niecza: $_ = '1/4'; s⁕4⁕2⁕; .say
16:06 p6eval niecza v10-61-gbacff10: OUTPUT«1/2␤»
16:06 benabik std: $_ = 'aa'; s「a」「b」; .say
16:06 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Missing assignment operator at /tmp/A0aheNNrQb line 1:â�¤------> [32m$_ = 'aa'; s「aã€�[33mâ��[31m「bã€�; .say[0mâ�¤    expecting any of:â�¤   bracketed infixâ�¤        infix or meta-infixâ�¤    quantifierâ�¤Parse failedâ�¤FAILED 00:01 124mâ�¤Â»â€¦
16:06 benabik Can't use paired brackets there, apparently.
16:06 GlitchMr niecza: $_ = '1/4'; s«4«2«; .say
16:06 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Regex missing terminator (or semicolon must be quoted?) at /tmp/OhvIzl591h line 1:�------> [32m$_ = '1/4'; s«4«2«;[33m�[31m .say[0m��Parse failed��»
16:06 benabik std: $_ = 'aa'; s「a」= 'b'; .say
16:06 p6eval std 580b69a: OUTPUT«ok 00:01 123m␤»
16:06 GlitchMr niecza: $_ = '1/4'; s〈4〈2〈; .say
16:06 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Unrecognized regex metacharacter 〈 (must be quoted to match literally) at /tmp/TJfX_5c4Ed line 1:�------> [32m$_ = '1/4'; s〈4〈[33m�[31m2〈; .say[0m��Couldn't find terminator 〉 at /tmp/TJfX_5c4Ed line 1:�------> [32m$_ = …
16:07 benabik std: $_ = 'aa'; s「a」= 「b」; .say
16:07 p6eval std 580b69a: OUTPUT«ok 00:01 124m␤»
16:07 GlitchMr niecza: $_ = '1/4'; s〈4〉〈2〉; .say
16:07 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Missing assignment operator at /tmp/NMU1NLBkPI line 1:�------> [32m$_ = '1/4'; s〈4〉[33m�[31m〈2〉; .say[0m��Parse failed��»
16:07 GlitchMr ...
16:07 GlitchMr that's weird...
16:08 masak yeah.
16:09 GlitchMr s/PATTERN/REPLACEMENT/msixpodualgcer
16:09 GlitchMr lol
16:09 GlitchMr Documentation is awesome
16:10 GlitchMr Is it just me or I can see glacier there?
16:11 masak glacier?
16:11 masak ah, 'lgcer'?
16:11 masak well, maybe if you squint.
16:11 simcop2387 joined #perl6
16:12 * masak decommutes
16:12 simcop2387 joined #perl6
16:14 GlitchMr perl6: m/#/x;print ":)";
16:14 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Regex not terminated at /tmp/BcPwcvvteQ line 1 (EOF):�------> [32mm/#/x;print ":)";[33m�[31m<EOL>[0m��Parse failed��»
16:14 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "m/#/x;prin"␤»
16:14 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "print"␤    expecting "="␤    at /tmp/XpL_thCQ93 line 1, column 7␤»
16:14 GlitchMr perl6: m/#/;print ":)";
16:14 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Regex not terminated at /tmp/fyoruigp4x line 1 (EOF):�------> [32mm/#/;print ":)";[33m�[31m<EOL>[0m��Parse failed��»
16:14 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "m/#/;print"␤»
16:14 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
16:15 GlitchMr I have idea for testing helpful error messages. Run Perl 5 code in Perl 6 and fix errors which it will say.
16:16 GlitchMr Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 3, near " tr/A-Za-z"
16:16 GlitchMr ... ok, nice beginning :)
16:16 GlitchMr Unable to parse blockoid, couldn't find final '}' at line 3
16:16 GlitchMr ... ok, less helpful :P
16:17 GlitchMr sub rot13 {
16:17 GlitchMr my $string = shift;
16:17 GlitchMr $string ~~ tr/A-Za-z/N-ZA-Mn-za-m/;
16:17 GlitchMr return $string;
16:17 GlitchMr }
16:17 GlitchMr
16:17 GlitchMr print rot13($_) while (<>);
16:17 GlitchMr ... what I am doing what?
16:17 GlitchMr Let me guess... - operator?
16:18 GlitchMr ... nope
16:18 Trashlord what the hell
16:18 TimToady std: tr/A-Za-z/N-ZA-Mn-za-m/
16:18 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of - as character range; in Perl 6 please use .. at /tmp/otNp7fRbjP line 1:�------> [32mtr/A-Z[33m�[31ma-z/N-ZA-Mn-za-m/[0m�Parse failed�FAILED 00:01 119m�»
16:18 GlitchMr I know, but I wanted to test Perl 5 in Perl 6.
16:18 GlitchMr I wanted to see error messages.
16:18 GlitchMr I know .. is used for range
16:19 GlitchMr But the blockoid message is weird...
16:19 GlitchMr perl6: sub rot13 {my $string = shift;$string ~~ tr/A-Za-z/N-ZA-Mn-za-m/;return $string;}print rot13($_) while (<>);
16:19 p6eval rakudo 9897b0: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
16:19 p6eval ..niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Unsupported use of - as character range; in Perl 6 please use .. at /tmp/g__1QlQoBm line 1:�------> [32m13 {my $string = shift;$string ~~ tr/A-Z[33m�[31ma-z/N-ZA-Mn-za-m/;return $string;}print [0m��Parse failed��»…
16:19 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "$string"␤    expecting "=", context, ":" or "("␤    at /tmp/9FE4vFDT1P line 1, column 15␤»
16:19 GlitchMr ... ok
16:19 GlitchMr niecza, tell me more
16:19 GlitchMr perl6: sub rot13 {my $string = shift;$string ~~ tr/A..Za..z/N..ZA..Mn..za..m/;return $string;}print rot13($_) while (<>);
16:19 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method quote:tr not yet implemented at /tmp/8Rj6jxsSuw line 1:�------> [32m$string ~~ tr/A..Za..z/N..ZA..Mn..za..m/[33m�[31m;return $string;}print rot13($_) while ([0m��Strange text after block (missing comma, sem…
16:19 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at line 1, near "return $st"␤»
16:19 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "$string"␤    expecting "=", context, ":" or "("␤    at /tmp/sbOkRS3aJF line 1, column 15␤»
16:20 GlitchMr ...
16:20 GlitchMr ok...
16:20 TimToady improved messages in rakudo are waiting on the parser rewrite that pmichaud++ is sporadically working on
16:20 TimToady at which point rakudo will be more convergent with std
16:20 TimToady niecza is already based pretty directly on std
16:21 jnthn Plus we have roles in nqp now too, which should help with a few other bits of convergence.
16:21 GlitchMr Action method quote:tr not yet implemented at C:\Users\Konrad\Desktop\hello.php line 1:
16:21 GlitchMr ------> ←[32m$string ~~ tr/A..Za..z/N..ZA..Mn..za..m/←[33m?←[31m;return $string;}print rot13($_) while (←[0m
16:21 GlitchMr ... kind of makes sense...
16:22 GlitchMr So tr/// is not supported. OK, let's try something else...
16:22 TimToady there's the .trans form, at least in rakudo
16:23 GlitchMr perl6: sub leap {my $yr = $_[0];if ($yr % 100 == 0) {return ($yr % 400 == 0);}return ($yr % 4 == 0);}say leap 2000;
16:23 p6eval pugs b927740: OUTPUT«1␤»
16:23 p6eval ..niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Strange text after block (missing comma, semicolon, comment marker?) at /tmp/aipggQG583 line 1:�------> [32mr % 100 == 0) {return ($yr % 400 == 0);}[33m�[31mreturn ($yr % 4 == 0);}say leap 2000;[0m��Parse failed��»…
16:23 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
16:24 GlitchMr So pugs parses it...
16:24 GlitchMr ...
16:24 GlitchMr Unable to parse blockoid. What's wrong?
16:24 moritz GlitchMr: niecza told you
16:24 dalek rakudo/nom: 3fb9155 | jnthn++ | src/binder/bind.c:
16:24 dalek rakudo/nom: Fix a bug in the binder related to unboxing to native types. Also add a just-in-case check for something that should 'never happen'.
16:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fb9155dce
16:25 dalek roast: f1568a4 | jnthn++ | S02-types/native.t:
16:25 dalek roast: Unfudge test for bug found by moritz++ with native handling.
16:25 dalek roast: review: https://github.com/perl6/roast/commit/f1568a4365
16:25 jnthn moritz: Happily it was as easy to fix as I'd guessed.
16:27 GlitchMr perl6: sub leap {my $yr = $_[0];if ($yr % 100 == 0) {return ($yr % 400 == 0);};return ($yr % 4 == 0);}say leap 2000;
16:27 p6eval niecza v10-61-gbacff10: OUTPUT«[31m===[0mSORRY![31m===[0m��Strange text after block (missing comma, semicolon, comment marker?) at /tmp/E4RtsA_K2y line 1:�------> [32myr % 400 == 0);};return ($yr % 4 == 0);}[33m�[31msay leap 2000;[0m��Parse failed��»
16:27 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤Confused at line 1, near "sub leap {"␤»
16:27 p6eval ..pugs b927740: OUTPUT«1␤»
16:27 GlitchMr 32myr?
16:27 GlitchMr ...
16:27 GlitchMr ok...
16:28 GlitchMr perl6: sub leap {my $yr = $_[0];if ($yr % 100 == 0) {return ($yr % 400 == 0);};return ($yr % 4 == 0);};say leap 2000;
16:28 p6eval niecza v10-61-gbacff10: OUTPUT«Rebuild in progress␤»
16:28 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'leap' will never work with argument types (int) (line 1)␤    Expected: :()␤»
16:28 p6eval ..pugs b927740: OUTPUT«1␤»
16:28 GlitchMr Rebuild in progress...
16:28 TimToady it did that just out of spit :)
16:28 TimToady *spite
16:28 GlitchMr perl6: sub leap {my $yr = $_[0];if ($yr % 100 == 0) {return ($yr % 400 == 0);};return ($yr % 4 == 0);};say leap 2000;
16:28 p6eval niecza v10-61-gbacff10: OUTPUT«Bool::True␤»
16:28 p6eval ..rakudo 9897b0: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'leap' will never work with argument types (int) (line 1)␤    Expected: :()␤»
16:28 p6eval ..pugs b927740: OUTPUT«1␤»
16:28 TimToady but maybe spit too
16:29 GlitchMr "Calling 'leap' will never work with argument types (int) (line 1)"
16:29 GlitchMr ok...
16:29 moritz jnthn: it seems that in the case above, rakudo infers a type for the parameter that isn't specified and wrong
16:29 TimToady no
16:29 benabik Is $_[0] still a valid way to get a param?
16:29 TimToady should be @_[0]
16:30 GlitchMr ...
16:30 moritz TimToady: no? where does the 'int' come from?
16:30 GlitchMr How it still works?
16:30 benabik moritz: It said you called with (int), and it was expecting()
16:30 jnthn moritz: How is it wrong?
16:30 moritz benabik: ah, you're right
16:30 moritz jnthn: never mind, I am :-)
16:30 jnthn I agree a better error would be one that whined about arity thougyh :)
16:31 TimToady use of $_[0] is an interesting failure mode that is difficult to catch
16:31 benabik nom: sub leap {my $yr = @_[0];if ($yr % 100 == 0) {return ($yr % 400 == 0);};return ($yr % 4 == 0);};say leap 2000
16:31 p6eval nom 9897b0: OUTPUT«Bool::True␤»
16:39 TimToady if we had an analysis of "used before set", then $_[0] could be detected as a P5ism at compile time
16:41 TimToady we could (not suggesting this) go as far as to outlaw $_[0], and require .[0] instead
16:42 jnthn TimToady: I'll probably need to do that kind of variable analysis in the optimizer at some point in the not too distant future.
16:43 TimToady that seems like the cleaner way to do it
16:43 jnthn There's a whole load of subtlely there though
16:43 jnthn Consider
16:43 TimToady 'course, $_ is special
16:43 TimToady and can be set dynamically
16:43 GlitchMr $_[0] // not first character :(
16:43 TimToady CALLER::<$_>
16:44 jnthn Oh, that's even easier than what I was going to do.
16:44 jnthn class A { method m($x is rw) { $x = 42 } }; sub foo() { A.m($_[0]); }
16:44 GlitchMr perl6: $_ = '€ for everybody!'; print $_[0];
16:44 p6eval rakudo 9897b0, niecza v10-61-gbacff10: OUTPUT«€ for everybody!»
16:44 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\8364'␤€ for everybody!»
16:44 GlitchMr ...
16:44 GlitchMr ok...
16:45 GlitchMr perl6: my $euro = '€ for everybody!'; print $euro[0];
16:45 jnthn TimToady: In that case we don't know it's going to be bound to an rw parameter until runtime.
16:45 p6eval rakudo 9897b0, niecza v10-61-gbacff10: OUTPUT«€ for everybody!»
16:45 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\8364'␤€ for everybody!»
16:45 jnthn GlitchMr: You're looking for .substr
16:45 benabik GlitchMr: Perl6 doesn't treat strings as an array of characters.  $str[0] means different things if you're talking about byte, graphemes, characters, etc.
16:46 GlitchMr ...
16:46 GlitchMr ok..
16:46 GlitchMr makes sense
16:46 TimToady and then there's this:
16:46 TimToady perl6: my $euro = '€ for everybody!'; print $euro[0][0][0][0][0][0][0][0][0][0][0][0]
16:47 p6eval rakudo 9897b0, niecza v10-61-gbacff10: OUTPUT«€ for everybody!»
16:47 p6eval ..pugs b927740: OUTPUT«decodeUTF8': bad data: '\8364'␤€ for everybody!»
16:47 benabik perl6: my $string = 'foobarbaz'; say $string[1]
16:47 [Coke] . o O (wow, I thought going through old tickets on p6eval generated a lot of backscroll)
16:47 p6eval rakudo 9897b0: OUTPUT«Failure.new()␤»
16:47 p6eval ..niecza v10-61-gbacff10: OUTPUT«Any()␤»
16:47 p6eval ..pugs b927740: OUTPUT«␤»
16:48 benabik perl6: my $int = 3; say $int[0]; say $int[1]
16:48 p6eval rakudo 9897b0: OUTPUT«3␤Failure.new()␤»
16:48 p6eval ..niecza v10-61-gbacff10: OUTPUT«3␤Any()␤»
16:48 p6eval ..pugs b927740: OUTPUT«3␤␤»
16:48 jnthn .oO( no matter how deep they dig, the EU seem to be finding that maybe there ain't € for everybody )
16:48 GlitchMr ...
16:48 GlitchMr I live in Poland. It doesn't use €.
16:49 TimToady I sold my € back to the bank for $, so there should be plenty of € to go around now
16:49 GlitchMr But I've typed it because it's Unicode character
16:49 GlitchMr And it's easy to type on my keyboard. ALT GR+U
16:49 jnthn GlitchMr: I'm in Sweden, so am kinda isolated from the Euro stuff too
16:49 TimToady it's ALTGR e= here :)
16:49 GlitchMr But then, I guess ALT GR+U is used because ALT GR+E is already used for ę
16:49 jnthn To the degre "not being in the eurozone" isolates you from it...
16:50 jnthn ALTGR 4 here :)
16:50 GlitchMr ... ok
16:50 TimToady well, I should call it COMPOSE
16:50 TimToady though I confess I just copy/pasted it :)
16:51 benabik Opt-Shift-2, just to be strange.
16:51 benabik I guess postfix:<[ ]> treats a scalar as a one element array
16:51 jnthn benabik: correct
16:51 TimToady CTRL/SHIFT-u 20ac
16:52 moritz benabik: well, Any does; close enough :-)
16:54 GlitchMr ALT+0128
16:54 jnthn well, and it's postcircumfix:<[ ]>. But...details ;)
16:54 GlitchMr ... but seriously, it will print Windows-1252 character...
16:55 GlitchMr http://ralree.info/assets/2008/10/9/keyconfig.png
16:55 GlitchMr ... ok...
16:57 [Coke] ȡͮ # fun with windows alt key.
16:59 TimToady .u ȡͮ
16:59 phenny U+0221 LATIN SMALL LETTER D WITH CURL (ȡ)
16:59 phenny U+036E COMBINING LATIN SMALL LETTER V (◌ͮ)
17:01 packetknife joined #perl6
17:02 GlitchMr .u € :)
17:02 phenny GlitchMr: U+20AC U+0020 U+003A U+0029
17:02 GlitchMr .u ⚑⚐
17:02 phenny U+2691 BLACK FLAG (⚑)
17:02 phenny U+2690 WHITE FLAG (⚐)
17:03 GlitchMr .u ✌
17:03 phenny U+270C VICTORY HAND (✌)
17:03 GlitchMr .u And now we are just using ASCII to confuse this script :)
17:03 phenny GlitchMr: Sorry, your input is too long!
17:03 GlitchMr .u ASCII
17:03 phenny GlitchMr: Sorry, no results for 'ASCII'.
17:03 GlitchMr .u And now we are just using ASCII to confuse this script :).ł
17:03 phenny GlitchMr: Sorry, your input is too long!
17:03 GlitchMr .u ASCII ✌
17:03 phenny GlitchMr: U+0041 U+0053 U+0043 U+0049 U+0049 U+0020 U+270C
17:03 TimToady please don't torment the bot :)
17:04 GlitchMr ok...
17:04 GlitchMr :P
17:04 thiagoharry joined #perl6
17:05 jnthn afk for a bit
17:05 [Coke] s/the bot/us/
17:06 thiagoharry Hi. I would like to ask why the perl new version uses a butterfly as mascot.
17:06 TimToady do you need permission?
17:07 PerlJam thiagoharry: why not?  :)
17:07 benabik thiagoharry: https://raw.github.com/perl6/mu/master/misc/camelia.txt
17:07 TimToady short answer: to convince 8-year-old girls that Perl is cool
17:08 TimToady so they'll grow up to become programmers
17:08 huf it's a quantum butterfly. perl6 flaps its wings and millions die in an earthquake-flashflood-tsunami-meteor disaster
17:08 thiagoharry Good point. :-)
17:08 BinGOs maybe the logo should have been Justin Bieber then
17:08 TimToady and then we won't just be a bunch of uncivilized curmugeons
17:08 huf or maybe millions are born
17:08 moritz BinGOs: no, Justin Bieber will be uncool in at least two years
17:08 BinGOs heh
17:08 moritz (or probably more like, 2 weeks)
17:08 benabik It's the only non-text logo that becomes interesting in text: »ö«
17:09 TimToady er, big Camelia is text too
17:09 benabik TimToady: I meant a logo that's not just text in a specific font.
17:10 benabik Corporate "logos" that are just a name in Helvetica.  Boring.
17:11 benabik Debian's logo ascii-arts well, but it's better as a sig than an IRC topic.
17:12 thiagoharry Thanks for the answers. ^^
17:12 TimToady note that »ö« is not ascii art at all :)
17:15 [Coke] sorry, isoart.
17:15 [Coke] >>O:<< # squished into ascii.
17:16 TimToady looks more like Texas Roadkill
17:16 [Coke] ;)
17:19 bluescreen10 joined #perl6
17:20 wk joined #perl6
17:26 Chillance joined #perl6
17:36 TimToady context managers feels a bit twigily to me, as an odd scoping thing
17:38 TimToady but in any case it seems like some kind of sugar you can put on any formal parameter
17:39 TimToady that might or might not turn into "will leave *.dispose"
17:39 masak nod
17:41 TimToady and if we do that, once again we show that we can generalize something much better than merely adding a new control structure
17:43 TimToady it would just fall out that open() -> $/f {...}   (or whatever sugar we use) happens to be a degenerate case of it
17:47 masak right.
17:47 TimToady -> $+f  $-f  $\f  $>f
17:47 TimToady not many twigils left
17:47 TimToady doesn't have to be a twigil
17:47 TimToady could go in the !? slot after too
17:48 masak $f-
17:48 TimToady $f--  :)
17:48 masak :)
17:49 masak $f*
17:49 masak hm, no...
17:49 TimToady now I'm looking for the footnote
17:49 PerlJam Er ... what is this thing of which you speak?
17:49 masak PerlJam: we're bikeshedding sugar.
17:49 TimToady http://irclog.perlgeek.de/perl6/2011-10-25#i_4611609
17:49 TimToady and following discussion
17:50 PerlJam aye. reading.
17:50 masak $f.
17:50 TimToady or just a very short trait_mod
17:50 TimToady $f kill
17:50 masak $f will dispose
17:51 masak $f will self-destruct
17:51 TimToady will requires more
17:51 masak dang.
17:51 TimToady currently requires a block, but I want to relax that to *.dispose things
17:51 TimToady but it'd be "will leave *.close"
17:51 PerlJam so, do "openers" know their corresponding "closers"?
17:52 benabik Ruby handles it by passing blocks into constructors:  File.open('foo.txt') { |f| do_stuff f } # file always closed by here
17:52 masak benabik: we never got a syntax like that in Perl 6 for passing blocks.
17:52 masak we can do special_open('foo.txt', -> $f { do_stuff }), though.
17:53 TimToady yes, it's only a comma away
17:53 benabik Just thought I'd mention it as a different way of thinking about it.
17:53 TimToady again, generalizing something differently
17:53 TimToady you can bet we looked at the ruby syntax when designing p6
17:54 TimToady and as I said, it was a decision that huffmanized a comma into the p6 to keep things general
17:54 TimToady if you've got a block parameter, just pass the silly thing as a parameter, no magic
17:55 TimToady note that File.open('foo.txt'): -> $f { do_stuff } is also legal
17:56 benabik Changes it from a syntax design to library design, really.  :-D
17:56 TimToady std: open('foo.txt'): -> $f { do_stuff() }
17:56 p6eval std 580b69a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared routine:â�¤ 'do_stuff' used at line 1â�¤Potential difficulties:â�¤  $f is declared but not used at /tmp/thWVcur6wI line 1:â�¤------> [32mopen('foo.txt'): -> [33mâ��[31m$f { do_stuff() }[0mâ�¤Check failedâ�¤FAILED 00:01 122mâ�¤Â»â€¦
17:56 benabik Although RAII is a useful enough thing to make easy.
17:57 TimToady RAII precludes porting to GC VMS, more or less
17:57 benabik I view these things as doing the same thing as RAII, just spelled different.  :_
17:57 benabik :-D
17:58 PerlJam looks more like the flip side of the coin to me.
17:58 TimToady well, but it's allocation of the lexical symbol, not of its value
17:58 TimToady real RAII works with passing refs out, this doens't
17:59 TimToady -> $f.close {...}
18:00 benabik PerlJam: Basic idea of RAII to me is "do something when we enter the block" and "clean up no matter how I leave".  Perhaps that's more how I use RAII than the definition of it.
18:01 TimToady I'd call that finalization, not RAII
18:02 benabik When those things are allocate/deallocate, open/close, lock/unlock it feels like RAII to me.
18:02 benabik I suppose the thing is really that it's done implicitly rather than explicit.
18:03 benabik_ joined #perl6
18:04 TimToady -> $f.gc { ... }
18:05 TimToady sugar for -> $f willl leave *.gc { ... }
18:05 TimToady *ll
18:05 PerlJam benabik: feels kind of IoC to me.   declare some start and destroy actions on a resource and then when you use it, magic happens.  It just happens that certain built-in resources already have action declared on them so you don't have to.
18:06 PerlJam (I'm also using "resource" in a hand-wavy kind of way to mean things and classes of things)
18:06 benabik PerlJam: RAII uses resource in the same way.  It's used for memory, files, locks, etc
18:07 benabik TimToady: How would that actually go in the middle of code?  'file'.IO.open -> $f.close { … } ?
18:09 benabik That doesn't feel significantly simpler than my $f = open(); LEAVE $f.close
18:09 PerlJam TimToady: what about non-methody sugar?
18:10 PerlJam or, how do you shorten   -> $f will leave foo($f) { ... }  ?
18:10 PerlJam er, with the appropriate block
18:11 TimToady -> $f.&foo($f)
18:12 PerlJam The first $f there isn't useful is it?  could it be  $.&foo($f) ?
18:13 benabik It assigns the value to $f inside the block, no?
18:13 TimToady how does it know what the second $f means then?
18:13 PerlJam oh, right.
18:14 TimToady anyway, it's not meant to replace 'will leave {...}', just as placeholders are not meant to replace signatures
18:14 TimToady my $f.GC = open $file;
18:14 benabik I think the value of context managers/RAII is that you don't have to explicitly say what happens when you leave.  The object itself is responsible for DTRT
18:15 TimToady but that's not what this is doing
18:15 TimToady there are two objects here
18:15 PerlJam benabik: except that so far ... we do have to say :)
18:15 TimToady there's the filehandle, and the container $f
18:15 TimToady and if the $f object that is controlling it here, not the filehandle
18:15 masak I think .GC is false advertising, since that's not when things are happening.
18:15 TimToady and it's $f going out of scope, not the filehandle going to 0 refs
18:16 TimToady .GC would force an immediate GC of the object
18:16 TimToady I'm just looking for something shorter than .dispose
18:16 benabik PerlJam: The orig question was about Python's with, which gives a way _not_ to say.
18:16 TimToady which suffers cobolitis of the verb
18:17 benabik PerlJam: It can be done in P6 already with LEAVE if you want to say it explicitly.
18:17 TimToady correct, Python's with is not RAII
18:17 TimToady as far as I know
18:17 benabik Please forget I mentioned RAII…  That's just the slot this concept is in my head and has nothing to do with anything apparently.
18:18 TimToady and, in fact, Python is backpeddling away from anything resembling timely destruction, last I heard
18:18 TimToady since they also want to run on VMs with real GC
18:19 benabik with doesn't interact with GC at all, just scope
18:19 TimToady let's be precise
18:19 TimToady what these mechanisms do is turn an object into mere memory, and then it doesn't matter when GC hapens
18:19 TimToady *pp
18:20 packetknife joined #perl6
18:20 PerlJam TimToady: how about back to the suffix idea:   -> $f% { ... }   # means call *.dispose or whatever the default "destructor" is
18:21 TimToady so what we're really wanting to tell the thing is "deallocate your resources"
18:21 benabik What with and Ruby's stdlib's block to initializer bit does is provide a way of providing a kind of standard finally block.  Ruby's is a little more general
18:21 TimToady PerlJam: and I think .gc is a more general suffix
18:22 PerlJam ok
18:22 TimToady since it could be any method
18:22 PerlJam For "automatic" things, I tend to favor hiding of names.
18:22 TimToady as long as we get a short enough thing that means .dispose
18:22 PerlJam (at least for the user :)
18:22 benabik PerlJam: +1
18:24 TimToady .oo  for "over and out"  :)
18:25 PerlJam We could start with a pragma that automatically transmogrifies pointy blocks into the "will leave" versions.
18:26 TimToady overload -- on filehandles, and then -> $f.-- {...}  :)
18:26 TimToady we're trying to avoid pragmas that everyone should use :)
18:27 PerlJam then a pragma to turn it off :)
18:29 benabik It's also worth noting that with also provides an enter method.  Which can be very useful for things like locks.
18:29 Woodi .clean .deal ?
18:29 TimToady I like the generality of $f.meth, and the metaphor of it coming after visually
18:29 TimToady I hear you on the identifier thing
18:29 Woodi .seal :)
18:29 TimToady but paramaters are guaranteed to be as tall as a sigil
18:29 TimToady so if we pick something methody, it should have no ascenders
18:30 PerlJam TimToady: postfix:<...>  ?  :)
18:30 TimToady .gc, .oo, .xxx etc
18:30 TimToady ._
18:30 TimToady that's pretty flat :)
18:31 Woodi auto $f
18:32 PerlJam TimToady: -> $f. { ... }   # now it's invisible!
18:32 PerlJam :)
18:33 Woodi .fix
18:33 TimToady .''
18:34 benabik .fix looks like the fixed point combinator.
18:34 TimToady .break SCNR
18:34 PerlJam .fix also makes me wonder what's broken
18:35 Woodi oo, auto fixing is not invented yet :)
18:36 Woodi .ttl(1)
18:36 TimToady .ex
18:36 Woodi whatever that can be...
18:36 TimToady .ax
18:36 PerlJam Woodi: when does the ttl start?  :)
18:36 PerlJam .chop   # oh wait ...
18:37 TimToady .ax, for automatic extinction  :)
18:37 PerlJam .x then
18:37 benabik IO.x
18:37 TimToady too common
18:37 benabik Or did that go away?
18:38 TimToady perl6: say open('perl6').x
18:38 p6eval pugs b927740: OUTPUT«*** Unsafe function 'Pugs::Internals::openFile' called under safe mode␤    at Prelude.pm line 308, column 13-61␤»
18:38 p6eval ..niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: CORE open may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE open @ 0) ␤  at /tmp/agc0fKrfBI line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2) ␤  at …
18:38 p6eval ..rakudo 3fb915: OUTPUT«open is disallowed in safe mode␤  in sub restricted at src/SAFE.setting:2␤  in sub open at src/SAFE.setting:5␤  in block <anon> at /tmp/ifjKMhwwow:1␤  in <anon> at /tmp/ifjKMhwwow:1␤»
18:38 PerlJam hah!
18:38 TimToady perl6: say 'perl6'.IO.x
18:38 p6eval niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: CORE IO.x may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE IO.x @ 0) ␤  at /tmp/24pILm3CBw line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2) ␤  at …
18:38 p6eval ..pugs b927740: OUTPUT«*** No such method in class Str: "&IO"␤    at /tmp/K0IzKzguPV line 1, column 5 - line 2, column 1␤»
18:38 p6eval ..rakudo 3fb915: OUTPUT«Bool::False␤»
18:39 TimToady perl6: say '.'.IO.x
18:39 benabik I thought rakudo's safe mode removed everything from IO...
18:39 p6eval rakudo 3fb915: OUTPUT«Bool::True␤»
18:39 p6eval ..niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: CORE IO.x may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE IO.x @ 0) ␤  at /tmp/9F5mDF7l5W line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2) ␤  at …
18:39 p6eval ..pugs b927740: OUTPUT«*** No such method in class Str: "&IO"␤    at /tmp/qWZ0hw5CX5 line 1, column 5 - line 2, column 1␤»
18:39 * PerlJam still favors some postfix non-alphanumeric
18:40 TimToady then you can write a postfix for whatever you like
18:40 Woodi do { $f } not do what is needed ?
18:40 TimToady why would that close $f?
18:42 GlitchMr joined #perl6
18:42 Woodi { $f = ...; do what_needed() }
18:42 benabik I've yet to see anything suggested that I'm convinced is better than "my $f = open(); LEAVE $f.close # rest of method"  "my $f = open() ; -> $f.close { #`{ rest of method } }" isn't much shorter.
18:42 PerlJam TimToady: .gc and .ax are probably the best ones so far (.ax doesn't suffer the conceptual overloading that might happen with .gc so it's marginally better IMHO)
18:43 TimToady benabik: LEAVE is a blunter ax
18:43 TimToady "will leave" only runs if you actually get to the statement
18:44 TimToady or rather, it automatically tests to see if its object is defined, and skips if not
18:45 TimToady with LEAVE, you can get an undefined error on *.close
18:45 benabik $f.?close ?
18:46 benabik I suppose giving shorter syntax for will leave {} is somewhat useful, although I'm not sure overloading pointy is good for that since it would usually have nothing to do with creating a function.
18:46 TimToady that's really for modulating whether close is available, not $f
18:46 TimToady who's overloading pointy?
18:46 benabik -> $f.close {} ?
18:47 TimToady that's adding to parameter syntax, not pointy
18:47 Util joined #perl6
18:47 TimToady the pointy doesn't care at all, it's just a sig
18:48 benabik That's why I've been asking about what it looks like in code.  "my $f = open(); -> $f.close {}"?  That looks like I'm trying to return a function.
18:48 TimToady in a sense, not even the parameter cares, it's just a trait
18:48 Woodi on leave { close() } on block { ... }
18:49 Woodi like IRC events :)
18:49 TimToady Woodi: now you've messed up your lexical scoping, which is why LEAVE is inside
18:50 TimToady just because some other language has a low-wattage construct doesn't mean it's right for Perl 6
18:51 TimToady we want high-wattage constructs that can be cargo culted as if they were low-wattage
18:52 ksi joined #perl6
18:52 Woodi it can be other 'on' - general one, not similiar to others
18:55 lichtkind joined #perl6
18:55 lichtkind thou:  ping
18:56 PerlJam benabik: you're still looking for "with" I think.  You can make your own syntax for that.  :)
18:57 thou hi, lichtkind. long time no chat....
18:57 lichtkind true
18:57 benabik PerlJam: The conversion was spawned by someone asking for a pythonesque with.  I'm looking for a way to make open/close simple.  I don't mind a more general method, but I'm not seeing how what's being discussed is anything like it.
18:58 benabik PerlJam: Discussing how .close should be spelled doesn't really tell me what it looks like when a user tries to use it.
18:58 corwin joined #perl6
19:00 benabik More precisely: "-> $f.ax {…}" doesn't tell me where "$f = open()" goes.  Or why .ax is particularly better than using .close.
19:02 Woodi benabik: i belibe this talk was about something shorter then { $f = open(); ... } finalize { ... }
19:03 benabik Woodi: I know the point of the discussion, I'm just saying that I'm not seeing how what's being discussed actually gets us there.  Perhaps I've just missed something vital.
19:04 TimToady given open() -> $f.ax {...}
19:04 benabik That there makes more sense to me.
19:04 TimToady sorry, we're all just lazy
19:05 lichtkind TimToady: happy new year sir
19:05 TimToady and that is proposed sugar for: given open() -> $f will leave { .ax } {...}
19:05 benabik TimToady: I never saw a "given open()" in any example.  Just "-> $f.foo"
19:06 Woodi can try { ... } can be overloaded not only for error raporting ? :)
19:06 TimToady and "will leave" is specced but unimplemented
19:06 PerlJam benabik: because it can be used in other contexts too
19:06 TimToady like: my $f.ax = open();
19:07 TimToady though we might have some collisions with current usage there
19:07 PerlJam if open() -> $f.ax { ... } might prove useful too  :)
19:07 TimToady even shorter
19:08 jnthn Why not just a different scope declarator?
19:08 TimToady parameter, not sig
19:08 jnthn ah, that won't do it for my...hmm.
19:09 15SABRJQR joined #perl6
19:09 mj41 joined #perl6
19:09 jnthn Was thinking more along the lines of fornow $x = open('foo')
19:09 jnthn But yeah, doesn't extend to params :)
19:09 TimToady std: my $x will leave {.foo} = 42;
19:09 p6eval std 580b69a: OUTPUT«ok 00:01 122m␤»
19:10 jnthn Guess that works too :)
19:10 TimToady so we're just looking at sugar for 'will leave' really
19:10 jnthn How is that trait implemented?
19:10 TimToady it isn't :P
19:10 jnthn gah
19:10 jnthn How would that trait be implemented? :P
19:10 PerlJam my $f.ax = 42;  # does this die at EOS? or silently do nothing?
19:11 jnthn TimToady: I'm still not sure quite what you get passed when declaring a variable.
19:11 TimToady to would call $f.ax at end of scope, presumably, if we include that in sig syntax
19:11 TimToady the variable
19:11 jnthn TimToady: To the trait_mod?
19:11 jnthn OK
19:11 TimToady {.foo} ==> { $f.foo }
19:12 jnthn TimToady: I was wondering if it was something "richer" so you had a link back to the declaring scope or some such.
19:12 benabik I somewhat like the sugar, but not the .ax.  It's shorter, sure, but less clear IMO.
19:13 TimToady don't think so, but 'will leave' does have to gen up an invisible LEAVE { $f.ax if defined $f } block or some such
19:13 TimToady but it can do that early on
19:13 jnthn TimToady: Yeah, I guess.
19:14 jnthn TimToady: Heh, the trait mode can see the contextuals of the compiler :)
19:14 TimToady likewise for "will end", "will keep", etc
19:14 jnthn So it's easy then :)
19:14 PerlJam jnthn: so ... you're going to hack it in tonight?  ;)
19:14 jnthn PerlJam: er
19:14 jnthn PerlJam: "easy" :P
19:14 PerlJam heh
19:14 jnthn PerlJam: Need to look over mls++'s leave patches some more first
19:15 Entonian joined #perl6
19:15 TimToady will you KEEP them or UNDO them :P
19:15 jnthn :P
19:16 jnthn TimToady: Should it be possible to introspect the LEAVE etc phasers attached to a block?
19:16 jnthn If so, is that $some_block.LEAVE?
19:16 jnthn What does it return? A list of them?
19:18 corwin hello everyone... is it allowed to ask noob questions here?
19:18 jnthn Yes, if they're about Perl 6 :)
19:19 corwin its about irc bot based on Bot::BasicBot... does it count?
19:20 GlitchMr corwin, Bot::BasicBot is Perl 5
19:20 GlitchMr It wasn't yet ported to Perl 6. At least I think so.
19:20 corwin hmm... wrong channel then :)
19:21 GlitchMr corwin, try #perl
19:22 GlitchMr token comment {
19:22 GlitchMr 'c' (<[a..zA..Z]>) $1
19:22 GlitchMr }
19:22 GlitchMr OK, how I can find identical character
19:22 GlitchMr I want to catch cbb, cSS... but not cas or coO
19:22 GlitchMr This doesn't work...
19:23 jlester4 joined #perl6
19:23 yath are you parsing RPG?
19:23 GlitchMr RPG... what?
19:24 yath https://secure.wikimedia.org/wikipedia/en/wiki/IBM_RPG
19:24 GlitchMr http://en.wikipedia.org/wiki/IBM_RPG
19:24 benabik .oO( parsing Rocket Propelled Grenades? )
19:24 yath just thought so :)
19:24 GlitchMr this?
19:24 yath yeah
19:24 GlitchMr Nope]\
19:24 yath comments are identified by a 'c' in column 5 or so
19:24 yath ;)
19:24 yath oh, no, c is calc spec
19:24 yath gosh, long time ago.
19:24 GlitchMr I wanted to create my obfuscated language. And I think that it could be written as Perl 6 grammar as the test :).
19:25 GlitchMr It would probably suck, but anyway
19:25 GlitchMr Also, it will be more like regular expressions syntax, except using normal letters for confusion
19:26 GlitchMr :P
19:29 GlitchMr Oh, I see... regular expressions matches start at $0
19:33 masak aye.
19:33 masak it just made more sense that way.
19:35 corwin left #perl6
19:35 GlitchMr 'c' (<[a..zA..Z]>) [ \\ $0 | (.) ]*? $0
19:35 GlitchMr :)
19:37 MayDaniel joined #perl6
19:37 jlester4 Hello
19:38 SHODAN joined #perl6
19:40 cooper joined #perl6
19:44 GlitchMr :)
19:44 GlitchMr wait...
19:44 GlitchMr I have currently grammar which accepts "[  cazzs]\aza]$_20$&#30[b20]p$_"
19:44 GlitchMr ...
19:44 GlitchMr yeah...
19:48 masak jlester4: hi!
19:50 jlester4 I hope this isn't a stupid question but how do I get involved in this project?
19:50 TimToady by asking stupid questions :D
19:50 TimToady what sorts of things are you interested in?
19:51 TimToady there are lots of different ways to be involved
19:51 jlester4 Well I'm a university student studying computer science
19:51 jlester4 I'm learning about Perl and heard about Perl 6
19:52 TimToady you might like to help sorear++ with niecza then, since he's in the same demographic
19:52 TimToady what languages have you learned so far?
19:53 jlester4 Java primarily
19:53 jlester4 We've touched on C and basic unix commands
19:53 jlester4 Oh and assembly language
19:53 GlitchMr [  cazzs]\aza]$_20$&#30[bb0]p$_+$#42+$_$_**$&$#& $%$_ $^v $^^
19:53 GlitchMr OK, I think it starts to be worst grammar ever
19:53 slavik1 oh god
19:54 slavik1 he said the j word
19:54 Woodi jlester4: one from novice here: learn some Perl6 on start :)
19:54 slavik1 shun the nobeliever!
19:54 GlitchMr JS?
19:54 slavik1 GlitchMr: no, the other j word
19:54 slavik1 the 4 letter j word
19:54 masak jlester4: in some order: (1) download Rakudo or Niecza, (2) read about some language feature, (3) decide to try it out, (4) find a bug...
19:54 jlester4 Uh oh is that bad?
19:54 masak jlester4: and then you're already helping :)
19:54 masak jlester4: they're just teasing you :P
19:54 TimToady I don't mind if people learn Java before Perl 6 :)
19:54 GlitchMr http://en.wikipedia.org/wiki/JADE_(programming_language)?
19:54 TimToady it makes Perl 6 looks so much better
19:55 masak :D
19:55 jlester4 ok I will do!
19:55 GlitchMr http://en.wikipedia.org/wiki/JEAN?
19:55 jnthn class LookICompileInJavaAndPerl6 { } # we have some similarities ;)
19:55 GlitchMr http://en.wikipedia.org/wiki/Jako_(programming_language)?
19:55 TimToady well, then there's J
19:55 GlitchMr http://en.wikipedia.org/wiki/JOSS?
19:55 GlitchMr What do you mean?
19:55 slavik1 GlitchMr: the "enterprisey" one
19:55 slavik1 why don't you want to scroll up
19:56 GlitchMr I'm too lazy
19:56 masak can't help you there.
19:56 GlitchMr By moving mouse scroll up, I waste 0.01V compared to not moving mouse at all
19:56 simcop2387 joined #perl6
19:56 TimToady GlitchMr: eventually we will get too lazy to do your work for you :P
19:56 jlester4 Is Perl 6 just an extension of Perl 5 or is the code being updated?
19:56 slavik1 perl6 is a new language
19:56 masak jlester4: the latter.
19:56 slavik1 technically
19:56 GlitchMr jlester4, it's new language
19:56 GlitchMr It's better language
19:56 jlester4 Entirely new?
19:56 masak we hope :)
19:56 slavik1 much better language :P
19:57 GlitchMr jlester4, well, not exactly
19:57 TimToady same philosophy, but breaking everything about Perl 5 that need breaking
19:57 slavik1 I am still giddy about grammars
19:57 masak jlester4: it retains a certain Perlishness.
19:57 GlitchMr Some stuff from Perl 5 are still existing, but really... a lot has changed
19:57 masak slavik1: me too!
19:57 GlitchMr Even regular expressions.
19:57 jlester4 Badass cool
19:57 masak especially regular expressions :)
19:57 slavik1 are assertions implemented in rakudo?
19:57 GlitchMr Of course now regular expressions are better :).
19:57 masak slavik1: what, you mean like 'ok' and 'is'? :)
19:57 masak slavik1: or PRE and POST?
19:57 jlester4 Regex language is being changed in Perl 6?
19:57 GlitchMr No more "\" spam when just wanting to escape some characters :).
19:58 masak slavik1: oh, regex assertions? yes, sure!
19:58 GlitchMr Lack of long form (?:
19:58 GlitchMr And other nice changes :)
19:58 PerlJam jlester4: yes; improved :)
19:58 slavik1 masak: like the < 0 <= $0 <= 255>
19:58 jlester4 That sounds amazing
19:58 slavik1 type
19:58 slavik1 that type
19:58 slavik1 yeah, regex
19:58 slavik1 awesomes
19:58 jlester4 I hate having to escape everything!
19:58 * Woodi lastly learned Perl6 is 'grammar engine' and P6 is what Perl5 ppls want as Perl6 :)
19:58 masak slavik1: yes, for quite some time now.
19:58 slavik1 awesome, need to play with that
19:58 GlitchMr m/'$#%'/
19:58 GlitchMr :)
19:58 GlitchMr This will match $#%
19:58 GlitchMr No escaping or anything like that
19:58 masak Woodi: I... I don't exactly know what you mean by that...
19:58 GlitchMr m/'lol'+/
19:59 jlester4 lollollol?
19:59 GlitchMr Will match "lol", "lollol", "lollollol" :)
19:59 Woodi masak: I not sure I am right :)
19:59 GlitchMr Easy
19:59 jlester4 I'm excited to start playing around with this right now
19:59 GlitchMr I love changes to regular expressions :).
19:59 masak Woodi: I'm not even sure what your definition of 'is' is :)
19:59 masak jlester4: pro tip: start playing around with this right now!
19:59 slavik1 so, using grammars, how would I implement a language interpreter? do I just take the smart object and traverse the tree?
20:00 TimToady perl6: say "jlester4: welcome to #perl6"
20:00 Woodi 'no core' inPerl 6, right ? except grammar ?
20:00 p6eval pugs b927740, rakudo 3fb915, niecza v10-61-gbacff10: OUTPUT«jlester4: welcome to #perl6␤»
20:00 TimToady all three implementations agree that you are welcome here
20:00 masak slavik1: parse, action methods that construct and AST for you, traverse and evaluate AST.
20:00 jlester4 Thanks everyone
20:01 jlester4 So perl6.org is where I'll find everything?
20:01 slavik1 masak: quick example?
20:01 TimToady but don't neglect your studies too much :)
20:01 masak slavik1: see Yapsi.
20:01 TimToady it's a good place to start
20:01 GlitchMr perl6: print(/'lol'+/ ~~ 'lollollol)
20:01 TimToady rosettacode.org is a good place to compare to other languages
20:01 masak slavik1: https://github.com/masak/yapsi
20:01 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected end of input␤    expecting "\\", variable name or "'"␤    at /tmp/xDeUvvJK9W line 2, column 1␤»
20:01 p6eval ..niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: System.IndexOutOfRangeException: Array index is out of range.␤  at Lexer.Run (System.String from, Int32 pos) [0x00000] in <filename unknown>:0 ␤  at Lexer.RunDispatch (Niecza.Frame fromf, Niecza.P6any cursor) [0x00000] in <filename un…
20:01 p6eval ..rakudo 3fb915: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤»
20:01 GlitchMr ...
20:01 slavik1 masak: thanks
20:01 GlitchMr ok, I've done something wrong...
20:01 GlitchMr perl6: print(/'lol'+/ ~~ 'lollollol')
20:01 p6eval rakudo 3fb915: OUTPUT«False»
20:01 p6eval ..niecza v10-61-gbacff10: OUTPUT«Bool::False»
20:01 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
20:02 benabik masak: slavik1:  You can skip building an AST if you really want.  For an interpreter, you could return code blocks that do what the function would do instead.
20:02 alester joined #perl6
20:02 GlitchMr ...
20:02 GlitchMr perl6: print(/'lol'+/ ~~ 'lol')
20:02 p6eval rakudo 3fb915: OUTPUT«False»
20:02 p6eval ..niecza v10-61-gbacff10: OUTPUT«Bool::False»
20:02 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
20:02 GlitchMr ...
20:02 jnthn jlester4: If you're curious what sorts of things are being worked on in Rakudo (one implementation of Perl 6), take a look at http://6guts.wordpress.com/ too. If you're interested in optimizers or meta-programming bits, for example, there's quite a bit of work going on there. Depends what you're interested in.
20:02 slavik1 I am also interested in how to return compiler type errors
20:02 slavik1 like if I expect one thing vs. another
20:02 GlitchMr perl6: print('lol' ~~ /'lol'+/)
20:02 p6eval niecza v10-61-gbacff10: OUTPUT«#<match from(0) to(3) text(lol) pos([].list) named({}.hash)>»
20:02 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
20:02 p6eval ..rakudo 3fb915: OUTPUT«lol»
20:03 GlitchMr perl6: print(?('lollol' ~~ /'lol'+/))
20:03 p6eval niecza v10-61-gbacff10: OUTPUT«Bool::True»
20:03 p6eval ..rakudo 3fb915: OUTPUT«True»
20:03 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
20:03 GlitchMr OK :)
20:03 masak benabik: that's a good point.
20:03 jlester4 I'm not entirely sure what I'm interested in at this point
20:03 jnthn :)
20:03 * PerlJam wonders if we should have an infix:<?~~> operator
20:04 masak aaaaugh
20:04 masak sorry, you were saying? :)
20:04 Woodi jlester4: start practical, maybe write some small module
20:04 TimToady jlester4: just poking around is fine too
20:05 masak starting small is indeed important. do not write a N64 emulator as your first project ;)
20:05 jlester4 And Rakudo and Niecza are different things?
20:05 TimToady and pugs is a 3rd thing
20:05 PerlJam jlester4: different implementations of the same language
20:05 masak three Perl 6 implementations.
20:05 TimToady there are others too
20:05 masak perl6: say "hi"
20:05 mikemol Does p6eval log and catalog cases where the different implementations give different results to the same input? Perhaps it should. You could have it use spare cycles after engine updates re-running old discrepencies to see if things were unexpectedly fixed.
20:05 benabik jnthn: Rakduo is Perl 6 on Parrot.  Niecza is Perl 6 on CLR/.Net
20:05 p6eval pugs b927740, rakudo 3fb915, niecza v10-61-gbacff10: OUTPUT«hi␤»
20:05 mikemol Kinda like a crowdsourced unit test suite. :)
20:06 jnthn benabik: er, I know...mishighlight? :)
20:06 GlitchMr [  cazzs]\aza]$_20$&#30[bb0]p$_+$#42+$_$_**$&$#& $%$_ $^v $^^ +4 2p$_
20:06 GlitchMr ... I'm probably bored...
20:06 benabik jnthn: Errrrr….  Just thought you had forgotten.  <.<  >.>
20:06 TimToady just don't make us bored
20:06 benabik jlester4: Rakduo is Perl 6 on Parrot.  Niecza is Perl 6 on CLR/.Net
20:06 jlester4 So much to learn lol
20:07 Woodi much more :)
20:07 TimToady jlester4: in fact, lol is one of the things to learn
20:07 mikemol Also, is there a channel dedicated to p6eval, so people could hit multiple engines without spamming a discussion channel?
20:07 TimToady just /msg
20:08 TimToady but there could be something intermediate
20:08 TimToady that would, say, log weirdness, as you suggested
20:08 PerlJam jlester4: and there's always someone around here you can talk to for Perl 6 help
20:08 TimToady a web api could also log weirdnesses there
20:09 TimToady well, approximately always
20:09 jlester4 I guess I'm gonna go jump right in then!
20:09 mikemol jlester4: Perl 6 is a disturbing amount of fun.
20:10 PerlJam mikemol: alright if I quote you on the website sometime?  :)
20:10 Woodi gn #perl6
20:11 mikemol PerlJam: Sure, but not in the context of Rosetta Code. :)
20:11 mikemol In that context, I need to remain impartial. :)
20:11 TimToady or at least appear to be :)
20:12 mikemol Hey, where RC is concerned, I'm impartial in substance and appearance. :)
20:12 masak Woodi: gn
20:13 mikemol Every now and again, I want to thwap someone for missing the bigger picture, but I can't, because I'd risk that impartiality. I'm lucky that a sufficiently diverse crowd of outspoken folks have made the site one of their homes. :)
20:15 masak the Dunning-Kruger effect makes it very difficult to thwap people for missing bigger pictures with any great conviction.
20:15 masak or, I should say, it makes it far too easy... :)
20:16 mikemol Heh. Yeah, I ran into that one early on, and it significantly revised my concept of what the bigger picture is. I can watch other people argue over it and come to a complicated consensus.
20:19 SHODAN joined #perl6
20:25 cooper joined #perl6
20:45 dalek nqp: 29d8aed | jnthn++ | tools/build/PARROT_REVISION:
20:45 dalek nqp: Bump to a Parrot version with a fix for ByteBuffer segfaults, which caused programs using Buf to sometimes segfault.
20:45 dalek nqp: review: https://github.com/perl6/nqp/commit/29d8aedaf8
20:45 dalek rakudo/nom: 97aa736 | jnthn++ | tools/build/NQP_REVISION:
20:45 dalek rakudo/nom: Bump to latest NQP.
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/97aa7365d6
20:45 jnthn Curiously, it seems the segfault originally reported goes away, but the PIR version still explodes with a different failure in string heap compaction.
20:50 tadzik good evening, zebras
20:51 jnthn hi, tadzik
20:51 molaf joined #perl6
20:56 masak tadzik: hello little panda
21:02 alester joined #perl6
21:02 alester_ joined #perl6
21:29 daemon joined #perl6
21:30 * masak .dispose
21:31 masak 'night, #perl6
21:31 tadzik goonight
21:34 * sjohnson tucks everyone in
21:37 * mikemol gets out of bed.
21:38 mikemol It's only 17:38 here...
21:39 slavik1 same
21:41 jnthn sleepish for me too &
21:41 benabik sleep o'clock?  Man, it's nearly dinner o'clock around here.
21:52 donri joined #perl6
21:56 alester joined #perl6
22:15 TimToady and now we've lost John McCarthy
22:17 TimToady http://www.wired.com/wiredenterprise/2011/10/john-mccarthy-father-of-ai-and-lisp-dies-at-84/
22:17 f00li5h joined #perl6
22:17 flussence ):
22:18 flussence too many people all at once
22:21 soh_cah_toa joined #perl6
22:24 gu_ joined #perl6
22:27 soh_cah_toa_ joined #perl6
22:58 Transformer joined #perl6
23:18 benabik joined #perl6
23:38 daniel-s joined #perl6

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

Perl 6 | Reference Documentation | Rakudo