»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
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:00
00:01 tokuhiro_ joined
diakopter define "recently" 00:02
[Coke] gives up on ports ghc on os x and tries the "haskell platform" instead. 00:04
raiph i'm thinking in last 2 months, but i'm not sure 00:05
00:06 tokuhiro_ left
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
I was going to get 7.4.1 into macports and then things went pear shaped 00:07
00:08 sporous left 00:10 preflex left, mauke left 00:12 tokuhiro_ joined 00:14 prettyrobots left 00:27 sporous joined, mauke joined, preflex joined 00:35 Vlavv_ left 00:39 atrodo left, tombom joined 00:44 xinming left, xinming_ joined 00:51 prettyrobots joined
[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:52
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
er, s/desktop/laptop/
01:00 scott___ joined 01:15 spider-mario left 01:23 cognominal left 01:27 Guest78123 left 01:32 cognominal joined 01:36 zhutingting left
[Coke] needs haskell help 01:40
01:49 Chillance joined
[Coke] rn: 3.WHAT.say 02:05
p6eval rakudo 1fe39c, niecza v19-13-g442e075: OUTPUT«Int()␤»
02:09 mtk joined 02:11 am0c_ left 02:14 orafu left 02:15 orafu joined 02:16 am0c_ joined 02:29 Vlavv joined, lue left 02:35 raiph left 02:36 crab2313 joined 02:39 Patterner left 02:41 Psyche^ joined, Psyche^ is now known as Patterner 02:48 tombom left 03:06 tokuhiro_ left, tokuhiro_ joined 03:10 kaare_ joined 03:11 tokuhiro_ left 03:13 crab2313 left
[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␤»
[Coke] how can I trigger a rebuild of pugs? 03:17
03:17 quietfanatic joined
quietfanatic [Coke]: Is it too late for me to offer Haskell help in response to earlier request? 03:19
03:30 lue joined 03:32 jaldhar joined
[Coke] yup. unfudging based on my fix. 03:35
next time.
03:36 adu joined 03:42 prettyrobots left 03:44 prettyrobots joined 03:56 prettyrobots left
quietfanatic I'm probably doing something wrong, but attempting to install Pugs through Cabal gives me "/usr/bin/ld: cannot find -lperl" 03:58
and my libperl5.14 is already the newest version. 03:59
trying after an ln 04:01
nope, still no go 04:02
au quietfanatic: apt-get install libperl-dev 04:09
(or something equivalent on your platform)
04:11 Chillance left
au quietfanatic: and thank you for offering Haskell help! \👷/ 04:13
04:17 crab2313 joined
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:18
04:19 telex left, am0c_ left
[Coke] au: hio 04:21
04:21 Seganku left
au 🐼/ 04:22
04:23 crab2313 left 04:24 telex joined 04:29 zhutingting joined 04:34 telex left
dalek gs.hs: 28fc42f | coke++ | t/update_passing_test_data.pl:
copy au++'s ISO fix from t/fudgeandrun
04:35
gs.hs: 5b232c1 | coke++ | Pugs/src/Pugs/Pretty.hs:
Update .WHAT output to match current spec.

  ::Int -> Int()
04:38 telex joined
dalek gs.hs: e7b0685 | coke++ | t/spectest.data:
can't locate lib.pm
04:43
[Coke] pugs: say 9206/22932 04:44
p6eval pugs: OUTPUT«0.4014477585906157334728763300191871620443␤»
[Coke] au: I think #19 or #15 will each get us quite a few tests. 04:45
au agreed 04:47
#15 will also exercise the ./ext/Test/lib/Test.pm => ./cbits/Test_pm.c packing code
which (iirc) was only in Mu but not picked up to Pugs.hs 04:48
it'd be nice of course to rewrite it in perl6, or something, if someone has a cycle for it :)
au goes adding ^^^ to the ticket as a comment 04:49
04:49 zby_home_ joined 04:53 am0c_ joined
[Coke] mmm. moving more stuff into p6 would definitely make it easier to hack on. 04:56
quietfanatic au: ah, thanks 05:01
Although I know some Haskell, I am not familiar with Pugs internals and have never submitted code to a collaborative project before. 05:02
05:02 daniel-s__ is now known as daniel-s
quietfanatic The latter is more of a blocker to my participation than the former, probably. 05:03
au quietfanatic: one good place to start is github.com/perl6/Pugs.hs/blob/master/HACKING 05:10
the entire paragraph about 7.2.1 is perhaps no longer current
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.
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:12
au hugme: add quietfanatic to perl6 05:13
hugme au: You need to register with freenode first
au o_O 05:14
05:14 alvis left
quietfanatic you need to, or I need to? 05:14
au looking at github.com/moritz/hugme/blob/maste...me.pl#L226 seems I need to, but I already am
05:15 prettyrobots joined
au before someone steps in to help, I guess you can simply click Edit on the GitHub web UI for instafork 05:16
quietfanatic makes sense 05:17
au (which creates an insta-pull-request for the HACKING file, for insta-gratification :))
quietfanatic sweet 05:26
compiling pugs from github Just Works with Ubuntu-provided GHC 7.4.1
05:27 am0c_ left
quietfanatic Next up: updating HACKING 05:27
au++ by the way
Or maybe INSTALL 05:28
That's a task for another day. Cheers #perl6 05:29
[Coke] cheers 05:34
dalek ast: 16dd063 | coke++ | / (14 files):
pugs fudge
05:39
05:51 am0c_ joined 05:57 am0c_ left 06:03 birdwindupbird joined 06:06 wtw joined 06:11 nodmonkey joined 06:12 am0c_ joined
moritz \o 06:16
06:25 zby_home_ left 06:35 quietfanatic left 06:37 nodmonkey left 06:45 hoelzro|away is now known as hoelzro
hoelzro I have a standalone example of the crashing behavior I keep seeing with DBIish 06:48
hoelz.ro/files/perl6-crash.tar.bz2
it's a seg fault this time, though, and not an assertion failure
also, for some reason, the crash doesn't happen on OS X 06:49
06:57 yves_ left
moritz hoelzro++ # putting files on an ipv6-enabled web server 06:57
hoelzro =) 06:58
moritz make: Warning: File `Makefile' has modification time 2.2e+04 s in the future
hoelzro: doesn't crash here either 07:00
07:00 yves_ joined
moritz hoelzro: linux amd64 with newest rakudo + nqp from git 07:00
hoelzro moritz: what distro of Linux?
moritz hoelzro: debian testing
hoelzro hmm
I should mention I'm on rakudo-star 2016.06
I'll try with latest Rakudo
diakopter 2016!
hoelzro really wants a perlbrew for Perl6
er, 2012 07:01
diakopter that's, like, after 6.0.0
moritz the says "the future is already here, just unevenly distributed" gets a whole new meaning :-)
07:03 zhutingting left 07:05 GlitchMr joined 07:06 kaleem joined 07:13 PZt left
moritz masak++ # strangelyconsistent.org/blog/talkin...-14yo-self 07:21
hoelzro moritz: what version of Parrot are you using, btw
moritz hoelzro: RELEASE_4_5_0-7-g66923d2 07:23
hoelzro ok 07:25
I'll try again later with latest stuff, I guess
moritz today is rakudo release day, right?
07:26 mucker joined
hoelzro jumps up and down 07:26
07:28 aloha left 07:29 aloha joined 07:32 kaleem left 07:38 SamuraiJack joined 07:39 kresike joined
kresike hello all you happy perl6 people 07:39
dalek kudo/nom: cfe8e56 | moritz++ | docs/ChangeLog:
brush up ChangeLog
07:40
07:43 zhutingting joined 07:48 kaleem joined 07:50 fhelmberger joined
GlitchMr Should Perl 6 installation return lots of gcc warnings? 07:58
(rakudo)
07:59 Bzek left
moritz depends on what you mean by "should" 08:06
I'd certainly prefer a cleaner build
and would accept patches that clean up the warnings
GlitchMr Fixing things like multidispatch.c:671:21: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] would be easy, at least I think so 08:07
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)
diakopter people forget 08:09
moritz I think we should compiler without -Wparentheses
GlitchMr glitchmr@strawberry:~/git/panda$ ../../rakudo/bin/perl6 bootstrap.pl
sh: 1: perl6: not found
fun
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
GlitchMr why?
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
GlitchMr: I'm pretty sure tadzik++ would accept patches
GlitchMr shell "perl6 bin/panda install File::Tools JSON::Tiny Test::Mock"; 08:12
Yeah..
moritz yeah!
GlitchMr What if my interpreter is "rakudo" or something
moritz then your patches are very welcome 08:13
GlitchMr Also, just wondering, but does shell support multiple arguments just like system in Perl 5? 08:14
08:15 am0c_ left
GlitchMr Oh, I see, it's run then 08:15
Except run() isn't implemented
Fun
It reminds me PHP for some reason 08:16
08:18 am0c_ joined 08:19 sergot joined
sergot hello \o/ 08:19
08:19 yves_ left
tadzik well, so we need perl6brew which will switch perl6 to and from niecza :) 08:25
and pugs 08:26
hello sergot
mucker hi guys. is there an easy way to download the spec tests ?? 08:29
tadzik yes 08:31
git clone git://github.com/perl6/roast.git
08:31 kurahaupo left
mucker thnkx ! 08:32
tadzik or from github.com/perl6/roast/downloads
you're welcome
mucker one thing I have always like about perl* is, tests are like extra documentation :) 08:33
GlitchMr But github.com/perl6/roast/downloads doesn't have any files 08:37
08:38 mucker left
GlitchMr t/panda/fetcher.t .... fatal: repository 't/' does not exist 08:38
Should it be this way? 08:39
moritz GlitchMr: github.com/tadzik/panda/issues/4 08:41
tadzik yeah
maybe I should just remove that test 08:42
GlitchMr I guess that rakudo doesn't support "is export" 08:45
moritz GlitchMr: don't guess 08:46
tadzik it does
GlitchMr ===SORRY!===
Missing block
at Addslashes.pm:2
Weird...
moritz then you did something wrong.
GlitchMr This is what I get for not testing code at all
This is my code: github.com/GlitchMr/perl6-Acme-Add...slashes.pm 08:47
moritz the traits come after the signature
GlitchMr Oh, ok
I guess that "no ICU lib loaded" is connected to "\c[COMBINING LONG SOLIDUS OVERLAY]" 08:48
Is it possible to install ICU lib? Or should I just use normal \x escapes
moritz if it weren't possible to install ICU lib, we wouldn't rely on it. 08:49
GlitchMr How can I install it? I'm at Kubuntu machine 08:50
moritz please see rakudo's README or INSTALL files
GlitchMr ok
08:51 prettyrobots left
GlitchMr That's 10MB, but I guess that ICU contains Unicode database and things like it, so ok 08:51
I guess I have to compile rakudo again?
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]
heh
So much for C++ compatibility 08:53
(not like it matters)
en.wikipedia.org/wiki/Compatibilit...nd_C%2B%2B 08:55
08:55 am0c_ left 08:56 am0c_ joined
GlitchMr t/01-sanity/99-test-basic.t ........ ok 08:58
Why this test has 99 as number?
09:00 dakkar joined
diakopter to make sure it always runs near the end? 09:01
(or maybe it refers to the 99 problems...)
09:08 bbkr1 joined 09:09 Coleoid joined 09:13 am0c_ left
GlitchMr This code doesn't work 09:26
$string.subst(/ (.) /, { "$0\c[COMBINING LONG SOLIDUS OVERLAY]" }, :g);
But that probably:
#?rakudo 3 skip '$/ not involved in .subst yet (unspecced?)'
I guess I will have to use normal s/// instead
masak good morrow, #perl6. 09:30
moritz good nearly-noon, masak
bbkr1 o/
masak aye, mid-antenoon. :) 09:31
diakopter whines at this 1220-line C file that is segfaulting.
moritz valgrind! valgrind!
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.
GlitchMr Oh, right... I just noticed it mixes hash and array
au because of named captures? 09:34
moritz let's name it $@%/, because it has aspects of a scalar, an array and a hash 09:35
GlitchMr ok, I guess that $/ is better then 09:36
Timbus now you're just swearing
masak .oO( too bad Match isn't Callable, too... )
GlitchMr $@%&/ would be nice
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
Because it was callable, it has to return "function" on typeof
After some time, they got bug report about regexpes being "function"s.
Fix: Make typeof return "object" for RegExp as special case
Good thing that today RegExpes aren't callable at all 09:39
github.com/GlitchMr/perl6-Acme-Add...e6afe1dfec 09:40
Workarounds :P
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:␤------> sub addslashes is export (Str ⏏$string) { }␤␤»
tadzik huh
GlitchMr I couldn't manage to compile Rakudo on Windows, so I just made it work on Niecza
But now, I have real Linux machine :) 09:42
tadzik yay 09:44
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̸.̸.̸.̸
Just wondering, why parenthesis are required when calling method with any arguments 09:48
Ruby is happy without parenthesis 09:49
moritz because it makes argumentless method calls more convenient
GlitchMr What's wrong with making $a.b.c mean what it means actually and $a.b .c mean $a.b($_.c) 09:50
moritz predictive parsing 09:51
tadzik people are upset already about whitespace sensitivity
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
which means that you can't write $c.re + $c.im anymore
GlitchMr Hmmm... yeah
moritz and other very neat stuff stops working too
GlitchMr re($c) + im $c
Well, whatever, it's not like you commonly call methods with arguments 09:53
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
everything that looks like an attribute access ($.foo)
is actually a method call with an argument 09:55
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
best and shortest explanation of that I've seen to date.
moritz++
moritz bows
GlitchMr Timbus: O_o 09:57
masak somethings about it bugs me, though.
GlitchMr I through that Ruby grammar uses whitespace for that
masak how come Java doesn't run into this problem?
moritz masak: does Java do predictive parsing at all?
masak in Java, you can do object.foo␤.bar
moritz: no, and that's probably it. 09:58
moritz does java allow .bar without a preceeding term?
masak if by that you mean "zero-lookahead", fsvo "zero".
moritz: oh! no, it doesn't. :)
GlitchMr Ok, Ruby does that, but I'm sure that coffeescript.org/ doesn't do that
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
moritz GlitchMr: are you aware of the colon syntax for passing arguments to methods?
GlitchMr Yes
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
masak "earn"?
tadzik it looks good
moritz masak: I never said it's obvious :-)
masak you can put arguments there without parens! :)
GlitchMr What "$a.method: 2" gives me compared to "$a.method(2)"
moritz no parens
GlitchMr But I have colon
masak indeed you do.
moritz avoiding parens is what we talk about all this time, no?
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
GlitchMr I meant, eval
After all I want to avoid parenthesis
moritz then use the colon :-) 10:02
masak at least one of us is being difficult in this conversation.
what are we trying to achieve?
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:03
GlitchMr Actually, I think that colon is good enough 10:04
10:04 mucker joined
masak doesn't know whether to apologize or be contented with killing the discussion 10:08
s/ze/ze for/
10:10 daxim joined 10:13 scott___ left
jnthn afternoon o/ 10:31
masak jnthn! \o/ 10:32
tadzik not sure what's better :) 10:33
10:35 MayDaniel joined 10:38 Woodi joined, mtk left
masak good, because you don't get to choose, you get both :) 10:38
tadzik awesome!
10:38 kurahaupo joined 10:39 adu left
moritz extra value pack: jnthn + afternoon! :-) 10:42
masak buy now! limited quantities only! 10:43
tadzik how possibly could you get something better than that
jnthn I dunno, I'd say jnthn + morning is even more limited :P
tadzik but it
damn you, Surprise Enter
anything containing morning is naturally less desired :) 10:44
masak jnthn: jnthn + morning is limited in terms of supply, but also in demand. :)
dang, tadzik beat me to it :)
tadzik s/[\s^\n]+/ /g -- Perl 5 regex, does it make sense to anybody? 10:48
I'm wondering if it's a typo, or just something really clever that I don't understand
or maybe something simple that I don't understand :) 10:49
flussence [whitespace or "^" or newline]+
au the intention was probably [^\S\n] 10:50
(whitespace minus newline)
tadzik au: you're probably right 10:51
flussence: yeah, that would be it, except that it kind of surprises me in this context 10:53
flussence wouldn't whitespace minus newline just be /\s+/ though? you're right, it doesn't make a whole lot of sense... 10:55
moritz \h+ 10:56
horizontal whitespace
nr: say so "\n" ~~ /\s/ 10:57
p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«True␤»
moritz nr: say so "\n" ~~ /\h/
p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«False␤»
11:07 nodmonkey joined 11:10 simplx left 11:30 mtk joined 11:32 JimmyZ joined 11:40 am0c_ joined 11:46 skids left 11:57 spider-mario joined
flussence eval: say "\n" ~~ /\s/ 11:57
buubot_backup flussence: ERROR: syntax error at (eval 20) line 1, near "say "\n""
flussence eval: use 5.012; say "\n" ~~ /\s/
buubot_backup flussence: 1 1
flussence eval: use 5.012; say "\n" ~~ /\h/ 11:58
buubot_backup flussence: 1
flussence oh, right
12:12 Coleoid left 12:13 adu joined 12:21 kurahaupo left
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␤␤»
moritz r: say (*.ord - 55).perl 12:29
p6eval rakudo cfe8e5: OUTPUT«WhateverCode.new()␤»
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␤»
GlitchMr I have feeling it was interpreted as (*.ord - 55, 'A') ... 'Z' 12:31
JimmyZ rn: say map *.ord - 55, 'A' .. 'Z'
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␤»
JimmyZ is not sure 12:32
r: say map (*.ord - 55, 'A') ... 'Z'
p6eval rakudo cfe8e5: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(&code, *@values)␤␤ in block <anon> at /tmp/FSzgUm3wAW:1␤␤»
GlitchMr ... has lower precedence than ,
doc.perl6.org/language/operators 12:33
flussence r: say ('A'..'Z')».ord »-» 55
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␤»
jnthn ... and .. have different precednce levels.
list infix vs structural infix
JimmyZ thought they are the same precednce levels 12:36
GlitchMr perl6: print ::.perl 12:38
p6eval niecza v19-13-g442e075: OUTPUT«PseudoStash.new(...)»
..rakudo cfe8e5: OUTPUT«PseudoStash.new("\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, )»
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␤»
..niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Cannot reduce with .. because structural infix operators are diffy and not chaining at /tmp/8KeN0HVyVM line 1:␤------> [[ [..]⏏ <A Z>]».ord»-»55].say␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/n…
flussence rn: [['A'..'Z']».ord»-»55].say
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␤»
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"␤»
..niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Unable to parse bracketed infix at /tmp/CKNLWNfllf line 1:␤------> say [[⏏[+] 1]].perl␤Couldn't find final ']'; gave up at /tmp/CKNLWNfllf line 1:␤------> say [[[+]⏏ 1]].perl␤␤Parse fail…
flussence rn: say [ [[+] 1]].perl 12:41
p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«[[1]]␤»
flussence I'm not sure what the difference is there.
JimmyZ rn: ['A'..'Z']».ord»-»55.».say 12:44
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Confused␤at /tmp/_dB77_nQxs:1␤»
..niecza v19-13-g442e075: OUTPUT«55␤»
12:47 MayDaniel left
[Coke] diakopter: why wait on perlbrew when we already have at /least/ 2 versions you might want to play with simultaneously? 12:48
... and I see this was covered. 12:49
12:51 yves joined
[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:52 adu left 12:54 PacoAir joined
JimmyZ n: ['A'..'Z']».ord»-».55.».say 12:59
p6eval niecza v19-13-g442e075: OUTPUT«0.55␤»
13:06 BinGOs left 13:10 tokuhiro_ joined 13:14 adu joined 13:22 BinGOs joined 13:25 bluescreen10 joined 13:29 adu left 13:35 skids joined 13:38 zhutingting left
moritz www.muppetlabs.com/~breadbox/softwa...ckers.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
tadzik not really 13:43
you can call fork through NativeCall though
13:43 sergot left 13:44 tokuhiro_ left, tokuhiro_ joined
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␤»
colomon n: say ['A'..'Z']>>.ord>>->>55
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤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:␤------> say ['A'..'Z']>>.ord>>->⏏>55␤␤Parse failed␤␤»…
colomon n: say ['A'..'Z']>>.ord>>[-]>>55
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Prefix requires an argument at /tmp/ObRBk_3A_k line 1:␤------> say ['A'..'Z']>>.ord>>[-⏏]>>55␤␤Parse failed␤␤»
colomon n: say ['A'..'Z']>>.ord >>->> 55
GlitchMr perl6: say ['A'..'Z']».ord»-»55
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␤»
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␤»
colomon n: ['A'..'Z']>>.ord >>->> 55 >>.say 13:47
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Confused at /tmp/_AcfyQT2VA line 1:␤------> ['A'..'Z']>>.ord >>->> 55 ⏏>>.say␤␤Parse failed␤␤»
colomon n: (['A'..'Z']>>.ord >>->> 55) >>.say
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Confused at /tmp/RRdxr56Z8U line 1:␤------> (['A'..'Z']>>.ord >>->> 55) ⏏>>.say␤␤Parse failed␤␤»
kresike bye all
13:47 kresike left
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␤» 13:48
13:48 tokuhiro_ left 13:52 kaleem left 14:08 sergot joined 14:09 erkan left 14:13 erkan joined 14:17 kaleem joined
arnsholt The best incentive to improve error messages: Debugging code with duplicate error messages 14:17
moritz agreed :-) 14:20
14:23 bluescreen10 left 14:28 yves is now known as yvesago
GlitchMr --optimize=[level] use the given level of optimization (0..3) 14:29
What is that optimization?
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 ;)
GlitchMr Acme::Addslashes seems to work on level 3
jnthn We compile the setting with --optimize=3 because the spectests cover the stuff in the setting pretty well :)
GlitchMr Just wondering, how to test Perl 6 modules? 14:33
tadzik like, massively? 14:34
GlitchMr I know that I can use prove, but when I do it lib doesn't appear in INC
tadzik ufo && make test
that's the best part
GlitchMr ufo?
tadzik you can also do magic like PERL6LIB=blib/lib:$PERL6LIB prove -e perl6 t/
github.com/masak/ufo
moritz just updated rakudo.org/documentation/ 14:35
14:36 zhutingting joined
GlitchMr I'm changing ENV PERL6LIB but @*INC doesn't see change 14:37
It's probably just me
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
moritz if it's @+INC you want to change, change @*INC
s/\+/*/
14:39 wtw left 14:40 prettyrobots joined
arnsholt So, yeah: t/08-callbacks.t ....... ok 14:40
It's just a simple void(void) callback, but yay!
jnthn wow!
\o/
arnsholt++
arnsholt Let's see what happens when I add more tests =)
GlitchMr Oh, I managed to do it 14:41
jnthn BOOM SIGSEGV!
;)
tadzik coool 14:42
arnsholt Yeah. Returning stuff back to C might be fun
tadzik arnsholt++
GlitchMr Now my prove6 script works properly
env PERL6LIB=lib prove -e perl6 -r t/
It's possibly to simple, but whatever
tadzik GlitchMr: you may old PERL6LIB in new PERL6LIB
GlitchMr PERL6LIB is empty 14:43
tadzik fine then
GlitchMr Too late for semicolon form of $*PKGDECL definition at line 14, near "has $.meta"
That could be fun
masak arnsholt++
tadzik now, who's the first to write Gtk bindings? :) 14:44
s/write/start/
JimmyZ qt! 14:45
14:46 PZt joined
arnsholt tadzik: I've been thinking about it =) 14:47
But first I have to get this thing working 14:48
I got a segfault with a simple int argument, so something's obviously wrong =)
sirrobert is there a shorter/better way than this to create a random, 10-character string? ('a'..'z').roll(10)
GlitchMr I've feeling it complains about this:
tadzik better would be to actually create a string :)
GlitchMr class A {...}; class A; has $*something;
tadzik r: ('a'..'z').roll(10).perl
p6eval rakudo cfe8e5: ( no output )
tadzik r: ('a'..'z').roll(10).perl.say
p6eval rakudo cfe8e5: OUTPUT«("v", "n", "h", "s", "k", "q", "t", "y", "v", "o").list␤»
sirrobert well, with join or whatever
tadzik yeah, that seems a reasonable way 14:49
GlitchMr perl6: class A {...}; class A;
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Too late for semicolon form of class definition at /tmp/elVs0JR44_ line 1:␤------> class A {...}; class A⏏;␤␤Package was stubbed but not defined at /tmp/elVs0JR44_ line 1:␤------> class⏏ A {…
..rakudo cfe8e5: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 2, near ""␤»
GlitchMr Too late?
tadzik yep
you've already defined a class, too late to declare it :)
at least that's my understanding 14:50
or maybe the "class A;" syntax can only appear at the beginning of the file
p6: class A; class B;
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 2, near ""␤»
..niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Too late for semicolon form of class definition at /tmp/H0Ho6XNEdj line 1:␤------> class A; class B⏏;␤␤Parse failed␤␤»
tadzik yep
it's not like in Perl 5 then
GlitchMr Oh, that will be simple then to fix
jnthn r: my $a; $a++ until ('a'..'z').roll(10).join('') eq 'lol'; say $a
p6eval rakudo cfe8e5: OUTPUT«(timeout)»
jnthn uh :)
tadzik :)
jnthn r: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
p6eval rakudo cfe8e5: OUTPUT«(timeout)» 14:51
arnsholt Oh, ffs. Don't optimize away my loop variables >.<
tadzik try again!
jnthn :P
tadzik r: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
p6eval rakudo cfe8e5: OUTPUT«(timeout)»
tadzik r: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
moritz try n: :-)
tadzik try {}! try {}! try {}!
p6eval rakudo cfe8e5: OUTPUT«(timeout)»
tadzik n: my $a; $a++ until ('a'..'z').roll(3).join('') eq 'lol'; say $a
p6eval niecza v19-13-g442e075: OUTPUT«(timeout)» 14:52
moritz updated rakudo.org/how-to-help/
14:52 thou joined
tadzik moritz++ 14:52
jnthn Did it locally. 3215. :)
tadzik seconds? :P
jnthn no, iterations :)
r: say 26 ** 3 14:53
p6eval rakudo cfe8e5: OUTPUT«17576␤»
moritz jnthn: 3215 is you lucky number :-)
jnthn All the digits in it are in the fibonacci sequence \o/ 14:54
Clearly lucky.
sirrobert Can you set a class property to be one of exactly two types? 14:55
has Int|Str $.foo;
?
tadzik what happens when you try? :) 14:56
moritz r: class A { has Int|Str $.foo }
sirrobert heh
tadzik r: class A { has Int|Str $.foo; }; A.new(foo => 5); A.new(foo=> "doof");
sirrobert I meant something like, "what's the syntax for it" ;)
moritz not much it seems :-)
tadzik r: alive? 14:57
perl6eval is still looking for "lol" I guess
moritz I don't think so, it has a CPU time limit
sirrobert when I try that particular one, the error is "Malformed has"
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Malformed has␤at /tmp/xHcIothGQN:1␤»
rakudo cfe8e5: OUTPUT«===SORRY!===␤Malformed has␤at /tmp/gwSm5LlV2S:1␤»
rakudo cfe8e5: OUTPUT«===SORRY!===␤Confused␤at /tmp/M0ZBSGnvYt:1␤»
tadzik sirrobert: you can try a subset then
moritz std: class A { has Int|Str $.foo }
p6eval std 3b49ac8: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/320io3g5mU line 1:␤------> class A { has Int⏏|Str $.foo }␤Malformed has at /tmp/320io3g5mU line 1:␤------> class A { has Int⏏|Str $.foo }␤ ex…
sirrobert tadzik: what does that look like?
tadzik not supported in std? Perl 6.1 it is then ;) 14:58
moritz subset IntStr of Cool where Str|Int;
sirrobert hmmm ok, thanks =)
tadzik r: subset Foo of Any where Int|Str; class A { has Foo $.foo; }; A.new(foo => 5); A.new(foo=> "doof");
p6eval rakudo cfe8e5: ( no output )
tadzik seems to work
sirrobert great; didn't know about subsets
thanks =)
tadzik check out Typed::Subroutines too :) 14:59
github.com/tadzik/Typed-Subroutine...ter/README
moritz $ time !!
time ./perl6 -e 'my $a; $a++ until ("a".."z").roll(3).join eq "lol"; say $a'
6515
real 4m11.592s
that's slow
tadzik I find them quite awesome, but maybe that's because it's my idea :P
moritz r: say 6515 / (60*4 + 11) 15:00
p6eval rakudo cfe8e5: OUTPUT«25.956175␤»
jnthn Ouch. That does rather suck. 15:01
To the profiler!
tadzik 25 of those a second is not that bad as for Rakudo, imho :) 15:02
moritz 18% in gimme
i wonder if reify the range all over again each time
we don't 15:04
jnthn How long is spent in roll and join? 15:05
moritz roll itself not much 15:06
but all the work is done in a gather while ...
so that's a separate block I think
jnthn ah, true
moritz join neither much (<1%)
I wonder if gather/take is the culprit 15:07
r: say <a b c>.list.roll(2) 15:11
p6eval rakudo cfe8e5: OUTPUT«b a␤»
masak $ time nom -e 'my $a; $a++ until ("a".."z").roll(3).join eq "lol"; say $a' 15:12
15169
real3m18.316s
r: say 15169 / (60*3 + 18) 15:13
p6eval rakudo cfe8e5: OUTPUT«76.611111␤»
GlitchMr Actually, it seems that the module I attempt to make working has weird things like:
has $.doc = $.parse_document();
Which cause errors
TestML
perl6: class A; has $*nothing = $.do_nothing(); method do_nothing {} 15:14
p6eval niecza v19-13-g442e075: ( no output )
..rakudo cfe8e5: OUTPUT«===SORRY!===␤Virtual call $.do_nothing may not be used on partially constructed objects␤at /tmp/jTqGipaCdc:1␤»
GlitchMr std: class A; has $*nothing = $.do_nothing(); method do_nothing {}
p6eval std 3b49ac8: OUTPUT«===SORRY!===␤Virtual call $.do_nothing() may not be used on partially constructed object at /tmp/ABb13VzFwl line 1:␤------> class A; has $*nothing = ⏏$.do_nothing(); method do_nothing {}␤Check failed␤FAILED 00:00 42m␤»
moritz thought niecza caught that too
masak today is Rakudo release day. 15:15
GlitchMr perl6: class A { has $.answer = $.give_42(); method give_42 { 42 } }; print A.new.answer;
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Virtual call $.give_42 may not be used on partially constructed objects␤at /tmp/yCnKNV5v79:1␤»
..niecza v19-13-g442e075: OUTPUT«42»
15:16 birdwindupbird left
masak GlitchMr: Rakudo is right. 15:16
GlitchMr Hmmm, yeah
github.com/GlitchMr/testml-pm6/blo.../Runner.pm
masak GlitchMr: that assignment happens during BUILD time.
GlitchMr But now problem is to make "has $.doc = $.parse_document();" working
masak why does $.parse_document need a fully constructed object? 15:17
15:17 smash left
jnthn Because it's virtual. 15:17
GlitchMr Perhaps it would be possible to move this to construction time
How can I make code run during class construction. 15:18
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?
moritz you *can* call self.do_nothing()
GlitchMr ok, thanks
15:20 mauke left
masak jnthn: I was asking why someone wrote it with that expectation. 15:20
sorry for being unclear :) 15:21
jnthn oh :)
GlitchMr std: $transform.args.map({ $_ ~~ TestML::Expression ?? $.evaluate_expression($_, $block) !! $_ })
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.␤===SORRY!===␤Expecting a term, but found either infix ?? or redundant prefix ?␤ (to suppre…
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.␤===SORRY!===␤Expecting a term, but found either infix ?? or redundant prefix ?␤ (to suppre…
GlitchMr huh?
moritz GlitchMr: since std doesn't know that TestML::Expression is a type, it provisionally parses it as a subroutine
GlitchMr: so it expects a prefix or term after that, not ??
benabik And the initialized $x warnings are in STD.pm, not in what it's parsing, I think. 15:23
moritz yes
benabik *uninitialized
15:24 hoelzro is now known as hoelzro|away 15:25 preflex left
GlitchMr github.com/ingydotnet/testml-pm6/b...pm#L94-109 15:25
$context, | $transform...
What is that | thing
15:26 huf_ is now known as huf
masak flattening. 15:26
15:27 preflex joined
GlitchMr perl6: print |(1, 2) 15:27
p6eval rakudo cfe8e5, niecza v19-13-g442e075: OUTPUT«12»
masak you often see it without whitespace after it, like most prefix ops in practical use.
GlitchMr So, where could syntax error hide
t/arguments.t .............. ===SORRY!=== 15:28
Unable to parse blockoid, couldn't find final '}' at line 97, near "$_ ~~ Test"
moritz at line 97? :-)
GlitchMr Line 97 is:
?? $.evaluate_expression($_, $block)
moritz the line before, maybe? 15:29
GlitchMr I've changed code somewhat so it wouldn't see $*PKGDECL
error
moritz hacks on method roll and becomes hungry 15:30
masak :P 15:31
GlitchMr Ok, I've changed $_ ~~ TestML::Expression to ($_ ~~ TestML::Expression) and somehow it works 15:32
perl6: my @arr; @arr = (); 15:35
p6eval rakudo cfe8e5, niecza v19-13-g442e075: ( no output )
GlitchMr perl6: our @arr; @arr = ();
p6eval rakudo cfe8e5: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block <anon> at /tmp/mCclXou9VS:1␤␤»
..niecza v19-13-g442e075: ( no output )
GlitchMr Why it works with my, but doesn't with our
15:36 JimmyZ left
moritz because "our" variables can be declared from many places for the same variable, thus type constriants don't work out too well 15:36
masak huh? 15:37
GlitchMr I'm confused 15:38
masak I know that's so, but why does that explain why the above error sucks?
moritz it doesn't install the 'Array' default value along with the type constraint
(which is probably just NYI) 15:39
GlitchMr Wait... so I cannot have global array?
masak 'our' doesn't mean 'global' :)
moritz so you get a call to Any.STORE instead of ARRAY.store
r: our @a := []; say @a.push: 5
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/98jHU_bZX1:1␤»
moritz meh.
r: our @a; @a := []; say @a.push: 5
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/6CvXguJqJk:1␤»
moritz WHY EVER NOT? IT'S A VARIABLE! 15:40
masak ;)
masak hugs moritz
GlitchMr I mean, I want access to it like @Package::Name::variable
Just like in Perl 5
jnthn Because nobody ever really put a lot of time into "our" handling, I suspect.
GlitchMr I guess that simply using $ will be less hacky 15:41
moritz nobody++
jnthn Yes, scalars work fine. 15:44
GlitchMr perl6: 'abc' ~~ / <.panic: "ok..."> /
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…
..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␤␤»
masak walk &
GlitchMr Any idea what <.panic: "something"> means? It's used in github.com/GlitchMr/testml-pm6/blo...Grammar.pm 15:45
And it's only place where I found "panic" word (I used ack on whole source)
moritz it's used to thrown an exception inside the compiler
15:45 prettyrobots left
moritz which made ingy++ think it's built-in, which it is not 15:46
GlitchMr I guess I can try {die "something"} instead 15:47
[Coke] pokes au.
15:47 Coleoid joined 15:48 thelazydeveloper joined 15:49 am0c_ left
GlitchMr Screw it, TestML is too annoying 16:00
I will use JSON instead of YAML... or Perl 6
16:01 blackstar_ joined, fhelmberger left 16:04 jacks joined, atrodo joined
jacks hiii guys 16:04
daxim hello you 16:05
[Coke] maven's rss feed is screwed up. If it doesn't get fixed, I'll probably have to drop it. 16:06
the article snippets in the feed are showing up as lots of repeated snippets.
16:07 kaleem left 16:08 jacks left
daxim I've seen that phenomenon today, too: perlsphere.net/#5eb816756d3ff2af6dbe257ce72b4089 16:08
perhaps something is wrong with feedburner
[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:12 xinming_ left 16:13 prettyrobots joined
au [Coke]: you were poking me? 16:20
[Coke] Yes - do you have ongoing pugs-shaped tuits?
p: say 3.WHAT 16:21
p6eval pugs: OUTPUT«Int␤»
[Coke] ... that's weird. I would expect either ::Int or Int()
au only in 60-second slices, I'm afraid
[Coke] p: say "asdasdf".WHAT
p6eval pugs: OUTPUT«Str␤»
au or 300-second slices, with luck
[Coke] ok. I'll try not to bug you too much, then. 16:22
au =) 16:23
16:23 bbkr1 left 16:25 zhutingting left
diakopter [Coke]: I didn't mention perlbrew 16:30
[Coke] diakopter: irclog.perlgeek.de/perl6/2012-07-19#i_5825796 16:35
diakopter [Coke]: oh, I was referring to the rakudo 2016 typo 16:37
(not perlbrew)
16:38 birdwindupbird joined, proller__ joined, proller_ joined 16:39 proller_ left
[Coke] ah. 16:41
flussence
.oO( if nqp fails for random people without parrot -G, why doesn't the makefile just set -G by default? )
16:44
[Coke] that's like hitting a fly with a sledgehammer 16:49
turning off GC is probably a bad thing. 16:50
masak "probably"?
"Hey, has anyone considered just letting dead objects fill up memory until we run out of it?" 16:51
dalek kudo/toqast: 917a123 | jnthn++ | src/QPerl6/Ops.pm:
Fix an op sig, thus making FIRST work again.
kudo/toqast: 5ae5476 | jnthn++ | src/QPerl6/Actions.pm:
Fix our $.foo.
masak seems to be having a sarcastic day today... :)
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
masak then change your Makefile locally, by all means. 16:53
16:53 proller__ left
jnthn Well, it is maybe a good idea to ship a build with the -G in also (more) 16:53
It probably needs less RAM to build than CORE.setting for one. 16:54
benabik -G?
jnthn And it means some people who can't build otherwise would be able to.
But yes, it's hiding the real problem.
benabik: Disable GC
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
Sadly, none that I own, which doesn't make hunting it quite so easy...
16:58 xinming joined 17:08 proller joined 17:11 dakkar left 17:13 max___ joined
max___ hi 17:13
masak hi, max___!
max___ i would like to know when a stable version will be released?
masak r: my $nick = "max___"; say "$nick has {$nick.comb(/_/).elems} underscores in it."
p6eval rakudo cfe8e5: OUTPUT«max___ has 3 underscores in it.␤»
masak max___: we get that question sometimes. 17:14
max___: stability is something that everyone would like to have.
max___: but not at the expense of stopping the necessary changes/improvements before they're done.
max___: so, hm, 2034? 17:15
:D
17:15 max___ is now known as max13fr
max13fr hehe 17:16
masak r: my $nick = "max13fr"; say "$nick has {+$nick.comb(/\d/)} digits in it."
p6eval rakudo cfe8e5: OUTPUT«max13fr has 2 digits in it.␤»
masak max13fr: now for the real answer.
max13fr :)
masak max13fr: we already have quite a lot of features. see perl6.org/compilers/features for just how many.
we're now working on making things faster, more user-friendly, better documented, and more welcoming. 17:17
the point where you will start to call things "stable" depends a bit on who you are.
max13fr so for a professional use, you think it's better to use perl5 or perl6
masak are you an early adopter? can you withstand certain amounts of pain? what are your criteria for 'production use'? and so on.
max13fr: if you're asking that question, probably yes.
but with that said, I've been using Perl 6 in production situations for two years now. 17:18
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:19
max13fr if I understand, for little script perl6 it's ok 17:20
but some fonctions have still buggued
diakopter depends what you want the littlte script to do.
max13fr for example backup bdd 17:21
generate rrdgraph
masak oh, I assure you there are bugs.
but nowadays they're not so easy to find anymore...
diakopter max13fr: those would be good exercises to try. niecza is probably better at heavy data processing since the GC is more reliable.. 17:23
17:24 proller left
max13fr You advise me niecza rather than rakudo? 17:25
17:26 seldon joined
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:26
17:27 stephenlb joined, proller_ joined, proller joined, proller_ left, proller left
masak I would also recommend a look at Niecza. but do make use of the table at perl6.org/compilers/features to decide. 17:28
max13fr thanks for your answers :) 17:29
i'll try this
17:32 Coleoid left
masak \o/ 17:32
17:33 atrodo left
masak let's go into release mode, shall we? 17:35
I just ran the spectests.
everything passes, but I'm getting a segfault in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo
after test 8.
can anyone confirm this?
dalek p/toqast: 05dc032 | jnthn++ | src/QAST/Operations.nqp:
Fix two places where we accidentally mutated the QAST tree while compiling it, meaning a later re-compilation would fail.
17:36
jnthn masak: It fails that way in toqast too, fwiw.
thou masak: on which branch?
jnthn masak: with either perl6 or qperl6
thou ah, already confirmed :-) 17:37
masak thou: nom.
thou OK, lemme spin a new one and run specs
masak shall I try to fudge the test in question?
which do we prefer, shipping with a segfaulting test, or fudging the test and profusely apologising in the release notes?
jnthn masak: Is it changed from the last relesae? 17:39
masak you're suggesting we knowingly released with a segfaulting spectest?
flussence
.oO( this conversation seems familiar... )
17:40
masak I... I don't know.
could someone check the irc logs of the last release?
it was 2012-06-21, fwiw.
also, could someone else download the last release, build it, and run t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo on it?
it would be nice if I could delegate these two things, then the release will go swifter.
jnthn masak: I dunno that it reliably segfaults on all machines, fwiw. 17:41
masak has hugs ready for volunteers :)
jnthn: well, so far it segfaults on Arch Linux and on Windows. we have similar architectures, I guess.
17:42 max13fr left
masak dies_ok {checklastval("octopus") = 10 }, 'checklastval STORE can die'; 17:42
^ this line in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo
is what segfaults.
I comment it out, and the file runs to completion.
arnsholt masak: I got the same problem last night I think
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.
masak oh!
I bet it's the exact same as my segfault.
the symptoms look very similar. 17:44
rt.perl.org/rt3/Ticket/Display.html?id=114134
there isn't a CATCH in there, but there are probably interrupted binders.
[Coke] thou: perl6maven.com/from-iterative-to-fu...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 ?
thou [Coke]: excellent, thanks!
masak I cancel the need for the other two request for volunteering, and put forth the above one.
golfing of the segfault in t/spec/S06-routine-modifiers/lvalue-subroutines.rakudo would help a lot.
masak fudges 17:46
17:47 atrodo joined
jnthn -> shop 17:47
17:50 ChibaPet joined
[Coke] svn-- 17:54
dalek ast: 64ca263 | masak++ | S06-routine-modifiers/lvalue-subroutines.t:
[S06-routine-modifiers/lvalue-subroutines.t] fudged for Rakudo

This spectest segfaults on at least Linux and Windows, at least on some hardware platforms. Suspect but haven't confirmed [RT #114134].
[Coke] +# 07/19/2012 - rakudo++ (22932); niecza (89.77%); pugs (39.86%) 17:55
niecza: 30 failures, pugs :82, rakudo: 8
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/Eu2QR_c5yq line 1:␤------> 30 ⏏failures, pugs :82, rakudo: 8␤␤Parse failed␤␤»
masak [Coke]: failures? what failures? I just ran the spectest suite and it came out clean. 18:02
hm... no golfer takers yet? 18:04
am I the only one who actually enjoys golfing bugs a bit? :)
maybe I should blog about how I use git to ratchet-golf things down.
(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:05
18:08 Chillance joined
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. www.socialtext.net/perl5/Estonian indicates "not so much". 18:10
sorear good * #perl6
masak but jnthn and I were there last year, and it's a fine city with good beer, good food, and happy people.
sorear! \o/
moritz++ # keeping ChangeLog up-to-date 18:11
flussence runs a spectest and gets neither 0 nor 8 failures 18:12
masak moritz: 2 *** throwing typed exceptions (moritz) 18:16
moritz: what prevents us from removing this from docs/ROADMAP?
rn: say val("2") 18:17
p6eval rakudo cfe8e5: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&val' called (line 1)␤»
..niecza v19-13-g442e075: OUTPUT«2␤»
masak niecza++
[Coke] masak - the same 8 it's been failing for weeks. 18:19
masak must be a platform thing. 18:20
moritz masak: there are still a lot of untyped exceptions
masak ok.
what about 2 ** MAIN and USAGE (japhb)
moritz masak: like, all from within the MOP
masak surely we have those?
[Coke] feather.perl6.nl/~coke/rakudo_summary.out - scroll to the bottom 18:21
moritz thou: [Coke] was referring to perl6maven.com/from-iterative-to-fu...perl6-code
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...
masak [Coke]: remaining two are due to your evnironment's encoding settings.
[Coke]: this was discovered not long ago. I don't know what to do about it.
18:27 telex left 18:31 zby_home joined
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!
[Coke] that is hilarious given his previous send. ;)
flussence Content-Encoding: gzip :) 18:33
daxim Keyboard-Mashing: suckling, bobcat
masak moritz: hi, Ronja.
thou masak: make spectest is still running, but i got: t/spec/S02-types/version.t ................................ Failed 6/35 subtests 18:34
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
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
masak thou: I fudged it. see IRC log for the failing line, or spectest git log for the fudge.
18:37 raiph joined
thou ah, i thought i'd started before your fudge came in, but i guess not :-) 18:37
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:38
dalek kudo/nom: db15782 | masak++ | docs/ChangeLog:
[docs/ChangeLog] de-duplicated anon subsets

It's good to have to re-read this list for the announcement. :)
18:40
masak thou: if you re-run 'make spectest', it will git pull from roast. 18:41
18:41 pupoque joined
flussence gives up trying to do things the distro way and installs perlbrew 18:41
(no TAP::Harness::Archive? really?)
japhb masak, sorry I'm over a week backlogged, but I just noticed you said something about MAIN and USAGE to me? 18:42
18:42 ggoebel_ joined
thou gist.github.com/3145916 18:43
parrot::has_icu=0
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…
..rakudo cfe8e5: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/qLTptJiOvZ:1␤␤»
GlitchMr perl6: print "abcd".subst: /(.)/, {$0 x 3}, :g 18:45
p6eval niecza v19-13-g442e075: OUTPUT«aaabbbcccddd»
..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>…
GlitchMr Should it work?
jnthn arnsholt: Why'd you need that ooc?
moritz r: print "abcd".subst: /(.)/, -> $/ {$0 x 3}, :g 18:46
p6eval rakudo cfe8e5: OUTPUT«aaabbbcccddd»
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:48 daxim left 18:49 nodmonkey left
masak japhb: I was wondering about the status of that line in docs/ROADMAP. 18:49
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 kudo/nom: 6a078c7 | masak++ | docs/announce/2012.07:
[docs/announce/2012.07] updated
masak please feel free to review: github.com/rakudo/rakudo/blob/nom/...ce/2012.07 18:51
moritz masak: szabgab and Gabor Szabgab are the same person 18:52
masak: and it might be worth mentioning that the deprecated methods are in class Str 18:53
18:53 wamba joined, wamba left
masak ok on both. 18:53
moritz I wanted to write some deprecation notices, but I'm too groggy right now 18:54
maybe I'll manage in time for the R* release
dalek kudo/nom: 176e247 | masak++ | docs/announce/2012.07:
[docs/announce/2012.07] de-duplicated szabgab

  moritz++
kudo/nom: cca6d43 | masak++ | docs/announce/2012.07:
[docs/announce/2012.07] ...on Str

  moritz++
arnsholt jnthn: Simpler debugging, mainly 18:57
masak moritz: what should I make of this? irclog.perlgeek.de/perl6/2012-07-16#i_5818109 18:59
moritz masak: what he said :-)
masak oh! github.com/perl6/nqp/blob/master/t...T_REVISION does say 4_4_0.
why does my local one say 4_5_0, then? :/ 19:00
19:00 GlitchMr left
flussence old nqp? 19:00
masak is it "safe" to nuke nqp/ and re-configure?
moritz masak: because you didn't bump NQP_REVISION, and used --gen-nqp?
masak I always use --gen-nqp, yes.
should I bump NQP_REVISION before release?
I guess I should. 19:01
moritz you should
and you should also bump VERSION in NQP
masak gotcha. then it'll sort itself out during the release process.
moritz and *then* bump NQP_REVISION
masak aye.
19:01 proller_ joined, proller_ left
masak nodnod. 19:01
it's all in the release guide :)
which I'm now going back to :)
flussence er, wait... didn't it get put back to 4.4 for a reason a few days ago 19:02
?
moritz flussence: PARROT got back, NQP is going to be bumped
arnsholt jnthn: I've got a segfault and to diagnose I'd really like to look at what comes out of REPR()
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 =)
masak tadzik: just FYI, you will get the next leap second, in August ;)
19:03 proller joined, proller_ joined
moritz oh, again? 19:03
masak says the script. 19:04
moritz not sain' 'tis wrong, just surprised
we had one in June already
we should get a quantity discount :-) 19:05
masak leap seconds are stupid. 19:07
19:09 blackstar_ left
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
and concludes that it's in the same ballbark as olympic games, or so :-)
arnsholt masak: Yeah, I vote we make the Earth be stable on its axis ^_^
flussence we should fix it once and for all by mounting giant rocket thrusters on the planet!
.oO( it'd make going to the moon a lot easier too )
19:10
moritz decoupling civil from astronomical time would be much easier :-) 19:11
dalek p: 22626f8 | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] de-mandated Parrot updates each month
masak does that change to the NQP release guide seem to capture the new Parrot revision policy? 19:12
moritz looks
masak thou: did you start golfing the segfault in the spectest? how's it going?
moritz I'd phrase it a bit less vague
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
masak moritz: oh, I didn't know there were specific conditions. 19:16
I'll try to rephrase.
19:16 pyrimidine left
dalek p: 4af27ab | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] reworded

Based on feedback from moritz++.
19:17
masak better?
dalek p: 98fdaf2 | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] consistency nit
19:19
p: b94606c | masak++ | VERSION:
bump VERSION to 2012.07
kudo/nom: 9fb677f | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] named current release
19:21
kudo/nom: 02433a7 | masak++ | tools/build/NQP_REVISION:
[tools/build/NQP_REVISION] bumped to 2012.07
19:23 ggoebel_ left
masak hrm, the nqp release guide says nothing about creating a release tarball. 19:23
should I do that?
looks like it from here: github.com/perl6/nqp/downloads 19:24
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
moritz masak: yes, we need an nqp tarball 19:26
for the star release
dalek kudo/nom: 1e872ad | masak++ | VERSION:
[release] bump VERSION

This is Rakudo Perl 2012.07
19:27 pupoque left
masak moritz: how do I do it? should I also add instructions? 19:27
I guess there is a 'make release' target or something...
moritz masak: there isn't :(
masak: I did something like 19:28
masak so, how do I do it?
moritz cd nqp
git clean -xdf
mv .git ../nqp-git
cd ..
cp -r nqp nqp-2012.07
tar czf nqp-2012.07.tar.gz nqp-2012.07
mv nqp-git nqp/.git 19:29
rm -rf nqp-2012.07
I'm sure there are better ways
masak moritz++
followed the instructions as they appeared on IRC, and they worked perfectly :)
I'll just ask you next time instead of reading the release guide :P
moritz you can skip moving .git, and simply delete it from nqp-2012.07/.git
19:29 prettyrobots left
masak sure. 19:30
mind if I add such a step to the nqp release guide?
better than not having it, I think.
moritz please do
I hope somebody with shell fu makes a release target
flussence !! 19:31
git archive --format=tar 2012.07 | gzip -9 > ~/nqp-2012.07.tar.gz
masak I'll add a note requesting that, then.
flussence: ooh
moritz woah.
[Coke] wait, what parrot is shipping rakudo going to require today?
masak flussence: mind if I add *that* to the nqp release guide? :)
flussence go for it
moritz [Coke]: 4.4.0
masak [Coke]: 4_4_0
[Coke] ok
masak flussence: will it include the .git dir?
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 birdwindupbird left
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.
masak flussence: excellent.
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
flussence (and I'm pretty sure this is how kernel releases work :)
[Coke] I use perl6 at <insert name of multinational here>.
masak raiph: "large corporation" depends if you have Swedish or world standards, I guess :)
[Coke] raiph: someone is using it at the startup. is that perhaps what you recall?
*their startup
moritz sirrobert++ is, iirc
masak aye. 19:34
nqp 2012.07 is up: github.com/perl6/nqp/downloads
19:35 birdwindupbird joined
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)
raiph [Coke], masak: thx, but not jnthn++, masak++, or sirrobert++
japhb Sorry for the slow reply, $day-job-lagged 19:36
moritz and flussence++ for the pointer to git archive
19:37 pyrimidine joined
japhb sorear, Did you ever get to a happy place WRT the semantics of val()? 19:37
dalek p: c912424 | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] tarball instructions

  moritz++ flussence++
p: 59fce00 | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] harmonized made-up release dates
masak loves release days, with so much happening on-channel :)
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?
masak yes. 19:39
(compiler.)
japhb thx 19:40
masak pzh 19:41
moritz masak: i was tempted to write the exact same reply. You're scary :-) 19:42
masak occupational hazard, I think :) 19:43
sorear japhb: I think so? not sure anymore
japhb sorear, *sigh* The hazards of only having occasional tuit clusters ....
19:43 proller_ left, proller left 19:44 Khisanth left, crab2313 joined
moritz japhb: so a big part of the type dwimmery could just be $val = $val.Numeric // $val, right? 19:44
19:44 pyrimidine left 19:45 proller joined
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:47
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:48
19:49 SamuraiJack left
sorear japhb: oh, that's easy enough. mixins, with pregenerated classes 19:49
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␤»
sirrobert What does that mean?
19:53 MayDaniel joined
flussence r: my %f{'a'} 19:53
colomon sirrobert: you want to say: my %f; %f<a> = 1
p6eval rakudo cca6d4: ( no output )
flussence why did that work?
sirrobert colomon: oohh heh, thanks 19:54
flussence r: my %f{'a'} = 1
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␤␤»
sirrobert well, what does what I did mean?
what's a "shaped" variable?
flussence r: my %f<a> = 1
p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/hxYC9M5B9t:1␤»
flussence this is bizarre.
japhb sorear, where does the $!value in Niecza::PseudoStr get set/used? Is it the dualvar CgOp? 19:55
colomon r: my $f<a>
p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/mICiZe6Sib:1␤»
jnthn my %f{Int} # how you declare a hash with Int keys
sirrobert jnthn: ah 19:56
[Coke] raiph: then I think you might be misremembering.
19:58 Khisanth joined
sirrobert What's the comparison operator I want for something like: 20:03
sorear japhb: probably some hack in UnboxAny or somewhere
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␤»
colomon r: my $f = a => 1; say ($f.WHAT === Pair);
p6eval rakudo cca6d4: OUTPUT«True␤»
sirrobert ah
jnthn But don't do that.
sirrobert heh
touche
jnthn r: my $f = a => 1; say $f ~~ Pair
p6eval rakudo cca6d4: OUTPUT«True␤»
colomon r: my $f = a => 1; say $f ~~ Pair
p6eval rakudo cca6d4: OUTPUT«True␤»
sirrobert is === the same as javascript's? 20:05
colomon jnthn++ # fast on the type
raiph [Coke]: yeah. i'm sure the exchange happened. maybe it /was/ jnthn or masak talking about what they had done at a client.
flussence r: (my $f)<a> = 1; 20:06
p6eval rakudo cca6d4: ( no output )
flussence r: (my %f)<a> = 1; say %f;
p6eval rakudo cca6d4: OUTPUT«("a" => 1).hash␤»
jnthn sirrobert: It's along those lines.
sirrobert jnthn: thanks (reading about comparison operators now)
jnthn sirrobert: The main problem is that you're doing an exactly type comparision, which is normally wrong.
masak r: (my %)<a> = 1 20:07
p6eval rakudo cca6d4: ( no output )
masak r: (my %)<a> = 1; say (my %).perl # :)
p6eval rakudo cca6d4: OUTPUT«("a" => 1).hash␤»
jnthn sirrobert: Normally you'd like to accept a subclass of Pair too.
masak o.O
masak submits rakudobug
sirrobert jnthn: righ
+t
flussence r: (my %)<a> = 1; say ::.perl
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, )␤»
jnthn masak: Wow! :D 20:08
masak yeah!
jnthn masak: That's kinda awesome but also kinda terrible :)
masak anonymous but persistent :)
luckily this bug has come to the right person...
20:09 pyrimidine joined
jnthn It's almost too amusing to want to track down and fix :P 20:09
masak r: (my @).push(1, 2, 3); say (my @).perl 20:10
p6eval rakudo cca6d4: OUTPUT«Array.new(1, 2, 3)␤»
masak r: (my $) = "OH HAI"; say (my $)
p6eval rakudo cca6d4: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤» 20:11
masak oh, that old one.
r: (my &) = sub { say "OH HAI" }; (my &)()
p6eval rakudo cca6d4: OUTPUT«OH HAI␤»
masak *sigh* :)
jnthn :D
Are they sigil invariant, ooc?
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␤␤»
jnthn hah, the sigil matters at least :)
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…
masak ...wow... 20:15
jnthn Hmmm. 20:16
Parse errors: Bad plan. You planned 87 tests but ran 1121.
o.O
:)
masak jnthn: that the looping test I mentioned the other day?
it runs until you ^C it. 20:17
jnthn masak: Nah
masak: I just for the first time compiled Test.pm with qperl6
And ran spectest
masak ah :)
jnthn It does pretty well overall, just a few insanities :)
20:18 kaare_ left, raiph left
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.
do we have an RT ticket for that?
masak checks
dalek p/toqast: 0f7a6ee | jnthn++ | src/ (4 files):
Implement serialization handling during compilation of QAST::CompUnit. This means QAST can be used to do pre-compiled modules now.
20:19
masak doesn't seem we do. 20:20
sirrobert: if you have time, please put together a nice concrete example where having this would help, and submit to [email@hidden.address] thank you.
sirrobert sure thing 20:21
masak ++sirrobert
20:22 proller left
masak Rakudo 2012.07 uploaded: github.com/rakudo/rakudo/downloads 20:23
masak sends p6c email
colomon masak++
masak heh, I haven't written to p6c since I released Niecza in April ;)
masak updates Wikipedia 20:25
20:27 vmspb joined
jnthn D'oh. Turns out the optimizer has been hiding a rather subtle bug for us. 20:27
mathw evening
jnthn: that definitely sounds like a 'd'oh'
masak stands down release mode
jnthn Spot the problem in this code:
proto prefix:<!>($) { * }
multi prefix:<!>(Bool \$a) { nqp::p6bool($a ?? 0 !! 1) }
multi prefix:<!>(Mu \$a) { nqp::p6bool($a.Bool ?? 0 !! 1) }
masak y'all're now free to commit as usual. 20:28
masak celebrates with 香港的茉莉花茶
20:29 birdwindupbird left
mathw you got a teleporter? 20:29
masak no, I brought it home from there.
mathw blame google translate, I don't know any Japanese at all 20:30
masak that's hanzi, not kanji.
mathw apart from the spoken fragments we use at aikido
masak phenny: "香港的茉莉花茶"?
phenny masak: "Jasmine tea in Hong Kong" (zh-CN to en, translate.google.com)
masak oh!
mathw quite
masak well, maybe my Mandarin is to blame :)
mathw ah and I misread the google translate page
it was suggesting maybe I wanted to try japanese instead 20:31
but it also detected chinese
masak phenny: "来自香港的的茉莉花茶"?
phenny masak: "Jasmine tea from Hong Kong" (zh-CN to en, translate.google.com)
masak ah.
mathw :)
masak er.
phenny: "来自香港的茉莉花茶"?
phenny masak: "Jasmine tea from Hong Kong" (zh-CN to en, translate.google.com)
mathw jnthn: I will admit defeat
jnthn: I can't see anything wrong with that code
masak jnthn: me too
jnthn Clue: it's something to do with the proto
masak arwgh!
:/
subtle... 20:32
mathw ah, I don't have a full understanding of protos
masak mathw: $ vs \$
jnthn $ vs |$
masak oh!
mathw i don't actually know what the \$ in the multis does
jnthn The proto inliner clearly isn't strict enough.
It is fine to inline a proto that is going to bind whatever then delegate. 20:33
But that isn't the case with a proto that needs to enforce "just one arg"
With the optimizer gone, we actually call the proto.
And the default argument type is Any. 20:34
So it auto-threaded!
dalek kudo/nom: 4eeffca | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] collapsed item numbering

Removes a few parsing errors on Github++.
20:35
mathw hmm, unexpected autothreading probably isn't the best outcome
dalek kudo/toqast: 2c09070 | jnthn++ | src/QPerl6/Actions.pm:
Fix nqp::op(...).
20:36
kudo/toqast: c4dd87c | jnthn++ | src/core/Bool.pm:
Fix some protos.
kudo/toqast: 5f51d4f | jnthn++ | src/QPerl6/Actions.pm:
Pass along code ref blocks to the QAST::CompUnit.
kudo/toqast: ad33769 | jnthn++ | tools/build/Makefile.in:
Switch over to using qperl6 to compile Test.pm.
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 - 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.
masak \o/ 20:38
mathw woohoo 20:39
flussence is that nom + 153, or $last_git_push + 153?
jnthn flussence: Those 3 commits got toqast 153 tests further forward.
flussence: toqast doesn't yet pass everything that nom does. 20:40
20:41 MayDaniel left 20:42 MayDaniel joined
dalek ast: 32f5c4d | jnthn++ | S06-multi/proto.t:
Fix proto syntax.
20:43
ast: f1cb2cc | jnthn++ | S06-routine-modifiers/lvalue-subroutines.t:
Merge branch 'master' of github.com:/perl6/roast
masak yuck, a merge. 20:44
jnthn d'oh 20:45
mathw do you guys use a lot of rebase to avoid those? 20:46
masak it just happens naturally most of the time.
`git pull --rebase` is what I do. 20:47
*sigh*, and crypt is broken after I installed latest nom during the release process.
classical rookie mistake :(
masak dives into the thing
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
So I kind of stopped :)
masak that sounds broken.
mathw yes
several releases since then, but I've not tried to get back into the habit yet
sirrobert masak: sent e-mail. In the meantime, anyone know why this example code is messing up? 20:54
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');
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␤␤»
masak sirrobert++ # bug report
sirrobert I *think* in function call context, the nested pair is getting treated as a ... hash? 20:55
(the output of the first two "say" calls is "Pair()")
masak sirrobert: try quoting "a". 20:56
it gets treated as a named argument if you don't.
sirrobert oohh... tricky
ok, thanks
masak np
21:02 Pleiades` left 21:04 skids left
vmspb Hello 21:06
I see that latest version NQP has big size — 112.4MB
Thus it must be?
flussence that can't be right
masak whoa.
masak downloads and checks
flussence where'd you download it from?
vmspb github.com/perl6/nqp/downloads 21:07
sorear is there a core dump in there?
who released that?
masak
oh, it contains a Parrot...
flussence yow. 21:08
masak ok, deleted.
time to try again.
sorry about that.
vmspb++
sorear A fully built parrot? 21:09
masak ah, that's better. 21:10
probably a fully built parrot, yes.
masak amends the nqp release guide instructions, too 21:11
vmspb: a smaller .tar.gz file is now up.
dalek p: 32380f9 | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] clean your nqp before tarring
21:12
kudo/toqast: 926e030 | jnthn++ | src/QPerl6/Optimizer.pm:
First pass at starting to updated the optimizer for QAST. Untested, just simple translation.
21:13
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:15
masak flussence: might have been some other screwup on my end. 21:16
21:16 prettyrobots joined
masak not your fault. 21:16
lue hello world o/ 21:19
masak style advice: when to prefer \h+ and when to prefer <.ws>?
21:19 mucker left
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?
masak lue: yeah :)
flussence: it does. 21:20
that probably answers my question. thanks.
lue and doesn't <.ws> == \s ? (or am I misremembering?)
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>.)/
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)>␤»
..rakudo 4eeffc: OUTPUT«q[f]␤ 0 => q[f]␤␤»
sorear lue: <.ws> is <!ww> \s* by default
flussence S05:2009
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
21:23 bruges_ joined 21:25 bruges left 21:27 Pleiades` joined
thou masak: is it still helpful? golfing: gist.github.com/3146951 21:27
masak thou: nice. 21:29
I see you have started golfing it :)
thou masak, changing sub ($self) to method () makes it work
21:31 kurahaupo joined
masak well, making it work means you're not golfing the error... 21:32
still interesting, though.
thou right, just a side note 21:33
removing the die(), it still segfaults
ok, i think this is about as small as i can make it: gist.github.com/3146951 21:34
masak ooh. 21:35
FETCH bit really necessary?
thou yeah
21:35 cognominal_ joined
masak then that's worth a rakudobug. thou++ 21:35
21:35 cognominal left
thou otherwise i get "invoke() not implemented in class 'Undef'" 21:36
masak thou: will you submit it? 21:41
thou trying to
can't find the link on rt.perl.org
i just logged in via bitcard 21:42
but no sign of a "create ticket"
masak [email@hidden.address]
email.
thou roger. been a while... 21:43
masak :)
tadzik masak: thanks, I'll keep that in mind 21:45
sorear . 21:54
22:04 adam7504 joined, PacoAir left
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
:)
masak r: say Date.new 22:05
p6eval rakudo 4eeffc: OUTPUT«2012-12-24␤»
masak r: say Date.new + 4
p6eval rakudo 4eeffc: OUTPUT«2012-12-28␤»
masak r: say (Date.new + 5) - Date.new
p6eval rakudo 4eeffc: OUTPUT«5␤»
masak sergot: good enough?
diakopter well, "some date" needs parsed
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␤ …
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.
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 MayDaniel left
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)
p6eval rakudo 4eeffc: OUTPUT«11423␤»
masak ok, so that's how old I am in days.
sorear: good enough? 22:08
sergot That's what I needed! masak++ \o/
masak I literally solve your problem in a minute.
while blogging! lol! \o/ strangelyconsistent.org/blog/july-1...ith-leaves
r: say today 22:09
p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&today' called (line 1)␤»
sergot Oh, and I forgot - masak++ for your blogging in July. :)
diakopter istr carrying leaves in a car long ago 22:11
masak sergot: thanks :) 22:14
[Coke] belatedly reports all tests passing in rakudo for the release manager. ;) 22:16
masak \o/ 22:18
[Coke]: found the encoding issue?
sorear masak: oh, you're older than I thought. 22:19
masak I'll take that as a compliment, young whippersnapper. ;) 22:20
these wrinkles represent *experience*.
sergot r: say Date.new; 22:22
p6eval rakudo 4eeffc: OUTPUT«2012-12-24␤»
sergot hm? :) 22:23
masak :)
oh, so that's my age in days next Christmas, then.
sergot It's 2012-07-19 now! :)
masak r: say Date.today
p6eval rakudo 4eeffc: OUTPUT«2012-07-20␤»
22:23 adam7504 left
masak no, we already passed midnight. 22:23
at least in .nl, where p6eval is.
p6eval is still on feather, no? 22:24
sergot masak: right, I didn't notice that. :) 22:25
\o/
diakopter ponders upgrading to Windows 8 preview 22:27
sergot filip.sergot.pl/p6/modules/index.html generated using p6! \o/
masak \o/
very nice.
sergot TODO: alphabetical order :) 22:28
diakopter a column for "works in X" for each implementation would be super
"works in latest X", I mean.
since I'm sure quite a few don't work anymore, and many might work on various implementations only... 22:30
22:30 moukeddar joined
[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?
masak quite possibly.
[Coke] masak++ is 10 years younger than I.
diakopter well, "works in latest rakudo" would be quite helpful at least 22:32
sorear masak++ is 9.5 years older than I.
22:33 sivoais left
masak sorear: and you already know quite a bit more math than I do. 22:34
22:34 sivoais joined
masak makes me feel like I lost a few years somewhere ;) 22:34
22:35 sirrobert left
[Coke] masak: get off my lawn. 22:36
22:38 crab2313 left
masak ;) 22:38
22:39 Seganku joined
[Coke] manages to hang his IDE at work. blah. 22:42
sergot good night o/ 22:46
22:46 sergot left
timotimo "sub b([]) { say "empty list" }" -> "sub b() { ... }" - "sub c() { say "empty argument list" }" -> "sub c() { ... }" 22:50
interesting choice to render [] as "" in argument lists :) 22:51
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:␤------> sub a([], ⏏$a) {}; say &a␤␤sub a(, Any $a) { ... }␤»
..rakudo 4eeffc: OUTPUT«sub a(, $a) { ... }␤»
benabik rn: say [] 22:59
p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«␤»
benabik rn: say [].perl
p6eval rakudo 4eeffc, niecza v19-13-g442e075: OUTPUT«[]␤»
benabik I guess it's because Sub.gist uses $arg.gist
23:01 moukeddar left
jnthn has blaught: 6guts.wordpress.com/2012/07/20/the-...ng-nicely/ 23:09
masak jnthn++ \o/ 23:11
so, we're working our way... up to 11? :P 23:12
jnthn ;-) 23:13
Dang, caught :P
'night, #perl6 23:16
23:19 whiteknight joined 23:20 whiteknight is now known as Guest51643
timotimo i still keep getting confused by flattening and nonflattening things 23:32
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
23:33 sudokode is now known as gtmantred
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:33
23:33 seldon left 23:35 sporous left
Tene why not? 23:35
23:35 sporous joined 23:37 Chillance left 23:40 xinming left
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])␤»
masak \o/
a bit too mutating for my taste. but it works.
timotimo mine is a horrible mess of imperative programming 23:43
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
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
p6eval rakudo 4eeffc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&collate-sums' called (line 1)␤»
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
p6eval rakudo 4eeffc: ( no output )
masak 'say'
timotimo i'm dumb.
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
p6eval rakudo 4eeffc: OUTPUT«(1, 1, 1, 2, 2, 3, 3, 3).list␤»
timotimo uh, that was different on my comp
yeah, my test case was wrong 23:45
it actually flattened the list before comparing the result of my function, so it worked
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
p6eval rakudo 4eeffc: ( no output )
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
p6eval rakudo 4eeffc: OUTPUT«LoL.new(ListIter.new())␤»
timotimo well, that's helpful
23:47 Coleoid joined
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␤»
timotimo r: say +[[1, 2, 3, 4, 5], [1, 2], [1]]
p6eval rakudo 4eeffc: OUTPUT«3␤»
timotimo so i'm definitely not doing it right
masak any occurrence of 'ListIter.new()' in .perl output is to be considered a bug. 23:51
anyway. 'night, #perl6
timotimo good night masak 23:52
how *can* i gather a list of lists together? 23:54
r: say gather for ^5 { take 1 xx $_ } 23:55
p6eval rakudo 4eeffc: OUTPUT«1 1 1 1 1 1 1 1 1 1␤»
timotimo r: say gather for ^5 { take $_ xx $_ }
p6eval rakudo 4eeffc: OUTPUT«1 2 2 3 3 3 4 4 4 4␤»
timotimo r: say (gather for ^5 { take $_ xx $_ }).perl
p6eval rakudo 4eeffc: OUTPUT«(1, 2, 2, 3, 3, 3, 4, 4, 4, 4).list␤»
timotimo r: say (gather for ^5 { take [$_ xx $_] }).lol.perl
p6eval rakudo 4eeffc: OUTPUT«LoL.new(ListIter.new())␤»
timotimo r: say +(gather for ^5 { take [$_ xx $_] })
p6eval rakudo 4eeffc: OUTPUT«5␤»
timotimo that seems right 23:56
r: say (gather for ^5 { take [$_ xx $_] }).lol[0]
p6eval rakudo 4eeffc: OUTPUT«ListIter.new()␤»
timotimo r: say (gather for ^5 { take [$_ xx $_] }).lol[0].flat
p6eval rakudo 4eeffc: OUTPUT« 1 2 2 3 3 3 4 4 4 4␤»
timotimo :\
23:56 gtmantred is now known as sudokode
Tene timotimo: that looks right to me... 23:57
what's your desired output?
r: say (gather for ^5 { take [$_ xx $_] }).gist
p6eval rakudo 4eeffc: OUTPUT« 1 2 2 3 3 3 4 4 4 4␤»
Tene r: say (gather for ^5 { take [$_ xx $_] }).perl
p6eval rakudo 4eeffc: OUTPUT«([], [1], [2, 2], [3, 3, 3], [4, 4, 4, 4]).list␤»
23:57 quietfanatic joined
timotimo r: say (gather for ^5 { take [$_ xx $_] })[0].perl 23:58
p6eval rakudo 4eeffc: OUTPUT«[]␤»
timotimo mhm. wonder what i did wrong :)
Tene You did something wrong?
quietfanatic ^5 is 0..4
0 xx 0 is [] 23:59
Excuse me, [0 xx 0] is []
timotimo sure, that's no problem