Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-07-19

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:00 raiph i recalled sirrobert is trying it out. but i recall at least one person recently saying they'd deployed in a large corporate setting
00:01 tokuhiro_ joined #perl6
00:02 diakopter define "recently"
00:04 * [Coke] gives up on ports ghc on os x and tries the "haskell platform" instead.
00:05 raiph i'm thinking in last 2 months, but i'm not sure
00:06 raiph diakopter: i'd be surprised if was as much as 3 months ago. i know i saw it. i've spent 10 mins googling.
00:06 geekosaur do that
00:07 geekosaur I was going to get 7.4.1 into macports and then things went pear shaped
00:12 tokuhiro_ joined #perl6
00:27 sporous joined #perl6
00:27 mauke joined #perl6
00:27 preflex joined #perl6
00:39 tombom joined #perl6
00:44 xinming_ joined #perl6
00:51 prettyrobots joined #perl6
00:52 [Coke] ah, the platform install went pretty easily, except for the part where it said "you have an older version installed, you should remove it". ... so I removed all the versions installed. whoops.
00:54 [Coke] ok, full spectest run on pugs on the desktop is about 150s with -j5 ; yay. au++ for fixing up the env vars so this works.
00:54 [Coke] er, s/desktop/laptop/
01:00 scott___ joined #perl6
01:32 cognominal joined #perl6
01:40 * [Coke] needs haskell help
01:49 Chillance joined #perl6
02:05 [Coke] rn: 3.WHAT.say
02:05 p6eval rakudo 1fe39c, niecza v19-13-g442e075: OUTPUT«Int()␤»
02:09 mtk joined #perl6
02:15 orafu joined #perl6
02:16 am0c_ joined #perl6
02:29 Vlavv joined #perl6
02:36 crab2313 joined #perl6
02:41 Psyche^ joined #perl6
03:06 tokuhiro_ joined #perl6
03:10 kaare_ joined #perl6
03:15 [Coke] p: "asdf".flip.say
03:15 p6eval pugs: OUTPUT«*** No such method in class Str: "&flip"␤    at /tmp/XngE6hpTHw line 1, column 1 - line 2, column 1␤»
03:17 [Coke] how can I trigger a rebuild of pugs?
03:17 quietfanatic joined #perl6
03:18 quietfanatic [Coke]: Is it too late for me to offer Haskell help in response to earlier request?
03:30 lue joined #perl6
03:32 jaldhar joined #perl6
03:35 [Coke] yup. unfudging based on my fix.
03:35 [Coke] next time.
03:36 adu joined #perl6
03:44 prettyrobots joined #perl6
03:58 quietfanatic I'm probably doing something wrong, but attempting to install Pugs through Cabal gives me "/usr/bin/ld: cannot find -lperl"
03:59 quietfanatic and my libperl5.14 is already the newest version.
04:01 quietfanatic trying after an ln
04:02 quietfanatic nope, still no go
04:09 au quietfanatic: apt-get install libperl-dev
04:09 au (or something equivalent on your platform)
04:13 au quietfanatic: and thank you for offering Haskell help! \????/
04:17 crab2313 joined #perl6
04:18 au quietfanatic: install libperl-dev should work, but if it doesn't, "cabal install pugs -f -Perl5" can (hypothetically) build pugs w/o perl5 embedding
04:21 [Coke] au: hio
04:21 Seganku left #perl6
04:22 au ????/
04:24 telex joined #perl6
04:29 zhutingting joined #perl6
04:35 dalek Pugs.hs: 28fc42f | coke++ | t/update_passing_test_data.pl:
04:35 dalek Pugs.hs: copy au++'s ISO fix from t/fudgeandrun
04:35 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/28fc42f63d
04:35 dalek Pugs.hs: 5b232c1 | coke++ | Pugs/src/Pugs/Pretty.hs:
04:35 dalek Pugs.hs: Update .WHAT output to match current spec.
04:35 dalek Pugs.hs:
04:35 dalek Pugs.hs: ::Int -> Int()
04:35 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/5b232c1a38
04:38 telex joined #perl6
04:43 dalek Pugs.hs: e7b0685 | coke++ | t/spectest.data:
04:43 dalek Pugs.hs: can't locate lib.pm
04:43 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/e7b0685e4d
04:44 [Coke] pugs: say 9206/22932
04:44 p6eval pugs: OUTPUT«0.4014477585906157334728763300191871620443␤»
04:45 [Coke] au: I think #19 or #15 will each get us quite a few tests.
04:47 au agreed
04:47 au #15 will also exercise the ./ext/Test/lib/Test.pm => ./cbits/Test_pm.c packing code
04:48 au which (iirc) was only in Mu but not picked up to Pugs.hs
04:48 au it'd be nice of course to rewrite it in perl6, or something, if someone has a cycle for it :)
04:49 * au goes adding ^^^ to the ticket as a comment
04:49 zby_home_ joined #perl6
04:53 am0c_ joined #perl6
04:56 [Coke] mmm. moving more stuff into p6 would definitely make it easier to hack on.
05:01 quietfanatic au: ah, thanks
05:02 quietfanatic Although I know some Haskell, I am not familiar with Pugs internals and have never submitted code to a collaborative project before.
05:03 quietfanatic The latter is more of a blocker to my participation than the former, probably.
05:10 au quietfanatic: one good place to start is https://github.com/perl6/Pugs.hs/blob/master/HACKING
05:10 au the entire paragraph about 7.2.1 is perhaps no longer current
05:11 au and please feel free to excise it and/or update it with your current/recent experience installing GHC on (presumably) an debian/ubuntu system
05:11 quietfanatic Cool, I'll get on that, next tuit I have.
05:12 quietfanatic I had a commit bit to the original pugs repo (for tweaking the website stuff), but I don't think I have one to this one.
05:13 au hugme: add quietfanatic to perl6
05:13 hugme au: You need to register with freenode first
05:14 au o_O
05:14 quietfanatic you need to, or I need to?
05:14 au looking at https://github.com/moritz/hugme/blob/master/hugme.pl#L226 seems I need to, but I already am
05:15 prettyrobots joined #perl6
05:16 au before someone steps in to help, I guess you can simply click Edit on the GitHub web UI for instafork
05:17 quietfanatic makes sense
05:17 au (which creates an insta-pull-request for the HACKING file, for insta-gratification :))
05:26 quietfanatic sweet
05:26 quietfanatic compiling pugs from github Just Works with Ubuntu-provided GHC 7.4.1
05:27 quietfanatic Next up: updating HACKING
05:27 quietfanatic au++ by the way
05:28 quietfanatic Or maybe INSTALL
05:29 quietfanatic That's a task for another day.  Cheers #perl6
05:34 [Coke] cheers
05:39 dalek roast: 16dd063 | coke++ | / (14 files):
05:39 dalek roast: pugs fudge
05:39 dalek roast: review: https://github.com/perl6/roast/commit/16dd063843
05:51 am0c_ joined #perl6
06:03 birdwindupbird joined #perl6
06:06 wtw joined #perl6
06:11 nodmonkey joined #perl6
06:12 am0c_ joined #perl6
06:16 moritz \o
06:48 hoelzro I have a standalone example of the crashing behavior I keep seeing with DBIish
06:48 hoelzro http://hoelz.ro/files/perl6-crash.tar.bz2
06:48 hoelzro it's a seg fault this time, though, and not an assertion failure
06:49 hoelzro also, for some reason, the crash doesn't happen on OS X
06:57 moritz hoelzro++ # putting files on an ipv6-enabled web server
06:58 hoelzro =)
06:58 moritz make: Warning: File `Makefile' has modification time 2.2e+04 s in the future
07:00 moritz hoelzro: doesn't crash here either
07:00 yves_ joined #perl6
07:00 moritz hoelzro: linux amd64 with newest rakudo + nqp from git
07:00 hoelzro moritz: what distro of Linux?
07:00 moritz hoelzro: debian testing
07:00 hoelzro hmm
07:00 hoelzro I should mention I'm on rakudo-star 2016.06
07:00 hoelzro I'll try with latest Rakudo
07:00 diakopter 2016!
07:00 * hoelzro really wants a perlbrew for Perl6
07:01 hoelzro er, 2012
07:01 diakopter that's, like, after 6.0.0
07:01 moritz the says "the future is already here, just unevenly distributed" gets a whole new meaning :-)
07:05 GlitchMr joined #perl6
07:06 kaleem joined #perl6
07:21 moritz masak++ # http://strangelyconsistent.org/blog/talking-to-my-14yo-self
07:21 hoelzro moritz: what version of Parrot are you using, btw
07:23 moritz hoelzro: RELEASE_4_5_0-7-g66923d2
07:25 hoelzro ok
07:25 hoelzro I'll try again later with latest stuff, I guess
07:25 moritz today is rakudo release day, right?
07:26 mucker joined #perl6
07:26 * hoelzro jumps up and down
07:29 aloha joined #perl6
07:38 SamuraiJack joined #perl6
07:39 kresike joined #perl6
07:39 kresike hello all you happy perl6 people
07:40 dalek rakudo/nom: cfe8e56 | moritz++ | docs/ChangeLog:
07:40 dalek rakudo/nom: brush up ChangeLog
07:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cfe8e564c5
07:43 zhutingting joined #perl6
07:48 kaleem joined #perl6
07:50 fhelmberger joined #perl6
07:58 GlitchMr Should Perl 6 installation return lots of gcc warnings?
07:58 GlitchMr (rakudo)
08:06 moritz depends on what you mean by "should"
08:06 moritz I'd certainly prefer a cleaner build
08:06 moritz and would accept patches that clean up the warnings
08:07 GlitchMr Fixing things like multidispatch.c:671:21: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] would be easy, at least I think so
08:08 sorear I think that's a ridiculous warning
08:08 GlitchMr But well, everybody knows that a && b || c && d is (a && b) || (c && d)
08:09 diakopter people forget
08:09 moritz I think we should compiler without -Wparentheses
08:09 GlitchMr glitchmr@strawberry:~/git/panda$ ../../rakudo/bin/perl6 bootstrap.pl
08:09 GlitchMr sh: 1: perl6: not found
08:09 GlitchMr sh: 1: perl6: not found
08:09 GlitchMr fun
08:10 diakopter people work when extremely tired. people get older. people confuse themselves. "everybody knows" isn't true for every coder all the time.
08:10 moritz GlitchMr: panda expects a perl6 binary in $PATH
08:10 GlitchMr why?
08:11 GlitchMr It doesn't make sense to depend on this
08:11 moritz GlitchMr: because it's easier that way, and nobody has taught it to do otherwise
08:11 moritz GlitchMr: I'm pretty sure tadzik++ would accept patches
08:12 GlitchMr shell "perl6 bin/panda install File::Tools JSON::Tiny Test::Mock";
08:12 GlitchMr Yeah..
08:12 moritz yeah!
08:12 GlitchMr What if my interpreter is "rakudo" or something
08:13 moritz then your patches are very welcome
08:14 GlitchMr Also, just wondering, but does shell support multiple arguments just like system in Perl 5?
08:15 GlitchMr Oh, I see, it's run then
08:15 GlitchMr Except run() isn't implemented
08:15 GlitchMr Fun
08:16 GlitchMr It reminds me PHP for some reason
08:18 am0c_ joined #perl6
08:19 sergot joined #perl6
08:19 sergot hello \o/
08:25 tadzik well, so we need perl6brew which will switch perl6 to and from niecza :)
08:25 tadzik and pugs
08:26 tadzik hello sergot
08:29 mucker hi guys. is there an easy way to download the spec tests ??
08:31 tadzik yes
08:31 tadzik git clone git://github.com/perl6/roast.git
08:32 mucker thnkx !
08:32 tadzik or from https://github.com/perl6/roast/downloads
08:32 tadzik you're welcome
08:33 mucker one thing I have always like about perl* is, tests are like extra documentation :)
08:37 GlitchMr But https://github.com/perl6/roast/downloads doesn't have any files
08:38 GlitchMr t/panda/fetcher.t .... fatal: repository 't/' does not exist
08:39 GlitchMr Should it be this way?
08:41 moritz GlitchMr: https://github.com/tadzik/panda/issues/4
08:41 tadzik yeah
08:42 tadzik maybe I should just remove that test
08:45 GlitchMr I guess that rakudo doesn't support "is export"
08:46 moritz GlitchMr: don't guess
08:46 tadzik it does
08:46 GlitchMr ===SORRY!===
08:46 GlitchMr Missing block
08:46 GlitchMr at Addslashes.pm:2
08:46 GlitchMr Weird...
08:46 moritz then you did something wrong.
08:46 GlitchMr This is what I get for not testing code at all
08:47 GlitchMr This is my code: https://github.com/GlitchMr/perl6-Acme-Addslashes/blob/master/lib/Acme/Addslashes.pm
08:47 moritz the traits come after the signature
08:47 GlitchMr Oh, ok
08:48 GlitchMr I guess that "no ICU lib loaded" is connected to "\c[COMBINING LONG SOLIDUS OVERLAY]"
08:48 GlitchMr Is it possible to install ICU lib? Or should I just use normal \x escapes
08:49 moritz if it weren't possible to install ICU lib, we wouldn't rely on it.
08:50 GlitchMr How can I install it? I'm at Kubuntu machine
08:50 moritz please see rakudo's README or INSTALL files
08:50 GlitchMr ok
08:51 GlitchMr That's 10MB, but I guess that ICU contains Unicode database and things like it, so ok
08:51 GlitchMr I guess I have to compile rakudo again?
08:52 moritz I guess you even have to reconfigure and recompile parrot
08:52 GlitchMr container.c:47:17: warning: identifier ‘typename’ conflicts with C++ keyword [-Wc++-compat]
08:52 GlitchMr heh
08:53 GlitchMr So much for C++ compatibility
08:53 GlitchMr (not like it matters)
08:55 GlitchMr https://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B
08:56 am0c_ joined #perl6
08:58 GlitchMr t/01-sanity/99-test-basic.t ........ ok
08:58 GlitchMr Why this test has 99 as number?
09:00 dakkar joined #perl6
09:01 diakopter to make sure it always runs near the end?
09:01 diakopter (or maybe it refers to the 99 problems...)
09:08 bbkr1 joined #perl6
09:09 Coleoid joined #perl6
09:26 GlitchMr This code doesn't work
09:26 GlitchMr $string.subst(/ (.) /, { "$0\c[COMBINING LONG SOLIDUS OVERLAY]" }, :g);
09:26 GlitchMr But that probably:
09:26 GlitchMr #?rakudo 3 skip '$/ not involved in .subst yet (unspecced?)'
09:26 GlitchMr I guess I will have to use normal s/// instead
09:30 masak good morrow, #perl6.
09:30 moritz good nearly-noon, masak
09:30 bbkr1 o/
09:31 masak aye, mid-antenoon. :)
09:31 * diakopter whines at this 1220-line C file that is segfaulting.
09:31 moritz valgrind! valgrind!
09:33 GlitchMr Just wondering, why $/ isn't @/?
09:33 diakopter I know exactly where the problem is; I just can't see what I'm doing wrong; the pointer arithmetic looks right to me.
09:33 GlitchMr Oh, right... I just noticed it mixes hash and array
09:34 au because of named captures?
09:35 moritz let's name it $@%/, because it has aspects of a scalar, an array and a hash
09:36 GlitchMr ok, I guess that $/ is better then
09:36 Timbus now you're just swearing
09:36 * masak .oO( too bad Match isn't Callable, too... )
09:36 GlitchMr $@%&/ would be nice
09:37 moritz masak: I'm sure we can find a meaning for that too :-)
09:37 GlitchMr Heh, I find it interesting that official JavaScript implementation once had callable regexpes
09:38 GlitchMr Because it was callable, it has to return "function" on typeof
09:38 GlitchMr After some time, they got bug report about regexpes being "function"s.
09:38 GlitchMr Fix: Make typeof return "object" for RegExp as special case
09:38 GlitchMr Good thing that today RegExpes aren't callable at all
09:40 GlitchMr https://github.com/GlitchMr/perl6-Acme-Addslashes/commit/ff205dc8caecf836c4a7428763ea85e6afe1dfec
09:40 GlitchMr Workarounds :P
09:41 tadzik n: sub addslashes is export (Str $string) { }
09:41 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  $string is declared but not used at /tmp/tUgzDJpa1D line 1:â�¤------> [32msub addslashes is export (Str [33mâ��[31m$string) { }[0mâ�¤â�¤Â»
09:41 tadzik huh
09:41 GlitchMr I couldn't manage to compile Rakudo on Windows, so I just made it work on Niecza
09:42 GlitchMr But now, I have real Linux machine :)
09:44 tadzik yay
09:45 * diakopter tiredly continues free(1) debugging in visual studio
09:45 GlitchMr A̸t̸ ̸l̸e̸a̸s̸t̸ ̸i̸t̸'̸s̸ ̸n̸o̸t̸ ̸W̸i̸n̸d̸o̸w̸s̸.̸.̸.̸
09:48 GlitchMr Just wondering, why parenthesis are required when calling method with any arguments
09:49 GlitchMr Ruby is happy without parenthesis
09:49 moritz because it makes argumentless method calls more convenient
09:50 GlitchMr What's wrong with making $a.b.c mean what it means actually and $a.b .c mean $a.b($_.c)
09:51 moritz predictive parsing
09:51 tadzik people are upset already about whitespace sensitivity
09:52 moritz if you allow $a.b 'c' to mean $a.b('c'), it means you expect a term (and not an operator) after $a.b
09:52 moritz which means that you can't write   $c.re + $c.im anymore
09:52 GlitchMr Hmmm... yeah
09:52 moritz and other very neat stuff stops working too
09:52 GlitchMr re($c) + im $c
09:53 GlitchMr Well, whatever, it's not like you commonly call methods with arguments
09:54 Timbus "a -1; a=0; a -1" parses as "a(-1); a=0; a.+(-1)" in ruby. im just saying
09:54 moritz yes, argumentless method calls are much more common
09:54 moritz everything that looks like an attribute access ($.foo)
09:55 moritz is actually a method call with an argument
09:56 masak <moritz> if you allow $a.b 'c' to mean $a.b('c'), it means you expect a term (and not an operator) after $a.b
09:56 masak best and shortest explanation of that I've seen to date.
09:56 masak moritz++
09:56 * moritz bows
09:57 GlitchMr Timbus: O_o
09:57 masak somethings about it bugs me, though.
09:57 GlitchMr I through that Ruby grammar uses whitespace for that
09:57 masak how come Java doesn't run into this problem?
09:57 moritz masak: does Java do predictive parsing at all?
09:57 masak in Java, you can do object.foo␤.bar
09:58 masak moritz: no, and that's probably it.
09:58 moritz does java allow .bar without a preceeding term?
09:58 masak if by that you mean "zero-lookahead", fsvo "zero".
09:58 masak moritz: oh! no, it doesn't. :)
09:58 GlitchMr Ok, Ruby does that, but I'm sure that http://coffeescript.org/ doesn't do that
09:59 moritz masak: with predictive parsing I mean that the grammar can disambiguate the same symbol used in term and in infix position
09:59 * masak .oO( of course not, it's a website! ) :P
09:59 moritz GlitchMr: are you aware of the colon syntax for passing arguments to methods?
09:59 GlitchMr Yes
10:00 masak moritz: I'm not sure I feel the term is that obvious. "predivtive" sounds like "makes a lot of clever guesses" to me.
10:00 GlitchMr But I don't think that I can earn anything with colon
10:00 masak "earn"?
10:00 tadzik it looks good
10:00 moritz masak: I never said it's obvious :-)
10:00 masak you can put arguments there without parens! :)
10:00 GlitchMr What "$a.method: 2" gives me compared to "$a.method(2)"
10:00 moritz no parens
10:00 GlitchMr But I have colon
10:00 masak indeed you do.
10:00 moritz avoiding parens is what we talk about all this time, no?
10:01 GlitchMr Well, I also could call eval() with cleverly hidden parenthesis but that isn't the point
10:01 tadzik you don't save bytes this way, no
10:01 GlitchMr I meant, eval
10:01 GlitchMr After all I want to avoid parenthesis
10:01 moritz then use the colon :-)
10:02 masak at least one of us is being difficult in this conversation.
10:02 masak what are we trying to achieve?
10:03 masak are we doing language design (proposing to allow method calls with args but no colon or parens), or talking programming esthetics (it looks so much nicer when I don't have to use parens, but the colon is ugly, too!)?
10:04 GlitchMr Actually, I think that colon is good enough
10:04 mucker joined #perl6
10:08 * masak doesn't know whether to apologize or be contented with killing the discussion
10:08 masak s/ze/ze for/
10:10 daxim joined #perl6
10:31 jnthn afternoon o/
10:32 masak jnthn! \o/
10:33 tadzik not sure what's better :)
10:35 MayDaniel joined #perl6
10:38 Woodi joined #perl6
10:38 masak good, because you don't get to choose, you get both :)
10:38 tadzik awesome!
10:38 kurahaupo joined #perl6
10:42 moritz extra value pack: jnthn + afternoon! :-)
10:43 masak buy now! limited quantities only!
10:43 tadzik how possibly could you get something better than that
10:43 jnthn I dunno, I'd say jnthn + morning is even more limited :P
10:43 tadzik but it
10:43 tadzik damn you, Surprise Enter
10:44 tadzik anything containing morning is naturally less desired :)
10:44 masak jnthn: jnthn + morning is limited in terms of supply, but also in demand. :)
10:44 masak dang, tadzik beat me to it :)
10:48 tadzik s/[\s^\n]+/ /g -- Perl 5 regex, does it make sense to anybody?
10:48 tadzik I'm wondering if it's a typo, or just something really clever that I don't understand
10:49 tadzik or maybe something simple that I don't understand :)
10:49 flussence [whitespace or "^" or newline]+
10:50 au the intention was probably [^\S\n]
10:50 au (whitespace minus newline)
10:51 tadzik au: you're probably right
10:53 tadzik flussence: yeah, that would be it, except that it kind of surprises me in this context
10:55 flussence wouldn't whitespace minus newline just be /\s+/ though? you're right, it doesn't make a whole lot of sense...
10:56 moritz \h+
10:56 moritz horizontal whitespace
10:57 moritz nr: say so "\n" ~~ /\s/
10:57 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«True␤»
10:57 moritz nr: say so "\n" ~~ /\h/
10:57 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«False␤»
11:07 nodmonkey joined #perl6
11:30 mtk joined #perl6
11:32 JimmyZ joined #perl6
11:40 am0c_ joined #perl6
11:57 spider-mario joined #perl6
11:57 flussence eval: say "\n" ~~ /\s/
11:57 buubot_backup flussence: ERROR: syntax error at (eval 20) line 1, near "say "\n""
11:57 flussence eval: use 5.012; say "\n" ~~ /\s/
11:57 buubot_backup flussence: 1 1
11:58 flussence eval: use 5.012; say "\n" ~~ /\h/
11:58 buubot_backup flussence:  1
11:58 flussence oh, right
12:13 adu joined #perl6
12:26 JimmyZ r: say map *.ord - 55, 'A' ... 'Z'
12:26 p6eval rakudo cfe8e5: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(&code, *@values)␤␤  in block <anon> at /tmp/lCoagov46M:1␤␤»
12:29 moritz r: say (*.ord - 55).perl
12:29 p6eval rakudo cfe8e5: OUTPUT«WhateverCode.new()␤»
12:30 GlitchMr perl6: say map *.ord - 55, ('A' ... 'Z')
12:30 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
12:31 GlitchMr I have feeling it was interpreted as (*.ord - 55, 'A') ... 'Z'
12:31 JimmyZ rn: say map *.ord - 55, 'A' .. 'Z'
12:31 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
12:32 * JimmyZ is not sure
12:32 JimmyZ r: say map (*.ord - 55, 'A') ... 'Z'
12:32 p6eval rakudo cfe8e5: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(&code, *@values)␤␤  in block <anon> at /tmp/FSzgUm3wAW:1␤␤»
12:32 GlitchMr ... has lower precedence than ,
12:33 GlitchMr http://doc.perl6.org/language/operators
12:33 flussence r: say ('A'..'Z')».ord »-» 55
12:33 p6eval rakudo cfe8e5: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
12:33 jnthn ... and .. have different precednce levels.
12:33 jnthn list infix vs structural infix
12:36 * JimmyZ thought they are the same precednce levels
12:38 GlitchMr perl6: print ::.perl
12:38 p6eval niecza v19-13-g442e075: OUTPUT«PseudoStash.new(...)»
12:38 p6eval ..rakudo cfe8e5: OUTPUT«PseudoStash.new("\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, )»
12:39 flussence rn: [[ [..] <A Z>]».ord»-»55].say
12:39 p6eval rakudo cfe8e5: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
12:39 p6eval ..niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Cannot reduce with .. because structural infix operators are diffy and not chaining at /tmp/8KeN0HVyVM line 1:â�¤------> [32m[[ [..][33mâ��[31m <A Z>]».ord»-»55].say[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/n…
12:39 flussence rn: [['A'..'Z']».ord»-»55].say
12:39 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
12:40 flussence rn: say [[[+] 1]].perl
12:40 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Unable to parse infixish, couldn't find final ']' at line 2, near " 1]].perl"␤»
12:40 p6eval ..niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse bracketed infix at /tmp/CKNLWNfllf line 1:�------> [32msay [[[33m�[31m[+] 1]].perl[0m�Couldn't find final ']'; gave up at /tmp/CKNLWNfllf line 1:�------> [32msay [[[+][33m�[31m 1]].perl[0m��Parse fail…
12:41 flussence rn: say [ [[+] 1]].perl
12:41 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«[[1]]␤»
12:41 flussence I'm not sure what the difference is there.
12:44 JimmyZ rn: ['A'..'Z']».ord»-»55.».say
12:44 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Confused␤at /tmp/_dB77_nQxs:1␤»
12:44 p6eval ..niecza v19-13-g442e075: OUTPUT«55␤»
12:48 [Coke] diakopter: why wait on perlbrew when we already have at /least/ 2 versions you might want to play with simultaneously?
12:49 [Coke] ... and I see this was covered.
12:51 yves joined #perl6
12:51 [Coke] p: ['A'..'Z']».ord»-»55.».say
12:51 p6eval pugs: OUTPUT«*** ␤    Unexpected "-\187"␤    expecting term postfix␤    at /tmp/iWOtrIii5j line 1, column 17␤»
12:54 PacoAir joined #perl6
12:59 JimmyZ n: ['A'..'Z']».ord»-».55.».say
12:59 p6eval niecza v19-13-g442e075: OUTPUT«0.55␤»
13:10 tokuhiro_ joined #perl6
13:14 adu joined #perl6
13:22 BinGOs joined #perl6
13:25 bluescreen10 joined #perl6
13:35 skids joined #perl6
13:42 moritz http://www.muppetlabs.com/~breadbox/software/elfkickers.html # looks interesting/useful, in case anybody wants to muck with ELF binaries :-)
13:42 GlitchMr I guess that Rakudo doesn't support forks or any sort of concurrency
13:43 tadzik not really
13:43 tadzik you can call fork through NativeCall though
13:44 tokuhiro_ joined #perl6
13:45 colomon n: say ['A'..'Z']>>.ord
13:45 p6eval niecza v19-13-g442e075: OUTPUT«65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90␤»
13:45 colomon n: say ['A'..'Z']>>.ord>>->>55
13:45 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at /tmp/GamJkocDZr line 1:�------> [32msay ['A'..'Z']>>.ord>>->[33m�[31m>55[0m��Parse failed��»…
13:45 colomon n: say ['A'..'Z']>>.ord>>[-]>>55
13:45 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Prefix requires an argument at /tmp/ObRBk_3A_k line 1:�------> [32msay ['A'..'Z']>>.ord>>[-[33m�[31m]>>55[0m��Parse failed��»
13:45 colomon n: say ['A'..'Z']>>.ord >>->> 55
13:45 GlitchMr perl6: say ['A'..'Z']».ord»-»55
13:45 p6eval niecza v19-13-g442e075: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
13:45 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
13:47 colomon n: ['A'..'Z']>>.ord >>->> 55 >>.say
13:47 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/_AcfyQT2VA line 1:�------> [32m['A'..'Z']>>.ord >>->> 55 [33m�[31m>>.say[0m��Parse failed��»
13:47 colomon n: (['A'..'Z']>>.ord >>->> 55) >>.say
13:47 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/RRdxr56Z8U line 1:�------> [32m(['A'..'Z']>>.ord >>->> 55) [33m�[31m>>.say[0m��Parse failed��»
13:47 kresike bye all
13:47 colomon n: say ['A'..'Z']>>.ord >>->> 55
13:47 p6eval niecza v19-13-g442e075: OUTPUT«10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35␤»
14:08 sergot joined #perl6
14:13 erkan joined #perl6
14:16 kaleem joined #perl6
14:17 arnsholt The best incentive to improve error messages: Debugging code with duplicate error messages
14:20 moritz agreed :-)
14:29 GlitchMr --optimize=[level]   use the given level of optimization (0..3)
14:29 GlitchMr What is that optimization?
14:31 jnthn Generally, 1 is "really safe/proven stuff", 2 (the default) is "stuff that we're quite happy works", 3 is "if you have good tests and are willing to risk issues"
14:31 tadzik hmm. I should try running emmentaler on -O3 and see what breaks ;)
14:31 GlitchMr Acme::Addslashes seems to work on level 3
14:31 jnthn We compile the setting with --optimize=3 because the spectests cover the stuff in the setting pretty well :)
14:33 GlitchMr Just wondering, how to test Perl 6 modules?
14:34 tadzik like, massively?
14:34 GlitchMr I know that I can use prove, but when I do it lib doesn't appear in INC
14:34 tadzik ufo && make test
14:34 tadzik that's the best part
14:34 GlitchMr ufo?
14:34 tadzik you can also do magic like PERL6LIB=blib/lib:$PERL6LIB prove -e perl6 t/
14:34 tadzik https://github.com/masak/ufo
14:35 * moritz just updated http://rakudo.org/documentation/
14:36 zhutingting joined #perl6
14:37 GlitchMr I'm changing ENV PERL6LIB but @*INC doesn't see change
14:37 GlitchMr It's probably just me
14:38 moritz @*INC is populated from PERL6LIB at startup
14:38 GlitchMr I still only see /home/glitchmr/.perl6/lib and /home/glitchmr/rakudo/lib/parrot/4.5.0-devel/languages/perl6/lib
14:38 moritz if it's @+INC you want to change, change @*INC
14:38 moritz s/\+/*/
14:40 prettyrobots joined #perl6
14:40 arnsholt So, yeah: t/08-callbacks.t ....... ok
14:40 arnsholt It's just a simple void(void) callback, but yay!
14:40 jnthn wow!
14:40 jnthn \o/
14:40 jnthn arnsholt++
14:40 arnsholt Let's see what happens when I add more tests =)
14:41 GlitchMr Oh, I managed to do it
14:41 jnthn BOOM SIGSEGV!
14:41 jnthn ;)
14:41 tadzik coool
14:42 arnsholt Yeah. Returning stuff back to C might be fun
14:42 tadzik arnsholt++
14:42 GlitchMr Now my prove6 script works properly
14:42 GlitchMr env PERL6LIB=lib prove -e perl6 -r t/
14:42 GlitchMr It's possibly to simple, but whatever
14:42 tadzik GlitchMr: you may old PERL6LIB in new PERL6LIB
14:43 GlitchMr PERL6LIB is empty
14:43 tadzik fine then
14:43 GlitchMr Too late for semicolon form of $*PKGDECL definition at line 14, near "has $.meta"
14:43 GlitchMr That could be fun
14:43 masak arnsholt++
14:44 tadzik now, who's the first to write Gtk bindings? :)
14:44 tadzik s/write/start/
14:45 JimmyZ qt!
14:46 PZt joined #perl6
14:47 arnsholt tadzik: I've been thinking about it =)
14:48 arnsholt But first I have to get this thing working
14:48 arnsholt I got a segfault with a simple int argument, so something's obviously wrong =)
14:48 sirrobert is there a shorter/better way than this to create a random, 10-character string?    ('a'..'z').roll(10)
14:48 GlitchMr I've feeling it complains about this:
14:48 tadzik better would be to actually create a string :)
14:48 GlitchMr class A {...}; class A; has $*something;
14:48 tadzik r: ('a'..'z').roll(10).perl
14:48 p6eval rakudo cfe8e5:  ( no output )
14:48 tadzik r: ('a'..'z').roll(10).perl.say
14:48 p6eval rakudo cfe8e5: OUTPUT«("v", "n", "h", "s", "k", "q", "t", "y", "v", "o").list␤»
14:48 sirrobert well, with join or whatever
14:49 tadzik yeah, that seems a reasonable way
14:49 GlitchMr perl6: class A {...}; class A;
14:49 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Too late for semicolon form of class definition at /tmp/elVs0JR44_ line 1:�------> [32mclass A {...}; class A[33m�[31m;[0m��Package was stubbed but not defined at /tmp/elVs0JR44_ line 1:�------> [32mclass[33m�[31m A {…
14:49 p6eval ..rakudo cfe8e5: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 2, near ""␤»
14:49 GlitchMr Too late?
14:49 tadzik yep
14:49 tadzik you've already defined a class, too late to declare it :)
14:50 tadzik at least that's my understanding
14:50 tadzik or maybe the "class A;" syntax can only appear at the beginning of the file
14:50 tadzik p6: class A; class B;
14:50 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 2, near ""␤»
14:50 p6eval ..niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Too late for semicolon form of class definition at /tmp/H0Ho6XNEdj line 1:�------> [32mclass A; class B[33m�[31m;[0m��Parse failed��»
14:50 tadzik yep
14:50 tadzik it's not like in Perl 5 then
14:50 GlitchMr Oh, that will be simple then to fix
14:50 jnthn r: my $a; $a++ until ('a'..'z').roll(10).join('') eq 'lol'; say $a
14:50 p6eval rakudo cfe8e5: OUTPUT«(timeout)»
14:50 jnthn uh :)
14:50 tadzik :)
14:50 jnthn r: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
14:51 p6eval rakudo cfe8e5: OUTPUT«(timeout)»
14:51 arnsholt Oh, ffs. Don't optimize away my loop variables >.<
14:51 tadzik try again!
14:51 jnthn :P
14:51 tadzik r: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
14:51 p6eval rakudo cfe8e5: OUTPUT«(timeout)»
14:51 tadzik r: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
14:51 moritz try n: :-)
14:51 tadzik try {}! try {}! try {}!
14:51 p6eval rakudo cfe8e5: OUTPUT«(timeout)»
14:51 tadzik n: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
14:52 p6eval niecza v19-13-g442e075: OUTPUT«(timeout)»
14:52 * moritz updated http://rakudo.org/how-to-help/
14:52 thou joined #perl6
14:52 tadzik moritz++
14:52 jnthn Did it locally. 3215. :)
14:52 tadzik seconds? :P
14:52 jnthn no, iterations :)
14:53 jnthn r: say 26 ** 3
14:53 p6eval rakudo cfe8e5: OUTPUT«17576␤»
14:53 moritz jnthn: 3215 is you lucky number :-)
14:54 jnthn All the digits in it are in the fibonacci sequence \o/
14:54 jnthn Clearly lucky.
14:55 sirrobert Can you set a class property to be one of exactly two types?
14:55 sirrobert has Int|Str $.foo;
14:55 sirrobert ?
14:56 tadzik what happens when you try? :)
14:56 moritz r: class A { has Int|Str $.foo }
14:56 sirrobert heh
14:56 tadzik r: class A { has Int|Str $.foo; }; A.new(foo => 5); A.new(foo=> "doof");
14:56 sirrobert I meant something like, "what's the syntax for it" ;)
14:56 moritz not much it seems :-)
14:57 tadzik r: alive?
14:57 tadzik perl6eval is still looking for "lol" I guess
14:57 moritz I don't think so, it has a CPU time limit
14:57 sirrobert when I try that particular one, the error is "Malformed has"
14:57 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Malformed has␤at /tmp/xHcIothGQN:1␤»
14:57 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Malformed has␤at /tmp/gwSm5LlV2S:1␤»
14:57 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Confused␤at /tmp/M0ZBSGnvYt:1␤»
14:57 tadzik sirrobert: you can try a subset then
14:57 moritz std: class A { has Int|Str $.foo }
14:57 p6eval std 3b49ac8: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Multiple prefix constraints not yet supported at /tmp/320io3g5mU line 1:â�¤------> [32mclass A { has Int[33mâ��[31m|Str $.foo }[0mâ�¤Malformed has at /tmp/320io3g5mU line 1:â�¤------> [32mclass A { has Int[33mâ��[31m|Str $.foo }[0mâ�¤    ex…
14:57 sirrobert tadzik:  what does that look like?
14:58 tadzik not supported in std? Perl 6.1 it is then ;)
14:58 moritz subset IntStr of Cool where Str|Int;
14:58 sirrobert hmmm ok, thanks =)
14:58 tadzik r: subset Foo of Any where Int|Str; class A { has Foo $.foo; }; A.new(foo => 5); A.new(foo=> "doof");
14:58 p6eval rakudo cfe8e5:  ( no output )
14:58 tadzik seems to work
14:58 sirrobert great; didn't know about subsets
14:58 sirrobert thanks =)
14:59 tadzik check out Typed::Subroutines too :)
14:59 tadzik https://github.com/tadzik/Typed-Subroutines/blob/master/README
14:59 moritz $ time !!
14:59 moritz time ./perl6 -e 'my $a; $a++ until ("a".."z").roll(3).join eq "lol"; say $a'
14:59 moritz 6515
14:59 moritz real    4m11.592s
14:59 moritz that's slow
14:59 tadzik I find them quite awesome, but maybe that's because it's my idea :P
15:00 moritz r: say 6515 / (60*4 + 11)
15:00 p6eval rakudo cfe8e5: OUTPUT«25.956175␤»
15:01 jnthn Ouch. That does rather suck.
15:01 jnthn To the profiler!
15:02 tadzik 25 of those a second is not that bad as for Rakudo, imho :)
15:02 moritz 18% in gimme
15:02 moritz i wonder if reify the range all over again each time
15:04 moritz we don't
15:05 jnthn How long is spent in roll and join?
15:06 moritz roll itself not much
15:06 moritz but all the work is done in a gather while ...
15:06 moritz so that's a separate block I think
15:06 jnthn ah, true
15:06 moritz join neither much (<1%)
15:07 moritz I wonder if gather/take is the culprit
15:11 moritz r: say <a b c>.list.roll(2)
15:11 p6eval rakudo cfe8e5: OUTPUT«b a␤»
15:12 masak $ time nom -e 'my $a; $a++ until ("a".."z").roll(3).join eq "lol"; say $a'
15:12 masak 15169
15:12 masak real3m18.316s
15:13 masak r: say 15169 / (60*3 + 18)
15:13 p6eval rakudo cfe8e5: OUTPUT«76.611111␤»
15:13 GlitchMr Actually, it seems that the module I attempt to make working has weird things like:
15:13 GlitchMr has $.doc = $.parse_document();
15:13 GlitchMr Which cause errors
15:13 GlitchMr TestML
15:14 GlitchMr perl6: class A; has $*nothing = $.do_nothing(); method do_nothing {}
15:14 p6eval niecza v19-13-g442e075:  ( no output )
15:14 p6eval ..rakudo cfe8e5: OUTPUT«===SORRY!===␤Virtual call $.do_nothing may not be used on partially constructed objects␤at /tmp/jTqGipaCdc:1␤»
15:14 GlitchMr std: class A; has $*nothing = $.do_nothing(); method do_nothing {}
15:14 p6eval std 3b49ac8: OUTPUT«[31m===[0mSORRY![31m===[0m�Virtual call $.do_nothing() may not be used on partially constructed object at /tmp/ABb13VzFwl line 1:�------> [32mclass A; has $*nothing = [33m�[31m$.do_nothing(); method do_nothing {}[0m�Check failed�FAILED 00:00 42m�»
15:14 * moritz thought niecza caught that too
15:15 masak today is Rakudo release day.
15:15 GlitchMr perl6: class A { has $.answer = $.give_42(); method give_42 { 42 } }; print A.new.answer;
15:15 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Virtual call $.give_42 may not be used on partially constructed objects␤at /tmp/yCnKNV5v79:1␤»
15:15 p6eval ..niecza v19-13-g442e075: OUTPUT«42»
15:16 masak GlitchMr: Rakudo is right.
15:16 GlitchMr Hmmm, yeah
15:16 GlitchMr https://github.com/GlitchMr/testml-pm6/blob/master/lib/TestML/Runner.pm
15:16 masak GlitchMr: that assignment happens during BUILD time.
15:16 GlitchMr But now problem is to make "has $.doc = $.parse_document();" working
15:17 masak why does $.parse_document need a fully constructed object?
15:17 jnthn Because it's virtual.
15:17 GlitchMr Perhaps it would be possible to move this to construction time
15:18 GlitchMr How can I make code run during class construction.
15:19 moritz masak: it doesn't, but chances are it doesn't do what you want on a partially constructed object
15:19 GlitchMr submethod BUILD?
15:19 moritz you *can* call self.do_nothing()
15:19 GlitchMr ok, thanks
15:20 masak jnthn: I was asking why someone wrote it with that expectation.
15:21 masak sorry for being unclear :)
15:21 jnthn oh :)
15:21 GlitchMr std: $transform.args.map({ $_ ~~ TestML::Expression ?? $.evaluate_expression($_, $block) !! $_ })
15:21 p6eval std 3b49ac8: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66581.â�¤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66620.â�¤[31m===[0mSORRY![31m===[0mâ�¤Expecting a term, but found either infix ?? or redundant prefix ?â�¤  (to suppre…
15:22 GlitchMr std: $transform.args.map({ $_ ~~ TestML::Expression ?? evaluate_expression($_, $block) !! $_ })
15:22 p6eval std 3b49ac8: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66581.â�¤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66620.â�¤[31m===[0mSORRY![31m===[0mâ�¤Expecting a term, but found either infix ?? or redundant prefix ?â�¤  (to suppre…
15:22 GlitchMr huh?
15:22 moritz GlitchMr: since std doesn't know that TestML::Expression is a type, it provisionally parses it as a subroutine
15:22 moritz GlitchMr: so it expects a prefix or term after that, not ??
15:23 benabik And the initialized $x warnings are in STD.pm, not in what it's parsing, I think.
15:23 moritz yes
15:23 benabik *uninitialized
15:25 GlitchMr https://github.com/ingydotnet/testml-pm6/blob/master/lib/TestML/Runner.pm#L94-109
15:25 GlitchMr $context, | $transform...
15:25 GlitchMr What is that | thing
15:26 masak flattening.
15:27 preflex joined #perl6
15:27 GlitchMr perl6: print |(1, 2)
15:27 p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«12»
15:27 masak you often see it without whitespace after it, like most prefix ops in practical use.
15:27 GlitchMr So, where could syntax error hide
15:28 GlitchMr t/arguments.t .............. ===SORRY!===
15:28 GlitchMr Unable to parse blockoid, couldn't find final '}' at line 97, near "$_ ~~ Test"
15:28 moritz at line 97? :-)
15:28 GlitchMr Line 97 is:
15:28 GlitchMr ?? $.evaluate_expression($_, $block)
15:29 moritz the line before, maybe?
15:29 GlitchMr I've changed code somewhat so it wouldn't see $*PKGDECL
15:29 GlitchMr error
15:30 * moritz hacks on method roll and becomes hungry
15:31 masak :P
15:32 GlitchMr Ok, I've changed $_ ~~ TestML::Expression to ($_ ~~ TestML::Expression) and somehow it works
15:35 GlitchMr perl6: my @arr; @arr = ();
15:35 p6eval rakudo cfe8e5, niecza v19-13-g442e075:  ( no output )
15:35 GlitchMr perl6: our @arr; @arr = ();
15:35 p6eval rakudo cfe8e5: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤  in block <anon> at /tmp/mCclXou9VS:1␤␤»
15:35 p6eval ..niecza v19-13-g442e075:  ( no output )
15:35 GlitchMr Why it works with my, but doesn't with our
15:36 moritz because "our" variables can be declared from many places for the same variable, thus type constriants don't work out too well
15:37 masak huh?
15:38 GlitchMr I'm confused
15:38 masak I know that's so, but why does that explain why the above error sucks?
15:38 moritz it doesn't install the 'Array' default value along with the type constraint
15:39 moritz (which is probably just NYI)
15:39 GlitchMr Wait... so I cannot have global array?
15:39 masak 'our' doesn't mean 'global' :)
15:39 moritz so you get a call to Any.STORE instead of ARRAY.store
15:39 moritz r: our @a := []; say @a.push: 5
15:39 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/98jHU_bZX1:1␤»
15:39 moritz meh.
15:39 moritz r: our @a; @a  := []; say @a.push: 5
15:39 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/6CvXguJqJk:1␤»
15:40 moritz WHY EVER NOT? IT'S A VARIABLE!
15:40 masak ;)
15:40 * masak hugs moritz
15:40 GlitchMr I mean, I want access to it like @Package::Name::variable
15:40 GlitchMr Just like in Perl 5
15:40 jnthn Because nobody ever really put a lot of time into "our" handling, I suspect.
15:41 GlitchMr I guess that simply using $ will be less hacky
15:41 moritz nobody++
15:44 jnthn Yes, scalars work fine.
15:44 GlitchMr perl6: 'abc' ~~ / <.panic: "ok..."> /
15:44 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Unable to resolve method panic in type Cursor␤  at /tmp/y0hc8_vBdO line 1 (ANON @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2875 (Regex.ACCEPTS @ 10) ␤  at /tmp/y0hc8_vBdO line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CO…
15:44 p6eval ..rakudo cfe8e5: OUTPUT«No such method 'panic' for invocant of type 'Cursor'␤  in regex <anon> at /tmp/JVv0a5uRST:1␤  in method ACCEPTS at src/gen/CORE.setting:9804␤  in block <anon> at /tmp/JVv0a5uRST:1␤␤»
15:44 masak walk &
15:45 GlitchMr Any idea what <.panic: "something"> means? It's used in https://github.com/GlitchMr/testml-pm6/blob/master/lib/TestML/Parser/Grammar.pm
15:45 GlitchMr And it's only place where I found "panic" word (I used ack on whole source)
15:45 moritz it's used to thrown an exception inside the compiler
15:46 moritz which made ingy++ think it's built-in, which it is not
15:47 GlitchMr I guess I can try {die "something"} instead
15:47 * [Coke] pokes au.
15:47 Coleoid joined #perl6
15:48 thelazydeveloper joined #perl6
16:00 GlitchMr Screw it, TestML is too annoying
16:00 GlitchMr I will use JSON instead of YAML... or Perl 6
16:01 blackstar_ joined #perl6
16:04 jacks joined #perl6
16:04 atrodo joined #perl6
16:04 jacks hiii guys
16:05 daxim hello you
16:06 [Coke] maven's rss feed is screwed up. If it doesn't get fixed, I'll probably have to drop it.
16:06 [Coke] the article snippets in the feed are showing up as lots of repeated snippets.
16:08 daxim I've seen that phenomenon today, too:   http://perlsphere.net/#5eb816756d3ff2af6dbe257ce72b4089
16:08 daxim perhaps something is wrong with feedburner
16:10 * [Coke] starts to read the perlmonk thread linked to from sixmaven, and gets frustrated with the interface.
16:10 * [Coke] gives up instead of fighting with it.
16:13 prettyrobots joined #perl6
16:19 au [Coke]: you were poking me?
16:20 [Coke] Yes - do you have ongoing pugs-shaped tuits?
16:21 [Coke] p: say 3.WHAT
16:21 p6eval pugs: OUTPUT«Int␤»
16:21 [Coke] ... that's weird. I would expect either ::Int or Int()
16:21 au only in 60-second slices, I'm afraid
16:21 [Coke] p: say "asdasdf".WHAT
16:21 p6eval pugs: OUTPUT«Str␤»
16:21 au or 300-second slices, with luck
16:22 [Coke] ok. I'll try not to bug you too much, then.
16:23 au =)
16:30 diakopter [Coke]: I didn't mention perlbrew
16:35 [Coke] diakopter: http://irclog.perlgeek.de/perl6/2012-07-19#i_5825796
16:37 diakopter [Coke]: oh, I was referring to the rakudo 2016 typo
16:37 diakopter (not perlbrew)
16:38 birdwindupbird joined #perl6
16:38 proller__ joined #perl6
16:38 proller_ joined #perl6
16:41 [Coke] ah.
16:44 flussence .oO( if nqp fails for random people without parrot -G, why doesn't the makefile just set -G by default? )
16:49 [Coke] that's like hitting a fly with a sledgehammer
16:50 [Coke] turning off GC is probably a bad thing.
16:50 masak "probably"?
16:51 masak "Hey, has anyone considered just letting dead objects fill up memory until we run out of it?"
16:51 dalek rakudo/toqast: 917a123 | jnthn++ | src/QPerl6/Ops.pm:
16:51 dalek rakudo/toqast: Fix an op sig, thus making FIRST work again.
16:51 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/917a123b0e
16:51 dalek rakudo/toqast: 5ae5476 | jnthn++ | src/QPerl6/Actions.pm:
16:51 dalek rakudo/toqast: Fix our $.foo.
16:51 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/5ae547670f
16:51 * masak seems to be having a sarcastic day today... :)
16:52 flussence it seems to finish building before my 1GB runs out, and I prefer working software to not :)
16:52 jnthn It's fine if you have enough memory :P
16:53 masak then change your Makefile locally, by all means.
16:53 jnthn Well, it is maybe a good idea to ship a build with the -G in also (more)
16:54 jnthn It probably needs less RAM to build than CORE.setting for one.
16:54 benabik -G?
16:54 jnthn And it means some people who can't build otherwise would be able to.
16:54 jnthn But yes, it's hiding the real problem.
16:54 jnthn benabik: Disable GC
16:55 jnthn benabik: There's one particular step in the NQP build where there's some GC related bug. It only shows up on a handful of systems.
16:55 jnthn Sadly, none that I own, which doesn't make hunting it quite so easy...
16:58 xinming joined #perl6
17:08 proller joined #perl6
17:13 max___ joined #perl6
17:13 max___ hi
17:13 masak hi, max___!
17:13 max___ i would like to know when a stable version will be released?
17:13 masak r: my $nick = "max___"; say "$nick has {$nick.comb(/_/).elems} underscores in it."
17:13 p6eval rakudo cfe8e5: OUTPUT«max___ has 3 underscores in it.␤»
17:14 masak max___: we get that question sometimes.
17:14 masak max___: stability is something that everyone would like to have.
17:14 masak max___: but not at the expense of stopping the necessary changes/improvements before they're done.
17:15 masak max___: so, hm, 2034?
17:15 masak :D
17:16 max13fr hehe
17:16 masak r: my $nick = "max13fr"; say "$nick has {+$nick.comb(/\d/)} digits in it."
17:16 p6eval rakudo cfe8e5: OUTPUT«max13fr has 2 digits in it.␤»
17:16 masak max13fr: now for the real answer.
17:16 max13fr :)
17:16 masak max13fr: we already have quite a lot of features. see http://perl6.org/compilers/features for just how many.
17:17 masak we're now working on making things faster, more user-friendly, better documented, and more welcoming.
17:17 masak the point where you will start to call things "stable" depends a bit on who you are.
17:17 max13fr so for a professional use, you think it's better to use perl5 or perl6
17:17 masak are you an early adopter? can you withstand certain amounts of pain? what are your criteria for 'production use'? and so on.
17:17 masak max13fr: if you're asking that question, probably yes.
17:18 masak but with that said, I've been using Perl 6 in production situations for two years now.
17:19 thou [Coke]: you wrote "moritz++ - hey, now I get gather/take." — what were you referring to (i'd like to read up on it if there's a pointer to something enlightening)?
17:20 max13fr if I understand, for little script perl6  it's ok
17:20 max13fr but some fonctions have still buggued
17:20 diakopter depends what you want the littlte script to do.
17:21 max13fr for example backup bdd
17:21 max13fr generate rrdgraph
17:21 masak oh, I assure you there are bugs.
17:21 masak but nowadays they're not so easy to find anymore...
17:23 diakopter max13fr: those would be good exercises to try. niecza is probably better at heavy data processing since the GC is more reliable..
17:25 max13fr You advise me niecza rather than rakudo?
17:25 seldon joined #perl6
17:26 diakopter the VMs that niecza uses (mono, .Net) have had hundreds or thousands of times as many hours put into them as the one rakudo uses
17:27 stephenlb joined #perl6
17:27 proller_ joined #perl6
17:27 proller joined #perl6
17:28 masak I would also recommend a look at Niecza. but do make use of the table at http://perl6.org/compilers/features to decide.
17:29 max13fr thanks for your answers :)
17:29 max13fr i'll try this
17:32 masak \o/
17:35 masak let's go into release mode, shall we?
17:35 masak I just ran the spectests.
17:35 masak everything passes, but I'm getting a segfault in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo
17:35 masak after test 8.
17:35 masak can anyone confirm this?
17:36 dalek nqp/toqast: 05dc032 | jnthn++ | src/QAST/Operations.nqp:
17:36 dalek nqp/toqast: Fix two places where we accidentally mutated the QAST tree while compiling it, meaning a later re-compilation would fail.
17:36 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/05dc0327c4
17:36 jnthn masak: It fails that way in toqast too, fwiw.
17:36 thou masak: on which branch?
17:36 jnthn masak: with either perl6 or qperl6
17:37 thou ah, already confirmed :-)
17:37 masak thou: nom.
17:37 thou OK, lemme spin a new one and run specs
17:37 masak shall I try to fudge the test in question?
17:37 masak which do we prefer, shipping with a segfaulting test, or fudging the test and profusely apologising in the release notes?
17:39 jnthn masak: Is it changed from the last relesae?
17:39 masak you're suggesting we knowingly released with a segfaulting spectest?
17:40 flussence .oO( this conversation seems familiar... )
17:40 masak I... I don't know.
17:40 masak could someone check the irc logs of the last release?
17:40 masak it was 2012-06-21, fwiw.
17:40 masak also, could someone else download the last release, build it, and run t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo on it?
17:40 masak it would be nice if I could delegate these two things, then the release will go swifter.
17:41 jnthn masak: I dunno that it reliably segfaults on all machines, fwiw.
17:41 * masak has hugs ready for volunteers :)
17:41 masak jnthn: well, so far it segfaults on Arch Linux and on Windows. we have similar architectures, I guess.
17:42 masak dies_ok {checklastval("octopus") = 10 }, 'checklastval STORE can die';
17:42 masak ^ this line in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo
17:42 masak is what segfaults.
17:42 masak I comment it out, and the file runs to completion.
17:42 arnsholt masak: I got the same problem last night I think
17:43 masak I put it back, and the file segfaults.
17:43 jnthn Maybe the best thing is to 1) fudge the test, and 2) file a rakudobug so we don't forget it.
17:43 masak oh!
17:43 masak I bet it's the exact same as my segfault.
17:44 masak the symptoms look very similar.
17:44 masak https://rt.perl.org/rt3/Ticket/Display.html?id=114134
17:44 masak there isn't a CATCH in there, but there are probably interrupted binders.
17:45 [Coke] thou: http://perl6maven.com/from-iterative-to-functional-perl6-code
17:45 masak do we have an excellent golfer among us? would somebody like to minimize the segfault in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo ?
17:45 thou [Coke]: excellent, thanks!
17:45 masak I cancel the need for the other two request for volunteering, and put forth the above one.
17:45 masak golfing of the segfault in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo would help a lot.
17:46 * masak fudges
17:47 atrodo joined #perl6
17:47 * jnthn -> shop
17:50 ChibaPet joined #perl6
17:54 [Coke] svn--
17:54 dalek roast: 64ca263 | masak++ | S06-routine-modifiers/lvalue-subroutines.t:
17:54 dalek roast: [S06-routine-modifiers/lvalue-subroutines.t] fudged for Rakudo
17:54 dalek roast:
17:54 dalek roast: This spectest segfaults on at least Linux and Windows, at least on some
17:54 dalek roast: hardware platforms. Suspect but haven't confirmed [RT #114134].
17:54 dalek roast: review: https://github.com/perl6/roast/commit/64ca263637
17:55 [Coke] +# 07/19/2012 - rakudo++ (22932); niecza (89.77%); pugs (39.86%)
17:55 [Coke] niecza: 30 failures, pugs :82, rakudo: 8
17:55 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0m��Two terms in a row at /tmp/Eu2QR_c5yq line 1:�------> [32m30 [33m�[31mfailures, pugs :82, rakudo: 8[0m��Parse failed��»
18:02 masak [Coke]: failures? what failures? I just ran the spectest suite and it came out clean.
18:04 masak hm... no golfer takers yet?
18:04 masak am I the only one who actually enjoys golfing bugs a bit? :)
18:04 masak maybe I should blog about how I use git to ratchet-golf things down.
18:05 masak (but basically: create a throwaway branch "debugging" or whatever. remove stuff from the failing file. commit if the bug survives, checkout and try something else if it goes away. repeat until minimal.)
18:08 Chillance joined #perl6
18:10 masak I propose to name Rakudo #54 "Tallinn", after Tallinn.pm -- I've never met them, and I don't know whether they are active. https://www.socialtext.net/perl5/Estonian indicates "not so much".
18:10 sorear good * #perl6
18:10 masak but jnthn and I were there last year, and it's a fine city with good beer, good food, and happy people.
18:10 masak sorear! \o/
18:11 masak moritz++ # keeping ChangeLog up-to-date
18:12 * flussence runs a spectest and gets neither 0 nor 8 failures
18:16 masak moritz: 2 ***   throwing typed exceptions (moritz)
18:16 masak moritz: what prevents us from removing this from docs/ROADMAP?
18:17 masak rn: say val("2")
18:17 p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&val' called (line 1)␤»
18:17 p6eval ..niecza v19-13-g442e075: OUTPUT«2␤»
18:17 masak niecza++
18:19 [Coke] masak - the same 8 it's been failing for weeks.
18:20 masak must be a platform thing.
18:20 moritz masak: there are still a lot of untyped exceptions
18:20 masak ok.
18:20 masak what about 2 **    MAIN and USAGE (japhb)
18:20 moritz masak: like, all from within the MOP
18:20 masak surely we have those?
18:21 [Coke] http://feather.perl6.nl/~coke/rakudo_summary.out - scroll to the bottom
18:21 moritz thou: [Coke] was referring to http://perl6maven.com/from-iterative-to-functional-perl6-code
18:22 masak [Coke]: first file is the one I just fudged. should be fixed now.
18:22 flussence I've got "t/spec/S32-temporal/local.rakudo TODO passed:   5-6" on mine...
18:22 masak [Coke]: remaining two are due to your evnironment's encoding settings.
18:22 masak [Coke]: this was discovered not long ago. I don't know what to do about it.
18:31 zby_home joined #perl6
18:32 moritz gzooooooooooooo+no#o bgäo bbbbbbbbbbböl                  o. µki-., dss#-.-.l..,nh nbn                                           nn-kmn OOb
18:32 thou thank you, moritz — i gather it took you a good amount of editing to condense the material in such a readable way. very nice!
18:32 [Coke] that is hilarious given his previous send. ;)
18:33 flussence Content-Encoding: gzip :)
18:33 daxim Keyboard-Mashing: suckling, bobcat
18:33 masak moritz: hi, Ronja.
18:34 thou masak: make spectest is still running, but i got:  t/spec/S02-types/version.t ................................ Failed 6/35 subtests
18:36 flussence I seem to get an entirely different subset of fails to other people...
18:36 thou and, where do i look for the segfault? I have t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo .... ok
18:37 masak flussence: please gist the summary when you're done. also, please run files individually to see what failures you get.
18:37 thou make spectest completed, only the S02-types/version.t failure on mine
18:37 masak thou: I fudged it. see IRC log for the failing line, or spectest git log for the fudge.
18:37 raiph joined #perl6
18:37 thou ah, i thought i'd started before your fudge came in, but i guess not :-)
18:38 arnsholt jnthn: I think I'm gonna add a #define flag that lets me compile nqp with functions instead of macros for REPR and friends. Any suggestions for a name?
18:40 dalek rakudo/nom: db15782 | masak++ | docs/ChangeLog:
18:40 dalek rakudo/nom: [docs/ChangeLog] de-duplicated anon subsets
18:40 dalek rakudo/nom:
18:40 dalek rakudo/nom: It's good to have to re-read this list for the announcement. :)
18:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/db1578229d
18:41 masak thou: if you re-run 'make spectest', it will git pull from roast.
18:41 pupoque joined #perl6
18:41 * flussence gives up trying to do things the distro way and installs perlbrew
18:41 flussence (no TAP::Harness::Archive? really?)
18:42 japhb masak, sorry I'm over a week backlogged, but I just noticed you said something about MAIN and USAGE to me?
18:42 ggoebel_ joined #perl6
18:43 thou https://gist.github.com/3145916
18:43 thou parrot::has_icu=0
18:44 GlitchMr perl6: print "abcd".subst: /(.)/, $0 x 3, :g
18:44 p6eval niecza v19-13-g442e075: OUTPUT«Use of uninitialized value in string context␤  at /home/p6eval/niecza/lib/CORE.setting line 1263 (warn @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 268 (Mu.Str @ 15) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.settin…
18:44 p6eval ..rakudo cfe8e5: OUTPUT«use of uninitialized value of type Any in string context  in block <anon> at /tmp/qLTptJiOvZ:1␤␤»
18:45 GlitchMr perl6: print "abcd".subst: /(.)/, {$0 x 3}, :g
18:45 p6eval niecza v19-13-g442e075: OUTPUT«aaabbbcccddd»
18:45 p6eval ..rakudo cfe8e5: OUTPUT«use of uninitialized value of type Any in string context  in block <anon> at /tmp/5aGw8biFIB:1␤␤use of uninitialized value of type Any in string context  in block <anon> at /tmp/5aGw8biFIB:1␤␤use of uninitialized value of type Any in string context  in block <anon>…
18:45 GlitchMr Should it work?
18:45 jnthn arnsholt: Why'd you need that ooc?
18:46 moritz r: print "abcd".subst: /(.)/, -> $/ {$0 x 3}, :g
18:46 p6eval rakudo cfe8e5: OUTPUT«aaabbbcccddd»
18:47 GlitchMr Thanks :)
18:47 moritz japhb: the question is, what remains to be done re MAIN and USAGE (it's still in docs/ROADMAP)
18:49 masak japhb: I was wondering about the status of that line in docs/ROADMAP.
18:50 masak japhb: I was going through ROADMAP and wondering out loud about things I thought might be finished already and could be removed from that list.
18:50 dalek rakudo/nom: 6a078c7 | masak++ | docs/announce/2012.07:
18:50 dalek rakudo/nom: [docs/announce/2012.07] updated
18:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6a078c7c1d
18:51 masak please feel free to review: https://github.com/rakudo/rakudo/blob/nom/docs/announce/2012.07
18:52 moritz masak: szabgab and Gabor Szabgab are the same person
18:53 moritz masak: and it might be worth mentioning that the deprecated methods are in class Str
18:53 wamba joined #perl6
18:53 wamba left #perl6
18:53 masak ok on both.
18:54 moritz I wanted to write some deprecation notices, but I'm too groggy right now
18:54 moritz maybe I'll manage in time for the R* release
18:54 dalek rakudo/nom: 176e247 | masak++ | docs/announce/2012.07:
18:54 dalek rakudo/nom: [docs/announce/2012.07] de-duplicated szabgab
18:54 dalek rakudo/nom:
18:54 dalek rakudo/nom: moritz++
18:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/176e247a6f
18:54 dalek rakudo/nom: cca6d43 | masak++ | docs/announce/2012.07:
18:54 dalek rakudo/nom: [docs/announce/2012.07] ...on Str
18:54 dalek rakudo/nom:
18:54 dalek rakudo/nom: moritz++
18:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cca6d438f1
18:57 arnsholt jnthn: Simpler debugging, mainly
18:59 masak moritz: what should I make of this? http://irclog.perlgeek.de/perl6/2012-07-16#i_5818109
18:59 moritz masak: what he said :-)
18:59 masak oh! https://github.com/perl6/nqp/blob/master/tools/build/PARROT_REVISION does say 4_4_0.
19:00 masak why does my local one say 4_5_0, then? :/
19:00 flussence old nqp?
19:00 masak is it "safe" to nuke nqp/ and re-configure?
19:00 moritz masak: because you didn't bump NQP_REVISION, and used --gen-nqp?
19:00 masak I always use --gen-nqp, yes.
19:00 masak should I bump NQP_REVISION before release?
19:01 masak I guess I should.
19:01 moritz you should
19:01 moritz and you should also bump VERSION in NQP
19:01 masak gotcha. then it'll sort itself out during the release process.
19:01 moritz and *then* bump NQP_REVISION
19:01 masak aye.
19:01 proller_ joined #perl6
19:01 masak nodnod.
19:01 masak it's all in the release guide :)
19:01 masak which I'm now going back to :)
19:02 flussence er, wait... didn't it get put back to 4.4 for a reason a few days ago
19:02 flussence ?
19:02 moritz flussence: PARROT got back, NQP is going to be bumped
19:02 arnsholt jnthn: I've got a segfault and to diagnose I'd really like to look at what comes out of REPR()
19:03 flussence sorry, brain not engaged :)
19:03 arnsholt But it's macros all the way down, which finally made me annoyed enough to try to work around it =)
19:03 masak tadzik: just FYI, you will get the next leap second, in August ;)
19:03 proller joined #perl6
19:03 proller_ joined #perl6
19:03 moritz oh, again?
19:04 masak says the script.
19:04 moritz not sain' 'tis wrong, just surprised
19:04 moritz we had one in June already
19:05 moritz we should get a quantity discount :-)
19:07 masak leap seconds are stupid.
19:09 moritz in a few decades or centuries there will be PHD or master thesis by history students that assess the economical damage of leap seconds
19:09 moritz and concludes that it's in the same ballbark as olympic games, or so :-)
19:09 arnsholt masak: Yeah, I vote we make the Earth be stable on its axis ^_^
19:09 flussence we should fix it once and for all by mounting giant rocket thrusters on the planet!
19:10 flussence .oO( it'd make going to the moon a lot easier too )
19:11 moritz decoupling civil from astronomical time would be much easier :-)
19:11 dalek nqp: 22626f8 | masak++ | docs/release_guide.pod:
19:11 dalek nqp: [docs/release_guide.pod] de-mandated Parrot updates each month
19:11 dalek nqp: review: https://github.com/perl6/nqp/commit/22626f85d1
19:12 masak does that change to the NQP release guide seem to capture the new Parrot revision policy?
19:12 * moritz looks
19:12 masak thou: did you start golfing the segfault in the spectest? how's it going?
19:12 moritz I'd phrase it a bit less vague
19:13 thou masak: sorry, no i didn't
19:13 moritz bumping PARROT_REVISION needs to happen if the current revision is not a parrot release
19:16 masak moritz: oh, I didn't know there were specific conditions.
19:16 masak I'll try to rephrase.
19:17 dalek nqp: 4af27ab | masak++ | docs/release_guide.pod:
19:17 dalek nqp: [docs/release_guide.pod] reworded
19:17 dalek nqp:
19:17 dalek nqp: Based on feedback from moritz++.
19:17 dalek nqp: review: https://github.com/perl6/nqp/commit/4af27ab841
19:17 masak better?
19:19 dalek nqp: 98fdaf2 | masak++ | docs/release_guide.pod:
19:19 dalek nqp: [docs/release_guide.pod] consistency nit
19:19 dalek nqp: review: https://github.com/perl6/nqp/commit/98fdaf25c0
19:19 dalek nqp: b94606c | masak++ | VERSION:
19:19 dalek nqp: bump VERSION to 2012.07
19:19 dalek nqp: review: https://github.com/perl6/nqp/commit/b94606c215
19:21 dalek rakudo/nom: 9fb677f | masak++ | docs/release_guide.pod:
19:21 dalek rakudo/nom: [docs/release_guide.pod] named current release
19:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9fb677fe92
19:21 dalek rakudo/nom: 02433a7 | masak++ | tools/build/NQP_REVISION:
19:21 dalek rakudo/nom: [tools/build/NQP_REVISION] bumped to 2012.07
19:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02433a75f3
19:23 masak hrm, the nqp release guide says nothing about creating a release tarball.
19:23 masak should I do that?
19:24 masak looks like it from here: https://github.com/perl6/nqp/downloads
19:25 masak any particular reason the nqp release guide doesn't explicitly say to do that? I think I've missed that step before and others have had to point it out...
19:25 * masak skips it for now but notes his willingness both to do it and to add instructions for it in the nqp release guide
19:26 moritz masak: yes, we need an nqp tarball
19:26 moritz for the star release
19:26 dalek rakudo/nom: 1e872ad | masak++ | VERSION:
19:26 dalek rakudo/nom: [release] bump VERSION
19:26 dalek rakudo/nom:
19:26 dalek rakudo/nom: This is Rakudo Perl 2012.07
19:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e872adef9
19:27 masak moritz: how do I do it? should I also add instructions?
19:27 masak I guess there is a 'make release' target or something...
19:27 moritz masak: there isn't :(
19:28 moritz masak: I did something like
19:28 masak so, how do I do it?
19:28 moritz cd nqp
19:28 moritz git clean -xdf
19:28 moritz mv .git ../nqp-git
19:28 moritz cd ..
19:28 moritz cp -r nqp nqp-2012.07
19:28 moritz tar czf nqp-2012.07.tar.gz nqp-2012.07
19:29 moritz mv nqp-git nqp/.git
19:29 moritz rm -rf nqp-2012.07
19:29 moritz I'm sure there are better ways
19:29 masak moritz++
19:29 masak followed the instructions as they appeared on IRC, and they worked perfectly :)
19:29 masak I'll just ask you next time instead of reading the release guide :P
19:29 moritz you can skip moving .git, and simply delete it from  nqp-2012.07/.git
19:30 masak sure.
19:30 masak mind if I add such a step to the nqp release guide?
19:30 masak better than not having it, I think.
19:30 moritz please do
19:30 moritz I hope somebody with shell fu makes a release target
19:31 flussence !!
19:31 flussence git archive --format=tar 2012.07 | gzip -9 > ~/nqp-2012.07.tar.gz
19:31 masak I'll add a note requesting that, then.
19:31 masak flussence: ooh
19:31 moritz woah.
19:31 [Coke] wait, what parrot is shipping rakudo going to require today?
19:31 masak flussence: mind if I add *that* to the nqp release guide? :)
19:31 flussence go for it
19:31 moritz [Coke]: 4.4.0
19:31 masak [Coke]: 4_4_0
19:31 [Coke] ok
19:31 masak flussence: will it include the .git dir?
19:32 moritz though 4.6.0 also works
19:32 raiph has anyone said they are running perl6 code to do work in or for a large corporation?
19:32 masak raiph: I've written and run Perl 6 at clients, yes.
19:32 flussence masak: nope, it's all the contents from the tag you specify as if you do a clean checkout then rm -r'ed that.
19:32 masak flussence: excellent.
19:33 masak raiph: I know jnthn has, too.
19:33 raiph i recall someone saying so on this channel a couple months ago, but haven't found it
19:33 flussence (and I'm pretty sure this is how kernel releases work :)
19:33 [Coke] I use perl6 at  <insert name of multinational here>.
19:33 masak raiph: "large corporation" depends if you have Swedish or world standards, I guess :)
19:33 [Coke] raiph: someone is using it at the startup. is that perhaps what you recall?
19:33 [Coke] *their startup
19:33 moritz sirrobert++ is, iirc
19:34 masak aye.
19:34 masak nqp 2012.07 is up: https://github.com/perl6/nqp/downloads
19:35 birdwindupbird joined #perl6
19:35 moritz masak++
19:35 japhb masak, moritz, the TODO for MAIN/USAGE is at the top of src/core/Main.pm ... looking at it now, I see that mutch of the first and second groups of TODOs could be solved by just directly using the new Str.Numeric (now that my str-numeric branch has been merged and seems to be working for people)
19:35 raiph [Coke], masak: thx, but not jnthn++, masak++, or sirrobert++
19:36 japhb Sorry for the slow reply, $day-job-lagged
19:36 moritz and flussence++ for the pointer to git archive
19:37 pyrimidine joined #perl6
19:37 japhb sorear, Did you ever get to a happy place WRT the semantics of val()?
19:37 dalek nqp: c912424 | masak++ | docs/release_guide.pod:
19:37 dalek nqp: [docs/release_guide.pod] tarball instructions
19:37 dalek nqp:
19:37 dalek nqp: moritz++ flussence++
19:37 dalek nqp: review: https://github.com/perl6/nqp/commit/c912424f34
19:37 dalek nqp: 59fce00 | masak++ | docs/release_guide.pod:
19:37 dalek nqp: [docs/release_guide.pod] harmonized made-up release dates
19:37 dalek nqp: review: https://github.com/perl6/nqp/commit/59fce007e3
19:37 * masak loves release days, with so much happening on-channel :)
19:38 masak is someone willing to pick up the torch after thou? I would like to see a golf of that segfault.
19:38 japhb masak, is it a compiler or star release day?
19:39 masak yes.
19:39 masak (compiler.)
19:40 japhb thx
19:41 masak pzh
19:42 moritz masak: i was tempted to write the exact same reply. You're scary :-)
19:43 masak occupational hazard, I think :)
19:43 sorear japhb: I think so?  not sure anymore
19:43 japhb sorear, *sigh* The hazards of only having occasional tuit clusters ....
19:44 crab2313 joined #perl6
19:44 moritz japhb: so a big part of the type dwimmery could just be  $val = $val.Numeric // $val,  right?
19:45 proller joined #perl6
19:47 japhb moritz, well, in particular, you can remove grammar CLIVal, and replace the third and fourth branches of the if chain that follows with what you said, I suppose.
19:48 japhb But that's why I asked sorear about val() ... whether he was doing mixin or MI or something else entirely to handle the converted-but-still-stringlike magic of val()
19:49 sorear japhb: oh, that's easy enough.  mixins, with pregenerated classes
19:52 sirrobert r: my %f<a> = 1; say %f.exists('a') ?? %f<a> !! 'no';
19:52 p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/ct7jg4HmOE:1␤»
19:52 sirrobert What does that mean?
19:53 MayDaniel joined #perl6
19:53 flussence r: my %f{'a'}
19:53 colomon sirrobert: you want to say: my %f; %f<a> = 1
19:53 p6eval rakudo cca6d4:  ( no output )
19:53 flussence why did that work?
19:54 sirrobert colomon: oohh heh, thanks
19:54 flussence r: my %f{'a'} = 1
19:54 p6eval rakudo cca6d4: OUTPUT«Odd number of elements found where hash expected␤  in method STORE at src/gen/CORE.setting:6110␤  in block <anon> at /tmp/CupBT1jcjH:1␤␤»
19:54 sirrobert well, what does what I did mean?
19:54 sirrobert what's a "shaped" variable?
19:54 flussence r: my %f<a> = 1
19:54 p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/hxYC9M5B9t:1␤»
19:54 flussence this is bizarre.
19:55 japhb sorear, where does the $!value in Niecza::PseudoStr get set/used?  Is it the dualvar CgOp?
19:55 colomon r: my $f<a>
19:55 p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/mICiZe6Sib:1␤»
19:55 jnthn my %f{Int} # how you declare a hash with Int keys
19:56 sirrobert jnthn: ah
19:56 [Coke] raiph: then I think you might be misremembering.
19:58 Khisanth joined #perl6
20:03 sirrobert What's the comparison operator I want for something like:
20:03 sorear japhb: probably some hack in UnboxAny or somewhere
20:04 sirrobert r: my $f = a => 1; say ($f.WHAT == Pair);
20:04 p6eval rakudo cca6d4: OUTPUT«use of uninitialized value of type Pair in numeric context  in block <anon> at /tmp/fTsDqn7upO:1␤␤use of uninitialized value of type Pair in numeric context  in block <anon> at /tmp/fTsDqn7upO:1␤␤True␤»
20:04 colomon r: my $f = a => 1; say ($f.WHAT === Pair);
20:04 p6eval rakudo cca6d4: OUTPUT«True␤»
20:04 sirrobert ah
20:04 jnthn But don't do that.
20:04 sirrobert heh
20:04 sirrobert touche
20:04 jnthn r: my $f = a => 1; say $f ~~ Pair
20:04 p6eval rakudo cca6d4: OUTPUT«True␤»
20:04 colomon r: my $f = a => 1; say $f ~~ Pair
20:04 p6eval rakudo cca6d4: OUTPUT«True␤»
20:05 sirrobert is === the same as javascript's?
20:05 colomon jnthn++ # fast on the type
20:05 raiph [Coke]: yeah. i'm sure the exchange happened. maybe it /was/ jnthn or masak talking about what they had done at a client.
20:06 flussence r: (my $f)<a> = 1;
20:06 p6eval rakudo cca6d4:  ( no output )
20:06 flussence r: (my %f)<a> = 1; say %f;
20:06 p6eval rakudo cca6d4: OUTPUT«("a" => 1).hash␤»
20:06 jnthn sirrobert: It's along those lines.
20:06 sirrobert jnthn: thanks (reading about comparison operators now)
20:06 jnthn sirrobert: The main problem is that you're doing an exactly type comparision, which is normally wrong.
20:06 masak r: (my %)<a> = 1
20:07 p6eval rakudo cca6d4:  ( no output )
20:07 masak r: (my %)<a> = 1; say (my %).perl # :)
20:07 p6eval rakudo cca6d4: OUTPUT«("a" => 1).hash␤»
20:07 jnthn sirrobert: Normally you'd like to accept a subclass of Pair too.
20:07 masak o.O
20:07 * masak submits rakudobug
20:07 sirrobert jnthn: righ
20:07 sirrobert +t
20:07 flussence r: (my %)<a> = 1; say ::.perl
20:07 p6eval rakudo cca6d4: OUTPUT«PseudoStash.new("\$!", Any, "\%", ("a" => 1).hash, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, )␤»
20:08 jnthn masak: Wow! :D
20:08 masak yeah!
20:08 jnthn masak: That's kinda awesome but also kinda terrible :)
20:08 masak anonymous but persistent :)
20:08 masak luckily this bug has come to the right person...
20:09 pyrimidine joined #perl6
20:09 jnthn It's almost too amusing to want to track down and fix :P
20:10 masak r: (my @).push(1, 2, 3); say (my @).perl
20:10 p6eval rakudo cca6d4: OUTPUT«Array.new(1, 2, 3)␤»
20:10 masak r: (my $) = "OH HAI"; say (my $)
20:10 p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
20:11 masak oh, that old one.
20:11 masak r: (my &) = sub { say "OH HAI" }; (my &)()
20:11 p6eval rakudo cca6d4: OUTPUT«OH HAI␤»
20:11 masak *sigh* :)
20:11 jnthn :D
20:11 jnthn Are they sigil invariant, ooc?
20:12 jnthn r: (my &) = sub { say "OH HAI" }; (my %)()
20:12 p6eval rakudo cca6d4: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Hash'␤  in <anon> at src/gen/BOOTSTRAP.pm:811␤  in any <anon> at src/gen/BOOTSTRAP.pm:807␤  in block <anon> at /tmp/G4Yl82JdUK:1␤␤»
20:12 jnthn hah, the sigil matters at least :)
20:13 flussence r: my % = my @ = my $ = :a; say ::.perl
20:13 p6eval rakudo cca6d4: OUTPUT«PseudoStash.new("\$!", Any, "\%", ("a" => Bool::True).hash, "\@", Array.new("a" => Bool::True), "\$", "a" => Bool::True, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", A…
20:15 masak ...wow...
20:16 jnthn Hmmm.
20:16 jnthn Parse errors: Bad plan.  You planned 87 tests but ran 1121.
20:16 jnthn o.O
20:16 jnthn :)
20:16 masak jnthn: that the looping test I mentioned the other day?
20:17 masak it runs until you ^C it.
20:17 jnthn masak: Nah
20:17 jnthn masak: I just for the first time compiled Test.pm with qperl6
20:17 jnthn And ran spectest
20:17 masak ah :)
20:17 jnthn It does pretty well overall, just a few insanities :)
20:18 sirrobert On the error that says, "Cannot call 'whatever'; none of these signature match: " it would be great if we could add the signature we tried to call it with
20:18 masak yeah.
20:18 masak do we have an RT ticket for that?
20:18 * masak checks
20:19 dalek nqp/toqast: 0f7a6ee | jnthn++ | src/ (4 files):
20:19 dalek nqp/toqast: Implement serialization handling during compilation of QAST::CompUnit. This means QAST can be used to do pre-compiled modules now.
20:19 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/0f7a6ee49e
20:20 masak doesn't seem we do.
20:20 masak sirrobert: if you have time, please put together a nice concrete example where having this would help, and submit to rakudobug@perl.org. thank you.
20:21 sirrobert sure thing
20:21 masak ++sirrobert
20:23 masak Rakudo 2012.07 uploaded: https://github.com/rakudo/rakudo/downloads
20:23 * masak sends p6c email
20:23 colomon masak++
20:23 masak heh, I haven't written to p6c since I released Niecza in April ;)
20:25 * masak updates Wikipedia
20:27 vmspb joined #perl6
20:27 jnthn D'oh. Turns out the optimizer has been hiding a rather subtle bug for us.
20:27 mathw evening
20:27 mathw jnthn: that definitely sounds like a 'd'oh'
20:27 * masak stands down release mode
20:27 jnthn Spot the problem in this code:
20:27 jnthn proto prefix:<!>($) { * }
20:27 jnthn multi prefix:<!>(Bool \$a) { nqp::p6bool($a ?? 0 !! 1) }
20:27 jnthn multi prefix:<!>(Mu \$a) { nqp::p6bool($a.Bool ?? 0 !! 1) }
20:28 masak y'all're now free to commit as usual.
20:28 * masak celebrates with 香港的茉莉花茶
20:29 mathw you got a teleporter?
20:29 masak no, I brought it home from there.
20:30 mathw blame google translate, I don't know any Japanese at all
20:30 masak that's hanzi, not kanji.
20:30 mathw apart from the spoken fragments we use at aikido
20:30 masak phenny: "香港的茉莉花茶"?
20:30 phenny masak: "Jasmine tea in Hong Kong" (zh-CN to en, translate.google.com)
20:30 masak oh!
20:30 mathw quite
20:30 masak well, maybe my Mandarin is to blame :)
20:30 mathw ah and I misread the google translate page
20:31 mathw it was suggesting maybe I wanted to try japanese instead
20:31 mathw but it also detected chinese
20:31 masak phenny: "来自香港的的茉莉花茶"?
20:31 phenny masak: "Jasmine tea from Hong Kong" (zh-CN to en, translate.google.com)
20:31 masak ah.
20:31 mathw :)
20:31 masak er.
20:31 masak phenny: "来自香港的茉莉花茶"?
20:31 phenny masak: "Jasmine tea from Hong Kong" (zh-CN to en, translate.google.com)
20:31 mathw jnthn: I will admit defeat
20:31 mathw jnthn: I can't see anything wrong with that code
20:31 masak jnthn: me too
20:31 jnthn Clue: it's something to do with the proto
20:31 masak arwgh!
20:31 masak :/
20:32 masak subtle...
20:32 mathw ah, I don't have a full understanding of protos
20:32 masak mathw: $ vs \$
20:32 jnthn $ vs |$
20:32 masak oh!
20:32 mathw i don't actually know what the \$ in the multis does
20:32 jnthn The proto inliner clearly isn't strict enough.
20:33 jnthn It is fine to inline a proto that is going to bind whatever then delegate.
20:33 jnthn But that isn't the case with a proto that needs to enforce "just one arg"
20:33 jnthn With the optimizer gone, we actually call the proto.
20:34 jnthn And the default argument type is Any.
20:34 jnthn So it auto-threaded!
20:35 dalek rakudo/nom: 4eeffca | masak++ | docs/release_guide.pod:
20:35 dalek rakudo/nom: [docs/release_guide.pod] collapsed item numbering
20:35 dalek rakudo/nom:
20:35 dalek rakudo/nom: Removes a few parsing errors on Github++.
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4eeffcaab7
20:35 mathw hmm, unexpected autothreading probably isn't the best outcome
20:36 dalek rakudo/toqast: 2c09070 | jnthn++ | src/QPerl6/Actions.pm:
20:36 dalek rakudo/toqast: Fix nqp::op(...).
20:36 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/2c09070ad7
20:36 dalek rakudo/toqast: c4dd87c | jnthn++ | src/core/Bool.pm:
20:36 dalek rakudo/toqast: Fix some protos.
20:36 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/c4dd87c44e
20:36 dalek rakudo/toqast: 5f51d4f | jnthn++ | src/QPerl6/Actions.pm:
20:36 dalek rakudo/toqast: Pass along code ref blocks to the QAST::CompUnit.
20:36 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/5f51d4ff12
20:36 dalek rakudo/toqast: ad33769 | jnthn++ | tools/build/Makefile.in:
20:36 dalek rakudo/toqast: Switch over to using qperl6 to compile Test.pm.
20:36 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/ad33769fda
20:37 flussence TAP file for those failures I mentioned earlier, and one from a build done on that server box which passes an extra test for no apparent reason... argh - http://flussence.eu/~ant/perl6/etc/
20:37 jnthn So, with that lot Test.pm is compiled using QAST and we also win 153 more passing tests.
20:38 masak \o/
20:39 mathw woohoo
20:39 flussence is that nom + 153, or $last_git_push + 153?
20:39 jnthn flussence: Those 3 commits got toqast 153 tests further forward.
20:40 jnthn flussence: toqast doesn't yet pass everything that nom does.
20:42 MayDaniel joined #perl6
20:43 dalek roast: 32f5c4d | jnthn++ | S06-multi/proto.t:
20:43 dalek roast: Fix proto syntax.
20:43 dalek roast: review: https://github.com/perl6/roast/commit/32f5c4d819
20:43 dalek roast: f1cb2cc | jnthn++ | S06-routine-modifiers/lvalue-subroutines.t:
20:43 dalek roast: Merge branch 'master' of github.com:/perl6/roast
20:43 dalek roast: review: https://github.com/perl6/roast/commit/f1cb2cc8f8
20:44 masak yuck, a merge.
20:45 jnthn d'oh
20:46 mathw do you guys use a lot of rebase to avoid those?
20:46 masak it just happens naturally most of the time.
20:47 masak `git pull --rebase` is what I do.
20:47 masak *sigh*, and crypt is broken after I installed latest nom during the release process.
20:47 masak classical rookie mistake :(
20:47 * masak dives into the thing
20:48 mathw I was rebasing all the time at work, but then TortoiseGit decided that when it rebases it should lose all contributor data in the logs
20:48 mathw So I kind of stopped :)
20:48 masak that sounds broken.
20:48 mathw yes
20:48 mathw several releases since then, but I've not tried to get back into the habit yet
20:54 sirrobert masak: sent e-mail.  In the meantime, anyone know why this example code is messing up?
20:54 sirrobert r: class A { has Hash %!h; multi method f (Pair $p) { say $p; } }; my $n = (a => b => 'c'); my $m = a => b => 'c'; say $n.WHAT; say $m.WHAT; say A.new.f(a => b => 'c');
20:54 p6eval rakudo 1e872a: OUTPUT«Pair()␤Pair()␤Cannot call 'f'; none of these signatures match:␤:(A , Pair $p, Mu *%_)␤␤  in method f at src/gen/CORE.setting:323␤  in block <anon> at /tmp/eEZfzS8BLm:1␤␤»
20:54 masak sirrobert++ # bug report
20:55 sirrobert I *think* in function call context, the nested pair is getting treated as a ... hash?
20:55 sirrobert (the output of the first two "say" calls is "Pair()")
20:56 masak sirrobert: try quoting "a".
20:56 masak it gets treated as a named argument if you don't.
20:56 sirrobert oohh... tricky
20:56 sirrobert ok, thanks
20:56 masak np
21:06 vmspb Hello
21:06 vmspb I see that latest version NQP has big size — 112.4MB
21:06 vmspb Thus it must be?
21:06 flussence that can't be right
21:06 masak whoa.
21:06 * masak downloads and checks
21:06 flussence where'd you download it from?
21:07 vmspb https://github.com/perl6/nqp/downloads
21:07 sorear is there a core dump in there?
21:07 sorear who released that?
21:07 * masak
21:07 masak oh, it contains a Parrot...
21:08 flussence yow.
21:08 masak ok, deleted.
21:08 masak time to try again.
21:08 masak sorry about that.
21:08 masak vmspb++
21:09 sorear A fully built parrot?
21:10 masak ah, that's better.
21:10 masak probably a fully built parrot, yes.
21:11 * masak amends the nqp release guide instructions, too
21:11 masak vmspb: a smaller .tar.gz file is now up.
21:12 dalek nqp: 32380f9 | masak++ | docs/release_guide.pod:
21:12 dalek nqp: [docs/release_guide.pod] clean your nqp before tarring
21:12 dalek nqp: review: https://github.com/perl6/nqp/commit/32380f982e
21:13 dalek rakudo/toqast: 926e030 | jnthn++ | src/QPerl6/Optimizer.pm:
21:13 dalek rakudo/toqast: First pass at starting to updated the optimizer for QAST. Untested, just simple translation.
21:13 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/926e030f39
21:15 flussence I dunno what went wrong there, when I ran that command locally with a dirty nqp tree the tar.gz comes out at 900KB :(
21:16 masak flussence: might have been some other screwup on my end.
21:16 prettyrobots joined #perl6
21:16 masak not your fault.
21:19 lue hello world o/
21:19 masak style advice: when to prefer \h+ and when to prefer <.ws>?
21:19 lue .oO( [backlogging] (my [sigil]) is incredibly humorous! )
21:19 flussence doesn't <ws> do different things depending on what's either side of it?
21:19 masak lue: yeah :)
21:20 masak flussence: it does.
21:20 masak that probably answers my question. thanks.
21:20 lue and doesn't <.ws> == \s ? (or am I misremembering?)
21:21 * lue just had an idea on avoiding generating a CORE.setting.pir on his own machine. Testing...
21:21 Tene perl6: say "foo.bar" ~~ m/(<.ws>.)/
21:21 p6eval niecza v19-13-g442e075: OUTPUT«#<match from(0) to(1) text(f) pos([#<match from(0) to(1) text(f) pos([].list) named({}.hash)>].list) named({}.hash)>␤»
21:21 p6eval ..rakudo 4eeffc: OUTPUT«q[f]␤ 0 => q[f]␤␤»
21:21 sorear lue: <.ws> is <!ww> \s* by default
21:21 flussence S05:2009
21:23 lue Well, I suppose I should've said "doesn't <.ws> use \s instead of \h?" (but nice to know what the default looks like in simpler terms)
21:23 bruges_ joined #perl6
21:27 Pleiades` joined #perl6
21:27 thou masak: is it still helpful? golfing:  https://gist.github.com/3146951
21:29 masak thou: nice.
21:29 masak I see you have started golfing it :)
21:29 thou masak, changing sub ($self) to method ()  makes it work
21:31 kurahaupo joined #perl6
21:32 masak well, making it work means you're not golfing the error...
21:32 masak still interesting, though.
21:33 thou right, just a side note
21:33 thou removing the die(), it still segfaults
21:34 thou ok, i think this is about as small as i can make it:  https://gist.github.com/3146951
21:35 masak ooh.
21:35 masak FETCH bit really necessary?
21:35 thou yeah
21:35 cognominal_ joined #perl6
21:35 masak then that's worth a rakudobug. thou++
21:35 thou otherwise i get "invoke() not implemented in class 'Undef'"
21:41 masak thou: will you submit it?
21:41 thou trying to
21:41 thou can't find the link on rt.perl.org
21:42 thou i just logged in via bitcard
21:42 thou but no sign of a "create ticket"
21:42 masak rakudobug@perl.org
21:42 masak email.
21:43 thou roger. been a while...
21:43 masak :)
21:45 tadzik masak: thanks, I'll keep that in mind
21:54 sorear .
22:04 adam7504 joined #perl6
22:04 sergot What is the fastest way to count the distance[is this good word for this case?] (in days) from some date to now, when the "some date" is given in dd-mm-yyyy.
22:04 sergot :)
22:05 masak r: say Date.new
22:05 p6eval rakudo 4eeffc: OUTPUT«2012-12-24␤»
22:05 masak r: say Date.new + 4
22:05 p6eval rakudo 4eeffc: OUTPUT«2012-12-28␤»
22:05 masak r: say (Date.new + 5) - Date.new
22:05 p6eval rakudo 4eeffc: OUTPUT«5␤»
22:05 masak sergot: good enough?
22:05 diakopter well, "some date" needs parsed
22:07 masak r: my $date = "15-09-1981"; $date ~~ / (\d\d)'-'(\d\d)'-'(\d\d\d\d) /; my ($day, $month, $year) = $0, $1, $2; say Date.new($year, $month, $day)
22:07 p6eval rakudo 4eeffc: OUTPUT«Type check failed in assignment to '$!year'; expected 'Int' but got 'Match'␤  in block <anon> at src/gen/CORE.setting:636␤  in method BUILDALL at src/gen/CORE.setting:620␤  in method bless at src/gen/CORE.setting:610␤  in method new at src/gen/CORE.setting:10777␤  …
22:07 sergot masak: I got a date from the past, e.g. 01-02-2012 and I want to count the distance from this date to now.
22:07 masak r: my $date = "15-09-1981"; $date ~~ / (\d\d)'-'(\d\d)'-'(\d\d\d\d) /; my ($day, $month, $year) = +$0, +$1, +$2; say Date.new($year, $month, $day)
22:07 p6eval rakudo 4eeffc: OUTPUT«1981-09-15␤»
22:07 masak r: my $date = "15-09-1981"; $date ~~ / (\d\d)'-'(\d\d)'-'(\d\d\d\d) /; my ($day, $month, $year) = +$0, +$1, +$2; say Date.new - Date.new($year, $month, $day)
22:07 p6eval rakudo 4eeffc: OUTPUT«11423␤»
22:07 masak ok, so that's how old I am in days.
22:08 masak sorear: good enough?
22:08 sergot That's what I needed! masak++ \o/
22:08 masak I literally solve your problem in a minute.
22:08 masak while blogging! lol! \o/ http://strangelyconsistent.org/blog/july-19-filling-your-car-with-leaves
22:09 masak r: say today
22:09 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&today' called (line 1)␤»
22:09 sergot Oh, and I forgot - masak++ for your blogging in July. :)
22:11 diakopter istr carrying leaves in a car long ago
22:14 masak sergot: thanks :)
22:16 * [Coke] belatedly reports all tests passing in rakudo for the release manager. ;)
22:18 masak \o/
22:18 masak [Coke]: found the encoding issue?
22:19 sorear masak: oh, you're older than I thought.
22:20 masak I'll take that as a compliment, young whippersnapper. ;)
22:20 masak these wrinkles represent *experience*.
22:22 sergot r: say Date.new;
22:22 p6eval rakudo 4eeffc: OUTPUT«2012-12-24␤»
22:23 sergot hm? :)
22:23 masak :)
22:23 masak oh, so that's my age in days next Christmas, then.
22:23 sergot It's 2012-07-19 now! :)
22:23 masak r: say Date.today
22:23 p6eval rakudo 4eeffc: OUTPUT«2012-07-20␤»
22:23 masak no, we already passed midnight.
22:23 masak at least in .nl, where p6eval is.
22:23 masak p6eval is still on feather, no?
22:25 sergot masak: right, I didn't notice that. :)
22:25 sergot \o/
22:27 * diakopter ponders upgrading to Windows 8 preview
22:27 sergot http://filip.sergot.pl/p6/modules/index.html generated using p6! \o/
22:27 masak \o/
22:27 masak very nice.
22:28 sergot TODO: alphabetical order :)
22:28 diakopter a column for "works in X" for each implementation would be super
22:28 diakopter "works in latest X", I mean.
22:30 diakopter since I'm sure quite a few don't work anymore, and many might work on various implementations only...
22:30 moukeddar joined #perl6
22:30 [Coke] masak: no. that's from running it in my shell on feather, not from cron on feather.
22:31 diakopter or are they *all* rakudo-only?
22:31 masak quite possibly.
22:31 [Coke] masak++ is 10 years younger than I.
22:32 diakopter well, "works in latest rakudo" would be quite helpful at least
22:32 sorear masak++ is 9.5 years older than I.
22:34 masak sorear: and you already know quite a bit more math than I do.
22:34 sivoais joined #perl6
22:34 masak makes me feel like I lost a few years somewhere ;)
22:36 [Coke] masak: get off my lawn.
22:38 masak ;)
22:39 Seganku joined #perl6
22:42 * [Coke] manages to hang his IDE at work. blah.
22:46 sergot good night o/
22:50 timotimo "sub b([]) { say "empty list" }" -> "sub b() { ... }"    -    "sub c() { say "empty argument list" }" -> "sub c() { ... }"
22:51 timotimo interesting choice to render [] as "" in argument lists :)
22:52 timotimo rn: sub a([], $a) {}; say &a
22:52 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/zRVoMdFNTO line 1:â�¤------> [32msub a([], [33mâ��[31m$a) {}; say &a[0mâ�¤â�¤sub a(, Any $a) { ... }â�¤Â»
22:52 p6eval ..rakudo 4eeffc: OUTPUT«sub a(, $a) { ... }␤»
22:59 benabik rn: say []
22:59 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«␤»
22:59 benabik rn: say [].perl
22:59 p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«[]␤»
22:59 benabik I guess it's because Sub.gist uses $arg.gist
23:01 moukeddar left #perl6
23:09 * jnthn has blaught: http://6guts.wordpress.com/2012/07/20/the-rakudo-move-to-qast-progressing-nicely/
23:11 masak jnthn++ \o/
23:12 masak so, we're working our way... up to 11? :P
23:13 jnthn ;-)
23:13 jnthn Dang, caught :P
23:16 jnthn 'night, #perl6
23:19 whiteknight joined #perl6
23:32 timotimo i still keep getting confused by flattening and nonflattening things
23:33 timotimo trying my hand at the 99 haskell problems (which are probably the exact same as the 99 lisp problems) and i can't get my rle to work
23:33 timotimo i have a function to put consecutive elements into sublists, like [[1, 1, 1], [2, 2], [3, 3, 3]], but i can't iterate over the sublists :|
23:35 Tene why not?
23:35 sporous joined #perl6
23:42 masak r: sub group(@l) { return g [], @l; multi g(@done, []) { @done }; multi g(@done, @l where { @l[0] === @done[*-1][0] }) { @done[*-1].push(@l.shift); g @done, @l }; multi g(@done, @l) { @done.push([@l.shift]); g @done, @l } }; say (group [1,1,1,2,2,3,3,3]).perl
23:42 p6eval rakudo 4eeffc: OUTPUT«Array.new([1, 1, 1], [2, 2], [3, 3, 3])␤»
23:42 masak \o/
23:42 masak a bit too mutating for my taste. but it works.
23:43 timotimo mine is a horrible mess of imperative programming
23:44 timotimo sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }
23:44 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; collate-sums([1,1,1,2,2,3,3,3]).perl
23:44 p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&collate-sums' called (line 1)␤»
23:44 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; collate-same([1,1,1,2,2,3,3,3]).perl
23:44 p6eval rakudo 4eeffc:  ( no output )
23:44 masak 'say'
23:44 timotimo i'm dumb.
23:44 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; collate-same([1,1,1,2,2,3,3,3]).perl.say
23:44 p6eval rakudo 4eeffc: OUTPUT«(1, 1, 1, 2, 2, 3, 3, 3).list␤»
23:44 timotimo uh, that was different on my comp
23:45 timotimo yeah, my test case was wrong
23:45 timotimo it actually flattened the list before comparing the result of my function, so it worked
23:45 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; collate-same([1,1,1,2,2,3,3,3]).lol.perl
23:45 p6eval rakudo 4eeffc:  ( no output )
23:45 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; say collate-same([1,1,1,2,2,3,3,3]).lol.perl
23:45 p6eval rakudo 4eeffc: OUTPUT«LoL.new(ListIter.new())␤»
23:45 timotimo well, that's helpful
23:47 Coleoid joined #perl6
23:50 timotimo r: sub collate-same(@a) { my $iv; gather { while +@a { $iv = @a[0]; take gather { take @a.shift while (+@a and @a[0] == $iv) } } } }; say +collate-same([1,1,1,2,2,3,3,3])
23:50 p6eval rakudo 4eeffc: OUTPUT«8␤»
23:50 timotimo r: say +[[1, 2, 3, 4, 5], [1, 2], [1]]
23:50 p6eval rakudo 4eeffc: OUTPUT«3␤»
23:50 timotimo so i'm definitely not doing it right
23:51 masak any occurrence of 'ListIter.new()' in .perl output is to be considered a bug.
23:51 masak anyway. 'night, #perl6
23:52 timotimo good night masak
23:54 timotimo how *can* i gather a list of lists together?
23:55 timotimo r: say gather for ^5 { take 1 xx $_ }
23:55 p6eval rakudo 4eeffc: OUTPUT«1 1 1 1 1 1 1 1 1 1␤»
23:55 timotimo r: say gather for ^5 { take $_ xx $_ }
23:55 p6eval rakudo 4eeffc: OUTPUT«1 2 2 3 3 3 4 4 4 4␤»
23:55 timotimo r: say (gather for ^5 { take $_ xx $_ }).perl
23:55 p6eval rakudo 4eeffc: OUTPUT«(1, 2, 2, 3, 3, 3, 4, 4, 4, 4).list␤»
23:55 timotimo r: say (gather for ^5 { take [$_ xx $_] }).lol.perl
23:55 p6eval rakudo 4eeffc: OUTPUT«LoL.new(ListIter.new())␤»
23:55 timotimo r: say +(gather for ^5 { take [$_ xx $_] })
23:55 p6eval rakudo 4eeffc: OUTPUT«5␤»
23:56 timotimo that seems right
23:56 timotimo r: say (gather for ^5 { take [$_ xx $_] }).lol[0]
23:56 p6eval rakudo 4eeffc: OUTPUT«ListIter.new()␤»
23:56 timotimo r: say (gather for ^5 { take [$_ xx $_] }).lol[0].flat
23:56 p6eval rakudo 4eeffc: OUTPUT« 1 2 2 3 3 3 4 4 4 4␤»
23:56 timotimo :\
23:57 Tene timotimo: that looks right to me...
23:57 Tene what's your desired output?
23:57 Tene r: say (gather for ^5 { take [$_ xx $_] }).gist
23:57 p6eval rakudo 4eeffc: OUTPUT« 1 2 2 3 3 3 4 4 4 4␤»
23:57 Tene r: say (gather for ^5 { take [$_ xx $_] }).perl
23:57 p6eval rakudo 4eeffc: OUTPUT«([], [1], [2, 2], [3, 3, 3], [4, 4, 4, 4]).list␤»
23:57 quietfanatic joined #perl6
23:58 timotimo r: say (gather for ^5 { take [$_ xx $_] })[0].perl
23:58 p6eval rakudo 4eeffc: OUTPUT«[]␤»
23:58 timotimo mhm. wonder what i did wrong :)
23:58 Tene You did something wrong?
23:58 quietfanatic ^5 is 0..4
23:59 quietfanatic 0 xx 0 is []
23:59 quietfanatic Excuse me, [0 xx 0] is []
23:59 timotimo sure, that's no problem

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

Perl 6 | Reference Documentation | Rakudo