Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-11-03

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:14 timotimo weird.
00:14 timotimo even with panda it's sporadic rather than happening every time
00:24 kuimacro joined #perl6
00:40 Alina-malina joined #perl6
00:59 bjz joined #perl6
01:00 raiph joined #perl6
01:06 dayangkun joined #perl6
01:09 j4jackj joined #perl6
01:11 avuserow joined #perl6
01:17 Alina-malina joined #perl6
01:20 tinyblak joined #perl6
01:30 tinyblak joined #perl6
01:35 xenoterracide_ joined #perl6
01:56 tinyblak joined #perl6
01:57 colomon joined #perl6
02:10 m_athias joined #perl6
02:27 xenoterracide_ joined #perl6
02:30 chenryn joined #perl6
02:35 xinming joined #perl6
02:46 kaleem joined #perl6
02:55 Alula joined #perl6
03:00 pierrot joined #perl6
03:25 Mso150 joined #perl6
03:31 gfldex joined #perl6
03:41 bjz joined #perl6
03:58 dalek specs: 845eb79 | (Lucas Buchala)++ | S02-bits.pod:
03:58 dalek specs: Typos and POD fixes in S02
03:58 dalek specs: review: https://github.com/perl6/specs/commit/845eb79ae2
04:01 rmgk_ joined #perl6
04:11 yeahnoob joined #perl6
04:20 xenoterracide joined #perl6
04:25 thou joined #perl6
05:00 chenryn joined #perl6
05:25 kaare_ joined #perl6
05:29 raiph joined #perl6
05:47 Ben_Goldberg joined #perl6
06:12 yeahnoob joined #perl6
06:13 kaleem joined #perl6
06:32 yeahnoob joined #perl6
06:33 tony-o failing build on moar - anyone else having trouble with a fresh build?
07:04 dayangkun joined #perl6
07:10 rurban joined #perl6
07:22 masak mornin', #perl6
07:22 masak tony-o: trying -- hold on.
07:25 denis_boyun_ joined #perl6
07:25 masak tony-o: built just fine here.
07:26 masak tony-o: maybe do a `git clean -xdf` and try again?
07:31 rurban_phone joined #perl6
07:37 yeahnoob joined #perl6
07:44 dalek DBIish: 23711dd | masak++ | t/99-common.pl6:
07:44 dalek DBIish: fix typo
07:44 dalek DBIish: review: https://github.com/perl6/DBIish/commit/23711dd1e6
07:44 virtualsue joined #perl6
07:57 moritz \o
07:57 masak o/
07:58 * masak is writing a SYNOPSIS section for DBIish
07:59 moritz ++masak
07:59 masak # Connect failed with error Cannot locate native library 'libsqlite3.so'
07:59 masak ...this is after I did `sudo apt-get install sqlite3`.
07:59 masak what am I missing?
08:01 masak I suppose it's NativeCall that expects to find libsqlite3.so in a certain place. but where?
08:02 FROGGS joined #perl6
08:02 masak doing a `locate libsqlite3.so` turns up 5 hits.
08:03 ptc_p6 joined #perl6
08:04 moritz masak: hopefully somewhere where ld finds it
08:04 masak ok, backing up a bit.
08:05 masak I'm on a sensible Linux system. I want to use DBIish with SQLite. what do I do?
08:05 masak the DBIish project doesn't seem to contain instructions for how to get started. I'd love to be proven wrong on this.
08:06 masak assume I'm good at following instructions, but not an expert at things that end with .so
08:08 moritz TBH, I don't know
08:08 moritz last time I tried it, it simply worked
08:08 masak I skimmed `man ld`. now I'm more confused.
08:08 bonsaikitten masak: by default things should be in the paths defined in /etc/ld.so.conf
08:08 bonsaikitten that's where the dynamic linker will search
08:09 moritz so I guess I installed libsqlite3-dev
08:09 bonsaikitten if you have it in divergent locations you could use LD_PRELOAD to hack around it
08:11 masak ok, my /etc/ld.so.conf includes another file, /etc/ld.so.conf.d/i686-linux-gnu.conf, which mentions /lib/i386-linux-gnu, in which I *do* have a file libsqlite3.so.0
08:11 masak so by that measure, it oughta work.
08:11 * masak tries installing libsqlite3-dev
08:11 masak that did it. moritz++
08:12 bonsaikitten actually ld.so.conf is only the human-readable config, 'ldconfig' command creates a ld.so.cache that is a more efficient binary format
08:12 bonsaikitten so any updates will only become 'visible' after running ldconfig (which package managers usually trigger themselves)
08:12 moritz masak: if you're on a 64 bit linux, the /lib/i386-linux-gnu is probably a directory for 32bit libs, or something
08:14 ghostlines joined #perl6
08:20 dalek DBIish: fb833c6 | masak++ | / (2 files):
08:21 dalek DBIish: introduce a SYNOPSIS
08:21 dalek DBIish:
08:21 dalek DBIish: A good synopsis helps someone get started by providing a likely code template
08:21 dalek DBIish: that can be modified and built upon.
08:21 dalek DBIish:
08:21 dalek DBIish: The README.md had no SYNOPSIS, and the main module file had one that targets
08:21 dalek DBIish: developers of the module, not users.
08:21 dalek DBIish: review: https://github.com/perl6/DBIish/commit/fb833c64a4
08:26 masak it's fun to play the role of "enlightened end user", who goes ahead and contributes an improvement rather than rant and rave about its absence.
08:26 masak :>
08:27 rindolf joined #perl6
08:28 moritz masak++
08:31 bonsaikitten with some upstreams proper ranting is needed
08:31 bonsaikitten "You're doing it wrong" as a reply to bugreports can be a bit *hnyeargh!!1*
08:31 bonsaikitten sadly the perl6 ecosystem is too functional for such deviations ;)
08:58 telex joined #perl6
08:59 tinyblak joined #perl6
09:00 tinyblak_ joined #perl6
09:02 darutoko joined #perl6
09:04 rurban joined #perl6
09:10 Mso150_n joined #perl6
09:14 kjs_ joined #perl6
09:18 virtualsue joined #perl6
09:22 FROGGS nqp: say("foo" ~~ /<+alpha+[\< \[ \« ]>>/)
09:22 camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say(\"foo\" "␤   at gen/moar/stage2/NQPHLL.nqp:481  (/home/camelia/rakudo-inst-1/languag​es/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQP.nqp:913  (/home/camelia/rakudo-inst-1/languages​/nqp/lib/nqp.moarvm:comp_unit:872)␤…»
09:22 camelia ..nqp-jvm: OUTPUT«(signal ABRT)»
09:22 camelia ..nqp-parrot: OUTPUT«Confused at line 2, near "say(\"foo\" "␤current instr.: 'panic' pc 15673 (gen/parrot/stage2/NQPHLL.pir:5731) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
09:23 FROGGS nqp: say(":foo" ~~ /<?before ':' <+alpha+[\< \[ \« ]>> ..../)
09:23 camelia nqp-jvm: OUTPUT«(signal ABRT)»
09:23 camelia ..nqp-{moarvm,parrot}: OUTPUT«:foo␤»
09:24 FROGGS with latest parrot:
09:24 FROGGS $ nqp-p -e 'say(":foo" ~~ /<?before ":" <+alpha+[\< \[ \« ]>> ..../)'
09:24 FROGGS Unable to parse expression in metachar:sym<assert>; couldn't find final '>'  at line 2, near "+[\\< \\[ \\\x{ab}"
09:24 FROGGS I am adding a nqp test now
09:25 moritz nqp-p: /<?before ":" <+alpha+[\< \[ \« ]>>/
09:25 camelia nqp-parrot: ( no output )
09:27 FROGGS yes, parrot 6.8.0 does that correctly
09:29 FROGGS nqp-p -e 'say("foo" ~~ /<-[\«]>/)'
09:29 FROGGS Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<-[\\\x{ab}]>/)"
09:29 FROGGS nqp-p -e 'say("«" ~~ /<[\«]>/)'
09:29 FROGGS Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<[\\\x{ab}]>/)"
09:30 FROGGS nqp-p -e 'say("«" ~~ /<[«]>/)'
09:30 FROGGS «
09:34 FROGGS nqp: say("\\«" ~~ /<[\«]>+/)
09:34 camelia nqp-jvm: OUTPUT«(signal ABRT)»
09:34 camelia ..nqp-{moarvm,parrot}: OUTPUT««␤»
09:34 masak bonsaikitten: I think our biggest weakness in the Perl 6 community is that things get abandoned.
09:34 rurban That's probably tripping over a wrong .lex  ""
09:35 masak bonsaikitten: few people spread over many modules.
09:35 rurban So a nqp problem
09:36 FROGGS it should also translate to <[\x{ab}]>, not <[\\\x{ab}]>
09:37 FROGGS rurban: is the .lex bug already fixed?
09:38 rurban Not in parrot yet. Will be major imcc string handling rewrite
09:38 rurban I only mentioned the problem and workaround in the change log and docs
09:39 FROGGS then I wonder how something should 'trip over a wrong .lex  ""' as you say
09:39 rurban I guess it's the new nqp, not the new parrot
09:40 FROGGS hmmm, I don't think so, but I can easily check that
09:40 novice314 joined #perl6
09:41 tinyblak joined #perl6
09:41 rurban Which puts more statements into blocks, hence the regex is now a lex. It worked fine for a global
09:41 FROGGS wait, it cant be a new nqp, because the nqp here on this channel is new, but uses parrot 6.8.0
09:41 FROGGS and it passes here
09:42 FROGGS nqp-p: say("«" ~~ /<[\«]>/)
09:42 camelia nqp-parrot: OUTPUT««␤»
09:42 fhelmberger joined #perl6
09:42 FROGGS but I'll build nqp-2010.09 on parrot 6.9.0 now
09:43 FROGGS 2014.09*
09:44 novice314 perl6: 1,2,3 >>~>>';'
09:44 camelia rakudo-{parrot,moar} 315ec6: ( no output )
09:44 rurban wait. Getting better irc client
09:44 FROGGS m: say 1,2,3 >>~>>';'
09:44 camelia rakudo-moar 315ec6: OUTPUT«123;␤»
09:44 FROGGS novice314: ^^
09:45 rurban joined #perl6
09:45 FROGGS m: say (1,2,3) >>~>>';'
09:45 camelia rakudo-moar 315ec6: OUTPUT«1; 2; 3;␤»
09:47 rurban see https://github.com/parrot/parrot/issues/1095
09:47 novice314 m: say ( (1,2,3) >>~>>';'  ) Z (4,5,6,7)
09:47 camelia rakudo-moar 315ec6: OUTPUT«1; 4 2; 5 3; 6␤»
09:48 FROGGS nqp-p -e 'say("«" ~~ /<[\«]>/)'
09:48 FROGGS Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near "<[\\\x{ab}]>/)"
09:48 FROGGS nqp-p --version
09:48 FROGGS This is nqp version 2014.09 built on parrot 6.9.0 revision RELEASE_6_9_0-20-g9e8c7f1
09:48 FROGGS rurban: see ^^
09:48 FROGGS rurban: shall I use an older nqp?
09:49 FROGGS so it really looks like something happened in parrot post 6.8.0 that introduces this problem
09:50 FROGGS (which prevents rakudo from building)
09:50 masak m: say (((1,2,3) >>~>>';') Z (4,5,6,7)).perl
09:50 camelia rakudo-moar 315ec6: OUTPUT«(("1;", 4), ("2;", 5), ("3;", 6)).list␤»
09:50 novice314 m: say ( (1,2,3) >>~>>';'  ) Z~ (4,5,6,7)
09:50 camelia rakudo-moar 315ec6: OUTPUT«1;4 2;5 3;6␤»
09:50 masak novice314: in Z, shortest side wins.
09:50 FROGGS like a zipper
10:01 FROGGS hmm, I do not remember putting debug statements in nqp or parrot, but:
10:01 FROGGS C:\nqp>nqp-p --version
10:01 FROGGS win32
10:01 FROGGS This is nqp version 2014.08-36-gf84a159 built on parrot 6.7.0 revision RELEASE_6_7_0
10:02 FROGGS rurban: did you do that by any chance?
10:07 novice314 m: say  (1,2,3) >>~>>';'<< (4,5,6,7)
10:07 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/yJktnnGBDYâ�¤Unable to parse quote-words subscript; couldn't find right double-angle quoteâ�¤at /tmp/yJktnnGBDY:1â�¤------> [32msay  (1,2,3) >>~>>';'<< (4,5,6,7)[33mâ��[31m<EOL>[0mâ�¤    expecti…»
10:08 novice314 m: say  ((1,2,3) >>~>>';')>>~<< (4,5,6,7)
10:08 camelia rakudo-moar 315ec6: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<~> are not of the same length␤left: 3 elements, right: 4 elements␤  in sub hyper at src/gen/m-CORE.setting:19157␤  in block  at src/gen/m-CORE.setting:19137␤  in block <unit> at /tmp/nnlDQTOn7z:1…»
10:09 novice314 m: say  ((1,2,3) >>~>>';')>>~<< (4,5,6)
10:09 camelia rakudo-moar 315ec6: OUTPUT«1;4 2;5 3;6␤»
10:09 FROGGS rurban: parrot 6.8.0 spits out 'index $I11, ucs4:"\x{ab}", $S11', where 6.9.0 probably spits out two extra backslashes
10:09 masak novice314: ...you can also download Rakudo and run it locally, on your own machine. ;)
10:10 masak FROGGS++
10:10 kurahaupo joined #perl6
10:10 novice314 i havn't right machine now, only ipad ))
10:11 kurahaupo joined #perl6
10:12 kjs_ joined #perl6
10:13 novice314 m: say  (1,2,3) >>~>>';' >>~<< (4,5,6)
10:13 camelia rakudo-moar 315ec6: OUTPUT«1;4 2;5 3;6␤»
10:13 lizmat good *, #perl6!
10:13 lizmat I was wondering, do we have any quick way to compare 2 strings and find out how many characters they are the same from the beginning ?
10:14 peteretep You want the count of the longest mutual head?
10:14 lizmat yup
10:14 chenryn joined #perl6
10:15 lizmat m: say "foo" ~^ "foobar"   # somehow with this
10:15 camelia rakudo-moar 315ec6: OUTPUT«␀␀␀bar␤»
10:15 novice314 quit
10:15 lizmat goodbye novice314
10:16 lizmat I guess a quick way to get rid of nulls would also work
10:18 jnthn m: say ('beetroot'.comb Zeq 'beer'.comb).first-index(!*)
10:18 yoleaux 28 Oct 2014 22:40Z <FROGGS> jnthn: that's a real life report: http://froggs.de/perl6/cpantesters/ (though, statically put there for review)
10:18 camelia rakudo-moar 315ec6: OUTPUT«3␤»
10:18 yoleaux 29 Oct 2014 00:22Z <japhb> jnthn: Finally a short stress test for Rakudo threading that fails many different ways, relatively quickly: http://irclog.perlgeek.de/​perl6/2014-10-29#i_9579979
10:18 FROGGS hi jnthn!
10:18 pecastro joined #perl6
10:18 jnthn o/
10:18 lizmat jnthn \o
10:19 lizmat I was hoping to be able to get something lower level  :-)
10:20 jnthn lizmat: Oh...well if I want it fast I'd use nqp::ordat or so to pull out char codes in a loop and increment a native until I failed :)
10:20 jnthn Well, actually the thing you're incrementing is also the input to ordat :)
10:20 lizmat yeah, I figured something like that
10:21 jnthn The above is a cute way, thogh.
10:21 lizmat the ~^ you mean ?
10:22 jnthn No, what I wrote.
10:22 Isp-sec joined #perl6
10:23 lizmat ah, ok  :-)   yeah, true,  !*  :-)
10:23 jnthn The ~^ one sufers from being O(input lenght) rather than O(prefix length)
10:23 jnthn And yes, I CAN totally abuse the big O 'cus I'm on vacation still :P
10:24 jnthn FROGGS++ # cpan da testers
10:24 jnthn (And others who've contributed too)
10:24 virtualsue joined #perl6
10:30 jnthn Anyways, I'm heading home at the weekend, so will be more active here again from next week. :)
10:30 * lizmat hopes jnthn has been able to have a good time away from it all  :-)
10:31 jnthn Yes. Not always been so lucky with the weather, but still it's a good time down here :)
10:31 tinyblak_ joined #perl6
10:33 jnthn Also, it's very pretty :)
10:39 dayangkun joined #perl6
10:41 rurban joined #perl6
10:42 masak m: say "foo/bar/baz.txt".IO.basename
10:42 camelia rakudo-moar 315ec6: OUTPUT«baz.txt␤»
10:43 lizmat but what if the current dir is "foo" ?
10:48 masak then... the basename of the IO::Path remains the same, because it's independent of the directory components...?
10:49 cognominal joined #perl6
10:49 masak I have "basename" as meaning "the thing after all the slashes".
10:49 lizmat yup, and that's what basename is
10:49 lizmat it's just not what I'm looking for  :-)
10:49 masak oh, sorry.
10:49 masak I have no idea what you were looking for :)
10:49 masak I needed .basename, though.
10:50 masak just now.
10:50 lizmat and that's there and will stay there :-)
10:50 masak ok, glad to hear it.
10:50 lizmat again, I'm not about changing the API
10:50 lizmat I'm just about streamlining the underlying mess  :-)
10:51 lizmat sometimes things may have to change, e.g. as in the use of relative paths
10:51 masak *nod*
10:51 masak I... feel like I'm falling into a bigger discussion here.
10:51 lizmat in a world where everything is async, the concept of "current directory" is  even more volatile
10:52 masak I was just testing .basename so I could use it in some code.
10:52 lizmat than it already is in a completely serial world
10:52 lizmat please continue to do so  :-)
10:54 * masak is using Perl 6 at $work, in production
10:54 masak &
11:05 tinyblak joined #perl6
11:16 Mso150_n joined #perl6
11:23 vendethiel joined #perl6
11:26 TuxCM joined #perl6
11:40 rurban joined #perl6
11:47 woolfy masak++
12:14 leont joined #perl6
12:24 kjs_ joined #perl6
12:29 masak I'm trying to formulate something about how I use the "cool" features of Perl 6 much less than I think I would have predicted back in 2005.
12:29 masak junctions, hypers, chained comparisons, metaoperators in general, even defining operators.
12:30 masak when I *do* use them, I'm very glad they're there.
12:30 masak but something like 95% of code I write is very down-to-earth and doesn't use such features.
12:30 lizmat perhaps a blog post about this is in order ?
12:31 masak on balance, I'm much more happy about bigger features like classes/roles/methods/attributes, grammars, and Perl 6's tendency to be very refactorable.
12:31 lizmat because I think that's a very important point to make from someone in the "frontline" of using Perl6 in production
12:31 masak yes, it could easily be a blog post.
12:34 masak we'll see :)
12:37 kjs_ joined #perl6
12:46 user3 joined #perl6
12:48 kaleem joined #perl6
12:49 user3 I have rakudo on Windows (3 Sept version) and Linux (parrot, 30 Aug). when I type perl6 at the command line and enter a session I can cycle through my commands with the up/down arrow keys on Windows but not on Linux. on Windows, is that a Perl 6 feature or is it just the up/down arrows mechanism of the cmd.exe command line?
12:50 moritz user3: it's a perl 6 feature
12:51 moritz user3: different backends use different libraries for that
12:51 FROGGS user3: it depends on what readline library we use on these systems
12:51 FROGGS on linux we can use libreadline or liblinenoise
12:51 moritz user3: for example if you use the parrot backend, you need "readline" and its development libraries installed when you configure rakudo and parrot
12:53 FROGGS user3: in case you want to build rakudo on MoarVM on linux there is an interesting option to MoarVM's configure script:
12:53 FROGGS --use-readline
12:53 FROGGS Disable Linenoise and try to use the system version of GNU Readline
12:53 FROGGS instead.
12:54 ptc_p6 joined #perl6
13:00 user3 noted. thx
13:01 FROGGS user3: rakudo on moarvm does the history be default
13:01 FROGGS just tested
13:02 user3 I think I don't have readline's development libraries installed
13:03 guru joined #perl6
13:03 JimmyZ joined #perl6
13:04 JimmyZ user3: you can try the moarvm backends, which is much better
13:04 JimmyZ *backend
13:04 azawawi joined #perl6
13:05 azawawi m: say "Hello world ~$_" for 1..5;
13:05 camelia rakudo-moar 315ec6: OUTPUT«Hello world ~1␤Hello world ~2␤Hello world ~3␤Hello world ~4␤Hello world ~5␤»
13:05 azawawi m: say "Hello world $_" for 1..5;
13:05 camelia rakudo-moar 315ec6: OUTPUT«Hello world 1␤Hello world 2␤Hello world 3␤Hello world 4␤Hello world 5␤»
13:05 azawawi m: say "Hello world {$_}" for 1..5;
13:05 camelia rakudo-moar 315ec6: OUTPUT«Hello world ␤Hello world ␤Hello world ␤Hello world ␤Hello world ␤»
13:05 azawawi hi everyone
13:05 azawawi is the above behavior by design or a bug?
13:05 masak hi azawawi
13:06 masak it's by design, unfortunately.
13:06 azawawi confusing
13:06 masak m: say "Hellow world $($_)" for 1..5
13:06 camelia rakudo-moar 315ec6: OUTPUT«Hellow world 1␤Hellow world 2␤Hellow world 3␤Hellow world 4␤Hellow world 5␤»
13:06 masak Hello*
13:06 masak azawawi: every bare block has an implicit -> $_? parameter
13:07 masak azawawi: the {$_} in side the qq string is such a bare block.
13:07 masak azawawi: when it gets called (by the string interpolator), no value is passed to it
13:07 masak inside*
13:07 azawawi so what's the closest to #{ ... } in ruby?
13:08 masak $(), as demonstrated above.
13:08 azawawi cool...
13:08 masak alternatively, {} works fine, as long as you're not relying on $_
13:08 * azawawi rewires his mind circuits
13:09 azawawi masak: thx
13:09 azawawi masak++
13:09 * masak kowtows
13:11 azawawi has perl6-debug been deprecated or removed?
13:11 azawawi i.e. http://perl6advent.wordpress.co​m/2012/12/05/a-perl-6-debugger/
13:12 azawawi oh perl6-debug-m
13:14 azawawi interesting i need panda install Debugger::UI::CommandLine to use it
13:15 colomon right
13:16 azawawi it is included in rakudo star right?
13:17 * colomon has no idea
13:17 * azawawi thinks no rakudo 2014.10 ?
13:18 JimmyZ m: $_ = 'hello world'; say $($($_))
13:18 camelia rakudo-moar 315ec6: OUTPUT«hello world␤»
13:18 * JimmyZ doesn't know what $() is ..
13:18 Mouq joined #perl6
13:19 tinyblak joined #perl6
13:19 masak JimmyZ: well, (a) first off, it starts with a '$' so it interpolates
13:19 masak (b) secondly, what it does is take a value and put it in item context, just like .item does
13:20 Mouq m: .say for $([1, 2, 3]); .say for @([1, 2, 3])
13:20 camelia rakudo-moar 315ec6: OUTPUT«1 2 3␤1␤2␤3␤»
13:20 JimmyZ something like my $ = xxx?
13:20 masak guess so.
13:20 Mouq also o/
13:20 masak \o
13:21 PerlJam JimmyZ: $() is like @() only itemy  ;)
13:21 PerlJam greets too
13:21 masak ohaio, PerlJam
13:21 JimmyZ oh, I remember it ... I have discussed about @$xxx and $@xxxx
13:21 JimmyZ and @%xxx , %@xxxx
13:23 Mouq m: +()+@$@$@$@$@$@$@$@$@$@$@$@$$@$@(1)+()
13:23 camelia rakudo-moar 315ec6: ( no output )
13:24 masak rules in grammars suffer from a systemic problem similar to that in cooperative multitasking: that of a "rogue" player not handing back control to its caller.
13:24 masak sometimes I find myself having a mental model of grammars that ignores issues related to this.
13:24 PerlJam isn't that almost a feature though?
13:25 masak for example, I sometimes expect callee rule to understand when it's time to stop parsing, because a caller rule has some kind of stopper.
13:25 masak I think that's part of what made me upset about strings like "foo { bar("baz") }" once upon a time, because I (partly) have such a mental model.
13:26 masak PerlJam: possibly. just because I subconsciously assume that that model is in place, doesn't mean that such a model would be preferable, let alone internally consistent.
13:28 PerlJam kinda sounds like "functional grammars"  where a rule { <a> <b> <c> } could be thought of as "call rule a with rules b and c as parameters"   (I mean, if things worked this way, callees could "know" about stoppers)
13:28 Akagi201 joined #perl6
13:29 masak yes, but I don't think that's what I mean. :)
13:30 masak I mean, I'm not even hunting for a mechanism to do this.
13:30 Mouq It sounds like a grammar that does classical tokenizing, I think...
13:30 masak I just find that sometimes that's the expectation I have on my own grammars, before reality sets in.
13:31 masak Mouq: yes, it hints at a "flat" model like that of tokenizing.
13:31 PerlJam masak: right, I understand.  I sometimes fall into the same trap.  But the way you phrased it made me think of FP
13:31 masak PerlJam: it's an interesting notion. by the way, rules in grammars can already take parameters. I don't tend to use that much, but some people have.
13:33 PerlJam (of course, saying "callee" in my head sounded more like "collie" and then I was wondering how to work in a pun involving Lassie ... but maybe I'm sharing too much  ;)
13:33 Mouq Most of the time it's easier to use a dynamic var than parameters even if the var is only being set from the callee, since it makes it eaiser to refactor and you don't have to worry so much about how deeply nested a parameter will need to be carried
13:34 masak PerlJam: I think your pun fell down a well. :P
13:35 lizmat .oO( well put )
13:35 PerlJam heh
13:35 masak Mouq: dynamic variables are easier on refactoring in some sense, and harder in some sense.
13:35 PerlJam #perl6++  I can always count on you guys to make me smile  :)
13:36 masak m: say "$_ guys to make PerlJam smile" for 1..200
13:36 camelia rakudo-moar 315ec6: OUTPUT«1 guys to make PerlJam smile␤2 guys to make PerlJam smile␤3 guys to make PerlJam smile␤4 guys to make PerlJam smile␤5 guys to make PerlJam smile␤6 guys to make PerlJam smile␤7 guys to make PerlJam smile␤8 guys to make PerlJam smile␤9 guys t…»
13:37 * masak .oO( groan )
13:38 PerlJam .oO( 99 smiles on the channel. take one down, pass it around ... 105 smiles on the channel )
13:39 PerlJam tchrist once said something similar about linux distributions, but I think it's more apt about smiles and #perl6
13:40 * colomon is intrigued that there were like 19 seasons of the Lassie TV show, 10+ theatrical movies, and yet the only plot point anyone ever remembers is a kid down a well.
13:40 huf has anyone seen any of them?
13:40 PerlJam 19 seasons?  really?
13:40 * azawawi farabi6 + perl6-debug-m integration in progress https://github.com/azawawi/farabi6/issues/16
13:40 huf frankly, i'm not even sure how i know about lassie
13:40 colomon PerlJam: 1954-1973
13:41 Mouq m: say (grammar :: {token TOP { <baz("bar")> }; token baz ($p) { foo }}).parse("foo", :actions(class :: { method TOP($/) { make $<bar> }; method baz ($/, $p) { make $p } })).ast
13:41 camelia rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 3 arguments but got 2␤  in method baz at /tmp/GbS6U67pWv:1␤  in any !reduce at gen/moar/stage2/QRegex.nqp:771␤  in any !cursor_pass at gen/moar/stage2/QRegex.nqp:732␤  in regex baz at /tmp/GbS6U67pWv:1␤  in re…»
13:41 colomon PerlJam: also books and a radio show
13:41 masak m: say "$_ guy$($_ == 1 ?? '' !! 's') to make PerlJam smile" for 1..200
13:41 camelia rakudo-moar 315ec6: OUTPUT«1 guy to make PerlJam smile␤2 guys to make PerlJam smile␤3 guys to make PerlJam smile␤4 guys to make PerlJam smile␤5 guys to make PerlJam smile␤6 guys to make PerlJam smile␤7 guys to make PerlJam smile␤8 guys to make PerlJam smile␤9 guys to…»
13:41 Mouq Yeah, also pretty important: you need dynamic vars if you want to be able to access them from the actions. Forgot about that pretty important bit
13:42 masak colomon: I think it's a trope -- at least for me, who didn't really grow up with Lassie. I kind of associate "Lassie" <-> "kid fell down a well"
13:42 masak colomon: mostly, I guess, because of pop culture that made jokes using that association.
13:42 Mouq std: class :: { method foo { say "bar" }.foo
13:42 camelia std 14ad63b: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse block at /tmp/_hboH5y3x9 line 1:�------> [32mclass :: [33m�[31m{ method foo { say "bar" }.foo[0m�Couldn't find final '}'; gave up at /tmp/_hboH5y3x9 line 1 (EOF):�------> [32mclass :: { method foo { sa…»
13:42 colomon masak: as far as I can tell, *everyone* has that association and little else
13:42 Mouq ^^ Vote to make that legal?
13:43 Mouq std: sub :: { say "bar" }() # similar to
13:43 camelia std 14ad63b: OUTPUT«ok 00:00 139m␤»
13:43 * [Coke] is older than half you jokers, Coke has never even seen a real ep of lassie.
13:43 * lizmat is older still and has to confess she has
13:43 Mouq std: class :: { method foo { say "bar" }}.foo #erm
13:43 camelia std 14ad63b: OUTPUT«ok 00:01 139m␤»
13:43 Mouq Oh
13:43 Mouq m: class :: { method foo { say "bar" }}.foo #erm
13:43 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/lUc6mT_uJKâ�¤Two terms in a rowâ�¤at /tmp/lUc6mT_uJK:1â�¤------> [32mclass :: { method foo { say "bar" }}[33mâ��[31m.foo #erm[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement end…»
13:44 Mouq Okay, so just a rakudobug
13:44 * geekosaur has seen them but they left little impression (except kid always getting into some kind of trouble lassie had to save him from), the well being the one that everyone remembers)
13:45 PerlJam lizmat: did you watch it voluntarily?
13:45 PerlJam I remember Lassie episodes on TV when I was a kid, but I also remember seeing the dog, going "oh, that's Lassie", then changing the channel.
13:46 lizmat well, only having 3 channels narrowed down the choices a bit  :-)
13:46 * [Coke] is reminded by the slow test runs to ||-ize test_summary.pl again.
13:46 * lizmat also admits not even really remembering any plots, let alone wells
13:53 PerlJam From http://en.wikipedia.org/wi​ki/Lassie_(1954_TV_series)   "Jon Provost called his autobiography Timmy's in the Well! because a well was the one place Timmy never fell into—abandoned mine shafts, off cliffs, into rivers, lakes, and quicksand, but never a well."
13:53 colomon lizmat: we had four channels, because we also picked up a decent signal from Canada.  :)
13:54 lizmat 2NL, 1BE
13:57 colomon technically we should have also gotten three UHF channels from Detroit, but someone (probably me) put a magnet inside the TV set which completely wrecked UHF reception.
13:59 kuimacro joined #perl6
14:02 jfredett joined #perl6
14:02 zakharyas joined #perl6
14:11 dalek rakudo/nom: ba385fa | Mouq++ | src/Perl6/Grammar.nqp:
14:11 dalek rakudo/nom: Allow methods to be called on class definitions
14:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba385fa593
14:12 dalek roast: c5545ff | Mouq++ | S12-class/basic.t:
14:12 dalek roast: Test that methods can be called on class definitions
14:12 dalek roast: review: https://github.com/perl6/roast/commit/c5545ff485
14:12 raiph joined #perl6
14:16 grondilu joined #perl6
14:20 JimmyZ std: class :: { method foo { 42 }}.foo
14:20 camelia std 14ad63b: OUTPUT«ok 00:00 137m␤»
14:23 lizmat colomon:  :-)
14:32 Alina-malina joined #perl6
14:36 molaf joined #perl6
14:43 vendethiel joined #perl6
14:44 chenryn_ joined #perl6
14:46 Alina-malina joined #perl6
14:55 chenryn__ joined #perl6
15:00 kaare_ joined #perl6
15:02 timotimo o/
15:02 lizmat timotimo \o
15:06 thou joined #perl6
15:16 masak m: class Dog {}; sub foo(&block (Dog --> Bool)) { say "OH HAI" }; foo(sub (Dog $x) { $x })
15:16 camelia rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub-signature of parameter &block␤  in sub foo at /tmp/wV8sisOFFO:1␤  in block <unit> at /tmp/wV8sisOFFO:1␤␤»
15:16 masak what am I doing wrong here?
15:16 masak m: class Dog {}; sub foo(&block:(Dog --> Bool)) { say "OH HAI" }; foo(sub (Dog $x) { $x })
15:16 camelia rakudo-moar 315ec6: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque, cs = 0)␤»
15:16 masak o.O
15:16 hoelzro joined #perl6
15:17 brrt joined #perl6
15:17 brrt \o
15:17 brrt what did i miss :-)
15:17 masak brrt: Perl 6 was released -- world peace -- Nobel prize -- world hunger solved. not much :P
15:18 * masak swiftly declares Eternal Christmas
15:18 mattp_ joined #perl6
15:19 * [Coke] tries to onboard a consultant today. what a PITA. You'd think this was a solved problem by now. :P
15:20 timotimo brrt: if you blog fast enough, i'll link to your post via the weekly :P
15:20 moritz weekly \o/
15:21 gtodd !!
15:21 * lizmat has been banging her head on a failure while optimizing  :-(
15:21 masak PerlJam: I think you forgot to move #81 down in https://github.com/rakudo/rakudo/blob/nom/do​cs/release_guide.pod#planned-future-releases
15:22 masak lizmat: please be more careful with your head :/
15:22 * masak hugs lizmat's head
15:22 * lizmat suddenly gets a fuzzy feeling
15:23 masak probably just asphyxiation. I won't hug as hard next time.
15:23 PerlJam masak: huh.  I'm sure I did it.  Must not have pushed
15:25 dalek rakudo/nom: 1f42001 | duff++ | docs/release_guide.pod:
15:25 dalek rakudo/nom: update release_guide to move release #81 into the past :)
15:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f4200169a
15:25 PerlJam yep ... forgot to push it.
15:25 FROGGS m: sub foo ( &cb (int) ) { }; sub bar (int) { }; foo(&bar) # masak: no idea why that fails
15:25 camelia rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub-signature of parameter &cb␤  in sub foo at /tmp/vCDVCggbtk:1␤  in block <unit> at /tmp/vCDVCggbtk:1␤␤»
15:26 masak FROGGS: the error message doesn't make any sense.
15:26 FROGGS masak: and that feature works in nativecall
15:27 FROGGS it is in its test suite for example
15:27 masak even curiouser.
15:28 FROGGS and it also fails under 2014.09
15:28 FROGGS (using star-m)
15:29 masak m: sub foo { 2 }; say 1 ?? foo !! 3
15:29 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Found ?? but no !!â�¤at /tmp/R5ijrCZXEB:1â�¤------> [32msub foo { 2 }; say 1 ?? foo !! 3[33mâ��[31m<EOL>[0mâ�¤Confusedâ�¤at /tmp/R5ijrCZXEB:1â�¤------> [32msub foo { 2 }; say 1 ?? foo !! 3[33mâ��[31m<EOL>[0mâ�¤    e…»
15:29 masak that's an LTA error message (even knowing what's going on there)
15:29 masak std: sub foo { 2 }; say 1 ?? foo !! 3
15:29 camelia std 14ad63b: OUTPUT«[31m===[0mSORRY![31m===[0m�Found ?? but no !! at /tmp/ZYLcGrJPqx line 1 (EOF):�------> [32msub foo { 2 }; say 1 ?? foo !! 3[33m�[31m<EOL>[0m�Confused at /tmp/ZYLcGrJPqx line 1 (EOF):�------> [32msub foo { 2 }; say 1 ?? foo !! 3[33m�[31m<EOL…»
15:29 masak and STD.pm6 is no better. hm.
15:31 masak I ran into it in code like this:
15:31 masak m: module M { enum A is export <B C> }; import M; say 1 ?? B !! C
15:31 travis-ci joined #perl6
15:31 travis-ci Rakudo build failed. Jonathan Scott Duff 'update release_guide to move release #81 into the past :)'
15:31 travis-ci http://travis-ci.org/rakudo/rakudo/builds/39843266 https://github.com/rakudo/rakudo/c​ompare/ba385fa5930c...1f4200169a22
15:31 travis-ci left #perl6
15:31 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m�Found ?? but no !!�at /tmp/OMplHJ066n:1�------> [32mxport <B C> }; import M; say 1 ?? B !! C[33m�[31m<EOL>[0m�Confused�at /tmp/OMplHJ066n:1�------> [32mxport <B C> }; import M; say 1 ?? B !! C[33m�[31m<…»
15:31 masak PerlJam: you broke the build by updating release_guide!?
15:31 FROGGS Start argument to substr out of range. Is: -1, should be in 0..0
15:31 FROGGS make: *** [RESTRICTED.setting.moarvm] Error 1
15:32 masak m: module M { enum A is export <B C> }; import M; say 1 ?? A::B !! A::C
15:32 camelia rakudo-moar 315ec6: OUTPUT«B␤»
15:32 PerlJam :-(
15:32 masak m: module M { enum A is export <B C> }; import M; say B
15:32 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/lblTGtdIWsâ�¤Undeclared name:â�¤    B used at line 1â�¤â�¤Â»
15:32 masak is this right? I thought exporting A would export B and C, too.
15:32 brrt timotimo: no blog yet :-$
15:32 timotimo OK :)
15:32 brrt masak: ah great, then i'm done
15:33 FROGGS m: module M { enum A is export <B C> }; import M; say M::
15:33 camelia rakudo-moar 315ec6: OUTPUT«"A" => A, "B" => A::B, "C" => A::C, "EXPORT" => EXPORT␤»
15:33 FROGGS m: module M { enum A is export <B C> }; import M; say M::B
15:33 camelia rakudo-moar 315ec6: OUTPUT«B␤»
15:33 * masak submits enum export rakudobug
15:34 * masak submits ?? !! LTA rakudobug
15:34 * masak submits code object subsignature strangeness rakudobug
15:34 masak apparently I work in a LIFO manner today.
15:34 gtodd rakudobug must be feeling dizzy
15:35 gtodd with the excitement ...
15:35 vendethiel joined #perl6
15:36 broquaint joined #perl6
15:36 masak PerlJam: confirming that you pushed only a change to docs/release_guide.pod
15:36 masak PerlJam: meaning that travis-ci is drunk, I guess.
15:38 betterworld joined #perl6
15:42 Bucciarati joined #perl6
15:42 masak m: for lines { .say }
15:42 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m�Function lines needs parens to avoid gobbling block�at /tmp/s7drjzvj1Y:1�------> [32mfor lines { .say }[33m�[31m<EOL>[0m�Missing block (apparently taken by 'lines')�at /tmp/s7drjzvj1Y:1�------> [32mfor line…»
15:45 woshty joined #perl6
15:55 sqirrel_ joined #perl6
16:01 grondilu joined #perl6
16:09 masak idiomatic way to compare against an enum? `$value == B` or `$value ~~ B` ? or something else?
16:10 kuimacro left #perl6
16:12 lizmat +B ?
16:12 kjs_ joined #perl6
16:12 lizmat I guess the == already numifies right hand side
16:14 kaleem joined #perl6
16:15 moritz m: enum A <B C>; say C ~~ Numeric
16:15 camelia rakudo-moar 315ec6: OUTPUT«True␤»
16:15 moritz lizmat: it's already numified :-)
16:16 timotimo could someone rephrase the paragraph beginning with "Other than that, the "not quite done" parts are things /usr/bin/perl5 can't do right now:" on perl6.guide?
16:16 timotimo https://github.com/sheriff/perl6status/ ← this page accepts pull requests i bet
16:16 masak I tend to do `==` on enum values, fwiw.
16:17 masak because I know they're numeric, and I like to compare as specifically as possible.
16:18 hobbs joined #perl6
16:18 masak moritz: ooc, do you tend to write `* - 1` or `*-1` ?
16:19 kjs_ joined #perl6
16:20 moritz masak: *-1
16:20 lizmat masak: fwiw, *-1   and * - $var
16:21 masak moritz: I was just thinking of https://github.com/moritz/perl6-wto​p/blob/master/practices.pod#___top
16:21 masak moritz: I think that's another exception; and you just confirmed it.
16:22 moritz masak: you're right
16:24 dalek ecosystem: 8bde620 | (Timo Paulssen)++ | META.list:
16:24 dalek ecosystem: add the sugar-free SDL2 binding module
16:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/8bde62082d
16:24 moritz free of processed carbon hidrates? :-)
16:24 timotimo yup
16:24 raydiak timotimo++
16:24 timotimo :)
16:30 masak m: enum A <B C>; say 1 ~~ B
16:30 camelia rakudo-moar 315ec6: OUTPUT«False␤»
16:32 raydiak m: enum A <B C>; say +B; say ?B; say ?C;
16:32 camelia rakudo-moar 315ec6: OUTPUT«0␤False␤True␤»
16:37 grettis joined #perl6
16:37 * masak finds a use for `repeat while <expr> { ... }`
16:37 masak doesn't happen often.
16:39 timotimo http://p6weekly.wordpress.com/?p=​250&amp;shareadraft=5457afa52d940 - please remind me of anything i may have missed over the last week
16:42 lizmat timotimo: actually, all I did was spec the current behaviour, and use it in the spectest
16:42 lizmat all the work had been done by jnthn previously
16:42 timotimo oh!
16:43 dalek rakudo/nom: c430c02 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
16:43 dalek rakudo/nom: Many moer primitives
16:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c430c0281e
16:43 dalek rakudo/nom: 2fcc17c | (Elizabeth Mattijsen)++ | src/core/IO/File.pm:
16:43 dalek rakudo/nom: Introducing: IO::File, for existing files
16:43 dalek rakudo/nom:
16:43 dalek rakudo/nom: Well, actually anything that's not a directory, at this stage
16:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2fcc17cf7b
16:43 dalek rakudo/nom: a426325 | (Elizabeth Mattijsen)++ | src/core/IO/Local.pm:
16:43 dalek rakudo/nom: Introducing: IO::Local, a role for existing paths
16:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a426325598
16:43 dalek rakudo/nom: 501b3ce | (Elizabeth Mattijsen)++ | src/core/IO/Dir.pm:
16:43 dalek rakudo/nom: Now uses the new IO::Local role
16:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/501b3cef3f
16:43 dalek rakudo/nom: f570202 | (Elizabeth Mattijsen)++ | tools/build/ (3 files):
16:43 dalek rakudo/nom: Make sure we also compile IO::Local/File
16:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5702027d6
16:43 timotimo oooh i love moér primitives!
16:43 lizmat FWIW, ^^^ is mostly scaffolding: most of that is not actually used yet
16:44 lizmat actually using the above breaks panda at the moment in an interesting way  :-(
16:44 vendethiel joined #perl6
16:44 timotimo lizmat has been working on splitting a new class IO::Dir off from IO::Path, in the hopes of getting overheads down, performance up and to reach more clarity.  ← does this sound representative of your efforts?
16:45 lizmat (aka no error messages whatsoever, just saying everything is done when nothing was)
16:45 lizmat timotimo: well, actually, it goes deeper than that
16:45 lizmat when I'm done, IO::Path is obsolete  :-)
16:45 timotimo ah
16:45 FROGGS lizmat: maybe remove the CATCH from the panda script
16:45 timotimo so IO::Path turns into IO::Dir and IO::File?
16:46 lizmat which both consume the IO::Local role
16:46 lizmat I also envision an IO::Link (for symlinks)
16:46 timotimo how do we represent relative paths we may want to plop onto different IO::Dir instances?
16:46 lizmat an IO::PIO (for all IO objects that read / write)
16:47 lizmat typically, you wouldn't make any IO::Dir instances yourself
16:47 lizmat dir() (and its method cally friends) will create them for you
16:47 Alina-malina joined #perl6
16:47 timotimo what does the P stand for this time? :)
16:48 lizmat I have no idea
16:48 lizmat IO::Handle has a $!PIO, IO::Socket as a $!PIO
16:48 lizmat it is a parameter to many nqp:: functions
16:48 timotimo that used to be the parrot IO object
16:48 lizmat aha   :-)
16:48 timotimo i suggest not holding on to that too much
16:48 lizmat well, maybe it's time to name it something else then
16:49 lizmat in any case, all basic IO operations (except reading/writing) will be possible by using subs with just strings
16:49 lizmat open()   dir()  pipe()  rename() symlink() unlink() mkdir() rmdir() etc.etc.
16:49 gtodd oh
16:50 lizmat dir() is the one that returns IO::File/Dir/Link objects
16:50 lizmat (unless you ask for strings)
16:50 grondilu joined #perl6
16:50 timotimo IO::PIO is a role? or a class?
16:50 lizmat a role
16:50 timotimo and IO::Link a class?
16:51 lizmat yup, for symlinks (although I'm not 100% sure about that yet)
16:51 timotimo OK
16:51 lizmat so, now that most of the scaffolding is there, I can start rebuilding stuff so that I don't break the API
16:52 lizmat but still get massively better performance
16:52 timotimo that'd be lovely :)
16:52 timotimo OK, i rewrote that paragraph
16:53 timotimo i'll briefly be AFK, but i'd appreciate more feedback
16:53 tony-o masak: i get an error on 'make' for Stage Parse - make: *** [CORE.setting.moarvm] Error 137
16:53 tony-o for moar ^^
16:54 lizmat timotimo: actually, it's not about a file's contents, but about reading/writing (so both file, as well as socket IO)
16:54 gtodd August:
16:54 gtodd time perl6 -e 'say "/usr/share/dict/web2".IO.slurp​.lines(:eager).grep("zygote");'  -->  61.24s user 0.26s system 0% cpu 1:04.1
16:54 timotimo oh
16:54 masak tony-o: did you `git clean -xdf` before configuring?
16:54 tony-o yea it was a clean clone
16:54 gtodd October:
16:54 gtodd perl6 -e 'say "/usr/share/dict/web2".IO.slurp​.lines(:eager).grep("zygote");'  10.25s user 0.25s system 6% cpu 11.751 total
16:55 tony-o i just did a clean and am trying the whole build again
16:56 gtodd wheee!! :-)  ... I know those are silly naive tests but 60 versus 10 seconds must partly be  due to all the IO changes because my disks are still super slow :)
16:56 treehug88 joined #perl6
16:56 gtodd IO IO it's off to disk I go ....
16:56 tony-o nice
16:56 lizmat gtodd: glad to see it's working  out
16:57 gtodd lizmat: that's a key adoption test for me ;-)
16:57 timotimo http://p6weekly.wordpress.com/?p=​250&amp;shareadraft=5457b40029164
16:57 timotimo 10 seconds is still not terribly good, though :\
16:58 timotimo how big is that file?
16:58 gtodd lizmat: I tried following your commits to see what magical stuff you were up to but ...
16:58 gtodd timotimo: it's a unix thing I think it's on most systems no?
16:58 gtodd timotimo: about 200k lines
16:59 timotimo i have only …are/dict/linux.words  …are/dict/words
16:59 gtodd ~ 2.4Mb
16:59 timotimo which are 480k lines each
16:59 gtodd linux is more wordy :-)
16:59 timotimo 4.8 Mb
16:59 gtodd here BSDs
16:59 lizmat gtodd: if you grep for "a"  ?
16:59 lizmat hmmm.. I mean, .first("a") ?
17:00 timotimo interestingly, my system takes 10 seconds as well
17:00 lizmat or drop the grep/first altogether, what is the timing then?
17:00 gtodd perl6 -e 'say "/usr/share/dict/web2".IO.slu​rp.lines(:eager).first("a");'  0.73s user 0.13s system 100% cpu
17:01 travis-ci joined #perl6
17:01 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make sure we also compile IO::Local/File'
17:01 travis-ci http://travis-ci.org/rakudo/rakudo/builds/39852911 https://github.com/rakudo/rakudo/c​ompare/1f4200169a22...f5702027d6bf
17:01 travis-ci left #perl6
17:01 gfldex joined #perl6
17:02 gtodd "zygote" I made it a longish word that  would be near the end (file is sorted) so there'd be more going on :-)
17:02 telex joined #perl6
17:02 sftp joined #perl6
17:03 tony-o how long does it take grep to find it?
17:05 gtodd well it takes ruby ~ .20 seconds   and bsdgrep and gnugrep are ~ 0.01
17:05 guru joined #perl6
17:07 vendethiel joined #perl6
17:07 gtodd on these weird little tests ruby does something to go fast ... usually ruby python perl5 python3 are pretty close
17:08 * lizmat looks at Travis
17:08 kjs_ joined #perl6
17:08 colomon hmmm, is it possible to set up Travis to ping the commit's author?
17:10 lizmat can anyone the build failure or the restricted settings ?
17:10 lizmat *confirm
17:10 lizmat *of
17:11 tony-o masak: i'm still getting the error building moar
17:11 tony-o making rakudo on moar
17:11 lizmat tony-o: do you have a gist ?
17:12 tony-o is there a log or do you just want the line that it's crapping out on?
17:12 lizmat let's start with the line
17:12 tony-o https://gist.github.com/to​ny-o/eb3f96defe6ab155de6f
17:13 lizmat could it be that the OOM-killer hits the build provess ?
17:13 lizmat *process
17:14 lizmat tony-o: ^^^
17:14 tony-o OOM killer?
17:15 tony-o it could, i have only 445M of memory free on that box
17:15 lizmat Out Of Memory
17:16 lizmat then I guess you don't have enough to build rakudo there  :-(
17:16 tony-o ouch
17:16 lizmat Re Jarvis: rakudo builds ok for me on moar, parrot *and* jvm
17:17 treehug88 joined #perl6
17:18 lizmat tony-o: rakudo typically takes about 700 MB when building on OSX
17:18 [Coke] 8:30 - 8:35 - "Running Perl6 on top of Google AppEngine", Attila Mihaly Balazs
17:18 [Coke] ^^ from http://www.cluj.pm/pages/events.html
17:19 [Coke] is Attila on #perl6 ?
17:21 lizmat not sure
17:22 tony-o lizmat: thanks - i was trying to set up evalbot for another channel from an AWS micro :-)
17:24 timotimo the profiler seems to be a tiny bit b0rken now ...
17:25 lizmat fwiw, I feel more than just the profiler is flaky atm
17:25 lizmat at least on OSX
17:25 sqirrel_ joined #perl6
17:25 timotimo the profile only contains a single call to "unshift" and that's it
17:26 timotimo i profiled the thing gtodd pasted up there
17:26 lizmat timotimo: lemme try that as well
17:26 timotimo anyway, i'll post the weekly in a few minutes
17:26 rurban joined #perl6
17:28 dalek perl6-roast-data: 6a65ed7 | coke++ | / (5 files):
17:28 dalek perl6-roast-data: today (automated commit)
17:28 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/6a65ed709d
17:28 timotimo post'd
17:28 [Coke] moar has LOADS of failures again on OS X.
17:29 japhb timotimo++
17:29 raiph .tell b2gills I've commented on your pi blog post; it says it awaits your moderation
17:29 yoleaux raiph: I'll pass your message to b2gills.
17:29 lizmat $ 6 'say "words".IO.slurp.lines(:eager).grep("zygote")'
17:29 lizmat zygote
17:29 lizmat real0m5.191s
17:29 lizmat $ 6 'say "words".IO.slurp.lines(:ea​ger).grep("zygote").elems'
17:29 lizmat 1
17:29 lizmat real0m0.839s
17:29 timotimo japhb: i just noticed i didn't even mention your stresstest feature work on p6bench
17:30 lizmat how can that be so many times faster ???
17:30 timotimo lizmat: warm cache?
17:30 lizmat is the .elems making the grep eager ??
17:30 timotimo hm, perhaps. and the say is not?
17:30 lizmat nono, done this quite some times already
17:30 lizmat $ 6 '"words".IO.slurp.lines(:eager).grep("zygote")'
17:30 lizmat real0m0.734s
17:31 timotimo er ... wat
17:31 lizmat sink context making it eager ?
17:31 lizmat yes
17:31 timotimo could be
17:31 lizmat what indeed
17:31 lizmat perhaps hence the unshift() only ?
17:31 ClarusCogitatio joined #perl6
17:33 japhb timotimo: Well, maybe next week then.  :-)
17:33 japhb afk, bus stop &
17:33 timotimo where the hell are these failures in S32?
17:33 timotimo i can't find them
17:33 timotimo oh
17:33 timotimo delete-adverb.t
17:34 lizmat yeah, that flaps
17:34 lizmat quite a lot for me
17:34 timotimo ah, damn.
17:35 vendethiel joined #perl6
17:35 b2gills raiph: Should be visible now. ( good thing you messaged me, I don't normally check that )
17:35 yoleaux 17:29Z <raiph> b2gills: I've commented on your pi blog post; it says it awaits your moderation
17:36 lizmat timotimo: confirmed, the profiler is borked
17:37 timotimo maybe it now only works if you use exit() ;)
17:38 lizmat hehe...  you wish
17:45 ponbiki joined #perl6
17:49 timotimo running delete-adverb.t outside of the spectest suite 10 times doesn't give me a crash
17:49 lizmat yup
17:49 lizmat but have you tried running a few of them simultaneously ?
17:50 sqirrel__ joined #perl6
17:52 timotimo i shall trý
17:53 japhb .oO( It's like 'try', but more of an accent on why you are trying ... )
17:54 timotimo seems hard to make it fail on my machine
17:55 timotimo i may need to update to the latest masters
17:57 timotimo actually, it seems like i had this local change: https://gist.github.com/timo/3dc2ff93c49e0fd241ae
17:58 treehug88 joined #perl6
18:27 dalek rakudo/nom: 5f9a6be | (Elizabeth Mattijsen)++ | src/core/IO/ (2 files):
18:27 dalek rakudo/nom: IO::Dir/File need to be Cool (at least for now)
18:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5f9a6be563
18:29 vendethiel joined #perl6
18:34 flussence joined #perl6
18:42 travis-ci joined #perl6
18:42 travis-ci Rakudo build failed. Elizabeth Mattijsen 'IO::Dir/File need to be Cool (at least for now)'
18:42 travis-ci http://travis-ci.org/rakudo/rakudo/builds/39863372 https://github.com/rakudo/rakudo/c​ompare/f5702027d6bf...5f9a6be563b9
18:42 travis-ci left #perl6
18:43 guru joined #perl6
18:50 Sqirrel joined #perl6
18:53 Alina-malina joined #perl6
18:58 japhb lizmat: It seems like you've done a fair amount of code-first experimental work on IO in nom, which is causing some churn for the rest of us.  Can you do the experimentation in a branch instead?
18:58 vendethiel joined #perl6
18:58 FROGGS joined #perl6
18:59 japhb It feels like the IO stuff isn't going to settle down until there's a decent mapping to the *entire* POSIX I/O functionality space, and that sounds more design-heavy to me.
19:00 japhb (I'm all for experimentation, but it's caused breakage that doesn't feel like it's settling down.)
19:00 lizmat I'm sorry if I'm causing any churn
19:00 lizmat could you give me an example of breakage?
19:00 lizmat fwiw, I'm not pushing unless I know the spectest is ok, and panda builds
19:00 japhb Directory produces paths/strings/dirs/files ...
19:01 lizmat then, after I push, I build parrot / jvm immediately
19:01 lizmat as in dir() ?
19:01 japhb right
19:01 grondilu joined #perl6
19:01 lizmat well, it's not going to return strings anymore unless you specifically ask for it
19:02 lizmat that much I'm sure
19:02 lizmat and I'd rather get immediate feedback
19:02 lizmat then being hit by strange phenomena whenever I merge...
19:02 lizmat this work is at the heart of all IO, I know
19:03 dalek Perlito: 43c85a0 | (Flavio S. Glock)++ | / (3 files):
19:03 dalek Perlito: Perlito5 - js - create %SIG
19:03 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/43c85a0c03
19:03 lizmat and it's not like there are many other people committing at the moment  :-(
19:03 japhb Sure, but I just meant, you've changed your mind a couple times, and each time pushed the new code to nom, did the deprecations, changed the spec, etc.  But it won't be really settled down until the IO code can handle *all* the IO needs, and I have fears that this will cause design changes again -- which hit nom and spec each time.
19:05 japhb The work and experimentation are great, I'm just asking if it can go in a branch.  And we can add test runs for that branch if need be.  I know Travis can do this ... I don't want to speak for [Coke], but it sounds like nothing in his automation would *prevent* such a change.
19:05 lizmat well, Travis atm says the build is broken, but I can't reproduce this on any backend
19:05 rindolf joined #perl6
19:05 lizmat nor does anybody else seem to have the problem
19:06 lizmat (so far)
19:06 japhb As for committing to Rakudo, yes, I know I haven't been ... but that's mostly because I'm trying to fulfill my promise to get us a good stress-test framework.  :-)
19:06 lizmat japhb++
19:07 lizmat but what would automated testing of a branch bring?
19:07 lizmat I run a spectest at least 3 times an hour when I'm working
19:07 lizmat the most important reason is that working in the setting for such a deep part
19:07 lizmat breaks in interesting ways at interesting moments
19:08 japhb Feedback from *another* platform about breakage -- and in theory, we could test against e.g. all of the ecosystem to look for regressions.
19:08 japhb Yeah, working in the setting is a real pain.  :-(
19:09 lizmat well, in that case: yes, if I could have a branch tested against the eco-system, that'd be great
19:09 baest joined #perl6
19:10 japhb FROGGS: How is your cpandatesters work coming?
19:10 japhb tadzik: Is Emmentaler still alive?
19:10 FROGGS japhb: the service is ready to get on its host, and I got my server just an hour ago...
19:10 FROGGS installing the os right now :o)
19:11 FROGGS so, I hope that my service is accessible via ip within the next hours
19:12 japhb \o/
19:12 japhb FROGGS++
19:12 FROGGS *g*
19:12 FROGGS I am happy too :D
19:13 japhb FROGGS: What was the status of your big Panda and Rakudo branches?  Did they get merged already?
19:13 FROGGS there are no outstanding rakudo branches
19:14 FROGGS just the panda/reporter and panda/CPAN
19:14 kjs_ joined #perl6
19:14 japhb panda/reporter is for your new service, I assume.  What's the state of panda/CPAN?
19:14 FROGGS the former can be merged after 2014.11 release, the latter needs more work on portability of NativeCall, Compress::Zlib etc
19:15 FROGGS japhb: it only works on linux x64 so far
19:15 FROGGS maybe osx, not sure
19:15 FROGGS but since NativeCall has issues on 32bit I can't just ship it with panda
19:16 japhb Ah, gotcha.
19:16 FROGGS these are the new deps btw: https://github.com/tadzik/panda/tree/CPAN/ext
19:16 FROGGS quite a lot :/
19:16 japhb Are the 32-bit NativeCall issues some really nasty deep problem, or just a SMOP that hasn't been done yet?
19:17 FROGGS somewhere in between I suppose
19:17 FROGGS I tried twice to fix it, without luck
19:17 japhb Woah, yeah, that's quite a bit of new deps, though I understand the reasons.
19:17 FROGGS and jnthn++'s upcoming work could help in that area
19:17 japhb nodnod
19:18 * japhb is fighting the problem of portability (in Perl 5) for his stress-testing code, so is currently feeling related pain.
19:18 FROGGS yeah
19:19 japhb .oO( Why is it so bloody hard to portably time out and kill a spawned subprocess? )
19:19 FROGGS at $dayjob I am suffering because of a SOAP::Lite application... it is meant to task to soap1.1 and soap1.2 services, and SOAP::Lite is not made for switching between versions
19:19 FROGGS ohh yeah
19:19 japhb Eww.
19:20 rindolf joined #perl6
19:21 colomon ye gads, that's a lot more deps for Panda.  :\
19:22 FROGGS I know :S
19:24 molaf joined #perl6
19:25 japhb I thought temp file generation was going to be a builtin, due not wanting to have different mistakes from the Perl 5 one of doing it wrong all over CPAN?
19:25 colomon FROGGS: does panda/reporter also add new deps?
19:26 FROGGS there is no built-in yet
19:26 FROGGS colomon: no
19:26 colomon \o/
19:26 lizmat japhb: I feel this needs to be done at the nqp:: level
19:26 * japhb would really like a reliable thread-safe does-the-best-it-can-on-the-local-OS tempfile builtin.
19:26 lizmat otherwise I would have specced and done it already
19:26 japhb lizmat: tempfiles?
19:27 FROGGS colomon: it is just that: https://github.com/tadzik/panda/compare/reporter
19:27 grondilu talking about NativeCall issues with 32bits, is it related to the lack of JIT on intel/32?
19:27 lizmat japhb: yes I would want a tempfile builtin as well
19:27 FROGGS grondilu: no
19:27 grondilu k
19:27 colomon FROGGS: is your server for that up and running?
19:28 FROGGS grondilu: the bug is that int should mean 32/64 bits depending on the platform... and it somehow always means 64bits atm
19:28 japhb lizmat: It may need nqp support, though it feels at a similar level to SPEC in terms of portability layer.  Not wedded to that idea, though.
19:28 FROGGS colomon: in an hour perhaps :o)
19:28 kurahaupo joined #perl6
19:28 colomon FROGGS++
19:28 * colomon will go rake leaves until FROGGS is done.  ;)
19:28 lizmat on the subject of IO specs: this is my current plan (which I have tested and implemented mostly):
19:29 lizmat 1. IO::Spec / $*SPEC is on the way out
19:29 lizmat many of the current methods need a $*CWD and a $*SPEC specification
19:29 lizmat jnthn pointed out that we have a race condition there
19:30 lizmat since all foreseeable OSes on which rakudo will run use / as a directory delimiter (or at least can work with it)
19:30 lizmat we only need / for dir delimiter
19:31 lizmat the only Win specific thing for which IO::Spec was testing, was Driveletter:/  and //UNC/
19:31 lizmat I think I found a cheap way of handling them as well
19:33 lizmat the only other things IO::Spec is really doing, is providing sensible defaults for different OSes (like tempdir)
19:33 FROGGS true
19:33 lizmat and many path modifying functions
19:34 lizmat so, long term goal: IO::Spec out of the core
19:34 lizmat 2. most OS operations work on simple absolute paths at the lowest level
19:35 lizmat so, if you want to do a dir(), you shouldn't have to make an object of the path first before, only to get the path out of that again to do the operation
19:36 lizmat internally, the default of doing a dir, is returning a string
19:37 lizmat to easily differentiate dirs from other dirs entries, these strings get a '/' appended
19:37 lizmat this also makes it much easier to concatenate a dir with a relative path to get an absolute path
19:38 lizmat since we need to know whether something is a directory or not, we need to check, and therefore we can encapsulate that knowledge into an object of a different class
19:38 lizmat one that shares a lot with the generic file class
19:38 lizmat all objects returned by dir(), have the same API
19:39 lizmat except of course, when it doesn't make sense, or is not allowed (like open() on a directory)
19:40 lizmat fwiw, it seems that directories being represented with a trailing slash, seems to cause the most woe at the moment
19:40 lizmat I think it would be very nice if we could keep that, as it is simple, and a good visual cue whether something is a dir or not
19:41 lizmat 3. IO::Path is trying to do too many things
19:41 lizmat it tries to handle local file paths *and* pipe commands *and* connection strings for sockets
19:42 lizmat therefore I would like to see IO::Path go as well
19:42 lizmat instead, the .IO function (which is the main creator of IO::Path objects, IO::Handle objects before) will create an IOU object
19:42 denis_boyun_ joined #perl6
19:42 FROGGS IOU?
19:42 lizmat the "U" meaning Unidentified"
19:43 FROGGS ahh
19:43 lizmat pun intended
19:43 lizmat hmmm.... dinner ready   need to go now&
19:43 FROGGS :o)
19:44 vendethiel joined #perl6
19:44 rindolf joined #perl6
19:49 rindolf joined #perl6
19:50 ClarusCogitatio joined #perl6
19:57 Mso150 joined #perl6
19:57 masak m: say "pun".indent(4) # pun, indented
19:57 camelia rakudo-moar 315ec6: OUTPUT«    pun␤»
19:58 masak I can't believe no-one has done that one until now.
19:59 FROGGS >.<
19:59 japhb .oO( Girl, Interrupted is just begging to be written ... )
19:59 FROGGS yeah, like someone missed an opportunity for years :P
20:00 masak m: for "Girl".comb { .say; last if ++state $ == 2 } # interrupted
20:00 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/aeyMOSgZQj�Preceding context expects a term, but found infix = instead�at /tmp/aeyMOSgZQj:1�------> [32m"Girl".comb { .say; last if ++state $ ==[33m�[31m 2 } # interrupted[0m�»
20:00 masak m: for "Girl".comb { .say; last if ++(state $ ) == 2 } # interrupted
20:00 camelia rakudo-moar 315ec6: OUTPUT«G␤i␤»
20:00 masak m: for "Girl".comb { .print; last if ++(state $ ) == 2 } # interrupted
20:00 camelia rakudo-moar 315ec6: OUTPUT«Gi»
20:01 japhb I can think of so many interpretations -- concurrency seems a particularly ripe area for exploration.
20:01 japhb .oO( Girl received SIGINT )
20:02 masak ooh, can I trigger a SIGINT in Perl 6 code?
20:03 japhb I can see code for it in Proc::Async.kill ....
20:03 * masak urges japhb to produce a one-liner for camelia
20:03 japhb Damn you!
20:03 masak :>
20:06 japhb 'Proc::Async is disallowed in restricted setting'  # Had a feeling that would happen
20:08 masak aww
20:08 japhb Hmmm, it looks like we currently can only send a signal to a process for which we have a handle, which we have to get via Proc::Async.
20:09 japhb Now if only we could get a handle on an arbitrary process ....
20:12 rindolf joined #perl6
20:16 rmgk joined #perl6
20:16 lizmat where was I?   ah yes, 3. the IOU class
20:17 lizmat in a lot of ways, that will be like the IO::Path of today, except it won't pretend to be doing paths
20:18 lizmat depending on the method called on the object, it will do the right thing using the string (and $*CWD when needed)
20:18 lizmat so "foo".IO.open( :named )
20:19 lizmat will do an open( $*CWD ~ "foo", :named )
20:19 FROGGS japhb / colomon: the service is running at http://85.25.222.109:3000/dist/Text::Indented
20:19 FROGGS japhb / colomon: next step is to get it to run on port 80 and then get a proper name
20:20 lizmat FROGGS: that URL doesn't work for me  :-(
20:20 FROGGS try again
20:20 lizmat FROGGS: better!
20:21 FROGGS yeah, something manages to kill the server :o)
20:22 Alula joined #perl6
20:22 lizmat (to continue) would return an IO::Handle object
20:23 lizmat doing "echo Hello World".IO.pipe  would do a pipe("echo Hello World") and return an IO::Pipe object
20:24 lizmat "localhost:25".IO.connect would return an IO::Socket object
20:24 lizmat (not sure whether we want a connect() sub)
20:26 lizmat 4. IO::Handle, IO::Socket and IO::Pipe would be conumers of the IO::PIO role (PIO or some other name indicating the underlying common attribute)
20:26 lizmat :r / :w / :a would be likely attributes for IO::PIO
20:27 lizmat japhb FROGGS moritz other people: am I making sense so far ?
20:29 FROGGS lizmat: I guess... I am not concentrated enough to think of consequences
20:30 moritz lizmat: sounds sane
20:36 vendethiel joined #perl6
20:36 dalek panda/reporter: 36135eb | (Tobias Leich)++ | lib/Panda/Reporter.pm:
20:36 dalek panda/reporter: add ip of publi cpandatesters server
20:36 dalek panda/reporter: review: https://github.com/tadzik/panda/commit/36135eb47d
20:36 lizmat 5. all paths are absolute
20:37 lizmat if you call .relative on a IO::Local, it will take C*WD and match it against the path and remove the part that's in C*CWD
20:37 lizmat *$*CWD
20:37 lizmat .absolute will just return the absolute path verbatim
20:37 moritz why?
20:38 moritz in other languages, open($filename) works fine for relative file names without any conversions to absolute
20:38 lizmat moritz: and open("foo") will just DTRT
20:38 lizmat just like other languages
20:39 lizmat it will take $*CWD of the moment of open and prepend that if it's a relative path
20:39 FROGGS moritz: we absolutify filenames passed to open already
20:39 moritz why?
20:39 FROGGS correct, so when you change $*CWD one statement later, you still know what was meant
20:39 lizmat because $*CWD is volatile in a threaded, async world
20:40 moritz oh right, we have $*CWD
20:40 lizmat my previous approach was to keep whatever was given (absolute or relative), and keep $*CWD along as well
20:41 moritz which can be different from the OSes idea of the working directory
20:41 lizmat moritz: indeed, the OSes idea of the working directory only makes sense for initializing $*CWD at startup
20:41 lizmat nothing else
20:43 dalek cpandatesters.perl6.org: 7ed6c59 | (Tobias Leich)++ | app.pl:
20:43 dalek cpandatesters.perl6.org: bind to public ip
20:43 dalek cpandatesters.perl6.org: review: https://github.com/perl6/cpandate​sters.perl6.org/commit/7ed6c59bb2
20:44 H2O1 joined #perl6
20:45 masak heh. I'm at a point where I (legitimately) need to implement a binary search -- but I feel a bit nervous because there's a widespread view that very few (something like 5% or so) manage to implement a bug-free binary search on their own.
20:45 dalek rakudo/nom: 02fad28 | (Elizabeth Mattijsen)++ | src/core/IO/Local.pm:
20:45 dalek rakudo/nom: Reminder about a bug
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02fad28976
20:45 masak what should I do to increase my chances of success?
20:45 lizmat write many tests?
20:46 lizmat seriously, I would like to see something like that as a builtin
20:46 * masak takes lizmat's advice
20:46 lizmat it could e.g. be used to make Supply.sort work gradually, instead of doing all the work at the end
20:46 tony-o is there a big need for that?  there are a lot of ways to build it from what i've read and didn't think anybody would use something like that (at least not this early)
20:47 rindolf joined #perl6
20:47 lizmat more generally, it could make sort() be lazy  :-)
20:47 dalek cpandatesters.perl6.org: 476f600 | (Tobias Leich)++ | app.pl:
20:47 dalek cpandatesters.perl6.org: show stats for all reports on page /recent
20:47 dalek cpandatesters.perl6.org: review: https://github.com/perl6/cpandate​sters.perl6.org/commit/476f60052a
20:48 masak I think I agree that binary search could very well be in the core setting.
20:48 moritz masak: my approach to writing a binary search is to to only do it until ($right - $left) < 10 or so, and then do a linear scan. That's reputed to be faster (at least if the comparison is cheap), and not so much prone to off-by-one errors
20:48 masak moritz: interestingly, it decidedly wouldn't be faster in my case.
20:49 masak moritz: because the decision "am I too far right or not?" is lazily computed, and expensive.
20:49 kjs_ joined #perl6
20:49 masak moritz: something on the order of 0.1 s
20:50 dalek cpandatesters.perl6.org: b77224e | (Tobias Leich)++ | app.pl:
20:50 dalek cpandatesters.perl6.org: fix increment of native int
20:50 dalek cpandatesters.perl6.org: review: https://github.com/perl6/cpandate​sters.perl6.org/commit/b77224e27a
20:50 masak and so I really want to make as few computations as possible.
20:52 immortal joined #perl6
20:52 immortal joined #perl6
20:54 tony-o moritz: do you have a write up or anything for that?
20:54 moritz tony-o: nope
20:55 moritz though I do think I've benchmarked it once in perl 5 or C, with integer comparisons (which are really dirt cheap)
20:56 tony-o do you have the code?  i started writing something in p6 but it was mostly a learning exercise and couldn't find much other than contrived examples (so i don't know if i was making something useful or not)
20:56 pecastro joined #perl6
20:58 travis-ci joined #perl6
20:58 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Reminder about a bug'
20:58 travis-ci http://travis-ci.org/rakudo/rakudo/builds/39877428 https://github.com/rakudo/rakudo/c​ompare/5f9a6be563b9...02fad2897691
20:58 travis-ci left #perl6
20:58 moritz tony-o: nope
20:58 * lizmat looks at Travis again  :-(
21:01 FROGGS hmmm
21:03 colomon masak: List::Utils has binary search
21:04 ghostlines joined #perl6
21:04 lizmat moritz: am I correct in not seeing any RESTRICTED settings for the jvm ??
21:04 colomon no guarentees it works and is efficient
21:04 colomon but it does pass a few tests
21:04 masak colomon: looking.
21:04 colomon masak: https://github.com/colomon/List-​Utils/blob/master/t/05-search.t
21:05 colomon masak: if you'd like to add tests, that would be cool.  ;)
21:05 colomon *more tests
21:06 masak :)
21:06 masak this is not a good starting point for what I need, unfortunately.
21:07 masak I have: a sorted list of values, and a computationally expensive function.
21:07 Mso150_z joined #perl6
21:07 masak I'm running the binary search because I want to run the expensive function the fewest possible number of times.
21:08 kjs_ joined #perl6
21:09 btyler_ git bisect is probably a rather well attended binary search implementation, since the expense of the function is "human intervention"
21:09 dalek rakudo/nom: 30d6caf | (Elizabeth Mattijsen)++ | tools/build/Makefile- (2 files):
21:09 dalek rakudo/nom: Restricted settings are built with --ll-exception
21:09 dalek rakudo/nom:
21:09 dalek rakudo/nom: So that we at least have some more info when that goes wrong (like it does
21:09 dalek rakudo/nom: right now on Jarvis).  Unfortunately, I couldn't find the place in the JVM
21:09 dalek rakudo/nom: build process to tweak.  Patches welcome!
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/30d6caf404
21:09 masak "well attended"?
21:10 lizmat masak: memoizing wouldn't help ?
21:10 btyler_ carefully optimized to minimize calls, like the trick moritz mentioned
21:10 timotimo what did i miss in the last few hours?
21:10 timotimo too tired to backlog :S
21:10 masak lizmat: yes, but only on a level outside of the search -- eliminating having to do exactly the same search twice.
21:10 lizmat Travis still complaining
21:10 timotimo :(
21:10 lizmat masak: why not for each test inside the sort ?
21:11 vendethiel joined #perl6
21:13 masak lizmat: the values are index positions inside a string. but for each new search, the string will differ, the values may differ, and the result may differ.
21:13 lizmat ok, gotcha  :-)
21:13 colomon masak: I guess I'm not seeing why the lower-bound function isn't what you need, except possibly needing a way of specifying a different comparison function?
21:13 * lizmat is waiting for Travis to complain again
21:14 timotimo i hope many people who stumbled upon the weekly via perl6.guide have put my blag into their feed reader
21:14 colomon well, except possibly for being an incorrect implementation.  ;)
21:14 masak colomon: my list of values comparable to your @array is lazily computed, using an expensive function.
21:14 lizmat BTW, timotimo++ # P6 weekly
21:14 masak colomon: the point of my binary search is to avoid computing all elements in that list.
21:14 timotimo :)
21:15 colomon masak: do you mean the list itself is lazy, ie you don't know how many elements it has without computing them?
21:16 masak colomon: I know how many elements it has. but I don't know whether to turn left or right down the binary search tree until I evaluate the expensive function.
21:17 colomon right, that's the comparison
21:18 colomon List::Utils's search should require ln N comparisons, more or less
21:18 dalek roast: ac87c83 | (Elizabeth Mattijsen)++ | integration/advent2010-day03.t:
21:18 dalek roast: We can only sensibly compare relative paths
21:18 dalek roast: review: https://github.com/perl6/roast/commit/ac87c83787
21:18 masak it's a function fn($value) whose value can be "Keep" or "Break". I know that there's a limit somwhere between Keeps and Breaks. I'm trying to find the leftmost "Break".
21:19 colomon and Keeps come first?
21:19 masak right.
21:19 colomon this basic algo should do exactly that
21:19 masak ok.
21:20 masak ...looks comparable to what I have so far :)
21:20 masak colomon++
21:22 * lizmat has been banging her head about a dir() related test
21:22 lizmat only to find out the *old* implementation has a bug
21:23 travis-ci joined #perl6
21:23 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Restricted settings are built with --ll-exception
21:23 travis-ci http://travis-ci.org/rakudo/rakudo/builds/39880697 https://github.com/rakudo/rakudo/c​ompare/02fad2897691...30d6caf40429
21:23 travis-ci left #perl6
21:23 colomon masak: of course, now that I'm looking at this I'm wanting to make changes.  ;)
21:23 lizmat m: ".git".IO.dirname.say
21:23 camelia rakudo-moar 315ec6: OUTPUT«.␤»
21:23 masak colomon: :)
21:24 lizmat would have expected ".git"
21:24 colomon lizmat: isn't that the name of the directory for the file?
21:24 lizmat m: "foo.bar".IO.dirname.say'   #  hmmm....
21:24 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/CBdt4Qbx7Qâ�¤Two terms in a rowâ�¤at /tmp/CBdt4Qbx7Q:1â�¤------> [32m"foo.bar".IO.dirname.say[33mâ��[31m'   #  hmmm....[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤        postfixâ�¤â€¦Â»
21:24 colomon which (since it isn't specified) is .
21:24 colomon ?
21:24 lizmat m: "foo.bar".IO.dirname.say   #  hmmm...
21:24 camelia rakudo-moar 315ec6: OUTPUT«.␤»
21:25 lizmat hmmm... good point (I think)  ;-)
21:25 colomon masak: give me a minute to try something.
21:25 lizmat colomon: thanks for the reality check
21:25 virtualsue joined #perl6
21:27 FROGGS lizmat: travis is failing for a self.bless(:parts(@parts), :plus($s.substr(*-1) eq '+'));
21:27 FROGGS in Version.new
21:27 * lizmat checks
21:27 FROGGS lizmat: we probably get the same when we delete our VERSION file or so
21:28 FROGGS hmmm, might not be related to the VERSION file.... maybe it is about deprecations?
21:29 FROGGS m: Version.new('')
21:29 camelia rakudo-moar 315ec6: OUTPUT«===SORRY!===␤Start argument to substr out of range. Is: -1, should be in 0..0␤»
21:29 lizmat yup
21:29 lizmat ok, I'll fix that... still
21:29 lizmat weird that it starts complaining now ??
21:30 FROGGS and that we don't get that on our machines
21:30 colomon masak: OMG, just realized lower-bound / upper-bound only ever worked for numbers.   sigh.
21:31 vendethiel hello, #perl6.
21:31 colomon in my defense, this is some really old p6 code.
21:31 FROGGS hi vendethiel
21:31 masak howdy, vendethiel
21:31 colomon Sept 2010...
21:31 vendethiel masak, tired, 'twas a long day. what about you
21:31 masak colomon: no matter. I'm halfway through messing up my own binary search now... :)
21:31 FROGGS okay... so who do I need to bug about a subdomain of perl6.org?
21:32 masak vendethiel: same. but doing nice Perl 6, so I'm not complaining ;)
21:32 colomon masak: anyway, my new binary-search function does exactly what you need, I think.  ;)
21:32 masak :)
21:32 FROGGS [Coke]: do you know who can register subdomains to perl6.org?
21:32 ab5tract joined #perl6
21:33 timotimo maybe if i try again, i'll find that blatantly obvious thing that makes JSON::Tiny slower than it could be ...
21:34 colomon timotimo++ # could really use JSON::Tiny being faster for $work
21:34 FROGGS me too
21:34 timotimo well, there's the module that binds some c library
21:34 timotimo that should have been a prefix:<++> rather than postfix:<++>, colomon :)
21:34 colomon timotimo: yes, but it changes how JSON import works (or at least, did so last time I checked)
21:34 timotimo that's true
21:34 colomon timotimo: I reward effort, too.  ;)
21:35 H2O1 left #perl6
21:35 colomon I mean, I could rewrite the script in p5, too.
21:35 timotimo you'd perhaps write a little "crawler" that'll turn the data that library gives you into a regular perl6 datastructure
21:35 colomon but if JSON::Tiny just magically got faster, that would be the easiest solution for me.
21:35 lizmat m: Version.new
21:35 timotimo what kind of factor are you looking for?
21:35 camelia rakudo-moar 315ec6: ( no output )
21:36 lizmat m: Version.new(Any)
21:36 camelia rakudo-moar 315ec6: OUTPUT«Default constructor for 'Version' only takes named arguments␤  in method new at src/gen/m-CORE.setting:926␤  in block <unit> at /tmp/BTwyo3nfVh:1␤␤»
21:36 lizmat m: Version.new("")
21:36 camelia rakudo-moar 315ec6: OUTPUT«===SORRY!===␤Start argument to substr out of range. Is: -1, should be in 0..0␤»
21:37 colomon masak: Just updated List::Utils.  Now has a binary-search which takes a &test argument, and returns the first index for which the test is false.
21:38 colomon masak: I re-implemented lower-bound and upper-bound in terms of it, which means it has … 22 test cases.  Not even vaguely thorough.
21:39 colomon m: 110.log(2)
21:39 camelia rakudo-moar 315ec6: ( no output )
21:39 colomon m: say 110.log(2)
21:39 camelia rakudo-moar 315ec6: OUTPUT«6.78135971352466␤»
21:40 masak colomon: thanks, I guess. I'm not convinced my particular generalization of binary search is a net utility for all possible users of a binary search routine...
21:40 masak colomon: having to do a &test like that is a fairly fringe-y case.
21:41 colomon masak: totally not
21:41 firefish5000 joined #perl6
21:41 colomon lower-bound and upper-bound are both simple one-liners using the new binary-search
21:42 FROGGS moritz: from the irc logs it looks like set up doc.perl6.org... can you register a subdomain of perl6.org pointing to my server?
21:43 ab5tract colomon: you get to work in p6?
21:43 * ab5tract jealous
21:44 masak ab5tract: we have openings.
21:44 masak ab5tract: better grab them quickly, though.
21:44 ab5tract masak: wait, what? :)
21:44 masak ab5tract: Perl 6. we have openings. if you want to work on p6.
21:46 colomon would we have to move to Sweden?
21:46 moritz FROGGS: perl6.org has a wildcard subdomain all pointing to 193.200.132.142; it seems you need a different IP, so all I can do for you is contact the domain owner
21:47 * PerlJam thinks masak needs to clarify who "we" are.
21:47 masak the Perl 6 team.
21:47 btyler_ colomon: if you mean the JSON::Jansson binding I wrote, I ended up adding an option to import it into a regular data structure
21:47 dalek rakudo/nom: 8a4b9e8 | (Elizabeth Mattijsen)++ | src/core/Version.pm:
21:47 dalek rakudo/nom: Make Version.new("") not die
21:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8a4b9e8e92
21:47 masak (but, yeah yeah, Edument is hiring, too...)
21:47 masak :P
21:47 colomon btyler_: ooooo
21:47 btyler_ which crawls the jansson structure, much like timotimo mentioned
21:47 * lizmat waits for Travis again
21:48 btyler_ anyways, if you have specific requests, leave an issue, I'd be happy to jump back into that now that the dust is starting to settle for me in .nl
21:49 btyler_ note that the conversion from jansson-->perl 6 structure sucks up a fair bit of time, so the advantage it enjoyed over JSON::Tiny is likely rather smaller
21:49 FROGGS moritz: I'm not yet sure if I want cpandatester.perl6.org or testers.perl6.org pointing to 85.25.222.109
21:49 moritz FROGGS: IMOH 'testers.perl6.org' is cleaner
21:49 moritz *IMHO
21:50 timotimo btyler_: oooh, way cool :)
21:50 colomon timotimo: btw, if you'd like profiles of JSON::Tiny reads….  ;)
21:50 FROGGS moritz: that's what I think too
21:50 timotimo colomon: sure, go ahead :)
21:50 masak colomon: fwiw, here's the binary search I ended up with. https://gist.github.com/masak/abdbddcb25983fbd8935
21:50 FROGGS I still can register cpandatesters.org if I want to :o)
21:50 masak colomon: it seems to work now.
21:51 lizmat FROGGS: why not?
21:51 FROGGS lizmat: why not what?
21:52 lizmat register cpandatesters.org
21:52 FROGGS I dunno
21:53 moritz FROGGS: should I send the mail?
21:53 FROGGS moritz: ohh yes please
21:55 FROGGS lizmat: ok, I ordered cpandatesters.org
21:59 FROGGS if someone wanna be a cpanda tester: checkout panda/reporter, rebootstrap, run: PANDA_SUBMIT_TESTREPORTS=1 panda --exclude=Panda smoke (or just install dists while that env var is set)
21:59 FROGGS and then the reports pop up here immediately: http://85.25.222.109/recent
22:00 colomon FROGGS: "This webpage is not available"
22:00 colomon afk # small children jumping in leaves
22:00 FROGGS eww
22:01 masak no, dangit. I want to find the last Keep! :/
22:02 * masak .oO( user requirements always change. even when you yourself are the user )
22:02 FROGGS colomon: looks like the service dies for certain requests (via browser), but respawns and happily receives reports
22:02 FROGGS weird that is
22:02 travis-ci joined #perl6
22:02 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make Version.new("") not die'
22:02 travis-ci http://travis-ci.org/rakudo/rakudo/builds/39884644 https://github.com/rakudo/rakudo/c​ompare/30d6caf40429...8a4b9e8e92a5
22:02 travis-ci left #perl6
22:03 FROGGS lizmat++
22:03 lizmat we still don't know where the empty Version string came from  :-(
22:03 moritz FROGGS: is there an IPv6-address too?
22:03 lizmat so in a way, this was treating the symptom, not the cause  :-(
22:03 FROGGS lizmat: this can also come from the os version
22:04 FROGGS moritz: I'd have to set it up, but it is able to do ipv6
22:05 moritz FROGGS: let me rephrase. Should I ask for an AAAA-record right away?
22:05 FROGGS http://cpandatesters.org/ should now work for some of us :o)
22:05 FROGGS moritz: I have no idea
22:06 PerlJam now I can't stop seeing cpan-datesters
22:06 FROGGS moritz: does that disallow ipv4?
22:06 FROGGS PerlJam: :P
22:06 FROGGS 'sters
22:06 moritz FROGGS: no; but if you have no idea, it's better not to advertise a v6 address
22:06 FROGGS k
22:07 kjs_ joined #perl6
22:07 masak 'night, #perl6
22:09 lizmat gnight masak
22:10 FROGGS gnight masag
22:10 FROGGS err, masak
22:11 ab5tract does anyone know what the deal is with all the reverse-oriented tests in S03-operators/ set.t
22:13 tgt joined #perl6
22:13 ab5tract they seem superflous at first glance
22:14 timotimo not seeing anything too helpful for JSON::Tiny yet :\
22:14 timotimo i'm a bit distraught to see that possibly >>.ast is the fastest way to do what that does ...
22:15 PZt joined #perl6
22:16 btyler joined #perl6
22:17 tgt Hi. Is there a way to get all of the signatures for a multi sub?
22:17 tgt m: say (1, 2, 3) div 2
22:17 camelia rakudo-moar 315ec6: OUTPUT«Cannot call 'infix:<div>'; none of these signatures match:␤:(Int:D \a, Int:D \b)␤:(int $a, int $b --> int)␤  in block <unit> at /tmp/7Ifu3HeLUs:1␤␤»
22:18 tgt I was curious about the signatures of infix:</> after seeing that error.
22:18 lizmat m: &infix<div>.signatures.say
22:18 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/4JseAwCtfxâ�¤Undeclared routine:â�¤    &infix used at line 1. Did you mean '&index', '&indir'?â�¤â�¤Â»
22:18 moritz m: say &infix:</>.candidates>>.signature
22:18 camelia rakudo-moar 315ec6: OUTPUT«:() :(Any $x) :(Any \a, Any \b) :(Real \a, Real \b) :(Num:D \a, Num:D \b) :(num $a, num $b) :(Rational \a, Rational \b) :(Rational \a, Int \b) :(Int \a, Rational \b) :(Int \a, Int \b) :(Complex:D \a, Complex:D \b --> Complex) :(Complex:D \a, Real \b --> Co…»
22:18 moritz tgt: ^^
22:18 tgt Aha, thank you.
22:18 tgt The code I posted seems like a bug?
22:18 [Coke] FROGGS: I don't know who owns perl6.org
22:19 lizmat m: &infix:<div>>>,candidates.signature.say
22:19 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/KqJ_aJxHN1â�¤Missing << or >>â�¤at /tmp/KqJ_aJxHN1:1â�¤------> [32m&infix:<div>>>,[33mâ��[31m​candidates.signature.say[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤     …»
22:19 moritz tgt: nope
22:19 lizmat m: &infix:<div>>>.candidates.signature.say
22:19 camelia rakudo-moar 315ec6: OUTPUT«No such method 'signature' for invocant of type 'Parcel'␤  in block <unit> at /tmp/kqDNiMCnT9:1␤␤»
22:19 FROGGS [Coke]: moritz++ is able to help me :o)
22:19 lizmat m: &infix:<div>.candidates>>.signature.say
22:19 camelia rakudo-moar 315ec6: OUTPUT«:(Int:D \a, Int:D \b) :(int $a, int $b --> int)␤»
22:19 ab5tract m: say (1, 2, 3).map({ $_ div 4})
22:19 camelia rakudo-moar 315ec6: OUTPUT«0 0 0␤»
22:19 ab5tract m: say (1, 2, 3).map({ $_ div 2})
22:19 camelia rakudo-moar 315ec6: OUTPUT«0 1 1␤»
22:19 tgt I'd have expected @a div $n to be exuivalent to floor(@a / $n)
22:20 timotimo huh, weird. we're doing getlexperinvtype_o for $?CLASS in nqp apparently?
22:20 PerlJam "exuivalent" should totally be a word
22:21 tgt :D Not sure how I typoed that.
22:21 moritz FROGGS, [Coke]: FTW, perl6.org is registered to Dan Wright, who happens to be treasurer of TPF
22:22 ab5tract m: my @a = 1,2,3; say @a / 2;
22:22 camelia rakudo-moar 315ec6: OUTPUT«1.5␤»
22:22 ab5tract tgt: it looks to me like @a is evaluated as number of elements when in a division
22:23 ab5tract a la arrays in scalar context in p5
22:23 moritz S03 says about infix:<div>: "Not coercive, so fails on differing types"
22:23 moritz that's what rakudo implements.
22:24 tgt Interesting. Do you know the reason behind that?
22:24 moritz sleep&
22:26 hagiri joined #perl6
22:26 hagiri TimToady, hello man
22:26 ab5tract tgt: honestly i don't think @a / $n should be coercive either
22:26 hagiri hello all ;)
22:27 ab5tract it seems easy enough to write @a.elems / $n for the coerced behavior
22:28 dalek snake: 5f9404b | (Arne Skjærholt)++ | src/Snake/ (2 files):
22:28 dalek snake: First pass implementation of list literals.
22:28 dalek snake:
22:28 dalek snake: Not very useful yet though, as we don't yet handle variables, which means for
22:28 dalek snake: loops aren't happening yet.
22:28 dalek snake: review: https://github.com/arnshol​t/snake/commit/5f9404b446
22:28 dalek snake: 430570e | (Arne Skjærholt)++ | src/Snake/ (2 files):
22:28 dalek snake: Rudimentary variable and assignment handling.
22:28 dalek snake: review: https://github.com/arnshol​t/snake/commit/430570e1ec
22:28 ab5tract too much contextual twiddling can only lead to trouble
22:31 tgt I'm happy to write +@a div $n. I was just changing some code from floor(@a / $n) to use div and was surprised.
22:33 ab5tract tgt: i agree, it is a bit surprising. that's why i'm uncomfortable with the @a / $n coercion :)
22:36 ab5tract but perls will perl, as the saying may go
22:40 timotimo FROGGS: why does http://85.25.222.109/recent take forever to reply?
22:42 FROGGS timotimo: I'm not sure... I cannot fetch a single site right now :/
22:42 timotimo OK
22:42 timotimo my very first optimization attempt resulted in no improvement whatsoever
22:43 timotimo hm.
22:43 timotimo maybe i should be reading a json file that takes longer than a second to load in order to profile stuff
22:44 FROGGS timotimo: looks like too many reports are fetched from database for the /recent page... so either perl6 or DBIish has a problem there
22:44 FROGGS that looks kinda nice: http://cpandatesters.org/dist/Acme::Meow
22:49 lizmat FROGGS++
22:52 zakharyas joined #perl6
22:53 timotimo except it takes forever to answer
22:53 timotimo let me have a quick look at your queries or something?
22:54 telex joined #perl6
22:55 timotimo oh, FROGGS
22:55 timotimo @osnames.push: $<osname> unless $<osname> ~~ any @osnames;
22:56 timotimo this seems really slow
22:56 timotimo i'd rather have a hash store these, don't you think?
22:56 dalek snake: f28eca1 | (Arne Skjærholt)++ | src/Snake/ (2 files):
22:56 dalek snake: Basic for loops.
22:56 dalek snake: review: https://github.com/arnshol​t/snake/commit/f28eca19a7
23:01 dalek roast: 0277bfb | (Elizabeth Mattijsen)++ | S32-io/dir.t:
23:01 dalek roast: Some intermediate dir() fudging
23:01 dalek roast: review: https://github.com/perl6/roast/commit/0277bfb0fc
23:10 grettis joined #perl6
23:10 timotimo now i have a big json file, but it's kinda ... too big
23:11 timotimo yeah, 180 mb %)
23:22 timotimo FROGGS: could panda report also send the git commit that was fetched from the repository?
23:24 SevenWolf joined #perl6
23:30 timotimo the rakudo-moar process that's trying to from-json the 100mb file has already reached 6 gigs of ram resident memory :\
23:31 timotimo just slurping that file gives me a half-gig sized rakudo-moar
23:31 timotimo which is also less than awesome
23:32 TimToady joined #perl6
23:34 lizmat timotimo: just an "path".IO.slurp  ???
23:36 grettis joined #perl6
23:49 lizmat gnight, #perl6!
23:58 ClarusCogitatio joined #perl6

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

Perl 6 | Reference Documentation | Rakudo