Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-09-13

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:18 MikeFair_ joined #perl6
00:20 cognominal joined #perl6
00:21 dayangkun joined #perl6
00:27 yarp joined #perl6
00:45 Teratogen joined #perl6
00:45 Teratogen hello
00:46 raiph joined #perl6
00:51 TimToady hmm, prompt("> ") isn't flushing its output in nom currently before asking for input
01:01 timotimo is it easy to declare a class as an exact copy of, say Int, so that i can require an argument to be, for instance in Kelvin? would it be class Kelvin is Int {}?
01:01 yarp joined #perl6
01:09 raiph r: sub a { say &?ROUTINE.name }; a
01:09 p6eval rakudo 220a69: OUTPUT«a␤»
01:09 timotimo oh, is that new?
01:10 raiph i'm trying to find where .name is defined. tried p6doc and searching spec.
01:11 raiph r: sub a { say &?ROUTINE.^mro }; a
01:11 p6eval rakudo 220a69: OUTPUT«Sub() Routine() Block() Code() Any() Mu()␤»
01:17 hypolin joined #perl6
01:21 cognominal joined #perl6
01:24 Pleiades` timotimo, subsets possibly?
01:30 kid51 joined #perl6
01:50 Circlepuller_ r: sub a { say &?ROUTINE.code; eval &?ROUTINE.code; }
01:50 p6eval rakudo 220a69:  ( no output )
01:50 Circlepuller_ r: sub a { say &?ROUTINE.code; }
01:50 p6eval rakudo 220a69:  ( no output )
01:51 Circlepuller_ r: sub a { say &?ROUTINE.code; }
01:51 p6eval rakudo 220a69:  ( no output )
01:51 Circlepuller_ r: sub a { say &?ROUTINE.code; eval &?ROUTINE.code; }; a
01:51 p6eval rakudo 220a69: OUTPUT«No such method 'code' for invocant of type 'Sub'␤  in sub a at /tmp/Ckn4U23oOS:1␤  in block  at /tmp/Ckn4U23oOS:1␤␤»
01:51 Circlepuller_ r: sub a { say a.code; eval &?ROUTINE.code; }; a
01:51 p6eval rakudo 220a69: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 86323 (src/gen/CORE.setting.pir:41408) (src/gen/CORE.setting:8941)␤called from Sub 'a' pc 109 ((file unknown):82) (/tmp/EeyWsCdcr7:1)␤called from Sub 'a' pc 133 ((file unknown):96) (/tmp/EeyWsCdc…
01:52 Circlepuller_ r: sub a { say a.code; eval a.code; }; a
01:52 p6eval rakudo 220a69: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 86323 (src/gen/CORE.setting.pir:41408) (src/gen/CORE.setting:8941)␤called from Sub 'a' pc 109 ((file unknown):82) (/tmp/gQDVuNkAcP:1)␤called from Sub 'a' pc 133 ((file unknown):96) (/tmp/gQDVuNkA…
01:52 Circlepuller_ ha
01:52 Circlepuller_ r: sub a { say a.code; }; a
01:52 p6eval rakudo 220a69: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 86323 (src/gen/CORE.setting.pir:41408) (src/gen/CORE.setting:8941)␤called from Sub 'a' pc 109 ((file unknown):82) (/tmp/r6hz_jpNk8:1)␤called from Sub 'a' pc 133 ((file unknown):96) (/tmp/r6hz_jpN…
01:52 Circlepuller_ :|
01:53 sorear Circlepuller_: say a.code parses as say a().code
01:54 sorear no wonder it recurses indefinitely
01:54 Circlepuller_ oh hmm
01:54 sorear r: sub a { say &a.code; }; a
01:54 p6eval rakudo 220a69: OUTPUT«No such method 'code' for invocant of type 'Sub'␤  in sub a at /tmp/wlOsVBWR0p:1␤  in block  at /tmp/wlOsVBWR0p:1␤␤»
01:54 Circlepuller_ lame
01:54 fgomez joined #perl6
01:54 sorear r: sub a { say &a.do; }; a
01:54 p6eval rakudo 220a69: OUTPUT«No such method 'do' for invocant of type 'Sub'␤  in sub a at /tmp/wnI0V37llk:1␤  in block  at /tmp/wnI0V37llk:1␤␤»
01:54 Circlepuller_ i forgot about the ampersand
01:54 Circlepuller_ ha
01:54 sorear r: sub a { say &a.^methods; }; a
01:54 p6eval rakudo 220a69: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤  in method gist at src/gen/CORE.setting:4748␤  in sub say at src/gen/CORE.setting:7161␤  in sub a at /tmp/VvD5hpzOqf:1␤  in block  at /tmp/VvD5hpzOqf:1␤␤»
01:55 sorear r: sub a { print &a.^methods; }; a
01:55 p6eval rakudo 220a69: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤  in method REIFY at src/gen/CORE.setting:5964␤  in method reify at src/gen/CORE.setting:5120␤  in method gimme at src/gen/CORE.setting:5485␤  in method print at src/gen/CORE.setting:7345␤  in sub print at src/…
01:55 timotimo r: subset PersonNumber of Int; sub frob(PersonNumber $a) { say "$a is a person" }; my Int $test = 99; frob($test)
01:55 p6eval rakudo 220a69: OUTPUT«99 is a person␤»
01:55 timotimo Pleiades`: doesn't seem to do what i want
01:55 timotimo this may be something for roles
01:56 Circlepuller_ r: sub a { say &a.^mro; }; a
01:56 p6eval rakudo 220a69: OUTPUT«Sub() Routine() Block() Code() Any() Mu()␤»
01:56 Circlepuller_ r: sub a { say &a.^routine; }; a
01:56 p6eval rakudo 220a69: OUTPUT«No such method 'routine' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in sub a at /tmp/b8GpN0I0fj:1␤  in block  at /tmp/b8GpN0I0fj:1␤␤»
01:56 Circlepuller_ r: sub a { say &a.routine; }; a
01:56 p6eval rakudo 220a69: OUTPUT«No such method 'routine' for invocant of type 'Sub'␤  in sub a at /tmp/jiOMYxr_6l:1␤  in block  at /tmp/jiOMYxr_6l:1␤␤»
01:57 Circlepuller_ i have no idea what i'm doing xD
01:57 sorear would be nice if .^methods could be made to  work in something closer to all cases
01:58 FROGGS_ joined #perl6
01:59 Circlepuller_ it'd be nice if i could get a subroutine's code
02:00 timotimo r: role PNr {}; my Int $test = 99 but PNr; sub frob($a where .does(PNr)) { say "$a is PNr" }; frob($test); frob(99);
02:00 p6eval rakudo 220a69: OUTPUT«99 is PNr␤Constraint type check failed for parameter '$a'␤  in sub frob at /tmp/GPAXrz3ZdQ:1␤  in block  at /tmp/GPAXrz3ZdQ:1␤␤»
02:00 timotimo Pleiades`: see this, works fine.
02:00 timotimo r: role PNr {}; my Int $test = 99 does PNr; sub frob($a where .does(PNr)) { say "$a is PNr" }; frob($test); frob(99);
02:00 p6eval rakudo 220a69: OUTPUT«99 is PNr␤99 is PNr␤»
02:00 timotimo this is a little bit surprising to me. wouldn't have thought the "99 does PNr" would modify 99 "in a global context" if that makes any sense at all.
02:01 timotimo (and one could build a subset of Int where .doen(PNr))
02:02 sorear timotimo: constant pooling.
02:02 sorear it's not modifying 99, it's modifying a single Int instance for 99 that happens to be shared between all instances of the literal 99 in your program
02:03 timotimo is there a range for which rakudo does that?
02:03 FROGGS__ joined #perl6
02:03 timotimo or does it do that for all literals?
02:03 sorear all literals I think
02:03 doy seems like "99 does PNr" should be an error if that's the case
02:03 sorear n: : role PNr {}; my Int $test = 99 does PNr; sub frob($a where  .does(PNr)) { say "$a is PNr" }; frob($test); frob(99);
02:03 p6eval niecza v21-1-ga8aa70b: OUTPUT«[31m===[0mSORRY![31m===[0m��Bogus statement at /tmp/MOTQKIOCPm line 1:�------> [32m<BOL>[33m�[31m: role PNr {}; my Int $test = 99 does PN[0m��Parse failed��»
02:03 sorear n: role PNr {}; my Int $test = 99 does PNr; sub frob($a where  .does(PNr)) { say "$a is PNr" }; frob($test); frob(99);
02:03 p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: Cannot use 'does' operator with an immutable object␤  at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1368 (infix:<does> @ 8) ␤  at /tmp/c6RS17Pwkf line 1 (mainline @ 4) ␤  at …
02:08 orafu joined #perl6
02:09 cognominal r: for  0..Code.^methods-1 { print "$_ "; try { print Code.^methods[$_] } }
02:09 p6eval rakudo 220a69: OUTPUT«(signal SEGV)»
02:09 cognominal why am I so good at breaking things :(
02:12 cognominal r:   print Code.^methods[0]
02:12 p6eval rakudo 220a69: OUTPUT«(signal SEGV)»
02:12 cognominal r:   say Code.^methods[0]
02:12 p6eval rakudo 220a69: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤  in sub say at src/gen/CORE.setting:7161␤  in block  at /tmp/iTCfdex7tn:1␤␤»
02:12 benabik Hm.  I guess the stringification bit for Code is a bit... broken.
02:13 benabik r: Code.methods[0].Str
02:13 p6eval rakudo 220a69: OUTPUT«No such method 'methods' for invocant of type 'Code'␤  in block  at /tmp/FuaLPyRT0k:1␤␤»
02:13 benabik r: Code.^methods[0].Str
02:13 p6eval rakudo 220a69: OUTPUT«No such method 'Str' for invocant of type 'Sub'␤  in block  at /tmp/hfll5DuXtK:1␤␤»
02:13 benabik r: ~Code.^methods[0]
02:13 p6eval rakudo 220a69: OUTPUT«(signal SEGV)»
02:13 cognominal nope,  some Sub are not boxed
02:14 cognominal but what is new to me is that it can crash rakudo
02:14 kid51_ joined #perl6
02:15 cognominal in fact, I crashed rakudo when trying (sic) to discover what subs were not boxed
02:15 cognominal r:  for  0..Code.^methods-1 { print "$_ "; try { say Code.^methods[$_] } }
02:15 p6eval rakudo 220a69: OUTPUT«0 1 2 3 4 5 6 7 arity␤8 count␤9 signature␤10 outer␤11 static_id␤12 of␤13 returns␤14 ACCEPTS␤15 Str␤»
02:16 cognominal When the try fail the Sub is not boxed
02:16 cognominal now I don't know where they are set.
02:21 cognominal I am not to sure how to set -O0 to debug on my macbook. I will have to compile and debug on feather :(
02:24 cognominal benabik++
02:24 cognominal prefix + crashes on unboxed values
02:24 cognominal two bugs for the price of one.
02:24 benabik r: +Code.^methods[0]
02:24 p6eval rakudo 220a69: OUTPUT«(signal SEGV)»
02:25 benabik Hopefully that's some boxing issue and not segfaults from Parrot's subs.
02:25 cognominal well, I think rakudo code should protect against unboxed value
02:26 cognominal *protect itself
02:30 cognominal joined #perl6
02:56 gootle joined #perl6
03:01 adu joined #perl6
03:03 cognominal joined #perl6
03:18 cognominal joined #perl6
03:40 yarp joined #perl6
03:44 scott_ joined #perl6
03:46 kaleem joined #perl6
03:56 ingy is "somesuchshizzle" a real word?
03:58 rking joined #perl6
03:59 ingy hi rking
03:59 rking Howdy, ingus. =)
03:59 ingy nothing is currently going on at all
03:59 ingy here
04:00 rking That's an easy fix.
04:00 ingy r: +Code.^methods[0]
04:00 p6eval rakudo 220a69: OUTPUT«(signal SEGV)»
04:01 ingy r: say 'hi rking'
04:01 p6eval rakudo 220a69: OUTPUT«hi rking␤»
04:02 rking Wow, I didn't know about U+2424. A smart one.
04:02 ingy p6eval: pugs: say 42
04:02 p6eval ingy: pugs: OUTPUT«42␤»
04:02 rking What's the 220a69 about? Is that a persistent session?
04:02 sorear rking: Version number
04:03 rking Oh, hehe.
04:03 ingy p6eval: help
04:03 p6eval ingy: Usage: <(star|pugs|nqp|b|std|niecza|rakudo|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
04:03 ingy
04:03 sorear rking: hello!  are you new here?
04:03 ingy hi sorear
04:04 ingy rking is my hacker guru of sorts
04:04 rking sorear: Yes. I'm only getting back into programming as of a few months ago, and my interest in Perl6 hasn't yet blossomed much.
04:04 ingy I just invited him here from #pegex
04:04 rking He always says that but all I did was hone in on a few principles back in the day and crammed them down his throat. I basically lucked out that the principles had some validity.
04:05 yarp r: say "good evening"
04:05 p6eval rakudo 220a69: OUTPUT«good evening␤»
04:07 ingy rking: we need to get uniscript and perl5i into the p6eval
04:07 sorear were you at ye2012?
04:08 ingy sorear: rking's never been to a yapc, afaik
04:09 ingy unless you were talking to me, in which case, no :[
04:09 sorear I was being deliberately vague.
04:09 rking ingy: You're wrong actually.
04:09 ingy oh yeah?
04:09 rking ingy: We met before you know we met, YAPC 2000, Montreal.
04:09 rking Urrr
04:09 rking Monterey, CA
04:09 ingy I often am
04:10 ingy rking: that's oscon
04:10 rking Aha!
04:10 ingy or actually TPC
04:10 ingy the Perl Conference
04:10 rking Then that one. =)  And then you're right that I've never been to one.
04:10 TimToady hmm, TPC was only ever in San Jose
04:10 ingy ok
04:10 jaldhar_ joined #perl6
04:10 sorear well in 2000 I was not going to conferencez
04:10 ingy I guess it became oscon in 2000
04:10 TimToady 3rd year turned into OSCON
04:11 sorear (and people would have thought I was crazy if I had asked to go)
04:11 rking sorear: People at your company you mean?
04:11 rking ingy: But we did meet. I forget what you were talking about but it was really intense and detailed.
04:11 sorear rking: well, I was 10 at the time
04:11 ingy TimToady: I was giving mst lessons in language design today
04:11 rking sorear: Aha. =)
04:12 * TimToady tries to imagine mst as an acmeist and fails
04:13 ingy TimToady: he's not one, but he has done more for acmeism in the past months that anyone
04:13 ingy he's great to have on your side
04:14 ingy mst++
04:14 sorear I may have been to Monterey once or twice.
04:14 ingy we cranked out yet another acmeist data language
04:15 ingy rking: Monterey 2k was my first Perl conf
04:15 sorear ingy: rking: ye2012 was my first
04:15 ingy sorear: I am very sorry to have missed it then
04:16 ingy sorear: are you still somewhere in california?
04:16 sorear let me check
04:16 ingy :D
04:16 rking Random question: What's the bleeding edge of Perl live coding environments?  I'm thinking Smalltalk+Lisp+Factor+etc.
04:16 sorear seems so.
04:17 rking Emphasis on capitalizing on the greater data set available at run-time vs. edit-time, on blurring the line between a user and a programmer, and on integrating with existing file-based coding systems.
04:17 ingy rking: #perl6 ;)
04:18 sorear ingy: so moritz++ was scheduled to talk to give a talk about exceptions at ye12
04:18 sorear ingy: but he has a last minute tuit reassignment, so jnthn++ had to step up
04:19 ingy sorear++
04:19 sorear ingy: but then half way though he went "now I'm going to hijack this talk to show everyone a Perl 6 debugger I wrote in secret last week"
04:19 sorear you had to have been there.
04:19 rking sorear: Is it public?  The tool.
04:20 sorear https://github.com/jnthn/rakudo-debugger
04:21 * sorear wonders if rking is somewhere in CA
04:21 rking sorear: Nope. Texas headed to Kansas.
04:22 sorear rking: do you think you might make austin 2013?
04:22 ingy rking: wtf's in kansas?
04:23 ingy New Lubbock, KS ??
04:25 rking sorear: I could probably do that. I'll try for it. =)
04:25 rking ingy: Not much. Just a better gig than what I have now.
04:26 adu joined #perl6
04:48 kaleem joined #perl6
05:03 moritz good morning
05:04 LlamaRider good morning moritz
05:07 sorear o/
05:20 tipdbmp joined #perl6
05:20 tipdbmp joined #perl6
06:11 stepnem joined #perl6
06:13 marmay joined #perl6
06:17 Teratogen everything is going the way of the cell phone and the tablet computer
06:17 Teratogen how is Perl 6 going to address this fact?
06:17 * Teratogen seriously wants know
06:17 Teratogen err
06:17 Teratogen s/cell phone/smart phone/
06:17 Teratogen sorry 'bout that
06:19 bonsaikitten Teratogen: it'll just run the same on all platforms
06:19 bonsaikitten I fail to see how a portable computer with a phone app is a special case
06:19 Teratogen well, I want to write android apps in Perl 6
06:19 Teratogen what do you think of THOSE apples, eh?
06:20 tadzik if we run on JVM, that may be possible in some way
06:20 Woodi marning
06:20 tadzik good morning #perl
06:20 tadzik 6
06:21 Woodi but is app for android much different then for linux ?
06:21 sorear Woodi: iiuc, yes.
06:21 sorear Teratogen: do you remember perlito?
06:21 sorear tadzik: morning!
06:22 tadzik morning!
06:22 tadzik sorear: I got a round to try Bailador on niecza. It's quite stunning
06:25 bonsaikitten Woodi: android is a java-ish dialect
06:27 sorear Woodi: the android ecosystem frowns on creating Linux binaries, wants you to write Java classes instead
06:27 sorear the rakudo folks are talking about JVM as the next backend, so.
06:27 * Woodi got shivers......
06:28 Woodi I hear Java lastly was nicely bugged :)
06:31 Woodi but returning to Parrot: I was sure Perl6 should always be main concern for Parrot... that universal-dynamic-language-vm should be second... IMO
06:32 wk joined #perl6
06:38 sorear Woodi: perl 6 does not exist for the benefit of parrot
06:40 sorear tadzik: oh?
06:40 Woodi I was sugesting the other way,,,
06:42 sorear Woodi: it does not follow that rakudo needs to use parrot, exclusively or otherwise
06:43 Su-Shee verybody runs on the jvm these days so why not perl6 too..
06:43 Su-Shee +e
06:43 Su-Shee good morning everyone.
06:43 sorear morning Su-Shee
06:43 Woodi o/
06:47 Teratogen why cannot Perl 6 run on JVM?
06:48 Woodi Teratogen: who say that ? :)
06:50 sorear Teratogen: it can, is your memory acting up again?
06:51 Teratogen I guess =)
06:51 FROGGS joined #perl6
06:51 sorear there are already reasonably complete perl 6 implementations running on .net, Javascript, Parrot, and GHC
06:51 FROGGS__ joined #perl6
06:51 FROGGS good morning!
06:52 sorear there is no reason it could not run on JVM too.
06:52 Su-Shee sorear: you're still counting the js experiment or is there a new one? :)
06:52 sorear and pmichaud et al have explicitly picked JVM as Rakudo's next target
06:52 sorear Su-Shee: I'm speaking of perlito
06:52 sorear my js experiment was never "reasonably complete"
06:53 Su-Shee sorear: what was your called?
06:53 Su-Shee yours
06:54 sorear working name niecza/js
06:54 Su-Shee hm, then I have another one in mind..
06:54 sorear there was at one point an experimental js pugs backend
06:55 sorear also, several times I have seen threats to use enscript with p6
06:57 Su-Shee well I basically don't care for the backend, but after looking into clojure a little, I think the idea of being able to incorporate any Java thing I'd like to use within in a nicer programming language is amazing. and very practical as the Java world really has done its homework when it comes to libs and tools and frameworks..
07:00 Woodi Su-Shee: much more then homework :) they invested into it from the start (GUI, HTTP) and later (BIG business-stuff)...
07:02 brrt joined #perl6
07:27 kresike joined #perl6
07:27 FROGGS__ joined #perl6
07:27 kresike good morning all you happy perl6 people
07:32 fhelmberger joined #perl6
07:37 kenjiskywalker joined #perl6
07:38 bonsaikitten Su-Shee: hmm. I would claim that the java people are about the worst when it comes to build systems and packaging
07:38 sorear o/ kresike
07:39 LlamaRider bonsaikitten: you don't like the simplicity of JARs?
07:39 bonsaikitten LlamaRider: what's simple about a messed up zipfile?
07:40 bonsaikitten LlamaRider: the best way to process JARs is to use zip and some shell magic because the jar tool can't do some operations
07:40 tadzik that discussion rings a bell
07:41 LlamaRider I miss having a JAR-like thing for Perl. Sometimes you just want an application fast and don't want to go through any hurdles to get it deployed on your machine and then quickly wiped out.
07:42 LlamaRider and you want average Joe to have the same experience on his machine
07:42 sorear never mind the unix stupidity where you can't treat a zip file safely and transparently as its contents
07:43 bonsaikitten LlamaRider: it's called cpan
07:43 LlamaRider bonsaikitten: that's great for devs, pretty painful for simple users
07:43 sorear cpan used to be hell on new machines
07:43 Su-Shee bonsaikitten: I'm not talking about build systems and packaging but about what libs and modules and frameworks they've created - the amount and usefulness easily rivals CPAN. _And_ they took care of all the "boring shit" modules you're going to need at some point - SSL, r/w Excel files, parse broken CSV and so on.
07:43 bonsaikitten sorear: that sounds like lots of complication for little gain
07:43 mhasch LlamaRider: would that Jar-like thing not be PAR?
07:44 LlamaRider mhasch: does PAR work reliably?
07:44 LlamaRider actually is it alive at all?
07:44 bonsaikitten LlamaRider: hmm? where's the difference? "giev app" vs. download different crap from 30 locations
07:44 bonsaikitten I'll take cpan over wget any day
07:44 LlamaRider so would I
07:45 LlamaRider but I love grabbing a JAR clicking twice and having Minecraft open
07:45 LlamaRider it's just simple
07:45 bonsaikitten no, it's not
07:45 bonsaikitten but then I guess I'm lame because I want to have all such stuff managed by a sane package manager
07:45 bonsaikitten "giev miencraft" and there it is, nothing to worry for me
07:46 sorear which system is giev for?
07:46 LlamaRider if you are selling a product to a consumer, sometimes you want to have really *everything* under control. So bundling the entire shebang together is great.
07:47 Timbus PAR works...
07:47 Timbus so does cava.
07:47 Timbus cava makes an installer, actually. so, eh
07:47 LlamaRider if PAR works I am throwing a party :D
07:48 Timbus it does. it even bundles in a perl interpreter and makes it into an exe
07:48 Timbus or binary
07:48 Timbus if you want
07:48 LlamaRider sweet
07:48 LlamaRider on-topic: keep that for perl6 :)
07:50 xinming_ joined #perl6
07:50 Woodi returning to parrot again: parrot-devs looks to be optimistic that concurrency will land soon. any info how good/bad it can be ?
07:50 brrt Woodi: whatyawannaknow
07:50 kresike hello sorear o/
07:50 sorear it is "interesting" concurrency
07:50 brrt i think so
07:51 sorear related to the actor model
07:51 brrt basically, its like this
07:51 brrt interpreters are thread-local
07:51 brrt objects are bound to interpreters (and threads)
07:51 brrt if you share an object between threads
07:51 sorear it might work well, but it will require some odd gymnastics to use in languages
07:52 brrt then only the 'owner' thread will have write access
07:52 brrt the rest can write, but only by sending a task to the owner thread
07:52 brrt this is accomplished by a proxy object
07:53 sorear so, for instance, parrot's new threads are probably not very useful for @foo>>.method
07:54 Timbus so its like when i pass methods back to the main thread loop in a UI application
07:55 Woodi can interpreter create threads/actors for himself ?
07:55 Timbus i am okay with this actually it seems fairly sane
07:57 Woodi or thread == interpreter ?
08:05 FROGGS joined #perl6
08:06 Woodi hmm, that means build-in atomicicity :)
08:07 leont joined #perl6
08:12 mucker joined #perl6
08:13 sorear yay mono assertion failures
08:20 Psyche^ joined #perl6
08:25 FROGGS tadzik: would you mind that I add the tmpdir functionality (File::Spec) to your File-Tools repo?
08:25 tadzik FROGGS: not at all
08:25 FROGGS k
08:25 tadzik but but
08:25 FROGGS great
08:25 FROGGS ya?
08:25 tadzik there were plans to split Shell::Command and File::Find
08:25 FROGGS k
08:25 tadzik will come back to it later &
08:25 FROGGS so I make a new project
08:26 sorear filed
08:32 dalek niecza: c592587 | sorear++ | lib/ (4 files):
08:32 dalek niecza: Change constant table to use instance fields
08:32 dalek niecza:
08:32 dalek niecza: By allowing different loads of the same load module to have independent
08:32 dalek niecza: constant tables, this is the first step towards allowing concurrent use
08:32 dalek niecza: of compartments in the same kernel instance.
08:32 dalek niecza: review: https://github.com/sorear/niecza/commit/c592587baa
08:32 sorear sleep&
08:36 masak morning, #perl6
08:36 hoelzro o/ masak
08:36 FROGGS hi masak
08:36 * masak writes up a mini-challenge for today
08:38 tadzik FROGGS: ok I'm here
08:39 tadzik so, me, and a few confused people too think that File::Tools should be shed to pieces
08:39 tadzik and those pieces to be released as separate projects
08:39 tadzik now people can't find neither File::Find nor Shell::Command
08:39 masak granularity++
08:39 * tadzik shudders every time he adds a new dep to Panda
08:40 masak oh, *that* was why.
08:41 masak I can see that being a reason, but it doesn't feel like a very strong reason.
08:41 tadzik right
08:41 tadzik well, that wasn't the reason really
08:41 * tadzik looks at the git history
08:42 tadzik so it used to be File::Copy, File::Mkdir and File::Find in one repo
08:42 tadzik https://github.com/tadzik/perl6-File-Tools/commit/f365c15eca8
08:44 dakkar joined #perl6
08:47 leont tadzik: welcome to toolchaining
08:50 xinming joined #perl6
08:51 masak today's mini-challenge: https://gist.github.com/3712987
08:58 tadzik oh, leont, good to see you
08:58 tadzik I was thinking about this custom build routines yesterday, for the module ecosystem
08:59 tadzik I sketched out something along this: https://gist.github.com/3709444 So extending the module installer's behaviour
08:59 tadzik so when it installs stuff, it looks for Build.pm, loads it if it's there, and then uses its build/test/install methods, if they're there
09:00 tadzik leont: what do you think?
09:00 leont I think that on the long term you want a make like system
09:01 moritz whatever you do, please make sure that providing a custom Build.pm doesn't mean you have to reimplement the build steps that you want to leave untuched :-)
09:01 leont Inversion of control is a very good thing in builders, because it allows you to easily extend things
09:01 tadzik yes, I'm keeping that in mind :)
09:02 leont Including what moritz just said
09:02 tadzik in the Build.pm I thought of, you _can_ extend several build steps, but you don't have to
09:02 tadzik in the simpliest case, you don't have to do anything at all
09:02 tadzik once you need some fancy stuff, you handle it yourself
09:03 leont paste?
09:03 tadzik https://gist.github.com/3709444
09:04 leont Things is, what if someone wants to change how something is compiled
09:04 leont Then you're screwed in that system
09:04 tadzik why?
09:05 leont Because code is a lot harder to modify than data
09:06 FROGGS__ joined #perl6
09:06 tadzik hm, well
09:06 dalek rakudo/nom: f3e1c3f | jonathan++ | src/Perl6/Grammar.pm:
09:06 dalek rakudo/nom: Liberalize checking of whether we are in a proto.
09:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f3e1c3f0dc
09:06 dalek rakudo/nom: e067a34 | jonathan++ | src/ (3 files):
09:06 dalek rakudo/nom: First cut of more complex proto bodies. Caveats: optimizer not aware of the non-onlystar case yet, and can't put {*} in nested blocks in the proto.
09:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e067a3495e
09:06 dalek rakudo/nom: e1bd5c9 | jonathan++ | src/ (4 files):
09:06 dalek rakudo/nom: Mark onlystar protos.
09:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1bd5c9837
09:06 dalek rakudo/nom: 3b9fc15 | jonathan++ | src/Perl6/Optimizer.pm:
09:06 dalek rakudo/nom: Don't optimize away the proto in the non-onlystar case.
09:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b9fc155fc
09:06 dalek rakudo/nom: 15bdbb4 | jonathan++ | src/Perl6/Actions.pm:
09:06 dalek rakudo/nom: Auto-generated proto also needs to be marked as onlystar.
09:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/15bdbb4b28
09:06 tadzik okay, what's the use case? doing perl6 -O2 for some files and perl6 -O0 for another?
09:06 tadzik ie what do you mean by "change the way files are compiled"
09:07 leont I mean that you don't know in advance what people will want to do
09:07 leont You can't
09:07 tadzik sure
09:07 tadzik that's why I wanted to make them able to write code rather than write metadata. Data is limiting, code's not
09:08 tadzik exactly because people will need things I didn't think of
09:08 FROGGS why have a case where we compile everything static instead of shared objects for example
09:09 FROGGS the best way IMO is that you _can_ overwrite every method that panda calls, like compile_file( $file, $dest, $whatever )
09:09 FROGGS but you dont have to
09:10 leont This is a prototype I have (in perl5): http://paste.scsys.co.uk/207622
09:10 FROGGS and you can call something like SUPER::compile_file to jump to pandas sub, if you just need to do something special right before the usual code
09:11 leont One nice trait is that one paragraph creating a .pm file will automatically result in the other processing it, for example.
09:11 leont The order of the paragraphs doesn't affect this trait, they're completely independent (except the last one, but that could be rewritten independent too)
09:15 brrt i thought ionmonkey was in production by now
09:18 wamba joined #perl6
09:20 FROGGS tadzik: I think the first step would be to design the single steps panda needs to do that might be of interest to handle in a custom Build.pm
09:21 FROGGS then we might need to extend the metadata for the module (in what dirs it has to look for files for example)
09:21 dayangkun joined #perl6
09:22 FROGGS adding build steps for systems like macosx might also be handy
09:24 mdupont joined #perl6
09:25 tomaw_ joined #perl6
09:30 moritz for $work I'm now looking at merging tickets in OTRS, and I can't help to notice some similarities to inheritance and role composition
09:30 moritz s/to/but/
09:30 masak what kind of similarities?
09:31 tomaw- joined #perl6
09:32 moritz well, basically there are two things you can do
09:33 moritz if you merged A into B and B into C, then the result is a tree of merged tickets, much like inheritance
09:33 moritz otoh some resources get copied flatly along the merge direction (or should :-)
09:33 moritz much like role composition
09:35 masak well, the "link vs copy" thinking comes back in DDD when thinking about aggregates, too.
09:35 masak aggregates tend to favor duplication and eschew links.
09:36 dalek rakudo/nom: 4e07a76 | (Gabor Szabo)++ | / (2 files):
09:36 dalek rakudo/nom: change most of the Test.pm functions to return their truth value and test this in the sanity test
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4e07a76429
09:36 dalek rakudo/nom: 61807a6 | (Gabor Szabo)++ | t/01-sanity/99-test-basic.t:
09:36 dalek rakudo/nom: enable some commented out sanity test
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/61807a6211
09:36 dalek rakudo/nom: 792c782 | (Gabor Szabo)++ | / (2 files):
09:36 dalek rakudo/nom: fix the rest of the Test functions to return their truth and test them
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/792c782287
09:36 dalek rakudo/nom: ab08176 | (Gabor Szabo)++ | / (8 files):
09:36 dalek rakudo/nom: merge from upstream and add the additional test cases
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ab081760f8
09:36 dalek rakudo/nom: 51435bd | moritz++ | / (2 files):
09:36 dalek rakudo/nom: Merge branch 'nom' of https://github.com/szabgab/rakudo into nom
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/51435bd930
09:36 dalek rakudo/nom: 2ee2701 | moritz++ | / (13 files):
09:36 dalek rakudo/nom: Merge branch 'nom' of git://github.com/rakudo/rakudo into nom
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2ee2701da8
09:54 qinghandebaba joined #perl6
09:55 xinming joined #perl6
09:59 dalek rakudo/nom: 0af9e7b | (Gerhard R)++ | src/binder/container.c:
09:59 dalek rakudo/nom: Rename typename to type_name, which isn't a C++ keyword
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0af9e7b2f4
09:59 dalek rakudo/nom: 8e2134e | (Gerhard R)++ | src/ (3 files):
09:59 dalek rakudo/nom: Add pointer casts to quiet warnings
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8e2134eac8
09:59 dalek rakudo/nom: 2f06eb0 | (Gerhard R)++ | src/binder/ (2 files):
09:59 dalek rakudo/nom: Add parens to quiet precedence warnings
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2f06eb0893
09:59 dalek rakudo/nom: 1007273 | moritz++ | src/ (5 files):
09:59 dalek rakudo/nom: Merge pull request #80 from gerdr/gerdr/warnings
09:59 dalek rakudo/nom:
09:59 dalek rakudo/nom: Quiet some gcc warnings
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/10072735a0
10:03 Exodist joined #perl6
10:10 leont left #perl6
10:27 daxim joined #perl6
10:30 spider-mario joined #perl6
10:50 xinming_ joined #perl6
10:57 crab2313 joined #perl6
10:58 wk_ joined #perl6
11:01 yarp joined #perl6
11:02 LlamaRider the abstract syntax actions in P6 grammars confuse the heck out of me. Is there a handy reference on them?
11:03 LlamaRider abstract syntax trees*
11:05 Su-Shee_ joined #perl6
11:06 LlamaRider most revealing intro I read so far was in masak's blog, but I am still lacking more ambitious examples on how to manipulate them in grammar actions.
11:09 kaleem joined #perl6
11:10 masak LlamaRider! \o/
11:10 masak LlamaRider: I think you need to ask a more specific question. I agree that information is scattered and could be collected in one place.
11:12 LlamaRider I think my confusion is not with AST as a concept, but with the .ast method in particular
11:13 masak ok, let's start there, then.
11:13 LlamaRider there seems to be some interplay with using "make" in grammars and then retrieving what was returned by .ast
11:13 masak indeed.
11:13 masak "make" sets $/.ast
11:13 LlamaRider grammar actions that is
11:13 masak r: grammar G { regex TOP { { make 42 } } }; G.parse(""); say $/.ast
11:13 p6eval rakudo 100727: OUTPUT«42␤»
11:13 * hoelzro listens up
11:14 LlamaRider what does this "make" stand for?
11:14 LlamaRider it's too vague to figure out
11:14 hoelzro masak: it's not typical to put the actions directly in the grammar, right?
11:14 hoelzro you usually have an actions class?
11:15 masak sure.
11:15 masak that's by convention only, though.
11:15 moritz rakudo didn't support inline 'make' for a long time
11:15 moritz LlamaRider: it sets the .ast attribute of the current match object
11:16 hoelzro so basically sub make($value) { $/.ast = $value }?
11:16 LlamaRider ok, so one point of confusion is that .ast does not really return an "abstract syntax tree", I could literally stuff anything in there
11:16 masak hoelzro: kinda. the $/ is a lexical, not a global.
11:16 hoelzro masak: oh, ok
11:16 masak LlamaRider: yes, but it's meant to contain an AST of some kind.
11:18 LlamaRider ok, so there is no structure imposed by design
11:18 LlamaRider that is what I was wondering about - if I need to create specific structures or expect some magic AST object
11:18 moritz well, the Match objects have a certain structure (depending on your regex), and you can attach an AST object to any level
11:20 LlamaRider which leads to my next query; if I have --  " token foo  { <bar> <baz> } " can I access something like $<bar>.ast in the action for foo?
11:20 masak wow, you can do HEAD@{5 minutes ago} in git. did not know that.
11:20 masak LlamaRider: yes, absolutely.
11:21 dayangkun joined #perl6
11:21 LlamaRider masak: ok, now I can try the first approach to your teaser task then :) thanks
11:21 masak LlamaRider: that's the idea, even. to combine the ASTs of child nodes into bigger ASTs on the way up through the recursive descent.
11:21 masak LlamaRider: ooh!
11:21 LlamaRider already posted a solution using the second one, but it feels dumb
11:21 masak the task as such has been up for discussion now and then on the channel.
11:21 masak but I'm not aware that I've seen a solution to it.
11:22 LlamaRider are we talking about the same thing? https://gist.github.com/3712987
11:22 masak yeah, the second approach feels like not taking advantage of information from the parse.
11:22 hoelzro masak: in the token foo example, you'd probably do something like make FooToken.new(:bar($<bar>.ast), :baz($<baz>.ast)), right?
11:22 masak LlamaRider: yeah, today's mini-challenge :)
11:22 moritz masak: 'man git-rev-parse' is a relevation :-)
11:24 dalek Perlito: d0f534c | (Flavio S. Glock)++ | / (4 files):
11:24 dalek Perlito: Perlito5 - javascript - glob assignment fix
11:24 dalek Perlito: review: https://github.com/fglock/Perlito/commit/d0f534cfd8
11:24 JimmyZ joined #perl6
11:26 masak moritz: yes, well. I'm reading http://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html now.
11:27 masak wow, apparently the brace syntax is used for a number of things.
11:27 moritz ah yes, man git-rev-parse contains that
11:36 lorn_ joined #perl6
11:36 TimToady_ joined #perl6
11:37 spider-mario_ joined #perl6
11:37 mucker_ joined #perl6
11:37 obra_ joined #perl6
11:37 sergot_ joined #perl6
11:37 orevdiabl joined #perl6
11:37 gfldex_ joined #perl6
11:40 LlamaRider are we talking about the same thing? https://gist.github.com/3712987
11:40 LlamaRider oops, sorry
11:44 mucker joined #perl6
11:49 Pleiades` joined #perl6
11:49 zamolxes joined #perl6
11:50 xinming joined #perl6
11:50 broquain1 joined #perl6
11:51 REPLeffect joined #perl6
11:51 groky joined #perl6
11:54 robins joined #perl6
11:55 snarkyboojum joined #perl6
11:55 Vlavv_ joined #perl6
11:56 erkan joined #perl6
11:56 erkan joined #perl6
11:57 LlamaRider I have <foo>? , how can I check in a grammar action whether $<foo> was matched? Is that variable always defined, even if no match occurred ?
11:58 moritz $<foo> will be an array with 0 or 1 element
11:59 moritz so a simple    if $<foo>  { }  does what you want
11:59 FROGGS__ joined #perl6
11:59 LlamaRider ok, so my bug is trickier, thanks
11:59 moritz (note that this is about to change, and $<foo> will be either a Match object or Nil, but the 'if' will still work)
12:00 jnthn r: my $x = "alpha\n  beta\n  gamma\ndelta\n  epsilon\n    zeta\n"; grammar Indentation { token TOP { <spaced(0)>* }; token spaced($sp, $s = ' ' x $sp) { $s (\N+) \n <spaced($sp + 2)>* } }; say Indentation.parse($x, actions => class { method TOP($/) { make $<spaced>>>.ast }; method spaced($/) { make $<spaced> ?? ~$0 => [ $<spaced>>>.ast ] !! ~$0 }; }).ast.perl;
12:01 p6eval rakudo 100727: OUTPUT«$("alpha" => ["beta", "gamma"], "delta" => ["epsilon" => ["zeta"]])␤»
12:01 jnthn masak: ^ what you wanted?
12:04 rsimoes joined #perl6
12:04 Util joined #perl6
12:04 LlamaRider ok, so my bug is trickier, thanks
12:04 LlamaRider argh, not again :(
12:04 masak jnthn: yes, that looks like exactly what I wanted.
12:04 LlamaRider jnthn, awesome, i stared for 2 minutes and understood 30% :D
12:05 masak I tried to use parameterized grammar rules yesterday, and completely failed at it.
12:05 masak glad to know that idea wasn't insane, then :)
12:05 masak jnthn++
12:05 jnthn Another masak challenge solved in a single line on IRC :P
12:05 masak :)
12:07 frettled Ow, my brane.
12:07 jnthn The bf interp I did in as many chars woulda been *worse* for your brane :P
12:09 arnsholt jnthn++ indeed
12:09 frettled jnthn: stop stop stop .)
12:09 arnsholt I wonder how far that gets you towards a Python parser =D
12:11 * masak .oO( because Python is all Greek, too? )
12:13 kresike joined #perl6
12:17 arnsholt To a Perl programmer, it certainly is all Greek ;)
12:18 wamba joined #perl6
12:18 masak_ joined #perl6
12:18 estrai_ joined #perl6
12:19 mtk joined #perl6
12:21 LlamaRider I bet Greek Perl programmers disagree
12:21 masak_ freenode is having some trouble presently, it seems...
12:22 daxim ololol packets
12:22 pjcj_ joined #perl6
12:23 JimmyZ_ joined #perl6
12:23 JimmyZ_ token can have arguments? I never see it in std :)
12:23 yeltzooo7 joined #perl6
12:23 masak_ JimmyZ_: I think it's in there somewhere.
12:23 topo__ joined #perl6
12:23 JimmyZ_ rn: my $x = "alpha\n beta\n gamma\ndelta\n epsilon\n zeta\n"; grammar Indentation { token TOP { <spaced(0)>* }; token spaced($sp, $s = ' ' x $sp) { $s (\N+) \n <spaced($sp + 2)>* } }; say Indentation.parse($x, actions => class { method TOP($/) { make $<spaced>>>.ast }; method spaced($/) { make $<spaced> ?? ~$0 => [ $<spaced>>>.ast ] !! ~$0 }; }).ast.perl;
12:24 p6eval rakudo 100727: OUTPUT«$("alpha", " beta", " gamma", "delta", " epsilon", " zeta")␤»
12:24 p6eval ..niecza v21-2-gc592587: OUTPUT«["alpha", " beta", " gamma", "delta", " epsilon", " zeta"]␤»
12:25 JimmyZ token can have arguments? I never see it in std :)
12:26 nebuchadnezzar joined #perl6
12:26 JimmyZ_ JimmyZ: who are you
12:29 fhelmberger joined #perl6
12:30 jaldhar joined #perl6
12:32 PacoAir joined #perl6
12:34 eiro__ joined #perl6
12:36 fhelmberger_ joined #perl6
12:37 topo__ joined #perl6
12:38 daxim joined #perl6
12:42 eiro joined #perl6
12:42 jaldhar joined #perl6
12:42 dayangkun joined #perl6
12:47 sftp_ joined #perl6
12:48 arnsholt_ joined #perl6
12:48 clkao_ joined #perl6
12:48 BinGOs_ joined #perl6
12:48 Su-Shee_ joined #perl6
12:49 pnu_ joined #perl6
12:49 mst___ joined #perl6
12:49 moritz__ joined #perl6
12:49 zamolxes_ joined #perl6
12:49 mucker_ joined #perl6
12:49 ruoso_ joined #perl6
12:49 jnthn_ joined #perl6
12:50 xinming joined #perl6
12:52 BinGOs joined #perl6
12:52 cxreg joined #perl6
12:52 JimmyZ masak: you're right, I didn't realize it
12:53 robinsmidsrod joined #perl6
12:53 adu joined #perl6
12:54 avarab joined #perl6
12:55 spacebat_ joined #perl6
12:55 Gruber joined #perl6
12:55 daxim I made a distro upgrade and now am able to use libicu49
12:56 daxim I can install native parrot/rakudo packages
12:56 masak JimmyZ: the nice realization here is that grammar rules are a kind of methods.
12:56 [Coke]_ joined #perl6
12:56 shachaf_ joined #perl6
12:57 sorear joined #perl6
12:57 mdupont joined #perl6
12:59 JimmyZ masak: yes, I know. I didn't know argment can be regex and insided in token
13:01 masak I believe it was an addition to S05 after it was created, but I'm not 100% sure.
13:02 sudokode joined #perl6
13:04 kresike the freenode network is slowly morphing into a notwork
13:05 atrodo joined #perl6
13:07 masak IRC is hard, let's go shopping!
13:10 moritz joined #perl6
13:11 ilogger2 joined #perl6
13:11 krunen joined #perl6
13:11 xinming joined #perl6
13:12 Util_ joined #perl6
13:13 adu masak++
13:14 perigrin joined #perl6
13:14 yves_ joined #perl6
13:14 eiro_ joined #perl6
13:16 LoRe joined #perl6
13:16 skids joined #perl6
13:19 arnsholt joined #perl6
13:24 arkydo joined #perl6
13:24 fgomez joined #perl6
13:26 mucker_ is it theorectically possible to write a parser for perl6 using recursive descent technique ??
13:28 masak mucker_: STD.pm6 is a recursive-descent parser.
13:28 jnthn modulo a little LTM ;)
13:28 masak mucker_: the parsers you get from grammars written in Perl 6 are recursive-descent parsers.
13:28 arnsholt And EXPR
13:29 masak true on both counts.
13:29 masak but the basic idea is still very much recursive-descent, if you ask me.
13:29 jnthn But yeah, it's rec desc for the main structure of the program for sure.
13:29 mucker_ cool
13:30 Gothmog__ joined #perl6
13:31 FROGGS_ joined #perl6
13:31 tadzik hmm hmm
13:32 PerlJam mucker_: I tend to think of parsers written in Perl 6 grammars as modal.  For the main structure you get recursive descent, but then once you hit a certain "level", the parser switches modes and starts doing operator precedence parsing.  (for instance)
13:32 tadzik it just occured to me that formatting code in Pod tables should not be that hard to implement
13:32 arkydo Where can I find a good intro tutorial about perl6?
13:33 tadzik or maybe
13:33 PerlJam mucker_: reality is generally more complicated though.  You can have any number of "modes" by having parsers that call into each other.  :-)
13:34 mucker_ arkydo: wikibooks worked well for me http://en.wikibooks.org/wiki/Perl_6_Programming
13:34 PerlJam arkydo: If you already know Perl 5, there's moritz's articles http://perlgeek.de/blog-en/perl-5-to-6/
13:34 masak TIL: you can compile .c files with `make` but without a Makefile: https://www.hackerschool.com/blog/7-understanding-c-by-learning-assembly
13:35 masak arkydo: check out http://perl6advent.wordpress.com/
13:37 arkydo thanks, for the recommandations, I will check them out.
13:38 kst joined #perl6
13:38 aloha joined #perl6
13:38 mucker joined #perl6
13:39 GlitchMr joined #perl6
13:42 tokuhiro_ joined #perl6
13:58 sjohnson joined #perl6
13:59 M_o_C joined #perl6
14:01 FROGGS__ joined #perl6
14:08 mst joined #perl6
14:09 masak ...and the dust settles, and freenode is back to normal. (hopefully)
14:09 stopbit joined #perl6
14:09 FROGGS__ left #perl6
14:10 flightrecorder joined #perl6
14:10 xinming_ joined #perl6
14:13 FROGGS_ joined #perl6
14:14 yarp joined #perl6
14:18 FROGGS_ is there a recommendation about *.pm or *.pm6 files? what should somebody use?
14:18 bluescreen10 joined #perl6
14:18 * hoelzro prefers .mp6
14:18 hoelzro er, .pm6
14:18 tadzik I prefer .pm
14:18 hoelzro otherwise I constantly have to tell Vim "hey, this is Perl 6!"
14:18 tadzik :)
14:18 hoelzro tadzik: why is that?
14:18 tadzik also, .pl not .pl6
14:19 tadzik hoelzro: it's one character less, obviously :)
14:19 tadzik and I don't use syntax hilighting anyway
14:19 PerlJam .pl is still "prolog" in my head  :)
14:19 FROGGS_ .pl and .pm has the advantage that all system know its a perl file
14:19 tadzik and when I did, I just told vim that all my perl is perl 6 and it believed me
14:19 hoelzro I use .p6
14:19 masak I prefer .pm too. mostly because I started calling them that and see no reason to change.
14:19 hoelzro for scripts
14:19 masak I prefer scripts to have no extension.
14:20 masak extensions are for Windows users.
14:20 masak :)
14:20 hoelzro heh
14:20 PerlJam hoelzro: why can't vim read the #! line and figure out that it's perl6 ? :)
14:20 hoelzro well, I would like some advice on how to tell Vim and ack that those files are Perl 6 =)
14:20 hoelzro PerlJam: but modules shouldn't have #!, right?
14:20 FROGGS_ right
14:21 PerlJam hoelzro: why can't vim read the first N lines of the file and look for the "use v6" or "module"?
14:21 PerlJam :)
14:22 hoelzro PerlJam: that shouldn't be too hard
14:22 hoelzro getting ack to do that is a little more complicated =)
14:22 daxim PerlJam, report here: https://github.com/petdance/vim-perl
14:23 skids tadzik: I believe https://github.com/skids/perl6sum should be ecosystem-friendly now.
14:25 wamba joined #perl6
14:26 tadzik skids: yep, looks good
14:26 tadzik care to send a pull request?
14:26 tadzik you want to add a path to raw META.info to https://github.com/perl6/ecosystem/blob/master/META.list
14:27 skids OK, I'll do that after work.  Thanks, tadzik++
14:31 dalek ecosystem: 5845251 | (Конрад Боровски)++ | META.list:
14:31 dalek ecosystem: Add Sum module by skids
14:31 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/5845251d7b
14:31 tadzik awesome :)
14:33 GlitchMr It might take a while to modules.perl6.org to update, but it's possible to install it now using Panda
14:33 GlitchMr (well, at least I think so)
14:33 tadzik not yet
14:35 tadzik now it is
14:35 skids BTW, if anyone needs any particular type of checksum added, let me know.  Not that I read my email often enough.  For now, I'm staying away from strong crypto, though.
14:35 FROGGS_ rqn: say $*OS
14:35 FROGGS_ :/
14:35 tadzik skids: how about adding the existing Digest::lalala as possible backends?
14:35 masak skids++
14:35 tadzik we seem to have quite a few checksum modules now
14:37 skids I'll look at integrating those, sure.
14:37 moritz r: say nqp::p6box_s nqp::sha1('foo')
14:37 p6eval rakudo 100727: OUTPUT«0BEEC7B5EA3F0FDBC95D0DD47F3C5BC275DA8A33␤»
14:37 tadzik skids: that'd be awesome :)
14:37 tadzik skids++
14:37 GlitchMr r: say nqp::p6box_s nqp::sha1 'foo'
14:37 p6eval rakudo 100727: OUTPUT«0BEEC7B5EA3F0FDBC95D0DD47F3C5BC275DA8A33␤»
14:38 GlitchMr Shouldn't modules with nqp:: or pir:: be Parrot modules, not Perl 6 modules?
14:39 moritz parrot doesn't know about nqp::
14:40 tadzik Parrot modules aren't easily usable from Perl 6
14:40 GlitchMr s/Parrot/Rakudo/
14:40 GlitchMr lol
14:40 tadzik ah :)
14:40 tadzik well, well
14:40 GlitchMr Technically, they could only work with Perl 6 implementations using Parrot
14:40 GlitchMr That would be only Rakudo
14:40 spider-mario joined #perl6
14:42 skids BTW, someone with an inclination to hack on test.pm might want to look at the hackery in e.g. t/siphash.t that makes sure the manpage synopsis works.  Might make for an interesting addition.
14:42 * moritz doubts there will ever be more than one major Perl 6 compiler targeting parrot
14:44 leprevost joined #perl6
14:46 thou joined #perl6
14:46 masak didn't Pugs target Parrot?
14:46 hoelzro I don't think so
14:47 GlitchMr Wasn't Pugs in Haskell?
14:47 JimmyZ there were some pir codes in Pugs, iirc
14:48 kresike bye folks
14:48 GlitchMr I hope that implementing pir:: won't be required to fully implement Perl 6 ;-).
14:49 GlitchMr Also, anything that uses CLR:: also isn't Perl 6.
14:49 benabik joined #perl6
14:50 tadzik it's just platform-specific Perl 6 :)
14:51 GlitchMr But, I guess that regular expressions with backreferences aren't regular
14:51 tadzik ww
14:51 GlitchMr But everybody implements backreferences... even with their low performance
14:52 masak backreferences are pretty useful.
14:53 arnsholt I dunno. I don't use them all that often in my regexes
14:54 arnsholt Captures, sure. But things like /\w+ $1/? Not a lot
14:54 masak arnsholt: clearly you don't look for repeated words all that often. ;)
14:54 spider-mario it’s useful for RLE, is it not?
14:54 masak arnsholt: or for words with three occurrences of two letters, such as "bookkeeper".
14:55 GlitchMr arnsholt: Uhmmm... you probably meant /(\w+) \1/ or /(\w+) \s $0/
14:55 arnsholt Er, right. What GlitchMr said
14:55 GlitchMr s/\\s/' '/
15:02 GlitchMr skids: Also, could you change name of module from "Sum::" to "Sum"?
15:02 tadzik heh
15:02 skids You mean in META?
15:02 tadzik yeah
15:04 GlitchMr I can make Pull Request for you, if you want
15:05 GlitchMr oh, you have done that
15:05 GlitchMr whatever
15:05 GlitchMr thanks
15:05 skids np
15:05 kaare__ joined #perl6
15:11 xinming joined #perl6
15:11 GlitchMr r: run "echo '//i' | a2p"
15:11 p6eval rakudo 100727: OUTPUT«run is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub run at src/RESTRICTED.setting:8␤  in block  at /tmp/Gui2qrQZTr:1␤␤»
15:11 GlitchMr b: run "echo '//i' | a2p"
15:11 p6eval b 922500: OUTPUT«Operation not permitted in safe mode␤  in 'Safe::forbidden' at line 2:/tmp/NNbwZulPxf␤  in main program body at line 22:/tmp/NNbwZulPxf␤»
15:11 GlitchMr n: run "echo '//i' | a2p"
15:11 p6eval niecza v21-2-gc592587: OUTPUT«Unhandled exception: run may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (run @ 0) ␤  at /tmp/C6qkMXbpwg line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.s…
15:11 GlitchMr Uhmmm... what is "b"?
15:12 GlitchMr I accidentally typed "b" instead of "n"
15:12 benabik GlitchMr: b is 'berlin', the last pre-nom release (IIRC)
15:12 benabik Or 'beta', the branch after 'alpha' and before 'nom'
15:13 masak benabik: 'beijing', IIRC.
15:13 benabik masak: Drat.  Well, I got two letters right...
15:14 masak GlitchMr: it took you three p6eval evaluations to realize that system calls are switched off?
15:14 GlitchMr benabik: You got three
15:15 GlitchMr beijing berlin
15:15 GlitchMr oh wait
15:15 GlitchMr You got four
15:15 GlitchMr beijing berlin
15:15 benabik GlitchMr: Well, I meant the first two.  But true.
15:15 GlitchMr I just have noticed this
15:16 perlhack joined #perl6
15:19 perlhack there know me ?
15:19 perlhack :-)
15:19 masak perlhack! \o/
15:19 masak perlhack: you're back!
15:20 perlhack :-)yes
15:20 perlhack masak :-)
15:20 masak perlhack: I thought of you just the other day.
15:21 perlhack masak:my english is very bad
15:21 perlhack :'(
15:22 hoelzro that sentence was perfect, though ;)
15:23 hoelzro perlhack: 我的中文不好 =(
15:23 masak perlhack: 我的中文比你的英文真不好。
15:23 JimmyZ 大家好啊,我在深圳
15:23 hoelzro what are those last two characters?
15:23 hoelzro it's been a few years.
15:23 masak perlhack: 你是勇敢的。
15:24 perlhack_ joined #perl6
15:24 perlhack_ sorry
15:24 TimToady_ Shenzhen
15:24 perlhack_ sorry all
15:24 perlhack_ 刚才那个软件不支持中文 哈哈
15:24 masak perlhack_: http://irclog.perlgeek.de/perl6/2012-09-13#i_5984627
15:25 hoelzro I understood "哈哈"
15:25 hoelzro =P
15:25 GlitchMr Uhmmmm... this Wiki is broken - http://wiki.perl6.org/
15:25 GlitchMr <script src="/js/jquery.min.js" type="text/javascript"> leads to 404
15:25 perlhack_ ‘’哈哈‘ = haha
15:26 perlhack_ sorry all ,i want to sleep....
15:26 [Coke]_ GlitchMr: many 404s there. I dunno who maintains wiki, though.
15:26 TimToady Shenzhen must mean something like deep valley
15:27 masak good night, perlhack.
15:27 TimToady deep gorge, maybe
15:28 GlitchMr [Coke]_: It was working some time ago
15:28 [Coke]_ GlitchMr: no doubt.
15:28 GlitchMr If nothing would be done, nothing would break
15:28 GlitchMr Surely something has broken this wiki
15:31 masak TimToady: "deep drains", according to Wikipedia.
15:31 TimToady I suspect that's a mistranslation.
15:32 moritz I think uvtc was last seen maintaining the wiki. I just installed it.
15:32 TimToady it's more like "furrow"
15:32 TimToady and drainage as in drainage off a field
15:33 TimToady it's not about pipes, I suspect
15:34 masak TimToady: I don't dare change Wikipedia's translation, even though I believe you are right.
15:35 TimToady of course, it's possible that that is what a modern resident of Shenzhen thinks it means
15:35 TimToady in which case, trotting out the etymology is somewhat beside the point
15:36 TimToady the etymological fallacy is one that linguists learn to spot early :)
15:36 TimToady and certainly, China has had just a wee bit of time for semantic drift to occur...
15:37 TimToady otoh, this character occurs only in the city's name, so maybe I'm still right :)
15:37 masak :)
15:38 TimToady I might name a town "Deep Ditch"  :)
15:39 TimToady the fact that the radicals are earth and river indicate that the original semantics were bound up in the relationship of those two things, probably
15:39 ponbiki joined #perl6
15:40 skids .oO(Hmm... where to draw the line between committing etymological fallacy and letting culture around you fall into complete slang.)
15:40 ponpon joined #perl6
15:42 TimToady but what if your slang is my native language?
15:42 PerlJam skids: if slang is the norm, then it isn't slang anymore.
15:43 TimToady it becomes a fractal problem, with a dependency on the scale at which you measure it
15:44 japhb o/
15:45 skids PerlJam: yet norms don't become norms overnight, and can be strangled when young. :-)
15:45 moritz can they?
15:46 TimToady "A language is a dialect with an army and navy"
15:46 japhb Been away for a couple weeks, and looking through the Rakudo diffs.  The onlystar work -- is that just to make sure that existing code that assumes proto bodies are just '{*}' doesn't break when larger bodies begin to be accepted?  Or does this mean that larger proto bodies are actually fully working now?
15:47 PerlJam someone copied onlystar from nqp to rakudo?
15:47 moritz r: proto sub f(|) { say 42; {*}; say 23 }; multi f(Int) { say 'Int' }; f 18
15:47 p6eval rakudo 100727: OUTPUT«42␤Int␤23␤»
15:47 moritz japhb: looks good
15:47 * PerlJam hasn't been paying attention
15:48 japhb moritz, ah, cool.
15:48 [Coke] r: say {*}.WHAT
15:48 p6eval rakudo 100727: OUTPUT«===SORRY!===␤{*} may only appear in proto at line 2, near ".WHAT"␤»
15:48 japhb I didn't realize that '{*}' could be used as just part of a larger proto.
15:49 moritz it's a new feature
15:49 moritz in rakudo, at least
15:49 PerlJam newly implemented, but it's been in the spec that way for a while, right?
15:49 * japhb realizes he should pull the latest specs changes too ...
15:49 benabik joined #perl6
15:50 sjohnson joined #perl6
15:50 moritz PerlJam: correct
15:50 TimToady r: proto sub f(|) { 42 + {*} + 23 }; multi f($i) { $i }; say f 18000
15:50 p6eval rakudo 100727: OUTPUT«18065␤»
15:50 TimToady \o/
15:51 JimmyZ That's a great feature
15:51 TimToady this now means we can put caching into the proto
15:52 [Coke] now you're just making stuff up.
15:52 [Coke] (not about the caching, I see that.)
15:52 PerlJam Isn't that his job?
15:52 TimToady no, I made it up a while ago :P
15:53 * [Coke] is time challenged. Thank goodness there is free coffee here.
15:53 * [Coke] trundles away to get some.
15:53 JimmyZ It' a great feature for hooks
15:53 JimmyZ pre and post ;)
15:54 TimToady though I must admit some fondness for the double-struck A trick in http://rosettacode.org/wiki/Ackermann_function#Perl_6
15:55 yarp ==> Bootstrapping Panda ===SORRY!=== Could not find Shell::Command in any of: lib, /home/yarp/.perl6/lib, /usr/lib/parrot/4.0.0/languages/perl6/lib, .
15:55 yarp :~
15:55 GlitchMr yarp: Uhmmm... when bootstraping, it shouldn't depend on anything
15:55 yarp perl6 bootstrap.pl
15:55 GlitchMr This sounds like a bug
15:56 yarp debian testing
15:56 JimmyZ it's hard to understand (state @a) to me
15:56 japhb That's a really old parrot tree, isn't it?
15:57 japhb What's your perl6 version?
15:59 japhb TimToady, ah yes, that double-struck A trick is cute.  But I'm glad the RC code-block font makes the difference clear enough!
15:59 M_o_C TimToady: Whereas caching is used as memoization in the example?
15:59 yarp 0.1 2012.01-1
15:59 yarp rakudo 0.1 2012.01-1
15:59 TimToady yes, this can also be called memoization, so that would be a more precise term
16:00 PerlJam JimmyZ: Hard to understand or hard to deal with?  I have a slight problem that it's an almost-invisible syntactic change that begets a large semantic change.
16:00 japhb yarp, that Rakudo date is ancient in terms of its development speed.
16:00 yarp I am fosoil man
16:01 japhb yarp, you should probably either get the newest Rakudo Star (if you just want to get work done), or clone and build the latest Rakudo from Git (if you want to develop Rakudo itself).
16:01 JimmyZ hard to understand it without actually runing it, I think
16:02 TimToady I tend to avoid "-ize" words because of past trauma with proscriptive grammarians, but in fact that suffix goes all the way back into Greek at least, as -ιζω
16:02 TimToady so you'd think it would be acceptable by now...
16:02 yarp so , i try compile it
16:02 masak TimToady: proscriptive grammarians don't bother with newfangled ideas from Greek :P
16:05 TimToady We are all a product of our upbringing and our downloading...
16:06 M_o_C TimToady: Had to look up what proscritive grammarians means. Ok then.
16:06 TimToady that's a bit of a pun on "prescriptive grammarian"
16:07 PerlJam at least there are not conscriptive grammarians around here.
16:07 PerlJam s/not/no/
16:08 TimToady people call themselves prescriptive, because they think they're telling you how to talk, but mostly they're telling you how not to talk.
16:08 moritz what about conspiratorial grammarians?
16:08 * masak .oO( circumscriptive grammarians )
16:08 masak they never tell you exactly what to do!
16:09 geekosaur PerlJam, perhas only in the Nicolls sense...
16:09 TimToady superscriptive grammarians try to get you to write at a higher level
16:09 geekosaur s/lls/ll/ feh, bad me
16:11 TimToady now to attack this monumentoidal backlog...
16:11 xinming_ joined #perl6
16:12 masak TimToady: and subscriptive grammarians insist that you sign up for their monthly gazette? :)
16:17 yarp error:imcc:The opcode 'getprop_p_p_sc (getprop<3>) was not found. Check the type and number of the arguments in file 'src/stage0/NQPCORE.setting-s0.pir' line 1074
16:21 japhb yarp: This is from rakudo nom, built with `perl Configure.pl --gen-parrot && make && make install`?
16:21 fhelmberger joined #perl6
16:21 [Coke] yarp: how old is your parrot?
16:21 yarp --get-nqp
16:21 yarp --gen-nqp
16:21 [Coke] is this an old checkout of rakudo that you updated?
16:22 [Coke] you might need to do a 'git clean -xdf' if very old.
16:22 yarp brand new
16:22 japhb yarp: --gen-parrot automatically implies --gen-nqp
16:22 japhb yarp: and you're on the nom branch?
16:22 [Coke] if it's brand new, that should be happening., no.
16:22 [Coke] *should not*
16:23 benabik joined #perl6
16:23 yarp you mean the parrot need to be compile also?
16:24 dalek glitchmr.github.com: a33e1b0 | GlitchMr++ | index.css:
16:24 dalek glitchmr.github.com: Add Pygments CSS
16:24 dalek glitchmr.github.com: review: https://github.com/GlitchMr/glitchmr.github.com/commit/a33e1b004e
16:24 japhb yarp: yes
16:24 [Coke] gen-nqp also implies -gen-parrot, no?
16:24 japhb Otherwise you're going to get your ancient parrot, and things have changed.
16:24 [Coke] or is it trying to work with whatever parrot it found installed?
16:25 japhb [Coke], I don't think so, but it's been a while since I looked at the code.
16:25 [Coke] hokay.
16:26 japhb Yeah, looks like --gen-parrot or --with-parrot imply --gen-nqp, but not the other way around.
16:26 MayDaniel joined #perl6
16:27 yarp i try --gen-parrot
16:27 benabik_ joined #perl6
16:30 TimToady r: proto sub f(|) { my $m //= {*}; 42 + $m + 23 }; multi f($i) { $i }; say f 18000
16:30 p6eval rakudo 100727: OUTPUT«(signal SEGV)»
16:31 TimToady except it doesn't actually work for memoizing yet
16:32 masak SEGV? has that been reported?
16:32 TimToady doubt it
16:32 TimToady locally: get_pointer() not implemented in class 'QAST::Stmts'
16:33 * masak submits rakudobug
16:33 japhb r: proto sub f(|) { my $m = {*}; 42 + $m + 23 }; multi f($i) { $i }; say f 18000
16:33 p6eval rakudo 100727: OUTPUT«18065␤»
16:33 japhb r: proto sub f(|) { my $m //= {*}; $m + 23 }; multi f($i) { $i }; say f 18000
16:33 p6eval rakudo 100727: OUTPUT«get_pointer() not implemented in class 'QAST::Stmt'␤  in sub f at /tmp/kpaEgbqysi:1␤  in block  at /tmp/kpaEgbqysi:1␤␤»
16:33 japhb r: proto sub f(|) { my $m //= {*}; $m }; multi f($i) { $i }; say f 18000
16:33 p6eval rakudo 100727: OUTPUT«(signal SEGV)»
16:33 japhb r: proto sub f(|) { my $m //= {*}; $m }; multi f($i) { $i }; say f 1
16:33 p6eval rakudo 100727: OUTPUT«(signal SEGV)»
16:33 masak so, it's the //= in a proto that causes trouble?
16:33 japhb r: proto sub f(|) { my $m //= {*}; }; multi f($i) { $i }; say f 1
16:33 p6eval rakudo 100727: OUTPUT«(signal SEGV)»
16:34 TimToady apparently
16:34 TimToady which makes it hard to use for caching
16:34 japhb r: proto sub f(|) { my $m //= {*} }; multi f() { }; say f
16:34 p6eval rakudo 100727: OUTPUT«get_pointer() not implemented in class 'QAST::Op'␤  in sub f at /tmp/Sy24SMRnWy:1␤  in block  at /tmp/Sy24SMRnWy:1␤␤»
16:34 benabik_ joined #perl6
16:34 japhb r: proto f(|) { my $m //= {*} }; multi f() { }; say f
16:34 p6eval rakudo 100727: OUTPUT«get_pointer() not implemented in class 'BlockInfo'␤  in sub f at /tmp/GfF9BDzNJJ:1␤  in block  at /tmp/GfF9BDzNJJ:1␤␤»
16:34 japhb r: proto f(|) { my $m //= {*} }; say f
16:34 p6eval rakudo 100727: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'f' will never work with no arguments (line 1)␤    Expected any of:␤»
16:34 japhb Why should masak++ get all the golfing fun?  ;-)
16:35 masak TimToady: "the segfault put a serious damper on my caching"? :P
16:35 masak japhb++
16:35 TimToady so why does it require an argument for (|)?
16:36 TimToady I guess it doesn't match any of the multi signatures :)
16:36 * skids read damper as diaper. lol.
16:36 alester joined #perl6
16:36 TimToady but the message is a bit LTA
16:40 TimToady Oh, I don't think I mentioned last night that I added http://rosettacode.org/wiki/Pig_the_dice_game#Perl_6
16:41 FROGGS joined #perl6
16:41 flightrecorder joined #perl6
16:41 benabik_ joined #perl6
16:42 japhb TimToady, I only see the Python implementation ...
16:43 masak `for ^$players xx * -> $player` -- ooh, nice!
16:43 masak TimToady++
16:43 FROGGS is there a way to add a role to a class at runtime?
16:44 jnthn Ah, you've been making my patches earlier today segfault
16:44 jnthn oh...
16:44 TimToady japhb: that's very odd
16:44 jnthn Maybe I can guess why too
16:44 jnthn I didn't update the op to look anywhere besides current scope
16:45 jnthn And I guess it expects it to always be a routine
16:45 jnthn So probably goes looking at invalid memory or something :)
16:45 TimToady has to be thunkable to cache
16:45 jnthn right
16:46 jnthn What I pushed was "what I had time to do" :)
16:46 * TimToady waits patiently for a few seconds
16:46 jnthn :)
16:47 jnthn May be able to get to it during the train journey but...laptop + train = backache...
16:47 TimToady does anyone else see the Perl 6 pig RC entry, or am I in a rosettacode honeypot of some sort?
16:48 TimToady oh, obviously masak sees it
16:48 TimToady duh
16:50 masak aye.
16:50 masak maybe we're both in a rosettacode honeypot :P
16:53 TimToady the prompt doesn't work in current rakudo, btw
16:53 TimToady well, last night's rakudo anyway
16:53 TimToady doesn't flush, and requires a ^D to see the input
16:54 jnthn ergh, on Windows too :/
16:54 jnthn Wonder if that was the Parrot I/O refuctors.
16:55 masak those are the worst possible things to try and test, as well.
16:56 masak "and then the user said... and then Rakudo said..."
16:56 TimToady "I'm pining for the fjords! Rawk!" --the parrot
16:58 * mhasch can see the rosettacode entry just fine
16:59 japhb bak
16:59 japhb Huh, I see it now.
16:59 vs-midi joined #perl6
16:59 TimToady did you give any caching proxy an excuse to cache an older copy?
17:00 japhb Um ... no?
17:00 yarp rakudo compiling finished
17:00 TimToady you don't keep up the Recent Changes pages maybe?
17:00 * masak .oO( what's a copy like you doing in a caching proxy such as this? )
17:00 * japhb wonders if it is "eventual consistency" rearing its ugly head
17:00 TimToady a proxy might chase links from that
17:01 masak japhb: eventual consistency doesn't have an ugly head! it's beautiful, although slightly disruptive and misunderstood :)
17:01 TimToady maybe the speed of light is just slow where you are
17:01 jnthn eventual consistency is fine when your users don't find it disagreeable :)
17:01 dalek glitchmr.github.com: 9f66b5c | GlitchMr++ | index.css:
17:01 dalek glitchmr.github.com: Add padding at bottom, so sudden end of site wouldn't be so strange
17:01 dalek glitchmr.github.com: review: https://github.com/GlitchMr/glitchmr.github.com/commit/9f66b5ca26
17:01 dalek glitchmr.github.com: 467fd6a | GlitchMr++ | _posts/2012-09-13-breaking-compatibility-is-not-fun.md:
17:01 dalek glitchmr.github.com: Breaking compatibility is not fun blog article
17:01 dalek glitchmr.github.com: review: https://github.com/GlitchMr/glitchmr.github.com/commit/467fd6a9d6
17:01 yarp ==>Bootstrapping Panda ==SORRY!== CHECK FAILED: Undefined routine '&rmdir' called (lines 29,31)
17:01 japhb I'm in a very deep gravity well ...
17:02 GlitchMr yarp: Perl 6 should have rmdir() function
17:02 GlitchMr What Perl 6 version it is?
17:03 GlitchMr s/Perl 6/Rakudo/
17:03 jnthn hm, the build I did earlier today has one :)
17:04 yarp git clone git://github.com/rakudo/rakudo.git      at this afternoon
17:04 spider-mario joined #perl6
17:04 GlitchMr My oldest Perl 6 version I've (2012.07) has rmdir
17:04 GlitchMr 2012.08 also has it
17:04 GlitchMr And Rakudo from git also has it
17:05 yarp I got it this afternoon.
17:08 GlitchMr It should have "rmdir"
17:08 GlitchMr Can you run perl6 -v?
17:09 dalek glitchmr.github.com: 77896db | GlitchMr++ | / (3 files):
17:09 dalek glitchmr.github.com: Fix lack of syntax highlighting when viewing posts directly
17:09 dalek glitchmr.github.com: review: https://github.com/GlitchMr/glitchmr.github.com/commit/77896db8f0
17:09 GlitchMr (almost free karma ;))
17:10 GlitchMr (ok, not that karma matters)
17:10 yarp This is perl6 version 2012.08-86-g220a691 built on parrot 4.7.0 revision RELEASE_4_7_0-165-g29796c6
17:10 yarp And so?
17:10 GlitchMr Hmmm... perhaps panda runs your system perl6
17:10 GlitchMr Do you have your compiled panda in PATH?
17:10 GlitchMr perl6*
17:10 yarp no new perl6
17:11 GlitchMr It runs old perl6
17:11 GlitchMr You should add your new perl6 to PATH
17:11 GlitchMr And optionally remove your system perl6
17:11 xinming joined #perl6
17:11 yarp so i remove old perl 6
17:11 GlitchMr You don't have to, but this will make things less confusing
17:12 GlitchMr What you have to do is adding new perl6 to PATH
17:12 GlitchMr And running `which perl6` for sure
17:12 GlitchMr Why you would want old Perl 6 on system anyways if it's old?
17:13 Basim joined #perl6
17:13 Basim left #perl6
17:13 Basim joined #perl6
17:14 TimToady niecza has mkdir/rmdir, but doesn't have rename(), if someone wants to tackle some (presumably) LHF
17:14 Basim Hey. You guys must save a lot of money on condoms.
17:15 Basim left #perl6
17:16 GlitchMr uhmmm... what?
17:16 TimToady I wish people wouldn't post while drunk.
17:16 jnthn Yeah, we don't buy them in denmark.
17:16 xinming joined #perl6
17:16 huf oh come on, blame the user, not the substance ;)
17:16 jnthn :)
17:16 masak interestingly, that insult is generic enough to work on almost any IRC channel.
17:17 Futter joined #perl6
17:17 TimToady a bit early for Oktoberfest, nicht vahr?
17:17 jnthn That's in Germany :P
17:17 huf plenty of people manage to irc drunk, and their output is no worse than when they're sober...
17:17 huf (at least that's what they think)
17:17 jnthn masak: Oh, I took it as a compliment to my bargin-hunting skills :P
17:18 GlitchMr lol "insult"
17:18 TimToady nr: (lol "insult").perl.say
17:18 p6eval rakudo 100727: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&lol' called (line 1)␤»
17:18 p6eval ..niecza v21-2-gc592587: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤      'lol' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  at /home/…
17:18 GlitchMr Can you make insult to "guys"
17:18 GlitchMr This insult isn't very specific
17:19 GlitchMr Perhaps he was saying it about himself
17:19 huf i think he meant that you guys are all in committed relationships and are responsible enough to have children
17:19 yarp It's done, thank you GlitchMr
17:19 TimToady huf: well, some of certainly fall into that category
17:20 TimToady or used to...
17:20 GlitchMr yarp: no problem
17:20 TimToady *of us
17:20 huf TimToady: i'm sure everyone does, modulo time
17:20 GlitchMr masak: also, I doubt this insult would work on channels like #botters (full of IRC bots)
17:21 Futter left #perl6
17:22 TimToady maybe he was complimenting our sense of rhythm...
17:22 GlitchMr nr: say 45325683462858295239592853285 % 328581285132
17:22 p6eval rakudo 100727, niecza v21-2-gc592587: OUTPUT«5316156377␤»
17:22 GlitchMr nr: say -45325683462858295239592853285 % -328581285132
17:22 p6eval rakudo 100727, niecza v21-2-gc592587: OUTPUT«-5316156377␤»
17:22 GlitchMr -5316156377
17:22 GlitchMr Why?
17:23 GlitchMr nr: say -45325683462858295239592853285 % 328581285132
17:23 p6eval rakudo 100727, niecza v21-2-gc592587: OUTPUT«323265128755␤»
17:23 Basim joined #perl6
17:23 GlitchMr ok, that's fine
17:23 TimToady because that's how it's defined maybe?
17:24 GlitchMr I guess it makes sense
17:24 GlitchMr - is always confusing with modulo
17:24 Basim hey guys, sorry about my outburst before - what do you think about Ice Cube?
17:24 jnthn r: proto f(|) { my $m //= {*} }; say f
17:24 p6eval rakudo 100727: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'f' will never work with no arguments (line 1)␤    Expected any of:␤»
17:24 GlitchMr nr: say 1.5 % 0.6
17:24 p6eval rakudo 100727, niecza v21-2-gc592587: OUTPUT«0.3␤»
17:24 GlitchMr 0.3 :-)
17:25 jnthn I think this is (mostly) OK because I don't think writing an explicit proto should rob you of compile-time analysis of the call...
17:25 jnthn Could do a bit better when there's no candidates.
17:26 spider-mario_ joined #perl6
17:26 GlitchMr nr: sub never-worked($ where { False }) {} never-worked
17:26 p6eval niecza v21-2-gc592587: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Whitespace is required between alphanumeric tokens at /tmp/UcleGuFHhq line 1:â�¤------> [32mub never-worked($ where { False }) {} ne[33mâ��[31mver-worked[0mâ�¤â�¤Undeclared routine:â�¤        'ver-worked' used at line 1â�¤â�¤Potential difficu…
17:26 p6eval ..rakudo 100727: OUTPUT«===SORRY!===␤Confused␤at /tmp/WFcKqNBy8Z:1␤»
17:26 GlitchMr nr: sub never-worked($ where { False }) {]}; never-worked
17:26 p6eval niecza v21-2-gc592587: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse block at /tmp/1IkbhnsUrs line 1:�------> [32msub never-worked($ where { False }) {[33m�[31m]}; never-worked[0m�Couldn't find final '}'; gave up at /tmp/1IkbhnsUrs line 1:�------> [32msub never-worked($ wh…
17:26 p6eval ..rakudo 100727: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2, near "]}; never-"␤»
17:26 GlitchMr nr: sub never-worked($ where { False }) {}; never-worked
17:26 p6eval niecza v21-2-gc592587: OUTPUT«Unhandled exception: No value for parameter '' in 'never-worked'␤  at /tmp/Ve8ogh5s3p line 0 (never-worked @ 1) ␤  at /tmp/Ve8ogh5s3p line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.se…
17:26 p6eval ..rakudo 100727: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤  in sub never-worked at /tmp/H5xUDQQZ0j:1␤  in block  at /tmp/H5xUDQQZ0j:1␤␤»
17:26 GlitchMr oops
17:26 Basim I have this idea I would like to code in perl. "The Faxroulette". It works just like Chatroulette, but with a fax machine instead of a webcam. What do you think - is it doable?
17:26 GlitchMr nr: sub never-worked($ where { False }) {}; never-worked 42
17:26 p6eval rakudo 100727: OUTPUT«Constraint type check failed for parameter ''␤  in sub never-worked at /tmp/hBi2xc_AAd:1␤  in block  at /tmp/hBi2xc_AAd:1␤␤»
17:26 p6eval ..niecza v21-2-gc592587: OUTPUT«Unhandled exception: Constraint type check failed for parameter '' in 'never-worked'␤  at /tmp/0PsGcBsT3w line 0 (never-worked @ 1) ␤  at /tmp/0PsGcBsT3w line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤  at /home/p6eva…
17:26 GlitchMr That error is useful
17:27 Futter joined #perl6
17:27 TimToady Basim: you're being boring, which is a cardinal sin in a comedian.
17:27 * TimToady hugs Basim
17:28 GlitchMr Basim: oh hi
17:28 Futter http://www.youtube.com/watch?v=7mMyV2YQgAA
17:28 tadzik hugme: hug Basim
17:28 * hugme hugs Basim
17:28 DrDoom joined #perl6
17:29 GlitchMr Basim: I'm sorry, but this channel is about pearls, not about "Ice Cubes"?
17:29 Basim Sorry guys
17:29 Basim and thanks for the hugs
17:29 Futter Basim u suck!!
17:29 daxim now you ruined it
17:29 Basim don't listen to those rumors
17:30 Futter o rly!?
17:30 tadzik no need to insult anybody
17:30 masak someone in Denmark decided to have a beer party and crash #perl6? ;)
17:30 TimToady funny how we're getting multiple people in from the same address
17:30 TimToady or not
17:31 GlitchMr hugme: hug *
17:31 * hugme hugs *
17:31 masak TimToady: they're probably all live in the same basement.
17:31 masak they*
17:31 TimToady they seem to be equivalently drunk
17:31 GlitchMr hugme: hug hugme
17:31 * hugme hugs hugme
17:32 GlitchMr hugme: help
17:32 hugme GlitchMr: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message )
17:32 GlitchMr hugme: add glitchmr to perl6
17:32 hugme GlitchMr: You need to register with freenode first
17:32 GlitchMr Am I not?
17:32 GlitchMr hugme: add GlitchMr to perl6
17:32 hugme GlitchMr: You need to register with freenode first
17:33 GlitchMr hugme: list projects
17:33 hugme GlitchMr: I know about Math-Model, Math-RungeKutta, MiniDBI, bench-scripts, book, gge, hugme, ilbot, java2perl6, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6, perl6-examples, perl6-wtop, proto, pugs, rakudo, star, svg-matchdumper, svg-plot, tardis, try.rakudo.org, tufte, ufo, web, yapsi
17:33 GlitchMr oh, nice
17:33 GlitchMr Can I add my projects to that list?
17:33 Basim But seriously. Here's a question that will define you as human beings:
17:33 Basim Bebop or Rocksteady?
17:34 TimToady boring
17:34 GlitchMr Basim: »ö«
17:34 GlitchMr That would be my answer
17:34 tadzik Bool::True
17:34 TimToady tadzik++
17:34 Futter rocksteady
17:35 Futter ofc -,-
17:35 GlitchMr Because Camelia is more awesome than Bebop or Rocksteady
17:35 TimToady I suppose they could be having a competition to see who gets kicked first...
17:35 GlitchMr Try to draw either of those using Unicode
17:36 GlitchMr ok, I guess I may try |O|
17:36 GlitchMr Or perhaps o<=
17:36 ajoe joined #perl6
17:36 Basim actually not, but I see how you could get there
17:37 Basim I'm not here to cause trobule
17:37 Basim or trouble
17:37 Basim I will just sit back, and listen to you guys now
17:37 Basim peace out!
17:37 Krabbe_ joined #perl6
17:37 GlitchMr rn: print "programming pearls 6"
17:37 p6eval rakudo 100727, niecza v21-2-gc592587: OUTPUT«programming pearls 6»
17:38 Futter left #perl6
17:45 Krabbe_ left #perl6
17:51 Basim We're missing our sausage wagon napkins, and it's kind of a crisis
17:51 Krabbe_ joined #perl6
17:51 * colomon /o\
17:53 Basim no reactions, huh? It's a bit different here. People are screaming
17:53 moritz Basim: if you want people screaming, please don't do it in here
17:54 Basim I would like people to stop their screaming
17:54 masak Basim: I feel a bit sorry for you and your attempts to attract attention.
17:54 TimToady you're not being at all amusing
17:54 Basim but I don't have the sausage wagon napkins that I need for it
17:54 GlitchMr Basim: congratulations for trying to get attention
17:54 TimToady someone please put him out of our misery
17:55 GlitchMr Basim: to bad that your attempt isn't good enough
17:55 GlitchMr too*
17:55 Chillance joined #perl6
17:56 tadzik MAN THE CANNONS
17:56 TimToady in http://rosettacode.org/wiki/FizzBuzz#Perl_6 the second solution should not require 'is default' according to S12:1210
17:56 tadzik FIREEEEEE
17:56 Basim was kicked by jnthn: Basim
17:56 moritz thanks jnthn++, I was too slow
17:56 masak tadzik: dude, are you drunk on cheap Danish beer too? :P
17:56 jnthn I banned a whole ISP. Somebody who cares can fix it. :)
17:56 GlitchMr Why ban whole ISP
17:57 GlitchMr Isn't this going too far?
17:57 jnthn Because I'm lazy.
17:57 moritz jnthn: we'll simply lift teh ban tomorrow
17:57 jnthn Right.
17:57 TimToady masak: ^ rakudobug
17:57 masak TimToady: are you able to demonstrate it golfed on p6eval? that helps.
17:58 TimToady r: multi sub fizzbuzz(Int $ where * %% 15) { 'FizzBuzz' }; multi sub fizzbuzz(Int $ where * %%  5) { 'Buzz' }; multi sub fizzbuzz(Int $ where * %%  3) { 'Fizz' }; multi sub fizzbuzz(Int $number)         { $number }; (1 .. 100)».&fizzbuzz.join("\n").say;
17:58 p6eval rakudo 100727: OUTPUT«Ambiguous call to 'fizzbuzz'; these signatures all match:␤:(Int )␤:(Int )␤:(Int )␤␤  in sub fizzbuzz at /tmp/Gu8BO4fHHS:1␤  in method dispatch:<hyper> at src/gen/CORE.setting:905␤  in block  at /tmp/Gu8BO4fHHS:1␤␤»
17:58 TimToady :)
17:59 jnthn That's because I disagree with the spec so deliberately didn't follow it. :)
17:59 TimToady I golfed it by removing some newlines :P
17:59 jnthn I think you *shoulod* need "is default" rather than relying on ordering.
17:59 TimToady I don't
17:59 * moritz also finds that spec highly dubious
17:59 jnthn Because when you've multis that are imported, ordering is dodgy.
17:59 TimToady and the paragraph in question gives the rational
17:59 TimToady *nale
17:59 jnthn TimToady: It seems cute today. :)
17:59 masak I think I agree with jnthn, too. but a rakudobug is a rakudobug.
17:59 jnthn I have a bad feeling it'll be less cute in the future.
17:59 * masak submits rakudobug
18:00 TimToady I think it's a necessity to avoid forcing people into using 'is default' where that would be even boguser
18:00 jnthn When is it boguser?
18:01 TimToady most of the time
18:01 * jnthn doesn't see how it's bogus in this case, fwiw.
18:01 benabik joined #perl6
18:01 moritz and, when isn't it bogus?
18:02 jnthn Source code ordering just feels to me like a poor tie-breaker of last resort, that's all.
18:02 TimToady so we substitute a poorer one
18:02 jnthn I don't find being explicit about what you want poorer. I guess I don't see the real issue yet.
18:03 [Coke] ordering gives you a rank, is default gives you "the best" ?
18:03 [Coke] I can't imagine doing something that crazy with multis and expecting it to work either way, though.
18:04 jnthn It only comes up with you have constraints that are not mutually exclusive.
18:04 [Coke] Seems like making it clear from the signature would be best.
18:04 jnthn *when
18:04 [Coke] jnthn: at which point a sane person would have a multi with a switch in it.
18:04 jnthn [Coke]: That is one way to look at it :)
18:05 jnthn I can see the attraction to using multis here, though.
18:05 TimToady the upside is much bigger than the downside, in my estimation
18:05 jnthn But yeah, the given/when feels more robust.
18:05 moritz one can still do  (Int $ where { $_ %% 5 !! $_ % 3})
18:06 TimToady one can be as unclear as one likes, but lack of clarity is not what we're optimizing for here
18:06 masak moritz: huh? that doesn't parse.
18:07 moritz rm, s/'!!'/&&/
18:07 masak oh.
18:11 TimToady in the general case, the compiler *can't know* whether constraints are mutually exclusive, so you're basically forcing all such cases to use an ugly partial solution, when ordering is what most people will expect most of the time, I suspect
18:11 TimToady wanting them to be unordered is kind of a false generalization from the nominal type case, seems to me
18:11 xinming_ joined #perl6
18:12 jnthn Yeah, I'd seen that generalization as the sane thing to do
18:12 TimToady anyway, *most* of the use cases I've see so far fit more into ordered switch category
18:12 moritz I could imagine tracking the number of epsilons
18:13 masak still doesn't resolve it in this case.
18:13 TimToady I admit that my statistics might be skewed by RC, but I don't think it's *that* skewed
18:13 moritz so if you wrote   Int $ where * %% 5 where * %% 3, you have two epsilons, and you're tighter than just * %% 5 or just * %% 3
18:13 moritz TimToady: well, RC optimizes for small(ish) programs
18:14 moritz where you (nearly) never import multis from several modules
18:14 TimToady sure, but for largish programs most of these things will be resolved by scope instead, I think
18:14 TimToady (tiebreaker A)
18:16 GlitchMr I guess I shouldn't make "is default" hack in my FizzBuzz program
18:17 TimToady well, that's what we're discussing, but you have to because of a difference of opinion between rakudo and S12
18:18 jnthn I can change it if it's something that is felt strongly about. I just tend to put off doing work on things I suspect stand a good chance of going away, especially when others feel the same :)
18:18 GlitchMr Well, guessing that $_ %% 15 matches more rarely is simply impossible because halting problem
18:24 masak depends how obstinate you are in solving the problem.
18:24 masak in this case, we could start analyzing ASTs and stuff.
18:24 masak I'm not saying it's worth it, just that this case is amenable to analysis.
18:25 jnthn Doing it by analyuzing AST => module :P
18:25 adu joined #perl6
18:25 moritz jnthn++
18:25 jnthn Think my patch to get the {*} stuff working in the nested block/thunk case works.
18:27 jnthn r: proto foo(|) { if 1 { my $x = {*} + 1; return $x; } }; multi foo() { 2 }; say foo();
18:27 p6eval rakudo 100727: OUTPUT«get_pointer() not implemented in class 'ResizablePMCArray'␤  in sub foo at /tmp/csdfMGi9h7:1␤  in block  at /tmp/csdfMGi9h7:1␤␤»
18:27 TimToady I doubt I'm gonna change my mind on this one.  We might tweak the exact ordering rules between cooperating modules as we get more such use cases, but the constraints would still be considered to be ordered, not unordered
18:28 TimToady jnthn++
18:29 jnthn It looked like what I'd done in NQP, so no surprises. Yet :)
18:30 jnthn moritz: Do you think the prompt issue is something we should get Parrot to fix?
18:30 dalek rakudo/nom: 7973660 | jonathan++ | src/ (4 files):
18:30 dalek rakudo/nom: Make {*} showing up in a nested block or thunk rather than directly in the proto work.
18:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/79736602ed
18:30 jnthn moritz: Or add a flush explicitly somewhere in Rakudo?
18:31 jnthn OK, any issues with {*} in protos now are unexpected (to me). :)
18:31 mst could somebody have a go at cpan/cpanm-ing http://trout.me.uk/perl/Rakudo-Star-2012.08002.tar.gz just to sanity check it before I cpan it?
18:31 jnthn Need some tests...I'll get to them if I ain't beaten to 'em. Should look over a $dayjob thingy now.
18:31 tadzik mst: trying
18:31 mst I mean, run the install, do 'eval $(perl -MRakudo::Star::Paths); perl6' and check you have an install
18:31 mst tadzik: thanks
18:32 mst I realised my previous tarball had build files in it, so I reinlined star from the site; seems fine here but wanted to double check
18:37 thou joined #perl6
18:47 tadzik mst: is that a problem if I also have an existing rakudo installation in PATH and stuff?
18:47 tadzik I'm getting a few ===SORRY!===
18:47 tadzik Method 'load_module' not found for invocant of class 'FixedPMCArray'
18:47 tadzik but it installed nonetheless
18:48 tadzik but it seems to have installed and works, at least for Hello World
18:49 mst it's probably better if you don't, although I don't know if it'll actually care
18:49 mst can you load a star-supplied module?
18:49 mst I guess that's the other obvious thing to check
18:50 tadzik no, I cant
18:50 tadzik well, I can load, I cannot run it
18:50 tadzik https://gist.github.com/3716669
18:50 mst sec
18:51 mst I get Method 'get' not found for invocant of class 'Str'
18:51 tadzik hrm
18:51 tadzik I don't see why you'd get that :)
18:51 mst LWP::Simple.get("http://perlcabal.org")
18:52 mst works perfectly
18:52 mst for me
18:52 tadzik hm
18:52 mst try that?
18:52 tadzik I get Could not find symbol '&Simple'
18:52 mst weird
18:52 tadzik hmm, I have more funny stuff
18:52 mst could you try starting a shell without any env vars for rakudo/parrot libs?
18:52 wk_ joined #perl6
18:52 tadzik https://gist.github.com/3716697
18:52 tadzik let's see
18:53 mst also, it was 'perl6 -MLWP::Simple' -then- LWP::Simple.get
18:53 mst you didn't load it in the second session
18:53 mst so of course it didn't work :)
18:53 tadzik ha, indeed :)
18:53 tadzik so then it fails with the first error :)
18:54 tadzik Method 'load_module' not found for invocant of class 'FixedPMCArray'
18:54 * tadzik tries the shell magic
18:55 TimToady updated the final example of http://rosettacode.org/wiki/Ackermann_function#Perl_6 to use proto memoization (jnthn++)
18:55 TimToady but I am curious as to how that works without an 'is default'
18:55 tadzik mst: seems to react the same way
18:55 tadzik what was this module loading debug flag, hm
18:55 TimToady please don't tell me that it always evaluates all the constraints every time to see if they're exclusive?
18:55 bluescreen10 joined #perl6
18:56 TimToady that would be...inefficient...
18:56 dalek rakudo/nom: 0f2e95a | moritz++ | src/core/Str.pm:
18:56 dalek rakudo/nom: remove unused code, TimToady++
18:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f2e95a33e
18:56 tadzik mst: okay, I'm in the same place
18:56 tadzik I removed ~/.perl6 so it won't load my precompiled modules
18:56 tadzik and now I also get Method 'get' not found for invocant of class 'Str'
18:57 mst right, and does LWP::Simple.get("http://perlcabal.org") now work?
18:57 tadzik ywis
18:59 mst what?
18:59 tadzik yes
19:00 masak "ywis" seems to be a typically Polish typo. where's the "y" on Polish keyboards?
19:00 tadzik heh, it's just me writing this
19:00 tadzik and I use colemak anyway ;)
19:00 TimToady r: multi foo($ where { say 'ONE'; $_ == 1 }) { say "one" }; multi foo($ where { say 'TWO'; $_ == 2 }) { say "two" }; foo 1
19:00 p6eval rakudo 100727: OUTPUT«ONE␤TWO␤ONE␤one␤»
19:01 TimToady eek
19:01 tadzik and ywis appears to be an alternative spelling of iwis, which means Certainly; assuredly in archaic English
19:01 xinming joined #perl6
19:01 TimToady I think I just found the strongest argument for ordered constraints
19:02 masak TimToady: which is...?
19:02 TimToady we're calling *all* the constraints on the off chance that they might not be exclusive
19:03 TimToady this is guaranteed to be inefficient
19:04 Moukeddar joined #perl6
19:04 Moukeddar left #perl6
19:05 TimToady r: multi foo($ where { say 'ONE'; $_ == 1 }) { say "one" }; multi foo($ where { say 'TWO'; $_ == 1 }) { say "two" }; foo 1
19:05 p6eval rakudo 100727: OUTPUT«ONE␤TWO␤Ambiguous call to 'foo'; these signatures all match:␤:()␤:()␤␤  in block  at /tmp/uDUDkT1DfT:1␤␤»
19:06 TimToady yup, that's what it's doing
19:06 PerlJam How do the where constraints differ from  multi foo(1) { ...} ; multi foo(2) { ... }   ?
19:06 sqirrel joined #perl6
19:06 TimToady they don't
19:06 TimToady those unwind into Int where 1 and Int where 2
19:06 benabik In theory, the compiler could be faster with literals than code.
19:07 TimToady it could be recognized and optimized, sure
19:07 PerlJam r: multi foo(1)  { say "one" }; multi foo(2) { say "two" }; multi foo(Int) { say "Int" }; foo 1;
19:07 p6eval rakudo 100727: OUTPUT«one␤»
19:07 PerlJam clearly something is different
19:07 mst heh
19:07 TimToady it's calling all of the where clauses every time
19:07 mst make release is going to take a little while since that insists on 'make disttest'
19:08 PerlJam oh, I see.
19:08 * PerlJam was looking but not seeing
19:08 PerlJam Anyway, I'm with TimToady on this one.
19:09 PerlJam At least declaration order is something the programmer can *see* and have some measure of control over.
19:09 PerlJam (not to mention the efficiency argument already postulated)
19:10 xinming joined #perl6
19:10 TimToady also note that the ordered constraints are within a particular nominal category, so likely to be defined in the same file
19:10 jnthn Unless one of your candidates is overwhemingly more likely, it's O(candidates) either way
19:11 PerlJam Though, in lieu of declaration order, how about a "is order($n)" or something?
19:11 TimToady http://rosettacode.org/wiki/Ackermann_function#Perl_6 defines multis over Int
19:11 TimToady which would not interfere at all with a set of constraints defined for Str in a different file
19:13 TimToady jnthn: on average, it's twice as much work
19:13 jnthn TimToady: That doesn't disagree with what I said ;)
19:14 sorear good * #perl6
19:14 TimToady if you want to be imprecise on purpse, fine :P
19:14 TimToady lovely word, "purpse"...
19:15 masak sorear! \o/
19:15 jnthn :)
19:15 tadzik SOREAR!
19:15 * jnthn sees if the obvious 2-line patch to change this will actually do so.
19:16 jnthn r: multi foo(1) { say 1 }; multi foo(1) { say 2 }; foo(1);
19:16 p6eval rakudo 0f2e95: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Int )␤:(Int )␤␤  in block  at /tmp/1maFSLxDl8:1␤␤»
19:17 sorear TADZIK!
19:17 Su-Shee mst: your tar.gz builds and installs
19:21 jnthn ~[6~/win 15
19:21 tadzik hello Ron... oh wait
19:21 jnthn oops :)
19:21 jnthn darn laggy connection
19:22 Su-Shee mst: and I'm LWP::Simple.getting something.
19:24 mst Su-Shee: excellent
19:24 mst it'll ship itself to cpan shortly
19:25 Su-Shee mst: it installs itself here: /usr/local/lib/perl5/Rakudo/Star/Install/bin/perl6 if I really call it out of the box.
19:25 jnthn TimToady: Got a patch that doesn't regress anything in S06-multi/*.t
19:26 jnthn Guess I should wait for the spectest to run; takes a bit on this laptop
19:26 jnthn Hmm, wonder if I can get a new one before Japan...
19:26 TimToady drop by the Lenovo facory on the way?  :)
19:27 jnthn ;)
19:28 TimToady *factory even
19:28 TimToady "facory" is not a lovely word
19:28 mst Su-Shee: yep, that's basically that it's supposed to do. excellent. thanks.
19:28 jnthn hah, I didn't even see the typo :)
19:28 TimToady me either, until I did
19:29 fgomez joined #perl6
19:29 shachaf joined #perl6
19:29 TimToady probably a sign of narcisism that I reread everything I wrote...
19:31 Su-Shee mst: if I print @*INC, I still get the source dir (where I just untar-ed and build your tar.gz), that's supposed to be that way?
19:31 masak TimToady: I do... I mean, some of my best friends do that, too.
19:32 FROGGS well, as long as you dont sign your own t-shirts ;o)
19:32 FROGGS .oO( in love - larry )
19:32 Su-Shee mst: ah forget it, works, has path in /usr/local/andsoon
19:32 * TimToady is glad you subtracted me
19:33 TimToady *him, darn that narcisim...
19:33 tadzik ;)
19:33 TimToady *narcissism, let's get it right at least once
19:34 tadzik if it is (a sign of narcissism), I have it too
19:34 tadzik although I think it's more like running 'make test'
19:34 tadzik only after you 'git push'
19:34 masak arrrgh, yes!
19:34 TimToady :D
19:35 * masak sometimes wishes he could 'git push -f' the backlog
19:37 snearch joined #perl6
19:38 Su-Shee mst: should I try anything else?
19:38 mst Su-Shee: that'll do
19:40 Su-Shee fine, and I have a shiny new rakudo now ;)
19:43 araujo joined #perl6
19:43 araujo joined #perl6
19:47 dalek rakudo/nom: e03a22f | jonathan++ | src/binder/multidispatch.c:
19:47 dalek rakudo/nom: Implement accept first matching constrained candidate rule for multi-dispatch.
19:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e03a22f300
19:48 jnthn Two of the rosettacode integration tests (greatest element of a list and sierpinski triangle) fail, seemingly due to newline handling related issues.
19:48 sorear o/ jnthn !!!!!!
19:49 sorear long time no see
19:49 jnthn (unrelated to what I just pushed)
19:49 jnthn hi sorear
19:49 * sorear gives jnthn a running-jumping-hug
19:49 jnthn :)
19:49 jnthn Mixture of sick and very busy
19:49 sorear yeah, I heard about the sick from masak
19:49 jnthn Which means I'm still not really 100% better, but muchly improved :)
19:49 sorear was releived to hear it's "just" a cold, though
19:49 jnthn And today I learned that next week will be wonderfully calm compared to the last two :)
19:50 jnthn Yeah, a very persistent one
19:50 * masak learned today that his next week will not be wonderfully calm... :)
19:50 jnthn And my sleep has consistently averaged 5-6 hours for a while
19:51 diakopter mmm, teh sick
19:51 jnthn masak: Guess you ain't gonna be in Stockholm next week though? :)
19:51 * jnthn will for a day...
19:52 jnthn Hopefully I can retrieve the bit of my clicker than I left behind there...
19:57 dalek rakudo/nom: 0e36b2d | jonathan++ | docs/ChangeLog:
19:57 dalek rakudo/nom: Add multi improvements to the ChangeLog.
19:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e36b2d6b2
19:58 Su-Shee where was this nice feature matrix table listing thingie?
19:58 tadzik http://perl6.org/compilers/features
20:01 TimToady jnthn: I'll bet you have the metapneumovirus that was going around; persistence and lack of sleep are two of the hallmarks
20:01 TimToady I had it for a month or so
20:01 sorear eeep, a conference virus?
20:01 Su-Shee tadzik: thanks.
20:01 TimToady you'd have it by now if you were gonna
20:03 jnthn Urgh. Well, I'm up to about 2 weeks so far.
20:04 TimToady we were pretty sure it was metapneumovirus because I got it from @quietfanatic, who got it from @heidialayne who got it from Julian, who picked it up at the hospital (who also identified it specifically, since they do that for chemo kids)
20:04 fgomez joined #perl6
20:04 TimToady btw, Julian is now officially done with his 3-year treatment
20:05 sorear oh, that's the actual name
20:05 sorear who are Julian and @heidialayne?
20:06 TimToady daughter and grandson
20:06 TimToady older daughter, older grandson, to be specific
20:06 sorear the other way around?
20:06 benabik I got it from Agnes.  She got it from Jim.
20:06 TimToady er, yeah <->
20:12 telex joined #perl6
20:22 bruges joined #perl6
20:22 jnthn time to go off the train &
20:29 UnknownCharacter joined #perl6
20:36 mst POSTing upload for Rakudo-Star-2012.08002.tar.gz
20:36 mst fear.
20:36 timotimo whoa.
20:38 * masak trembles
20:39 [Coke] TimToady's list of disease carriers reminds me of ferris bueller "I heard it from..." ... it  must be pretty serious.
20:42 mst timotimo: object of the exercise: 'cpanm Rakudo::Star; eval $(perl -MRakudo::Star::Paths); perl6'
20:42 TimToady I dunno serious, but significantly irritating to have a virus that just wanders around your respiratory tract looking for places it hasn't hit yet, including ears and sinuses, and then stops just short of pneumonia, so you don't even get any bragging rights
20:45 timotimo that's pretty neat, installing rakudo via cpan
20:48 LlamaRider joined #perl6
20:52 jnthn Ahhh...home. :)
20:52 Su-Shee tadzik: does panda require a module being on github to be installable via panda?
20:52 Su-Shee forget it, I'm reading the wiki article..
20:53 szbalint joined #perl6
20:55 spider-mario joined #perl6
20:56 kst joined #perl6
21:03 sorear Are there any yapc::eu 2012 videos online yet?
21:04 masak I seriously doubt it.
21:09 sorear this is very disturbing: http://blogs.perl.org/users/yapceurope_2012/2012/02/video-recordings-for-yapceurope-2012.html#comment-122259
21:11 benabik Wrong attitude.  :-(
21:14 sorear I wonder how much of an influence ey has had on the horrible video situation we have
21:17 doy yapc::asia is generally pretty separate from most of the other conferences
21:17 Circlepuller joined #perl6
21:17 masak probably not much influence.
21:17 masak the real problem is that it's a big time-consuming pain to edit videos.
21:19 sorear masak: oh?
21:19 masak ya.
21:23 sorear I had no idea editing them was time-consuming
21:24 * sorear tries to figure out how
21:27 jnthn Suppose that the post-processing were to take as long as the talk itself (which from what I've heard is maybe optimistic). Now you have 3 days of talks and maybe 2 or 3 tracks to process. That quickly adds up. :)
21:28 sorear jnthn: what is the most time-consuming part of the post-processing?
21:29 sorear I thought they just cut the video files into sections according to the published schedule
21:31 jnthn sorear: I haven't done it, so I'm mostly going on what I've heard. I believe there's also the issue of encoding it into something suitable for web distribution, the copying it from the camera in the first place, ranging up to various horror stories I've heard where they got another device to record the sound then found they had a different idea of time so the audio got out of sync.
21:32 geekosaur there's also going through and perhaps cutting out inappropriate audience comments
21:32 jnthn :)
21:33 jnthn If you want to make a really nice video there's a lot of work, 'cus maybe you have a feed with the slides and another with the speaker.
21:33 jnthn And I guess working out what to show when is manual work.
21:35 masak from what I saw of the filming process at YAPC::Europe, the did have two feeds like that.
21:35 masak at least in some rooms.
21:35 * jnthn remembers one talk he gave where he was told to only stand on a certain small area of the stage in order that he didn't disappear off the video, so presumes that there can be some coordination required with speakers to get really good results too.
21:37 * masak .oO( don't step off this penny )
21:44 sorear geekosaur: so what happens when you have a speaker going horribly off the rails like jnthn++ did? :D
21:44 sorear masak: now I have to check the geographic distribution of pennies.
21:45 masak sorear: you mean, which countries still have pennies? I... have no idea, actually.
21:45 geekosaur that... depends.  I have certainly seen videos of talks which had cuts with minimal fades around them
21:48 jnthn sorear: no no, that's what my talks are *noramlly* like :P
21:49 sorear masak: I was under the impression that the USA was the only country with pennies.  Seems I was wrong
21:49 sorear pennies, as opposed to pence or cents
21:49 jnthn England has pennies :)
21:49 jnthn Well, pluralized as "pence" I guess :)
21:50 jnthn But still, one is a penny :)
21:50 jnthn And it'd feel odd to talk about them as "pence" without a number in front.
21:50 * masak .oO( Je pence que that sounds odd )
21:51 jnthn *groan*
21:51 masak :D
21:51 jnthn .oO( no, no. Je pence que that makes no cents )
21:51 FROGGS hehe
21:51 masak *grouch*!
21:51 masak 'night, #perl6
21:51 FROGGS gnight
21:51 jnthn masak: sleep well. see you brightly early, in my keynote :P
21:51 jnthn *bright and early
21:52 jnthn hm, wonder since I'm giving it if I should sleep too :)
21:56 M_o_C joined #perl6
21:57 jnthn 'night o/
22:00 sorear who is jnthn keynoting to?
22:06 fgomez joined #perl6
22:11 sivoais joined #perl6
22:16 crab2313 joined #perl6
22:17 crab2313 r: my $a = 'foo'; print $a;
22:17 p6eval rakudo 0e36b2: OUTPUT«foo»
22:17 crab2313 n: my $a = 'foo'; print $a;
22:17 p6eval niecza v21-2-gc592587: OUTPUT«foo»
22:18 sorear -2-?  I've sure been lazy
22:20 crab2313 something is wrong with REPL
22:20 sorear what doy ou mean?
22:20 sorear p6eval isn't a REPL, if you mean that
22:22 crab2313 https://gist.github.com/3718145
22:23 sorear crab2313: I think that's called line buffering.
22:23 sorear Stuff you print isn't displayed until you either print a newline or the script ends
22:23 crab2313 and prompt() is broken
22:23 [Coke] crab2313: try: say "foo"
22:24 [Coke] or: print "foo\n"
22:24 FROGGS TimToady said that too, that prompt is broken
22:24 [Coke] but, ISTR that at some point that worked in rakudo. Might be related to recent parrot IO updates.
22:25 sorear yaaaaay parrot regressions
22:25 [Coke] It wouldn't have regressed if there was a test for it in rakudo.
22:26 [Coke] So if some behavior changed that you like, please write a test and then the parrot folks have a prayer of catching it.
22:27 sorear [Coke]: how, pray tell, do you write tests for the flushing behavior of I/O to terminals and have said tests work on all the platforms parrot supports?
22:27 sorear if it were just recent unixes I'd use psuedoterminals and fork
22:29 [Coke] sorear: wow. if it's something that's really hard to write a test for, maybe you shouldn't give parrot crap about it.
22:29 crab2313 joined #perl6
22:30 crab2313 thanks
22:36 whiteknight joined #perl6
22:44 FROGGS tadzik: that is what I got done today: https://github.com/FROGGS/p6-File-Spec
22:45 FROGGS gnight
22:56 Circlepuller_ joined #perl6
23:41 DreamingInCode joined #perl6
23:46 sorear o hai DreamingInCode
23:47 DreamingInCode :D
23:52 dayangkun joined #perl6
23:56 tokuhiro_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo