Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-03-21

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:20 kurahaupo joined #perl6
00:29 hoverboard joined #perl6
00:36 dayangkun joined #perl6
00:49 * Mouq wants to do perly stuff but doesn't really have tuits :/
01:07 arnsholt joined #perl6
01:09 kurahaupo joined #perl6
01:15 btyler joined #perl6
01:31 hoverboard joined #perl6
01:33 woosley joined #perl6
01:36 beastd joined #perl6
01:45 colomon joined #perl6
01:47 * skids tries to figure out what could possibly be special about the number 38016083
01:48 skids One of my modules, only when used from a compiled PIR, converts a list element from 38016083 to 380160830
02:03 kbaker joined #perl6
02:24 xragnar_ joined #perl6
02:30 araujo joined #perl6
02:39 timotimo o_O
02:46 klapperl_ joined #perl6
02:57 skids I suspect it has something to do with floats.
02:57 timotimo but that should really not x10 it
02:58 skids Also I have some bugs that only occur when a pir is included by a file that is compiled to pir and then included.
02:59 skids (This all started when trying to work around RT119267)
03:00 skids ...which gets more lethal the smarter rakudo gets about folding.
03:04 skids Also happens to  76029189
03:08 skids Is packages/Test/Util.pm in roast the authoritative Test::Util?  Was thinking maybe of teaching is_run a "compile then use" adverb
03:09 FROGGS joined #perl6
03:10 JimmyZ skids: try rakudo-m?
03:10 skids Still waiting on star for that :-)
03:17 woosley joined #perl6
03:20 SamuraiJack_ joined #perl6
03:26 jnap joined #perl6
03:27 skids https://gist.github.com/anonymous/9678937  # oops wasn't logged in.
03:31 segomos did the |%args for named arguments change?
03:33 skids hmm.
03:33 skids r: sub f(|@args) { @args.perl.say }; f(:a :b)
03:33 camelia rakudo-moar 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param @args�[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Capture parameter must have a type accepting a Capture�at /tmp/tmpfile:1�------> [32msub f(|@args) { @args.perl.say }[33m�[31m; …»
03:33 camelia ..rakudo-parrot 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param @args␤Nominal type check failed for parameter '@args'; expected Positional but got Capture instead␤  in sub f at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:33 camelia ..rakudo-jvm 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param @args␤Nominal type check failed for parameter '@args'␤  in sub f at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:34 skids r: sub f(|%args) { %args.perl.say }; f(:a :b)
03:34 camelia rakudo-jvm 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param %args␤Nominal type check failed for parameter '%args'␤  in sub f at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:34 camelia ..rakudo-moar 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param %args�[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Capture parameter must have a type accepting a Capture�at /tmp/tmpfile:1�------> [32msub f(|%args) { %args.perl.say }[33m�[31m; …»
03:34 camelia ..rakudo-parrot 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param %args␤Nominal type check failed for parameter '%args'; expected Associative but got Capture instead␤  in sub f at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:34 skids oh that error has been made adequately awesome since star.
03:38 JimmyZ r: sub f(%args) { %args.perl.say }; f(|(:a :b))
03:38 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤  in sub f at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:38 skids r: sub f(|args) { %(args).perl.say; %(args)<a>.say }; f(1, :!a :b) # think that's how to do it now.
03:38 camelia rakudo-parrot 1c1a08: OUTPUT«EnumMap.new("a", Bool::False, "b", Bool::True, )␤False␤»
03:38 camelia ..rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«EnumMap.new("a", Bool::False, )␤False␤»
03:43 segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; } go: |%options;
03:43 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Two terms in a rowâ�¤at /tmp/tmpfile:1â�¤------> [32m'; sub go (:$a,:$b) { $a.say; $b.say; } [33mâ��[31mgo: |%options;[0mâ�¤    expecting any o…»
03:43 segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go: |%options;
03:43 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Variable '&prefix:<|>' is not declared�at /tmp/tmpfile:1�------> [32mb go (:$a,:$b) { $a.say; $b.say; }; go: [33m�[31m|%options;[0m�»
03:45 segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go(|%options);
03:45 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«b␤c␤»
03:45 segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go(|%options, :a('w3rd'));
03:45 camelia rakudo-parrot 1c1a08: OUTPUT«duplicate named argument in call␤  in block  at /tmp/tmpfile:1␤␤»
03:45 camelia ..rakudo-moar 1c1a08: OUTPUT«Unexpected named parameter 'a' passed␤  in sub go at /tmp/tmpfile:1␤  in block  at /tmp/tmpfile:1␤␤»
03:45 camelia ..rakudo-jvm 1c1a08: OUTPUT«w3rd␤c␤»
03:46 segomos interesting
03:49 segomos skids: we were abusing bareword args enough a couple of days ago :-)
03:49 segomos r: my \bareword = (my $a); bareword = 'cool bareword, bro';  bareword.say;
03:49 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«cool bareword, bro␤»
03:53 skids segomos: https://rt.perl.org/Public/Bug/Display.html?id=113546
03:54 segomos it's interesting it worked with go(|%options) and not go: |%options
03:55 skids I think that might be on a parsing level.
03:55 skids std: my %options; go: |%options;
03:55 camelia std 09dda5b: OUTPUT«ok 00:01 122m␤»
03:55 skids std: my %options; go(|%options);
03:55 camelia std 09dda5b: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'go' used at line 1�Check failed�FAILED 00:01 123m�»
03:56 skids std: sub go { }; my %options; go(|%options);
03:56 camelia std 09dda5b: OUTPUT«ok 00:01 125m␤»
03:56 skids std: sub go { }; my %options; go: |%options;
03:56 camelia std 09dda5b: OUTPUT«ok 00:01 124m␤»
03:57 segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go: |%options;
03:57 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Variable '&prefix:<|>' is not declared�at /tmp/tmpfile:1�------> [32mb go (:$a,:$b) { $a.say; $b.say; }; go: [33m�[31m|%options;[0m�»
03:58 segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go: %options;
03:58 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: ( no output )
04:00 lue isn't go: for methods?
04:01 woosley joined #perl6
04:01 segomos it does work for methods
04:02 segomos r:my %options = a => "b", b => "c"; class a { method go2 (:$a,:$b) { $a.say; $b.say; }; }; my $g = a.new;  a.go2: |%options;
04:03 segomos r: my %options = a => "b",  b => "c"; class a { method go2 (:$a,:$b) { $a.say; $b.say; }; }; my $g = a.new;  a.go2: |%options;
04:03 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«b␤c␤»
04:04 segomos seems like it would work with subs too
04:04 segomos maybe not, i haven't read the S docs in 6 or 7 months
04:07 lue r: sub foo($a) { say $a }; foo: 42;
04:07 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: ( no output )
04:10 woosley joined #perl6
04:10 lue that's perhaps the one of the worse outcomes for what I tried there :) .
04:10 lue std: sub foo($a) { say $a }; foo: 42;
04:10 camelia std 09dda5b: OUTPUT«ok 00:01 127m␤»
04:11 skids r: sub go ($inv: |args) { $inv.perl.say; args.perl.say }; go: 1
04:11 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: ( no output )
04:12 woosley joined #perl6
04:13 skids Yeah it isn't ven running the sub, and possibly shouldn't without an invocant.
04:17 kanishka joined #perl6
04:23 skids parses as a label maybe?
04:24 lue skids: that's possible, esp. if (as I suspect), the foo: form is method-only.
04:27 jnap joined #perl6
04:46 darutoko joined #perl6
05:01 kaare_ joined #perl6
05:28 jnap joined #perl6
06:23 kaare_ joined #perl6
06:26 [Sno] joined #perl6
06:29 jnap joined #perl6
06:29 kaleem joined #perl6
06:36 woosley joined #perl6
06:44 Vlavv joined #perl6
06:49 JimmyZ_ joined #perl6
06:49 JimmyZ_ left #perl6
06:59 aindilis joined #perl6
07:18 woosley joined #perl6
07:29 jnap joined #perl6
07:37 JimmyZ ll
07:37 d^_^b joined #perl6
07:42 amit joined #perl6
07:43 FROGGS joined #perl6
07:43 Guest87297 hi all
07:43 Guest87297 left #perl6
07:44 amits2878 joined #perl6
07:44 amits2878 hi all
07:45 FROGGS hi amits2878
07:45 daniel-s joined #perl6
07:46 amits2878 any leads on using mod_perl with perl 6? i am new to perl 6, however have extensive 9 yrs exp on perl 5
07:46 woosley joined #perl6
07:46 amits2878 some how perl 6  text doesnt makes sense, relative to perl 5
07:47 dmol joined #perl6
07:47 amits2878 i mean if at all it can be used.
07:48 FROGGS mod_perl is very very Perl 5 specific and can't be used for Perl 6
07:49 FROGGS and there is no mod_perl6 or some such :/
07:50 amits2878 oh ... so for now cgi programming isnt possible in perl 6 ... is it?
07:52 FROGGS not in that way... but you could install Bailador, start it on another port than 80 when apache is running...
07:55 zakharyas joined #perl6
08:05 grondilu joined #perl6
08:05 grondilu r: say my uint64 $ = 2**40
08:05 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«1099511627776␤»
08:05 grondilu I get 0 locally
08:06 grondilu I suppose it's because I'm on 32bits arch
08:14 JimmyZ not sure, got here 0 too, on win x64
08:14 JimmyZ but on linux x64 is 1099511627776
08:16 moritz o/
08:17 grondilu This is perl6 version 2014.03.01 built on MoarVM version 2014.02-124-gff01095
08:18 grondilu Linux redkey 3.13-6.towo-siduction-686 #1 SMP PREEMPT Fri Mar 7 11:35:46 UTC 2014 i686 GNU/Linux
08:18 grondilu r: say 1 +> 32
08:18 camelia rakudo-moar 1c1a08: OUTPUT«1␤»
08:18 camelia ..rakudo-parrot 1c1a08, rakudo-jvm 1c1a08: OUTPUT«0␤»
08:20 grondilu r: say 1 +> 30
08:20 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«0␤»
08:24 JimmyZ maybe needs rt?
08:28 bjz joined #perl6
08:30 jnap joined #perl6
08:31 grondilu it's not an other case of missing parenthesis in C macros, right?
08:31 grondilu because I read:
08:31 grondilu #define GET_REG(pc, idx)    *((MVMuint16 *)(pc + idx))
08:31 grondilu and later:
08:31 grondilu GET_REG(cur_op, 0).i64
08:32 grondilu I mean, that expands in:
08:32 grondilu *((MVMuint16 *)(pc + idx)).i64
08:33 grondilu is that ok?
08:35 denis_boyun joined #perl6
08:35 JimmyZ I found another bug ... input "qx/ls -l" and enter in repl
08:36 SamuraiJack_ joined #perl6
08:38 pdcawley joined #perl6
08:56 grondilu ok, that was not the correct definition of GET_REG I was looking at.  I'll try to see what happens if I change i64 to ui64.
08:58 moritz jnthn: we just had a gsoc application "A JIT compiler for MoarVM"; it would be nice if you could sign up on http://www.google-melange.com/gsoc/homepage/google/gsoc2014 (if you haven't already), and join #gsoc-help on irc.perl.org
09:02 virtualsue joined #perl6
09:31 jnap joined #perl6
09:36 moritz masak: you like hexagonal games, no? http://rudradevbasak.github.io/16384_hex/
09:36 masak moritz: yeah, I saw it yesterday :)
09:36 masak antenoon, #perl6
09:37 Rotwang joined #perl6
09:40 masak sergot: about 'go' versus 'go:' for subs: the colon can't work for subs, because that would collide with labels.
09:41 masak sergot: also, subs already are listops, whereas methods have to be made into listops.
09:44 moritz I find it easier to play than the square grid, actually
09:44 daniel-s joined #perl6
09:45 masak well, there are two more directions :)
09:46 moritz right
09:46 moritz and usually I do not use one of the directions
09:46 moritz so it's 3 vs 5, not 4 vs 6
09:47 markov joined #perl6
09:47 markov left #perl6
09:48 woosley left #perl6
09:52 masak which makes the relative difference bigger :)
09:52 masak m: say "{3/5} vs {4/6}"
09:52 camelia rakudo-moar 1c1a08: OUTPUT«0.6 vs 0.666667␤»
09:53 masak ...or not :)
09:53 JimmyZ masak: I had a bug, you will be interested
09:53 JimmyZ :)
09:53 * masak is listening
09:53 JimmyZ open rakudo repl and enter "qx/ls"
09:53 masak oh!
09:53 JimmyZ or qs/ls
09:53 masak m: say "{2/5} vs {2/6}" # should be this
09:53 camelia rakudo-moar 1c1a08: OUTPUT«0.4 vs 0.333333␤»
09:54 masak JimmyZ: will do.
09:54 masak whoa.
09:54 JimmyZ :)
09:54 * masak submits rakudobug
09:54 masak m: qx/ls
09:54 camelia rakudo-moar 1c1a08: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ai0aNyxKQIâ�¤Couldn't find terminator /â�¤at /tmp/ai0aNyxKQI:1â�¤------> [32mqx/ls[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        prefix o…»
09:54 * masak gets that in the REPL, but infinitely
09:54 masak JimmyZ++
09:55 JimmyZ perl6 -e "qx/ls" is right
09:57 masak I think something significant is happening with all the 2048 stuff on HN, but I have trouble verbalizing it.
09:58 masak something to do with the great ease with which you can publish something interactive like this, and have people use it and comment on it.
09:58 masak HN calls it "the first code-meme".
10:01 pecastro joined #perl6
10:01 moritz in some sense, it's a rush of the "derivative work" option that open source offers
10:02 moritz not in the sense that I can fork a library and slap ipv6 support on it, but in actually presenting the user a different UI
10:03 Lox i feel like, open source or not, the parodys come out in droves.  the open source factor just increases the number and rate of release
10:04 Lox it only took about a week for a fall out boy version of flappy bird to get released on both ios and android
10:04 Lox i'm still not sure who decided that was something the world desperately needed, but whatever
10:04 masak well, that's the "meme" part of it.
10:05 masak it's not so much "the world needs it", it's "hey, I took this morsel and digested it myself, have a look everyone!"
10:08 * masak .oO( you're in a regress of infinitely many parse errors, all alike )
10:25 denisboyun joined #perl6
10:32 jnap joined #perl6
10:37 jnthn moritz: I signed up. :)
10:37 jnthn moritz: Do I need to do anything else in the next couple of days with regard to GSoC?
10:42 moritz jnthn: you need to "request a role" at TPF (in the melange frontend) to become a mentor, ie see all the proposals
10:42 moritz jnthn: also, commenting on the proposal would be great
10:42 moritz jnthn: but the selection process takes several weeks iirc, so nothing more required in the next days after that
10:43 jnthn moritz: I already did request a role, I thought?
10:44 moritz jnthn: dunno, I can't see that
10:44 moritz jnthn: if you did, that's fine :-)
10:44 jnthn There was a "request a role" dropdown and I selected "yes" :)
10:47 * masak .oO( it's called "melange" because the interface is so straightforward and intuitive ) :P
10:52 jnthn :P
10:54 Lox can i make a suggestion on the book?
10:55 masak sure.
10:55 Lox for the exercises, i think it would be better if the answers didn't immediately follow the question, but were separated somehow, either with a page break or by just getting tossed into an appendix at the end
10:55 masak agreed.
10:56 masak Lox: maybe add that here? https://github.com/perl6/book/issues
11:01 sergot masak: I'm not sure I know what you are talking about. :)
11:03 ren1us Figure I might as well match my github username
11:04 dalek nqp: a6ff29c | jonathan++ | src/HLL/Compiler.nqp:
11:04 dalek nqp: Fix infinite errors in REPL on Moar.
11:04 dalek nqp:
11:04 dalek nqp: Maybe on JVM too.
11:04 dalek nqp: review: https://github.com/perl6/nqp/commit/a6ff29c393
11:05 jnthn Hopefully that deals with the qx/ls issue.
11:05 jnthn Flight &
11:07 masak sergot: oh, sorry, mis-tab.
11:07 masak meant segomos.
11:07 masak &
11:32 jnap joined #perl6
11:34 colors joined #perl6
11:59 timotimo o/
12:07 timotimo does someone with perl5 knowledge want to look closer into modules.perl6.org displaying "YAML Ain’t Markup Language"?
12:09 Ulti ?
12:10 Ulti looks ok to me if you just mean the webpage
12:10 darutoko joined #perl6
12:10 Ulti unless it's meant to be Aint
12:10 timotimo "ain`t" or something like that
12:11 Ulti it's ’ causing the problem
12:11 timotimo yes
12:11 Ulti from the info
12:11 timotimo but we should be supporting utf8 in the meta.info properly.
12:12 Ulti where's the code at I can take a quick look (its my day off)
12:12 moritz git clone git@github.com:perl6/modules.perl6.org
12:13 Ulti thanks
12:13 moritz web/build-project-list.pl
12:14 timotimo i already looked into it, but it was Mojo and perl5 and i couldn't tell if it shouldn't already be working
12:14 timotimo Ulti: also, moritz suggested (last time i brought this up) that maybe an update to Mojo would automagically fix this
12:14 Ulti oh nice its mojolicious too
12:15 Ulti timotimo: yeah that is a good plan
12:15 timotimo moritz: do you need to manually update modules.perl6.org's code? because mouq and me did some changes to the text at the top and they haven't shown up yet
12:15 moritz timotimo: and sri (who wrote Mojo) disagreed
12:15 timotimo moritz: i didn't read that
12:15 moritz timotimo: nope, should be cron-jobbed
12:15 timotimo something must be wrong with the cron-job then :)
12:15 Ulti use Encode is there :/
12:15 Ulti hmm
12:16 Ulti might be JSON does something lame
12:16 timotimo i've tried to verify that the encodings are specified along every step of the way, but i wasn't sure
12:16 timotimo i tried to verify it with curl -v to get the headers and it did say utf8 in the places i loked
12:16 Ulti I checked the website is serving utf8 too
12:17 Ulti so its not browserness
12:18 Ulti yeah so JSON has a load of functions to enable utf8 I haven't seen those being used
12:18 Ulti so might be it
12:18 timotimo sounds like a good thing to try
12:19 brrt joined #perl6
12:33 jnap joined #perl6
12:36 Ulti can anyone tell me what github-token should have in it?
12:36 Ulti is this a github app token?
12:36 kurahaupo joined #perl6
12:39 jnap joined #perl6
12:42 moritz yes
12:45 rindolf joined #perl6
13:04 guru joined #perl6
13:14 telex joined #perl6
13:18 Ulti *sigh* constantly failing to get anything back from github :/
13:18 Ulti I hate OAuth
13:18 Ulti more because its constantly hacked too which makes it extra pointless
13:18 brrt oauth hacked?
13:18 brrt oauth or oauth2?
13:22 brrt btw, never try to built 'versioning' in a sql database
13:22 brrt it just doesn't work
13:22 brrt everything fights against it
13:23 pmurias joined #perl6
13:23 pmurias is it possible to read the gsoc "JIT for MoarVM" proposal somewhere?
13:23 brrt yes :-)
13:24 moritz there's a gist link in today's backlog, iirc
13:24 brrt http://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/brrt/5717271485874176 - ought to be public
13:24 brrt also
13:24 pmurias brrt: the link doesn't work
13:24 brrt https://gist.github.com/bdw/9682548 if the former doesn't work
13:24 brrt … weird
13:25 pmurias I get "You are not logged as the user in the url" erro
13:25 pmurias r
13:25 brrt i see
13:25 brrt i get the same error from another url
13:26 brrt ehm browser
13:26 brrt the gist contains (almost) the same content
13:29 sqirrel joined #perl6
13:29 masak brrt: re SQL database versioning, I've been quite impressed by Theory++'s http://sqitch.org/ so far. haven't used it for anything production-y, but the idea seems very sound to me.
13:30 moritz masak: I though brrt meant versioned data inside an sql database, not external versioning for the schema
13:31 pmurias brrt: you should mention which architecture you are writting the jit for
13:31 masak moritz: oh!
13:32 masak moritz: well, event databases are the ultimate versioned data, if you ask me. :) but of course there are variants, and different external concerns.
13:32 timotimo pmurias: well, dynasm is cross-architecture, no?
13:32 moritz masak: event databases usually aren't SQL though, are they?
13:34 brrt masak, i'll check it out
13:34 pmurias timotimo: dynasm is, jits created using it arent
13:34 masak moritz: they can be.
13:34 masak brrt: please do, but moritz' caveat above may apply.
13:35 brrt oh, what moritz said is true
13:35 brrt i'm targetting x86 and perhaps x86_64
13:35 masak moritz: in the sense that you can do events in an SQL table. that's not the best use of SQL/tables, to be sure... but it works.
13:35 brrt because - i have x86_64 computers
13:35 pmurias targeting one seems best
13:35 masak +1
13:36 masak we can always broaden later.
13:36 brrt targetting x86 is more broadly usable
13:36 brrt x86_64 is what i personally have
13:36 masak JIT for one platform will be challenging enough :)
13:36 brrt that is true
13:36 masak don't be afraid to narrow your scope -- there will be enough surprises and minor setbacks along the way regardless ;)
13:36 pmurias and jits tend to be rewritten multiples times ;) (looking at the javascript ones)
13:36 masak I say this as a former GSoC student.
13:37 FROGGS brrt: do x86_64, because I have that too :o)
13:37 masak do one, that's the important bit :)
13:37 brrt x86 will run on both :-)
13:37 brrt and x86_64 is supposed to be 'nonhuman'
13:37 pmurias nonhuman?
13:37 brrt as in
13:37 brrt not written for humans to write
13:38 brrt not designed, that is
13:38 pmurias isn't the instruction set mostly a superset?
13:38 Ulti brrt: http://homakov.blogspot.co.uk/2014/02/how-i-hacked-github-again.html
13:41 pmurias brrt: one thing that would be nice to have in the proposal is to determin which ops you want to jit
13:43 brrt i don't know about x86_64, just what i read on the interwebs
13:43 brrt i see but I don't reallly want to commit to that yet
13:44 timotimo i have a raspberry pi, but i fear trying to develop a jit for it would be ridiculously time-consuming, as the cpu is so power-starved
13:44 timotimo but in the future, maybe one of us will own the OpenPandora successor (pyrex or something?), which is going to have a much better cpu
13:45 timotimo and also has a display and keyboard
13:45 brrt basically in the MVM runloop — iirc - there is a small subset of 'core' ops, if, unless, goto, getlex, set, return, const, add, mul, sub, etc
13:45 JimmyZ I saw luajit that x86_64 is mostly same as x86
13:45 brrt (which isn't all that small, by the way)
13:45 brrt hmmm
13:46 pmurias brrt: if you don't mention which ops the grading process will be mostly subjective
13:47 brrt true
13:47 brrt fair point, but i'll have to think about it / run it by jnthn a bit
13:59 pmurias "Nobody else wasn't crazy enough" seems to imply doing the project is crazy ;)
13:59 moritz that's ok, most projects are
13:59 brrt did i write wasn't?
14:00 brrt note-to-self: need more sleep
14:00 btyler joined #perl6
14:00 brrt the project isn't crazy, but writing a JIT compiler by yourself in 3 months … seems a bit ambitious
14:00 brrt but as i explained, JIT-compilation isn't magic today
14:00 pmurias sorry was
14:01 brrt nm :-)
14:01 brrt i was rather sleepdeprived at the time of writing so i'm sure there are lots of grammatical errors
14:01 masak I also especially noticed the "crazy enough" sentence.
14:01 masak I thought it was fine, because it was backed up by more serious things afterwards.
14:01 masak but YMMV.
14:01 * moritz too, but not in a negative way
14:02 jnap joined #perl6
14:03 pmurias brrt: and I'm not sure you want to be doing deoptimalisation in the two last weeks
14:03 brrt i can change it
14:03 brrt ehm
14:03 brrt i agree that it is actually pretty short
14:04 pmurias it seems to be the hardest part and is not necessary for a basic jit
14:04 brrt but to be honest i had imagined that halfway through we'll have JIT compilation and then I can focus on more complex things
14:04 brrt well, which is why i'd place it at the end
14:05 brrt writing a jit without taking into account type specialisation is not really a 2014 kind of move
14:05 brrt :-)
14:05 brrt but i agree that it is complex
14:05 brrt although not undoable - i need to have a callframe representation for the purposes of GC walking anyway
14:06 brrt and if you have that the next step is 'simply' to copy the callframe values over to an interpreted callframe
14:06 brrt you basically always know where you are when starting deoptimisation
14:06 brrt because it typically follows a type assertion - whose position you also know
14:07 brrt the concept is simple enough, is what i'm trying to say
14:07 thou joined #perl6
14:07 JimmyZ optimisation?
14:07 kbaker_ joined #perl6
14:09 brrt JimmyZ - i'm not sure I understand your question?
14:10 brrt (me wonders in amazement about the github bug)
14:12 geekosaur none too swift over there :/
14:12 * JimmyZ saw deoptimalisation...
14:13 brrt yes, well, long story short, it has been proven to be quite beneficial to assume (on the basis of type feedback) that certain data elements will always be of a certain type, and compile specialised code for that type
14:14 brrt but you need to guard against being suddenly passed a new type
14:15 brrt when a certain routine has been optimised for (say) integers, and suddenly somebody passes it floats, you'll need to 'deoptimise' - restore state from the optimised routine to the original (generic) routine
14:15 brrt so that execution can continue from there
14:16 moritz typically that means falling back to the interpreter
14:16 brrt precisely :-)
14:16 kaare_ joined #perl6
14:18 moritz the second typical optimization is a tracing JIT
14:18 timotimo you spell it "optimosation" :P
14:18 moritz ie compile across routine boundaries
14:18 masak brrt: in short, "JITs cheat, but have a plan for when they get caught".
14:20 pmurias v8 has a second honest JIT to fall back too ;)
14:20 masak ooh, that's pretty cool.
14:20 timotimo two-stage jitting?
14:20 kivutar joined #perl6
14:20 * masak wants to learn more about v8
14:20 timotimo but v8, there's more!
14:22 pmurias masak: it has a one which generates decent code quickly (it doesn't use an interpreter at all) and using data from the first one uses the second one to generate better code when it's worth it
14:22 * masak .oO( "vacht"!? ) :P
14:22 timotimo :)
14:22 timotimo v8 auf! es ist JITzeit!
14:23 masak pmurias: oh, I think I've heard of that.
14:23 masak pmurias: as I recall, it also parses functions and leaves them as AST intermediate form until they are actually called, saving some compilation time at the start. all but the mainline code is in AST form until it's needed.
14:24 pmurias if I recall correctly the don't store the ast as reparsing is quicker
14:24 moritz timotimo: Johavah's JIT Witnesses hand out pamphlets called "der v8turm" :-)
14:24 brrt yes, v8 is awesome
14:24 timotimo :D
14:25 brrt http://wingolog.org/tags/v8 see here
14:28 masak moritz: Jehovah's JITnesses! :P
14:28 moritz masak: :-)
14:28 kivutar joined #perl6
14:28 masak I'm sorry, but that turns into a tweet.
14:29 * JimmyZ had a v8 photo
14:29 moritz wasn't v8 also a video format?
14:29 JimmyZ jnthn may saw it
14:30 Timbus hah masak.  'we're here to talk about jehovah' 'well, make it quick'
14:30 masak moritz: yes: https://en.wikipedia.org/wiki/Video8#Video8
14:30 moritz Timbus++
14:30 masak Timbus: :D
14:30 masak Timbus: 'this runtime will save you... a lot of time'
14:33 JimmyZ V8:  http://www.flickr.com/photos/22122778@N04/
14:34 Timbus ah also, moritz that was vp8
14:34 Timbus and it was basically h264
14:34 moritz Timbus: I meant the old, analog Video8 that masak++ linked to
14:34 Timbus oh wow
14:35 Timbus see 'video format' -> assume you mean 'codec'. Gee im so Not Old
14:36 rindolf joined #perl6
14:37 hoelzro morning #perl6
14:37 tadzik hey hey
14:40 jnap joined #perl6
14:41 masak hoelzro! \o/
14:42 ClarusCogitatio joined #perl6
14:42 timotimo heyo hoelzro :)
14:45 ClarusCogitatio joined #perl6
14:53 ClarusCogitatio joined #perl6
15:01 kbaker_ joined #perl6
15:02 tadzik aaargh
15:02 tadzik can someone please make moduleloader have suggestions too?
15:02 tadzik like "Nativecall? Didn't you mean NativeCall?"
15:03 moritz once we have something like a module repo, that's actually quite possible
15:04 tadzik well, we know (or: can tell) that NativeCall.pm is installed
15:05 hoelzro module relies on some special objects in @*INC, right?
15:05 hoelzro so only certain implementations may be able to discover which modules are available
15:05 timotimo yes, froggs mentioned we can have repos installed that do things like look for the provides sections in the ecosystem and then it would be easy to add something for suggesting already-installed modules
15:05 hoelzro ex. if I'm retrieving modules via HTTP and there's no index pages
15:05 guru joined #perl6
15:06 moritz hoelzro: no, that's perl 5 that puts code objects into @*INC
15:06 moritz n: say @*INC
15:06 camelia niecza v24-109-g48a8de3: OUTPUT«␤»
15:06 moritz in fact, @*INC is a mixed rakudoism/perl5ism
15:06 Rotwang joined #perl6
15:09 masak moritz: really? it's mentioned by all(<S11 S17 S19 S22 S28>), with no hint of it being discouraged.
15:09 timotimo that's disgraceful!
15:10 rurban1 joined #perl6
15:10 moritz masak: I know
15:10 FROGGS lizmat++ specced that @*INC specifies the ordering in which the CompUnitRepos are queried... (you'd want to push a CompUnitRepo::Suggestion to that list)
15:11 moritz masak: I still remember that there's something wrong with @*INC, even though it's in the specs
15:11 FROGGS @*INC will be *the* list of CompUnitRepos in future
15:12 masak moritz: I think it's the idea that there will be a module repo/db... but I see no signs of that happening.
15:13 FROGGS masak: then you just miss the signs :o)
15:14 FROGGS masak: there is an advent calender entry about it, there is an active branch for rakudo and panda, and exactly this topic was the reason for liz and me being in Lyon last week
15:14 masak yes, then I missed it.
15:14 moritz FROGGS++
15:14 moritz lizmat++
15:14 masak good to know it's underway. lizmat++ FROGGS++
15:14 PerlJam moritz: perhaps you're thinking of http://irclog.perlgeek.de/perl6/2012-12-05#i_6215819 ?
15:15 FROGGS and once I have working patches for the CPAN Indexer for Perl 6 dists, we will have CPAN under our control :o)
15:15 FROGGS PAUSE already takes care of Perl 6 dist uploads, just the indexer thinks it is a Perl 5 dist
15:15 moritz PerlJam: and things like http://irclog.perlgeek.de/perl6/2013-06-25#i_7248841
15:16 FROGGS btw, I spotted a thinko yesterday when glancing at #perl-qa...
15:17 FROGGS we can install dev dists side by side to production dists in such a repo, right?
15:17 FROGGS and when we say: use Foo, we normally get the non-dev Foo with the highest version
15:18 FROGGS and when we do: use Foo:ver(v1..*) we should still get a non-dev version
15:19 FROGGS but how can you say that you like to take dev releases into account, when not specifying a specific dev release version literally?
15:20 moritz IMHO it can't be something inside the 'use' statement
15:21 moritz because you don't want to change all the 'use' statements in your distribution while developing, and then switch back
15:21 moritz it must be more like setting up @*INC to first look in lib/
15:21 FROGGS moritz: that is fine, you can unshift a CompUnitRepo::Local::File to @*INC pointing to your dev code while developing
15:22 FROGGS that is what I said, yes
15:22 FROGGS but you can also install dev versions of other people
15:22 moritz why does that sound like Java? :-)
15:22 FROGGS I am currently thinking of smoke boxes, that might want to pick up installed dev versions as deps also
15:23 moritz FROGGS: so unshift a CompUnitSelector::Dev to @*COMPUUNIT_SELECTORS? :-)
15:23 timotimo compu unit?
15:23 FROGGS hmmmm
15:23 JimmyZ what? I hate sbt and maven, it takes x hours to download jars and pom
15:23 JimmyZ :)
15:23 moritz JimmyZ: try building all those factories yourself instead :-)
15:26 hoelzro moritz: but @*INC *can* contain these Respository objects, right?
15:26 hoelzro I thought I read that somewhere
15:26 kivutar joined #perl6
15:26 hoelzro in S11 or something
15:26 hoelzro *Repository
15:27 moritz hoelzro: dunno, I'm not really on top of things right now
15:29 FROGGS hoelzro: @*INC will contain repositories, yes
15:29 FROGGS which stringify to their patch fwiw
15:29 FROGGS path*
15:30 PerlJam What's a "repository" exactly?
15:31 moritz a bunch of modules, I think
15:31 moritz ok, that wasn't "exactly"
15:31 moritz more like, "a snapshot of a set of modules and their meta data"
15:32 PerlJam That sounds quite like local::lib
15:33 jnap1 joined #perl6
15:36 xenoterracide joined #perl6
15:38 tadzik Internal error: Unwound entire stack and missed handler
15:38 tadzik ww
15:40 [Sno] joined #perl6
15:47 kaleem joined #perl6
15:49 virtualsue joined #perl6
15:55 FROGGS PerlJam: a repository could be the module collection maintained by your platform provider (debian for example)
15:55 FROGGS or a directory structure like we have now for the modules your are developing
15:56 FROGGS or a database you install dists to, whether this database is on your disk or in a cloud does not matter much
15:56 FROGGS such a repository could also easily be an installer hook
15:59 xinming_ joined #perl6
16:13 Alina-malina joined #perl6
16:16 sjn Just to give you guys a heads-up.. http://sonen.ifi.uio.no/events/Damian-Conway
16:16 sjn Friday next week at the University in Oslo
16:16 sjn no idea how many will come, though
16:17 sjn some may end up here :)
16:18 raiph joined #perl6
16:19 ren1us all the cool stuff is in europe :(
16:19 bluescreen10 joined #perl6
16:22 PZt joined #perl6
16:23 sjn ren1us: nah, you an organize stuff yourself, then all the cool stuff will happen in your hometown :)
16:29 ren1us sjn: the problem is, my college is sortof in the middle of nowhere.  most big things in new england happen at yale or MIT, rather than some small liberal arts college nobody's heard of
16:29 segomos ren1us: burning man is in the middle of nowhere
16:29 ren1us charming
16:30 segomos just saying, the place doesn't need to be in the middle of something to be big
16:30 PerlJam "I live in the technological desert; how do I organize an event where tons of interesting people would want to attend?"
16:30 PerlJam s/tons of// even
16:31 FROGGS joined #perl6
16:32 ren1us eh, it's a delicate system
16:32 ren1us it's very hard to get the 35 compsci majors really excited without making the 1900 liberal arts majors generally uncomfortable
16:33 molaf_ joined #perl6
16:34 PerlJam ren1us: sounds awesome!  You should find ways to get those 35 CS majors excited more often :)
16:34 ren1us PerlJam: Well played.
16:36 sjn ren1us: you make a mediocre or a decent college into a better one by organizing interesting stuff that attracts interesting people
16:37 sjn ren1us: there's definitely an aspect of bootstrapping to this, especially if everyone else is of the "this place sucks, I'm leaving" sort
16:37 sjn but one thing is always true; Nothing's gonna happen if noone cares enough to make something happen
16:38 sjn and as for Perl 6 activities, this means *we* are the ones who have to make something happen
16:39 ren1us true enough
16:40 ren1us on a perl 6 note, who came up with the idea to make standard operators out of unicode characters that don't exist on any keyboard?
16:41 ren1us i started working through the book earlier and it strikes me as an odd choice
16:41 FROGGS ren1us: what operator do you have in mind?
16:42 ren1us FROGGS: »
16:42 FROGGS there are usually "Texas" version, aka versions that are assembled using ascii chars
16:42 FROGGS AtlGr+y
16:42 ren1us there are, but still, it seems an odd choice
16:42 FROGGS AltGr+y actually :o)
16:45 FROGGS TimToady: I just added http://rosettacode.org/wiki/XML/Input#Perl_6
16:46 PerlJam ren1us: Perl6 is Unicode for better or for worse
16:55 dalek rakudo-star-daily: f7bfdb9 | coke++ | log/ (5 files):
16:55 dalek rakudo-star-daily: today (automated commit)
16:55 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/f7bfdb9ef3
16:56 [Coke] ren1us: welcome to the 21st century?
16:57 [Coke] the current spec for perl6 has many fewer unicode operators/vars than when we started, and nearly all of them have ascii equivalents.
16:58 iolympian joined #perl6
16:58 virtualsue joined #perl6
16:59 nagu joined #perl6
17:00 timotimo we used to have the yen symbol in place of Z
17:01 timotimo FROGGS: single quoted string instead of heredoc? for shame!
17:01 timotimo you should have used heredocs to show off how awesome it is that we can unindent automatically
17:03 hoverboard joined #perl6
17:04 timotimo oh! i have a task that i could totally do!
17:04 timotimo implement the :chomp adverb for heredoc and other quotes
17:13 FROGGS timotimo: I was thinking about heredocs, but this is a bit simpler, you know? :o)
17:13 timotimo it is?
17:14 timotimo hm, it would be kind of cool if we could have user-defined escape sequences in strings
17:15 timotimo like for xml or html documents, we could have \e& be &amp; or \e© be &copy;
17:15 timotimo (e for "entity", just a suggestion)
17:21 FROGGS m: sub escape:sym<e&>{ '&amp;' } ?
17:21 camelia rakudo-moar 1c1a08: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/MojH_m8HqWâ�¤Cannot add tokens of category 'escape'â�¤at /tmp/MojH_m8HqW:1â�¤------> [32msub escape:sym<e&>[33mâ��[31m{ '&amp;' } ?[0mâ�¤    expecting any of:â�¤        pair valueâ�¤        quot…»
17:21 FROGGS sad :o)
17:24 iolympian1 joined #perl6
17:24 raiph FROGGS, lizmat: do you have comments about http://perlmonks.org/?node_id=1078911? maybe add a comment there (or here)? there'll surely be mean trolling, but I think you'll probably also get great feedback/ideas from one or two more reasonable monks.
17:26 FROGGS raiph: thanks, I will reply in a bit
17:29 raiph ++FROGGS
17:32 guru joined #perl6
17:32 Khisanth joined #perl6
17:34 vendethiel joined #perl6
17:38 iolympian joined #perl6
17:50 timotimo ohai
17:56 denisboyun joined #perl6
17:56 iolympian left #perl6
17:57 SamuraiJack_ joined #perl6
18:02 colomon o/
18:03 timotimo how does quote_mod work with multiple quote modifier?
18:03 timotimo i don't see a repetition anywhere inside
18:08 moritz timotimo: maybe quibble recurses?
18:09 timotimo let me look
18:09 timotimo ah!
18:10 timotimo babble parses extra quotepairs
18:10 timotimo it could very well be that the quote_mod tokens are not what i'm looking for if i want to implement :chomp
18:15 denis_boyun_ joined #perl6
18:19 rurban1 joined #perl6
18:22 FROGGS raiph: I have no idea what I could write
18:31 ashleydev f
18:31 timotimo masak: what is that cute animal in your twitter avatar, btw?
18:34 raiph FROGGS: thanks for looking; i'll ask you a few questions here to see where that goes
18:34 FROGGS k
18:37 SamuraiJack_ joined #perl6
18:39 masak timotimo: I don't know if it has a name, but it's from "My Neighbor Totoro"
18:41 timotimo ah
18:41 timotimo oh!
18:41 timotimo i remember that from one of jackie kircher's doodles i believe
18:41 timotimo http://jackiekircher.tumblr.com/image/78478465939
18:44 raiph FROGGS: are you familiar with / agree with the issues McA raised in his bullet points?
18:44 timotimo it seems like there can only ever be one postprocessor_ method attached to the quoter
18:45 timotimo so maybe that's not the right approach
18:45 FROGGS raiph: yes, I can agree with these points
18:46 FROGGS raiph: and yes, I am familiar with the issues itself :o)
18:46 FROGGS my hope is that we cope better with these problems, but we have to see if our plan works out or not
18:49 FROGGS one problem will always remain: the os vendor ships perl version X, but you want a never version for reason Y
18:49 nwc10 eg "X is 10 years old"
18:50 nwc10 (Because your OS Vendor supports their OS for 10 years, and X was current when the OS was new)
18:50 FROGGS or one year in Perl 6 land, which changes enough
18:50 FROGGS ohh, yes
18:50 TimToady FROGGS++ for XML
18:52 FROGGS TimToady: we solved this task but I think we need to port a mature XML test suite some day
18:53 FROGGS nwc10: perhaps we should propose that a perl6-vendor gets installed which then would not be under control of the user?
18:54 raiph FROGGS: McA asks: "what do you all out there use as your path out of this problem? How should a newcomer cope with this issue?" I think it would be great if you could write a brief high level summary of how P6 is approaching these issues, where P6 follows the path that's evolved in the P5 world, where it does not, and what's still worth discussing.
18:54 raiph Or is there already such a post or doc?
18:56 FROGGS raiph: there is no such post, and I have problems describing how we cope with these issues, because that would be highly theoretically and might not reflect the truth once it will be implemented
18:58 FROGGS raiph: I mean, we are in a good position to solve the issue of only have one module version because we can install all version side by side
18:59 FROGGS raiph: but I really can't tell how the interaction between the vendor perl and your needs turn out to be
19:06 crazedpsyc joined #perl6
19:07 kaare__ joined #perl6
19:11 [Coke] java 8 released.
19:11 [Coke] ( a few days ago, apparently.)
19:11 timotimo hooray
19:12 vendethiel invokedynamic !
19:13 timotimo no, that's already been there (though not even good at all)
19:14 vendethiel timotimo: yeah, invokedynamic came with java 7, but it was really bad
19:15 timotimo i heard as much
19:15 vendethiel and IIRC, jruby's guy (headius) got it move forwards a lot, so that's cool
19:15 vendethiel everybody wins !
19:15 timotimo \o/
19:15 timotimo yeah, we do and they do, too
19:16 FROGGS that is what I think when reading that we say thank you to the rakudo/parrot/moarvm devs, but not to the jvm devs
19:17 simula67 joined #perl6
19:17 vendethiel FROGGS: though the JVM devs already have the Java and others (scala, groovy) devs to thank them :-)
19:17 vendethiel (which doesn't mean being nice to them isn't good)
19:18 rurban1 joined #perl6
19:19 raiph FROGGS++ # reading / considering McA's perlmonks post
19:20 vendethiel (who's McA / which post, if I may ask ?)
19:21 virtualsue joined #perl6
19:24 moritz vendethiel: there was a perlmonks link in the backlog
19:24 moritz vendethiel: and McA is its author
19:24 vendethiel moritz: got it -- thanks
19:26 vendethiel .oO(Angry people posting anonymously -- how strange !)
19:27 timotimo anomalously?
19:27 vendethiel timotimo: that actually looks like it's a -- sadly -- usual behavior
19:30 raiph .oO ( "anomalies are the new norm" -- anon )
19:38 timotimo anom?
19:39 [Coke] r: say "a" ~ "nom" x 10;
19:39 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«anomnomnomnomnomnomnomnomnomnom␤»
19:49 skids It's all fun and games until soeone invents an anomolizer
19:58 dmol joined #perl6
20:13 Sqirrel joined #perl6
20:23 skids Just to give FROGGS++ and lizmat++ something to play with, Sum:: now provides an "emulates" for DIgest::MD5.  (At least, I think I got it indexed correctly in META.info)
20:25 FROGGS yeah, the emulates is something interesting indeed
20:25 FROGGS perhaps not even hard to implement
20:29 skids Should I wait on renaming META.info to META.json, or does modules.perl6.org already know about it?
20:31 FROGGS skids: no, only PAUSE knows about it
20:31 lizmat it should be META6.json, right FROGGS?
20:31 FROGGS yes, META6.json
20:32 FROGGS skids: you could add a META6.json now, but this one has a slightly different structure
20:33 skids Sure, just follow S22?
20:33 FROGGS I guess we could even let panda support the META.info for a while for stuff that resides on github
20:33 FROGGS skids: yes, the new S22
20:34 FROGGS and please put a proper version string in it, not * as so many do
20:35 skids Already took care of that.  Though I nibble at the source in spare time and commit to the repo, and modules.perl6.org always takes HEAD, so it's kind of tedious to actually update version numbers every time.
20:36 FROGGS yeah, github is not the best place to make a proper release :o)
20:37 skids Well, if modules.perl6.org could be trained to take a given tag it wouldn't be horrible.
20:37 FROGGS I guess when we have CPAN we will add tags to the repo on github when we upload a tarball of that version to CPAN
20:38 FROGGS skids: I will not spend too much time for that site in the near future
20:38 FROGGS at least not for a site that is only connected to github
20:38 FROGGS (even when I love github very much)
20:39 skids Maybe if META6.json could be checked out of HEAD, and had a field for e.g. "stable-release-tag" that could say what tag to check out from.
20:40 FROGGS interesting idea
20:44 brrt joined #perl6
20:46 skids I imagine the enforcement of the "production" field will be lenient at first.
20:48 FROGGS skids: that is always just the opinion of the dist author
20:49 skids Was asking WRT "If a distribution is not ready for production, then it will never be recommended."
20:51 tadzik . o O ( When will Perl::6 be "production"? )
20:51 segomos now
20:51 FROGGS tadzik: GO AWAY!!
20:51 FROGGS :P
20:52 tadzik :D
20:52 itz__ tadzik: when there are paid jobs
20:53 FROGGS skids: the rule is to only get the last stable release... but perhaps you get an alpha version if there was no stable yet?
20:54 tadzik itz__: heh, does gsoc count? :P I used to say I made more money with Perl 6 than with Perl 5
20:54 tadzik no longer true tho
20:55 FROGGS today was again such a day where I said to myself (aloud): Damn! I want to solve that in Perl 6!
20:56 tadzik I tried making a game in typescript, and it was so slow that I said "meh, I'll be better off with rakudo"
20:56 [Coke] FROGGS: I do that every day, but I get paid to write CF all the time. :)
20:56 tadzik no regrets, even though I have to write the engine myself :)
20:58 FROGGS [Coke]: I just get paid to solve problems :o)
21:01 * moritz can't stop thinking about how he would redesign the crappy accounting/billing code at $work (currently mostly a single subroutine with 5k lines of p5 code)
21:05 grondilu r: say 1 +> 32
21:05 camelia rakudo-moar 1c1a08: OUTPUT«1␤»
21:05 camelia ..rakudo-parrot 1c1a08, rakudo-jvm 1c1a08: OUTPUT«0␤»
21:05 FROGGS moritz: the thing I would like to replace is a one year old middleware soap/json-rpc server... it is very OO, but it would be way cleaner in Perl 6
21:06 [Coke] moritz: you get to deal with crappy perl 5 code? Luxury!
21:06 FROGGS moritz: I'd need a replacement for POE and SOAP::Lite though, the rest should be no big deal
21:07 moritz [Coke]: you haven't seen the code.
21:07 FROGGS [Coke]: just because it is Perl is does not mean anything
21:07 moritz [Coke]: 5k lines with 80+ variables that are in scope everywhere in that file
21:08 segomos sounds like heaven
21:08 [Coke] I'm sure it's bad. it's still perl.
21:08 [Coke] (also, it was a shout out to the four yorkshiremen skit.)
21:09 segomos could be java
21:09 flussence 5k... ouch. I tried hard to cut down a ~200 line loop at my old $dayjob.
21:09 [Coke] (https://www.youtube.com/watch?v=13JK5kChbRw)
21:13 FROGGS hehe
21:13 FROGGS [Coke]++
21:16 itz__ I'm writing a catalyst/DBIC REST server at work which is OK but most of the stuff is legacy 10 yr old P5
21:16 itz__ DBIC is OK but I prefer mojo to catalyst
21:16 moritz itz__: 10 year old DBIC?
21:16 moritz I didn't even know that project was that old :-)
21:16 itz__ thats the other stuff
21:17 moritz oh
21:17 moritz our codebase goes back nearly 20 years
21:17 itz__ which features "embperl" (how to make perl look like PHP) :|
21:17 moritz wow
21:25 itz__ I need to sneak perl6 into work :>
21:32 masak 'night, #perl6
21:49 ren1us after almost two days straight
21:49 ren1us goodnight to all of you
22:00 BenGoldberg joined #perl6
22:08 rylinaux left #perl6
22:22 BitPuffin joined #perl6
22:44 PZt joined #perl6
22:46 segomos mojo is nice to work with
23:01 brrt dear perl6 hackers... i have a problem of sorts
23:01 brrt i've an algorithm to compact arrays
23:01 brrt it works brilliantly
23:01 brrt i can't explain why
23:01 brrt care to take a look?
23:03 brrt https://gist.github.com/bdw/9698303
23:05 brrt (and yes, its python, so sue me, we're all adults here)
23:06 Psyche^_ joined #perl6
23:09 TimToady I dunno, there're some teens here too...
23:09 cognominal joined #perl6
23:10 TimToady though I must say by and large that the teens we've had on this channel have been more mature than some of the adults :)
23:10 brrt :-) maybe
23:10 TimToady http://rosettacode.org/wiki/Idiomatically_determine_all_the_characters_that_can_be_used_for_symbols#Perl_6 is kinda fun
23:11 TimToady it just looks like a swap sort with a very simple criterion
23:12 TimToady (the array compacter)
23:12 brrt it is simple
23:13 brrt but i'm struggling to explain why empty always ends up at the exact end of the array
23:14 brrt does it? yes, it does, for any of the (20 10) permutations i tried before the core got too hot
23:17 TimToady whenever it finds an empty before a non-empty, it swaps them, and since it looks at everything in one pass, all the empties end up at the end
23:18 TimToady any given empty migrates to the end as many times as it gets "swapped"
23:18 TimToady in C terms, it's really just two pointers pointing into the array, and you just copy down the real elements, and ignore the non-real ones
23:19 brrt i'm kind of seeing it, but not really clearly
23:19 TimToady you probably want to step through it with a small example with a couple entries of each type
23:20 brrt hmm i see
23:20 brrt every time an empty is swapped with a nonempty it creates a new empty spot
23:20 TimToady in essence, it's just moving that entry down and making a hole, yes
23:21 TimToady so really, you just get a larger "bubble" of holes in the middle as you proceed
23:22 TimToady eventually the other side of the bubble gets too thin, and pops, and then you're done :)
23:23 brrt i see :-)
23:27 virtualsue joined #perl6
23:27 brrt thanks
23:38 sisar joined #perl6
23:38 sisar o/ A few week back, nqp wasn
23:38 yoleaux 18 Mar 2014 12:27Z <timotimo> sisar: i think the problem is that the classpath on windows expects ; instead of : and thus it doesn't find the jar files?
23:38 brrt left #perl6
23:38 sisar oops..
23:42 sisar timotimo: sorry to get back to you so late, but any idea how do I fix that ?
23:43 sisar another question: a few weeks back I was unable to build nqp on parrot. Now suddenly nqp builds on parrot. I wast to find out which commit fixed it. How do I use git bisect to do that ?
23:44 sisar *want
23:48 grondilu r: class A { has $!x; method gist { "{$!x} !!" } }; say A.new: :x(7);
23:48 camelia rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«use of uninitialized value of type Any in string context␤ !!␤»
23:48 camelia ..rakudo-parrot 1c1a08: OUTPUT«use of uninitialized value of type Any in string context  in method gist at /tmp/tmpfile:1␤␤ !!␤»
23:48 timotimo sisar: change all : to ; in the makefile?
23:48 grondilu n: class A { has $!x; method gist { "{$!x} !!" } }; say A.new: :x(7);
23:48 camelia niecza v24-109-g48a8de3: OUTPUT«Use of uninitialized value in string context␤  at /home/p6eval/niecza/lib/CORE.setting line 1389 (warn @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 269 (Mu.Str @ 15) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/6MmgENUuU6 line 1…»
23:48 grondilu ahh
23:48 sisar timotimo: ok, i'll try that
23:48 grondilu n: class A { has $.x; method gist { "{$!x} !!" } }; say A.new: :x(7);
23:48 camelia niecza v24-109-g48a8de3: OUTPUT«7 !!␤»
23:48 timotimo or the other way around?
23:48 timotimo dunno
23:48 grondilu r: class A { has $.x; method gist { "{$!x} !!" } }; say A.new: :x(7);
23:48 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«7 !!␤»
23:51 grondilu r: class A { has $.l; method gist { 7.fmt("%{$!l}d") } }; say A.new: :x(1);
23:51 camelia rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«use of uninitialized value of type Any in string context␤7␤»
23:51 camelia ..rakudo-parrot 1c1a08: OUTPUT«use of uninitialized value of type Any in string context  in method gist at /tmp/tmpfile:1␤␤7␤»
23:51 grondilu oh I see
23:53 * grondilu often forgets that % interpolates in Perl 6
23:53 grondilu r: class A { has $.l; method gist { 7.fmt('%' ~ $!l ~ 'd') } }; say A.new: :x(1);
23:53 camelia rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«use of uninitialized value of type Any in string context␤7␤»
23:53 camelia ..rakudo-parrot 1c1a08: OUTPUT«use of uninitialized value of type Any in string context  in method gist at /tmp/tmpfile:1␤␤7␤»
23:54 grondilu hum
23:54 TimToady % doesn't interpolate unless you have a subscript
23:55 grondilu r: class A { has $.l; method gist { 7.fmt('%0' ~ $!l ~ 'd') } }; say A.new: :l(1);
23:55 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«7␤»
23:55 grondilu r: class A { has $.l; method gist { 7.fmt('%0' ~ $!l ~ 'd') } }; say A.new: :l(10);
23:55 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«0000000007␤»
23:56 grondilu damn that was hard, but I eventually got through
23:58 TimToady r: class A { has $.l; method gist { 7.fmt("\%0{$!l}d") } }; say A.new: :l(10);
23:58 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«0000000007␤»
23:58 TimToady r: class A { has $.l; method gist { 7.fmt("%0$!l\d") } }; say A.new: :l(10);
23:58 camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfile�Unrecognized backslash sequence: '\d'�at /tmp/tmpfile:1�------> [32mA { has $.l; method gist { 7.fmt("%0$!l\[33m�[31md") } }; say A.new: :…»
23:59 TimToady std: class A { has $.l; method gist { 7.fmt("%0$!l\d") } }; say A.new: :l(10);
23:59 camelia std 09dda5b: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized backslash sequence: '\d' at /tmp/gDiVflMGus line 1:�------> [32m { has $.l; method gist { 7.fmt("%0$!l\d[33m�[31m") } }; say A.new: :l(10);[0m�Check failed�FAILED 00:01 129m�»
23:59 TimToady I guess

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

Perl 6 | Reference Documentation | Rakudo