Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-09-12

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:19 MilkmanDan joined #perl6
00:26 BenGoldberg joined #perl6
00:36 exixt joined #perl6
00:40 xenoterracide joined #perl6
00:44 akaseki joined #perl6
00:51 nbrown__ joined #perl6
01:02 yeahnoob joined #perl6
01:02 TimToady it's the $output dance that isn't working in Parrot
01:02 TimToady if you put $output //= $*OUT in the top of sub plan, the tests work better
01:03 TimToady dinner &
01:08 xenoterracide joined #perl6
01:24 anaeem1 joined #perl6
01:27 FROGGS_ joined #perl6
01:37 carlin nine++ # making Inline::Perl5 "safe to use"
01:38 dayangkun joined #perl6
01:38 carlin tadzik: panda's projects.list still isn't updating :(
01:45 nbrown__ joined #perl6
01:46 colomon joined #perl6
02:04 nbrown__ joined #perl6
02:20 chenryn joined #perl6
02:24 rindolf joined #perl6
02:27 nbrown__ joined #perl6
02:51 noganex joined #perl6
02:58 telex joined #perl6
03:05 immortal joined #perl6
03:05 immortal joined #perl6
03:07 dalek rakudo/nom: a9aebc1 | TimToady++ | lib/Test.pm:
03:07 dalek rakudo/nom: work around Parrot's INIT difficulties
03:07 dalek rakudo/nom:
03:07 dalek rakudo/nom: Using INIT here doesn't buy us anything in any case.
03:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a9aebc1899
03:09 anaeem1 joined #perl6
03:13 TimToady that should fix the 100% test failure rate on Parrot
03:15 TimToady if PROCESS requires INIT somewhere to get run-time process values, then PROCESS needs to be fixed
03:19 TimToady oh, wait, I forgot the real issue, fix coming
03:26 jerrycheung joined #perl6
03:27 kaare_ joined #perl6
03:30 xragnar joined #perl6
03:36 dalek rakudo/nom: 88bcc59 | TimToady++ | lib/Test.pm:
03:36 dalek rakudo/nom: work around parrot INIT problems
03:36 dalek rakudo/nom:
03:36 dalek rakudo/nom: But we still need to wait till main's run time.
03:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/88bcc5904e
03:39 hagiri joined #perl6
03:43 esaym153 joined #perl6
04:22 Timbus joined #perl6
04:28 mattp_ joined #perl6
04:33 hagiri TimToady
04:33 hagiri :)
04:33 hagiri hi all
04:33 hagiri :D
04:38 noganex joined #perl6
04:44 dwarring joined #perl6
04:51 TimToady current stats: r-j fails 10 tests, r-m fails 1 test (probably a flapper), and r-p fails 25 tests
04:52 TimToady on Linux Mint, 64-bit
04:55 chenryn joined #perl6
04:59 rindolf joined #perl6
05:07 mattp_ joined #perl6
05:08 kaare_ joined #perl6
05:10 anaeem1 joined #perl6
05:23 MikeFair joined #perl6
05:30 chenryn joined #perl6
05:32 yeahnoob joined #perl6
05:35 [Sno] joined #perl6
05:35 kaleem joined #perl6
05:46 cbk1090 joined #perl6
05:52 mr-foobar joined #perl6
05:56 xfix joined #perl6
05:58 yeahnoob joined #perl6
06:08 SamuraiJack joined #perl6
06:13 timotimo that doesn't even sound bad!
06:37 darutoko joined #perl6
06:44 virtualsue joined #perl6
06:54 sergot morning o/
06:56 zakharyas joined #perl6
06:57 moritz \o
07:00 anaeem1 joined #perl6
07:00 yeahnoob joined #perl6
07:07 Px12 joined #perl6
07:08 cbk1090 joined #perl6
07:15 nbrown__ joined #perl6
07:17 brrt joined #perl6
07:17 nine morning \o/
07:19 Rotwang joined #perl6
07:21 brrt \o
07:23 Px12 joined #perl6
07:31 tadzik carlin: thank you, I'll start an investigation
07:31 tadzik moritz: do you know where I could look for any logs on feather as to why my cronjobs aren't working?
07:33 ivan`` joined #perl6
07:48 mr-foobar joined #perl6
07:54 FROGGS joined #perl6
07:57 * brrt recalls reading that feather was in maintenance mode?
07:59 moritz tadzik: well, it could send mails (dunno if the MTA works), or syslog
08:02 nine or the journal if it's a modern enough system
08:02 \00 joined #perl6
08:09 awwaiid joined #perl6
08:28 tadzik modern as in lennartd-modern? :P
08:31 Px12 joined #perl6
08:31 nine modern as in finally-after-decades-reliable-daemon-management-modern.
08:46 brrt lennartd? oh. i get it
08:56 zakharyas joined #perl6
09:18 timotimo *i* like systemd
09:19 tadzik not sure if it's systemd I detest, but since it came around a lot of things I need to do got insanely complicated
09:19 tadzik and I didn't even try creating my own daemons yet
09:19 Timbus setting up a basic daemon tho? real easy and useful
09:20 Timbus but the ubuntu init thingy does that just as easily
09:20 tadzik systemd seems tightly coupled to everything system related, which I really don't like
09:20 tadzik for instance I needed to mess with it when turning off the close-the-lid-to-suspend
09:21 Timbus yeah lots of.. features
09:22 nine tadzik: arguably it's the right place for things like close-the-lid-to-suspend. It is a system setting after all.
09:22 brrt my 2c: it's complicated. my linux system is fairly complicated. i used to have sysv init (i think?) on slackware, and it was simple, but it relied on 'higher' components doing all the useful stuff, which was ugly
09:22 brrt i.e. sysv init is really good if you have a fixed server that has to run a fixed set of services
09:22 nine systemd also made some insanely complicated tasks extremely simple. Like making sure a forking daemon is really, really shut down completely including all external commands it started.
09:23 nine That was simply impossible before.
09:23 timotimo tadzik: you shouldn't need to mess with that any more
09:23 brrt in my experience, anything that is really dynamic is so much easier
09:23 timotimo tadzik: at least the xfce power manager sends an inhibit to systemd so that it ignores power-management-related buttons
09:23 brrt but yeah, it's a complicated system
09:23 nine Thanks to systemd I also now get _all_ stdout and stderr output of all daemons in the log system. This proved extremely useful in debugging.
09:24 timotimo yes. oh god, that is SO good, nine
09:24 leont joined #perl6
09:25 tadzik nine: right, it's a system setting. It was suspposed to be an init system, but now it's everything
09:25 nine And setting up new services is rather trivial. I even have it start irssi in a screen session on my personal server running with my user because that's just 5 lines of trivial configuration :)
09:25 tadzik including a system settings manager
09:25 timotimo nine: ooooh
09:25 timotimo tadzik: what do you think of systemd-inhibit?
09:26 tadzik timotimo: never heard of it
09:26 nine tadzik: no it was never supposed to be just an init system. That's a common misconception. systemd-init is the init system. systemd is a project for rethinking common infrastructure of linux systems and for standardizing these components. Finanly.
09:26 tadzik hm, I see
09:26 kaleem joined #perl6
09:27 nine timotimo: https://gist.github.com/niner/810b7fef636a660af1c9
09:27 timotimo yes, and you can get as little or as much of systemd in your system as you'd like
09:27 timotimo (i have not tried, though)
09:27 timotimo nine: that is seriously cool.
09:28 brrt pretty awesome yeah
09:28 timotimo also, i'm pretty excited about the kdbus stuff
09:29 nine Hell systemd starts even my ProgressQuest (http://www.progressquest.com) client in wine and xvnc on my server and restarts it when the cronjob kills it every night because that thing is just buggy and hangs after a while ;)
09:29 xiaomiao brrt: sysvinit is good at being pid1
09:29 timotimo hah hah :)
09:29 xiaomiao nine: monit ftw? ;)
09:29 * xiaomiao has been spoilt with sane startup for a few years, downgrading to gnomeOS is not an option
09:30 nine xiaomiao: what for? Running services is what an init system is for. No need for complicated extra tools.
09:30 xiaomiao nine: well, monit can check if something is responding to http requests on port 3128
09:31 nine xiaomiao: sysvinit has never been good as pid1. I repeat: sysvinit _cannot_ reliably kill a daemon. That's as ridiculous as it gets.
09:31 xiaomiao only way I can keep squid reliably online
09:31 xiaomiao systemd would just assume that it is running as there's a process
09:31 xiaomiao so I'd need monit anyway, and systemd doesn't allow complex ideas like NFS
09:31 xiaomiao quite nice for a home desktop, but not yet useful for serious work
09:32 nine xiaomiao: ProgressQuest is a silly little game, not a webserver. It's a Windows application written in VisualBasic and just pops an error dialog when it's running too long and your character has a very high level. There's nothing monit could do.
09:32 xiaomiao nine: monit can respawn quite nicely
09:32 nine xiaomiao: systemd starts NFS here. No idea what you mean.
09:32 xiaomiao nine: try relying on services that pull data over NFS
09:33 xiaomiao it fails at ordering, so daemons start before the netmounts are available and hang
09:33 xiaomiao then people get angry
09:33 xiaomiao almost hilarious, but nice flashback to the 90s
09:33 nine xiaomiao: systemd can order on mount availability.
09:33 xiaomiao nine: it has config, but ignores it
09:33 xiaomiao because faster
09:33 timotimo (and socket activation is quite neat, too)
09:33 xiaomiao :D
09:33 xiaomiao timotimo: horrible.
09:33 timotimo horrible?
09:33 xiaomiao yes
09:34 xiaomiao e.g. no sane failure modes
09:34 xiaomiao xinetd got discouraged for reasons
09:34 timotimo mhm, mhm
09:35 nine Socket activation allows really seamless restarting of fcgi daemons
09:35 xiaomiao xinetd ftw?
09:35 BizarreCake joined #perl6
09:35 mr-foobar joined #perl6
09:36 dalek nqp: 5d69e8e | (Tobias Leich)++ | README.pod:
09:36 dalek nqp: add travis build status image
09:36 dalek nqp: review: https://github.com/perl6/nqp/commit/5d69e8e3aa
09:37 brrt i don't get that argument. either xinetd is good or it is not good
09:37 FROGGS timotimo++ # https://github.com/perl6/nqp/blob/master/README.pod
09:37 nine xiaomiao: with xinetd I get several seconds of latency on the first request while it is starting the service. systemd can start it immediately while still providing seamless restart.
09:37 xiaomiao nine: if systemd can start
09:38 xiaomiao plus there's idiocy like journald that is not meant for serious use
09:38 timotimo nine: what does systemd do differently that it starts it "immediately"?
09:38 FROGGS timotimo: also helpful, we smoke master + branches that contain "smoke-me", status of branches shown here: https://github.com/perl6/nqp/branches
09:38 xiaomiao 4kB/s? that's ... cute!
09:38 FROGGS timotimo: and you can click the status icon
09:38 xiaomiao timotimo: it starts a socket listener, then uses the socket activation protocol to hand it to the daemon
09:38 timotimo xiaomiao: it seems like journald has pretty cool features; also, you can still put a regular syslog behind it
09:38 timotimo xiaomiao: i thought that's also what xinetd does?
09:38 xiaomiao timotimo: that way you can connect immediately, even before the daemon is actually up
09:39 xiaomiao timotimo: kinda, yes. but xinetd sucks :)
09:39 timotimo ah
09:39 xiaomiao timotimo: performance!
09:39 FROGGS timotimo: and travis builds (new) pull requests
09:39 timotimo neato :)
09:39 xiaomiao timotimo: 4kB/s is not tolerable
09:39 timotimo mhm
09:41 nine xiaomiao: your "idiocy like journald" makes my life a whole lot simpler. Because I can finally get _all_ output of a daemon, even if it does not prefix each and every line with a unique string in its log output and even if it prints some messages on STDOUT or STDERR for example if an error happened before it could open the logfiles.
09:42 dalek rakudo/nom: a89cfe4 | (Tobias Leich)++ | README.md:
09:42 dalek rakudo/nom: add travis build status image
09:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a89cfe45c8
09:42 timotimo xiaomiao: out of curiosity, where did you get the 4Kb/s number?
09:42 nine xiaomiao: it also allowed me to remove all daemon code and complicated fork/fork/close stdout+stderr/reopen them/whatever crap from my daemon because systemd is doing all that for me. Writing a daemon is now as simple as "while(1) { ... }".
09:43 brrt and.. it works better than stuff like supervisor (pythonland)
09:43 brrt and, dynamic and stuff
09:43 brrt but i can see where a lot of the 'old unix' guys are coming from. what if something like journald breaks, then you don't have journals
09:44 timotimo that's not actually true
09:44 nine Really I don't get it. After literally decades of stagnation there's finally real real-world improvements to system management and people bitch and moan.
09:44 timotimo journalctl doesn't communicate with the journald
09:44 brrt actually, i didn't know that
09:44 timotimo that means you can just copy-paste the journal file or reboot your system onto a livecd environment and read out your journal
09:45 brrt but that still.. has a bit of suck to it compared to using grep
09:45 timotimo except with yournalctl you can (well, should be able to) search for individual fields and shit
09:45 brrt and anyway, it centralises stuff, so you'll  now have to trust systemd and lennart
09:45 nine brrt: in real life you cannot just use grep on log files anyway because most of them are actually in a binary format: they are compressed.
09:45 timotimo and the "only for the last/current/... boot" flag is super useful
09:45 brrt and old unix guys didn't become old unix guys because they trust so many people
09:46 brrt zgrep then :-)
09:46 nbrown__ joined #perl6
09:46 brrt listen, i really enjoy working with systemd. i try to understand why people don't like it :-)
09:46 nine brrt: except for when the logfile got rotated to compress the old ones and apache again failed to reopen it's error log and you again lose important information. Yeah
09:47 timotimo yeah, logrotate is kind of enh.
09:47 timotimo cool idea in theory, but a bit fiddly in practice
09:48 nine I can love UNIX and still want to see some things improved. Simple as that.
09:49 brrt improvement is a thing that depends on your goal
09:49 lizmat good *, #perl6
09:49 brrt \o
09:50 nine o/
09:50 lizmat I was wondering, do we have a character class in NQP that just contains CR and LF ?
09:51 lizmat if not, could we make one?
09:51 lizmat looking at the difference in performance of Str.words and Str.lines
09:51 lizmat $ time perl6 -e '"words".IO.slurp.words'
09:51 lizmat real0m0.524s
09:51 lizmat $ time perl6 -e '"words".IO.slurp.lines'
09:51 lizmat real0m2.489s
09:51 denis_boyun joined #perl6
09:51 lizmat sincs the words file is the words case (one word per line), it should at least be as fast as .words
09:52 FROGGS lizmat: we have CCLASS_NEWLINE
09:53 lizmat aha!
09:53 * lizmat brings out the chainsaw
09:53 brrt is the chainsaw the profiler?
09:53 FROGGS lizmat: ohh wait
09:53 timotimo .tell tony-o i'm looking more into perl6-http-server-async and i'm not entirely sure how request.parse works. also, is it a good idea to try to re-parse the whole request string every time a new byte arrives?
09:53 yoleaux timotimo: I'll pass your message to tony-o.
09:53 FROGGS lizmat: it contains others as well
09:53 brrt very jnthn++ for making that in the first place
09:53 lizmat qh,, :-(
09:53 lizmat ah rather
09:54 FROGGS lizmat: like 0x85 and 0x2029
09:54 lizmat hmmm....
09:54 lizmat well, if we would support those as well
09:54 lizmat that wouldn't hurt, would it ?
09:54 FROGGS it might even be more correct...
09:54 lizmat I mean 'CCLASS_WHITESPACE" contains much more than just ' '  :-)
09:54 FROGGS true :o)
09:54 lizmat and it's 5x as fast as the current approach
09:55 FROGGS m: say ("\r\n\x85\x2029" ~~ /\n+/).Str.chars
09:55 camelia rakudo-moar 88bcc5: OUTPUT«4␤»
09:56 FROGGS m: say ("\r\n\x0b\x0c\x85\x2029" ~~ /\n+/).Str.chars
09:56 camelia rakudo-moar 88bcc5: OUTPUT«6␤»
09:56 FROGGS p: say ("\r\n\x0b\x0c\x85\x2029" ~~ /\n+/).Str.chars
09:56 camelia rakudo-parrot 88bcc5: OUTPUT«2␤»
09:56 FROGGS eww
09:56 FROGGS I thought I fixed that
09:56 FROGGS j: say ("\r\n\x0b\x0c\x85\x2029" ~~ /\n+/).Str.chars
09:56 timotimo oh, i think i get it now
09:56 camelia rakudo-jvm 88bcc5: OUTPUT«(timeout)»
09:56 FROGGS gah
09:58 timotimo .tell tony-o i get it now; this is just because i asked you to make data lazy, and since we still need to handle chunked encoding, that still has to run every time ...
09:58 yoleaux timotimo: I'll pass your message to tony-o.
10:00 timotimo .tell tony-o i think this is wrong, though: the chunked encoding thingie looks at %headers, but if $!headercomplete is set, it'll never assign anything to %headers. in fact, i see no code at all that assigns to %.headers in Request.pm6 ?!
10:00 yoleaux timotimo: I'll pass your message to tony-o.
10:00 timotimo .seen tony-o
10:00 yoleaux I saw tony-o 29 Aug 2014 17:02Z in #perl6: <tony-o> lol
10:00 grondilu joined #perl6
10:01 breinbaas joined #perl6
10:01 timotimo m: say "höhöhöhöhö".encode('base-64')
10:01 camelia rakudo-moar 88bcc5: OUTPUT«Unknown string encoding: 'base-64'␤  in method encode at src/gen/m-CORE.setting:6959␤  in block <unit> at /tmp/b5Rkyl96Uy:1␤␤»
10:01 timotimo m: say "höhöhöhöhö".encode('base64')
10:01 camelia rakudo-moar 88bcc5: OUTPUT«Unknown string encoding: 'base64'␤  in method encode at src/gen/m-CORE.setting:6959␤  in block <unit> at /tmp/4cdwBb5Pp4:1␤␤»
10:01 timotimo how do i ...?
10:02 timotimo we don't have base64 in core-moar?
10:02 brrt apparantly not
10:02 brrt what happens when you encode base64 in utf-16
10:02 grondilu base-64 is not exactly a string encoding, is it?
10:03 brrt :-p
10:03 brrt isn't it? i'm confused about that
10:03 timotimo brrt: what?
10:03 timotimo you encode a string to an ascii string using base64
10:04 timotimo utf-16 doesn't factor into the thing at all
10:04 timotimo wait ...
10:04 brrt ... my point is that base64 is in a way a meta-encoding on top of ascii
10:04 brrt you could conceivably encode base64 with some other character encoding, like ebdic or so
10:04 grondilu base-64 is made to turn any binary-data into ASCII
10:05 virtualsue joined #perl6
10:05 timotimo ah
10:05 timotimo i see now
10:05 brrt or utf-16 :-)
10:05 brrt and that this would be.. weird. but i don't think it'd be invalid
10:05 grondilu so base-64 can not encode any arbitrary string because it does know  a priori ho it is encoded in binary
10:05 lizmat m: use Test
10:05 camelia rakudo-moar 88bcc5: OUTPUT«===SORRY!===␤No such method 'close' for invocant of type 'Any'␤»
10:05 lizmat yuck ????
10:05 grondilu *does not know
10:05 lizmat r: use Test
10:06 camelia rakudo-{parrot,jvm,moar} 88bcc5: OUTPUT«===SORRY!===␤No such method 'close' for invocant of type 'Any'␤»
10:06 timotimo oh, huh
10:06 timotimo i was able to run tests for panda'ed packages locally
10:06 timotimo huh
10:06 timotimo m: use Test; say "alive";
10:06 camelia rakudo-moar 88bcc5: OUTPUT«alive␤===SORRY!===␤No such method 'close' for invocant of type 'Any'␤»
10:06 lizmat I think it only happens if you don't do any tests
10:07 lizmat m: use Test; pass
10:07 camelia rakudo-moar 88bcc5: OUTPUT«ok 1 - ␤»
10:07 timotimo ah
10:07 timotimo of course
10:07 grondilu it would be nice to have a Blob.base64, though.
10:07 timotimo https://github.com/rakudo/rakudo/commit/88bcc5904e55454146ec2223e07aca596cb71cd5 - this inits $output, $failure_output and $todo_output in plan, diag, proclaim and done
10:07 timotimo but not in the END phaser
10:08 timotimo line 464 may just want to read $handle.?close instead of $handle.close
10:09 Ven joined #perl6
10:09 lizmat will fix
10:09 Ven o/, #perl6
10:09 Ven masak, moritz , type lovers and others : http://www.functor.se/research/paper-stew2012/
10:10 dalek rakudo/nom: 795be4c | (Elizabeth Mattijsen)++ | lib/Test.pm:
10:10 dalek rakudo/nom: Don't complain if we don't test anything
10:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/795be4cecf
10:11 timotimo m: my Blob $foo = "Hellö There!".encode("utf8"); for $foo.list -> $b1, $b2?, $b3? { say "$b1, $b2, $b3" }
10:11 camelia rakudo-moar 88bcc5: OUTPUT«72, 101, 108␤108, 195, 182␤32, 84, 104␤101, 114, 101␤use of uninitialized value $b2 of type Mu in string context  in block <unit> at /tmp/vrTZz2VNoy:1␤␤use of uninitialized value $b3 of type Mu in string context  in block <unit> at /tmp/vrTZz2V…»
10:11 timotimo ah, that works. i wonder why i thought it wouldn't
10:15 timotimo bleh. Digest fails tests when installed via panda, but it works fine when the tests are run from ufo's makefile ...
10:16 timotimo grondilu: how far down your priority list is fixing the two TODOs you have in Digest's TODO file? :)
10:21 jaffa4 joined #perl6
10:21 jaffa4 m: my int32 $ = 4;
10:21 camelia rakudo-moar 88bcc5: ( no output )
10:22 jaffa4 m:  sub m(int32 i) {}  m(4);
10:22 camelia rakudo-moar 88bcc5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/G1gsQbfxo4�A parameter may only have one prefix type constraint�at /tmp/G1gsQbfxo4:1�------> [32msub m(int32 i[33m�[31m) {}  m(4);[0m�    expecting any of:�        statement list� …»
10:24 jaffa4 m:  sub m(int32 $i) {}  m(4);
10:24 camelia rakudo-moar 88bcc5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ZGUy5I6nO9�Two terms in a row�at /tmp/ZGUy5I6nO9:1�------> [32msub m(int32 $i) {}  [33m�[31mm(4);[0m�    expecting any of:�        statement list�        horizontal whitespace�  ÃƒÂ¢Ã¢â€šÂ¬Ã‚¦Ã‚»
10:27 krunen joined #perl6
10:28 jaffa4 m:  sub m(int32 $i) {};  m(4);
10:28 camelia rakudo-moar 88bcc5: ( no output )
10:31 * brrt afk
10:31 brrt left #perl6
10:31 jaffa4 m:  class a  {method m(int32 $i) {};}  a.m(4);
10:31 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8bjcLanvUd�Two terms in a row�at /tmp/8bjcLanvUd:1�------> [32mclass a  {method m(int32 $i) {};}  [33m�[31ma.m(4);[0m�    expecting any of:�        statement list�        horizonta…»
10:35 grondilu timotimo: quite far, but I can look at it since you ask...
10:36 timotimo not that important, actually
10:36 timotimo just stumbled upon it and thought maybe it'd be super trivial to fix now
10:37 timotimo the todos are 2 years old, so 2 years of rakudo improvements have happened :)
10:37 grondilu don't know.  Does 'use Foo <function>' work now?
10:38 grondilu m: module Foo { our sub greet { say "hi" } }; import Foo <greet>; greet;
10:38 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/HThyC0cUI1�Undeclared routine:�    greet used at line 1. Did you mean 'grep'?��»
10:39 grondilu as far as why Digest can't be installed via panda I can't help as panda has not been working lately on my machine.
10:40 timotimo i think you need to say <&function>
10:40 bjz joined #perl6
10:40 jaffa4 What is the size of int?
10:40 grondilu m: module Foo { our sub greet { say "hi" } }; import Foo <&greet>; greet;
10:40 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Ov8YDL1Yag�Undeclared routine:�    greet used at line 1. Did you mean 'grep'?��»
10:41 timotimo jaffa4: i think those are platform-native integers, so 32bit on 32bit machines, 64bit on 64bit machines
10:43 grondilu by the way do we have something like &sizeof?
10:45 lizmat I was thinking of using int.min int.max for that
10:45 lizmat not exactly the same, but useful nonetheless ?
10:45 jaffa4 m: print int.min;
10:45 camelia rakudo-moar a89cfe: OUTPUT«Can only determine min of Numeric types␤  in method Str at src/gen/m-CORE.setting:13506␤  in method print at src/gen/m-CORE.setting:14706␤  in sub print at src/gen/m-CORE.setting:15025␤  in block <unit> at /tmp/SliRmgmB_D:1␤␤»
10:45 timotimo use Limits:from<C>
10:45 jaffa4 m: print Int.min;
10:45 camelia rakudo-moar a89cfe: OUTPUT«-Inf»
10:45 timotimo :P
10:45 jaffa4 m: print Int.max;
10:45 camelia rakudo-moar a89cfe: OUTPUT«Inf»
10:45 lizmat m: print Num.max
10:45 camelia rakudo-moar a89cfe: OUTPUT«Inf»
10:46 lizmat I fixed that yesterday
10:46 lizmat fsvo fixing
10:46 lizmat m: print Str.max
10:46 camelia rakudo-moar a89cfe: OUTPUT«Can only determine max of Numeric types␤  in method Str at src/gen/m-CORE.setting:13506␤  in method print at src/gen/m-CORE.setting:14706␤  in sub print at src/gen/m-CORE.setting:15025␤  in block <unit> at /tmp/MtTHfGoWh7:1␤␤»
10:46 jaffa4 kamat: inf is not correcdt
10:47 timotimo it is
10:47 timotimo for Int at least
10:48 timotimo for num there is a highest and lowest number we can represent
10:51 jaffa4 Does it have infinite precision?
10:51 timotimo no
10:51 lizmat Int?  yes, afaik
10:51 jaffa4 m: Int $b = 232323232323232323232323232323232323232323;
10:51 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/U_TbwZ4pQ7�Two terms in a row�at /tmp/U_TbwZ4pQ7:1�------> [32mInt [33m�[31m$b = 23232323232323232323232323232323232[0m�    expecting any of:�        postfix�        infix stopper…»
10:51 timotimo i don't think you call that "precision"
10:52 timotimo ... what.
10:52 lizmat my missing
10:52 timotimo m: Int $b = 100000000; $b *= 1000000 for ^20; say $b.chars
10:52 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Q1jprRqkZe�Two terms in a row�at /tmp/Q1jprRqkZe:1�------> [32mInt [33m�[31m$b = 100000000; $b *= 1000000 for ^20; s[0m�    expecting any of:�        postfix�        infix stopper…»
10:52 exixt left #perl6
10:52 jaffa4 m: my Int $b = 232323232323232323232323232323232323232323; print $b;
10:52 camelia rakudo-moar a89cfe: OUTPUT«232323232323232323232323232323232323232323»
10:52 timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say $b.chars
10:52 camelia rakudo-moar a89cfe: OUTPUT«129␤»
10:52 timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say $bs
10:52 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/WTmOQCvoBa�Variable '$bs' is not declared�at /tmp/WTmOQCvoBa:1�------> [32m00000000; $b *= 1000000 for ^20; say $bs[33m�[31m<EOL>[0m�    expecting any of:�        postfix�»
10:52 timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say $b
10:52 camelia rakudo-moar a89cfe: OUTPUT«100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000␤»
10:52 timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say ($b + 1).is-prime
10:52 camelia rakudo-moar a89cfe: OUTPUT«False␤»
10:52 timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say ($b + 1)
10:52 camelia rakudo-moar a89cfe: OUTPUT«100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001␤»
10:52 jaffa4 m: my Int $b = -232323232323232323232323232323232323232323; print $b;
10:52 camelia rakudo-moar a89cfe: OUTPUT«-232323232323232323232323232323232323232323»
10:52 timotimo not prime, eh?
10:53 jaffa4 m: print int32.max;
10:53 camelia rakudo-moar a89cfe: OUTPUT«Can only determine max of Numeric types␤  in method Str at src/gen/m-CORE.setting:13506␤  in method print at src/gen/m-CORE.setting:14706␤  in sub print at src/gen/m-CORE.setting:15025␤  in block <unit> at /tmp/OrYlbBqXbu:1␤␤»
10:53 jaffa4 that is numeric type
10:53 lizmat jaffa4: work in progress: native types NYI
10:53 colomon ugh, lots of smoke module failures overnight
10:54 lizmat jaffa4: as far as finding out min/max values that way
10:58 colomon oh!  can only determine max of Numeric type objects?
10:59 jaffa4 is this going to be fixed:
10:59 colomon …. though Str.max should be Inf too, no?
10:59 lizmat at the moment: since everybody seems to think this is a good idea, I should probably implement it for native types
10:59 jaffa4 m:  class a  {multi method m(int32 $i) {};};  a.CREATE().m(4);"
10:59 camelia rakudo-moar a89cfe: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/SGIOr_9hLk�Unable to parse expression in double quotes; couldn't find final '"' �at /tmp/SGIOr_9hLk:1�------> [32mhod m(int32 $i) {};};  a.CREATE().m(4);"[33m�[31m<EOL>[0m�    expectin…»
10:59 jaffa4 m:  class a  {multi method m(int32 $i) {};};  a.CREATE().m(4);
10:59 camelia rakudo-moar a89cfe: OUTPUT«Cannot call 'm'; none of these signatures match:␤:(a: int32 $i, *%_)␤  in block <unit> at /tmp/5XhTg9iOo1:1␤␤»
10:59 timotimo at some point i recall a "AfterAll" and "BeforeAll" value could be introduced
10:59 lizmat Inf seems like a numerical concept to me, not a string concept
11:00 dalek rakudo/nom: df2f8b4 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
11:00 dalek rakudo/nom: Make Str.lines much simpler, a little faster still
11:00 dalek rakudo/nom:
11:00 dalek rakudo/nom: /usr/share/dict/words: 2.383 -> 2.082, about 13%
11:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/df2f8b4954
11:00 colomon lizmat: never-the-less, Inf is there in the ordering of strings, too, in p6
11:00 colomon m: say "hello" lt Inf
11:00 grondilu Str.max should die with an out-of-memory exception :-)
11:00 camelia rakudo-moar a89cfe: OUTPUT«False␤»
11:00 colomon …. or not?
11:00 lizmat yes, and that bugs me as well..  The associated test file seems unsure of the validity of it all
11:01 timotimo m: say "hello" cmp Inf
11:01 camelia rakudo-moar a89cfe: OUTPUT«Less␤»
11:01 lizmat grondilu: please let it fail *just* before that  :-)
11:01 colomon grondilu: so should Int.max by that logic.  ;)
11:01 grondilu colomon: ah indeed
11:02 colomon afk # laptop turned over for 6yo morning nom Phineas and Ferb watching
11:02 jaffa4 m:  class a  { method m(int32 $i) {};};  a.CREATE().m(4);
11:02 camelia rakudo-moar a89cfe: ( no output )
11:02 exixt joined #perl6
11:02 grondilu colomon: well on second thought no, since we have Inf.
11:16 jaffa4 guys, how do I create a new numeric type with constraints in Perl6?
11:18 lizmat mL subset Odd of Int where { $_ % 2 }; my Odd $odd = 2
11:18 lizmat m: subset Odd of Int where { $_ % 2 }; my Odd $odd = 2
11:18 camelia rakudo-moar a89cfe: OUTPUT«Type check failed in assignment to '$odd'; expected 'Odd' but got 'Int'␤  in block <unit> at /tmp/oR6og9_I1v:1␤␤»
11:18 lizmat m: subset Odd of Int where { $_ % 2 }; my Odd $odd = 3
11:18 camelia rakudo-moar a89cfe: ( no output )
11:20 exixt joined #perl6
11:21 lizmat ok, so now I have a variation of Str.lines that is still 5x as fast as before
11:21 lizmat but is not lazy
11:22 lizmat I'm thinking about making that a candidate reachable by a :eager named parameter
11:22 lizmat to be added by optimizers later automagically
11:22 lizmat or by developers who know what they want
11:22 lizmat does that make sense ?
11:23 jaffa4 lizmat: great
11:36 dalek rakudo/nom: f6dd96d | (Elizabeth Mattijsen)++ | src/core/Str.pm:
11:36 dalek rakudo/nom: Add :eager candidates for Str.lines, 5x faster!
11:36 dalek rakudo/nom:
11:36 dalek rakudo/nom: So the lazy form is still the default: the eager version could be used when
11:36 dalek rakudo/nom: needed, or when the optimizer determines it can (in the future).
11:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6dd96d564
11:37 lizmat this 5x speed difference is also a good indication of what to expect from the Big List Refactor, I would think
11:37 chenryn joined #perl6
11:40 nwc10 lizmat: is any cheating possible in (for example) the compiler? eg, if the file being read has a size, and the size is less than $whatever, go eager
11:40 lizmat nwc10: I did Str.lines, so it's all in memory already
11:40 nwc10 by "has a size" I guess it's the same as "is a regular file, and not a socket, tty, pipe, or stuff"
11:40 lizmat working on IO::Handle.lines atm
11:40 nwc10 OK. I don't know enough to be helpful.
11:40 nwc10 so
11:41 nwc10 lizmat++
11:41 nwc10 and I'll go back to drinking coffee
11:41 lizmat :-)
11:41 * lizmat gets another cuppa tea
11:42 * nwc10 needs to remember to brink a kettle to Salzburg, "just in case"
11:44 Timbus .lines would maybe be faster if the VM reported back to rakudo how many lines were in the current buffer? is that possibly related to how the list refactor would work?
11:44 Timbus .. better question: what is the list refactor
11:46 timotimo m: say "foobar".index("!")
11:46 camelia rakudo-moar df2f8b: OUTPUT«(Int)␤»
11:47 timotimo lizmat: is Str.split already optimized for cases where a limit is given?
11:48 lizmat not as far as I know
11:48 bjz joined #perl6
11:48 lizmat one of things I'm looking at now that MMD is not costly in the settings anymore
11:48 lizmat previously, we need to get things together in one method as MMD was expensive
11:48 lizmat not so anymore
11:49 timotimo cool
11:50 lizmat eager version of IO.lines is about 4x faster
11:51 timotimo neato
11:52 nwc10 Timbus: array operations are currently slower than hash operations. This is counter-intuitive. The problem is that all the "laziness" code makes regular array operations slow. So the implementation of all thigs to do with lists needs to be refactored, so that eager things don't go slowly.
11:52 Salai joined #perl6
11:52 timotimo what about turning a for loop over the result into a while + shift? that should give another speed boost, no?
11:52 lizmat timotimo: ??
11:53 timotimo or was that just testing how long it takes to run the method itself?
11:53 timotimo not iterating over the result?
11:53 lizmat it's basically changing a gather / while into a whiile / push
11:54 timotimo mhm, right
11:54 timotimo and if we know we're allowed to destroy the list we've created, we can turn the for into a while + shift
11:54 lizmat yes, but that would imply passing for() knowledge into the reification
11:55 carlin heh, bonus systemd argument in the backlog :)
11:55 lizmat which is what TimToady was talking about
11:55 timotimo m: my @a = 1 xx 10_000; my $s = 0; for @a { $s += $_ }; say time - BEGIN time
11:55 camelia rakudo-moar df2f8b: OUTPUT«0␤»
11:55 timotimo m: my @a = 1 xx 100_000; my $s = 0; for @a { $s += $_ }; say time - BEGIN time
11:55 camelia rakudo-moar df2f8b: OUTPUT«1␤»
11:55 timotimo m: my @a = 1 xx 100_000; my $s = 0; for @a { $s += $_ }; say now - BEGIN now
11:55 camelia rakudo-moar df2f8b: OUTPUT«0.94479438␤»
11:55 lizmat now - BEGIN now ?
11:55 timotimo m: my @a = 1 xx 100_000; my $s = 0; while @a { $s += @a.shift }; say now - BEGIN now
11:55 camelia rakudo-moar df2f8b: OUTPUT«1.58643147␤»
11:55 timotimo er ... oh!
11:56 timotimo so iterating over lists is already faster than shifting off a list until it's gone
11:56 timotimo m: my @a = 1 xx 100_000; my $s = 0; for ^@a { $s += @a[$_] }; say now - BEGIN now
11:56 camelia rakudo-moar df2f8b: OUTPUT«1.3809772␤»
11:57 timotimo even that is a tiny bit faster than shifting
11:57 timotimo good to know!
11:58 grondilu why is while/shift slower, though?
11:59 timotimo interesting question; we don't shrink lists that we shift from, so it shouldn't have copying overhead from realloc
11:59 brrt joined #perl6
11:59 timotimo xiaomiao: can you give a source or benchmark for the 4kB/s number you have for journal?
12:04 colomon joined #perl6
12:05 timotimo how do people feel about this scheme: a method on an object warns with a specific object, the code that's responsible for feeding data to the object catches the exception, mixes in a role with some extra data and resumes the exception
12:05 timotimo this feels SO dirty in my mind, but it's cool that it could work m)
12:05 brrt joined #perl6
12:06 dalek rakudo/nom: ce95079 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
12:06 dalek rakudo/nom: Add :eager candidates to IO::Handle.lines
12:06 dalek rakudo/nom:
12:06 dalek rakudo/nom: /usr/share/dict/words: 2.787s -> 0.768s (about 3.5x as fast)
12:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ce95079247
12:07 lizmat timotimo: feels like something that would case a global deopt
12:07 lizmat *cause
12:07 lizmat about to go on errands
12:07 timotimo feels like something that would cause someone who reads the code to be *super* confused :)
12:08 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { when /signal/ { $i does role { method data { "hi there" } }; $!.resume } say "done!"
12:08 camelia rakudo-moar df2f8b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/M5_V2CWCXP�Missing semicolon.�at /tmp/M5_V2CWCXP:1�------> [32mthod data { "hi there" } }; $!.resume } [33m�[31msay "done!"[0m�    expecting any of:�        method arguments�      ÃƒÂ¢Ã¢â€šÂ¬Ã‚¦Ã‚»
12:08 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { when /signal/ { $i does role { method data { "hi there" } }; $!.resume }; say "done!"
12:08 camelia rakudo-moar df2f8b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/vdOk_1pmnl�Unable to parse expression in block; couldn't find final '}' �at /tmp/vdOk_1pmnl:1�------> [32m"hi there" } }; $!.resume }; say "done!"[33m�[31m<EOL>[0m�    expecting any of…»
12:08 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { when /signal/ { $i does role { method data { "hi there" } } } }; $!.resume }; say "done!"
12:08 camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤done!␤»
12:08 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { when /signal/ { $i does role { method data { "hi there" } } } }; $_.resume }; say "done!"
12:08 camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤done!␤»
12:09 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { .perl.say; when /signal/ { $i does role { method data { "hi there" } } } }; $_.resume }; say "done!"
12:09 camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤X::AdHoc.new(payload => "signal")␤done!␤»
12:09 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { if $_.payload ~~ /signal/ { $i does role { method data { "hi there" } } } }; $_.resume }; say "done!"
12:09 camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤signal  in method doit at /tmp/tBPTh7BChi:1␤␤Trying to unwind over wrong handler␤»
12:09 timotimo :(
12:09 timotimo oh, derp
12:09 timotimo m: class Test { method doit() { say "foobar {self.perl}"; warn "signal"; say "foofoo {self.perl} {self.data}"; } }; my $i = Test.new(); try { $i.doit; CONTROL { if $_.payload ~~ /signal/ { $i does role { method data { "hi there" }; $!.resume } } }; }; say "done!"
12:09 camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤signal  in method doit at /tmp/GTyswvwhIG:1␤␤Trying to unwind over wrong handler␤»
12:10 timotimo :\
12:16 erkan joined #perl6
12:16 erkan joined #perl6
12:30 telex joined #perl6
12:36 brrt joined #perl6
12:39 lizmat errands&
12:40 chenryn joined #perl6
12:41 ibo2perl6 joined #perl6
12:42 ibo2perl6 m: say map( {"d"} ), <a b c>;
12:42 camelia rakudo-moar ce9507: OUTPUT«a b c␤»
12:43 dalek rakudo-star-daily: e338bbb | coke++ | log/ (14 files):
12:43 dalek rakudo-star-daily: today (automated commit)
12:43 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/e338bbb69b
12:43 ibo2perl6 i would expect "d d d"
12:43 FROGGS m: say <a b c>.map( { "d" } )
12:43 camelia rakudo-moar ce9507: OUTPUT«d d d␤»
12:43 timotimo ibo2perl6: you were calling map( {"d"} ), saying the result and then saying a b c afterwards
12:43 FROGGS m: say map( {"d"}, <a b c> );
12:43 camelia rakudo-moar ce9507: OUTPUT«d d d␤»
12:44 ibo2perl6 yes now i see
12:45 ajr joined #perl6
12:49 ibo2perl6 but then how can I combine map with ==> ?
12:50 timotimo m: <a b c> ==> map( { "d" }) ==> say
12:50 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fQzr63j5Ez�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument�at /tmp/fQzr63j5Ez:1�------> [32m<a b c> ==> map( { "d" }) ==> say…»
12:50 timotimo m: <a b c> ==> map( { "d" }) ==> .say
12:50 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/D6UUFUG9Tk�Sorry, do not know how to handle this case of a feed operator yet.�at /tmp/D6UUFUG9Tk:1�------> [32m<a b c> ==> map( { "d" }) ==> .say[33m�[31m<EOL>[0m�    expecting any of:…»
12:50 timotimo m: <a b c> ==> .map( { "d" }) ==> .say
12:50 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/QhZq8F6ceJ�Sorry, do not know how to handle this case of a feed operator yet.�at /tmp/QhZq8F6ceJ:1�------> [32m<a b c> ==> .map( { "d" }) ==> .say[33m�[31m<EOL>[0m�    expecting any of…»
12:50 timotimo oh?
12:50 timotimo did that kind of get busted with the bare say changes?
12:50 ibo2perl6 say <a b c> ==>  map({"d"} )
12:50 ibo2perl6 m: say <a b c> ==>  map({"d"} )
12:50 camelia rakudo-moar ce9507: OUTPUT«a b c␤»
12:50 ibo2perl6 this doesnt work
12:51 timotimo hm?
12:51 tadzik m: <a b c> ==> map({ "d" }) ==> say
12:51 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/s5kfXnOs03�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument�at /tmp/s5kfXnOs03:1�------> [32m<a b c> ==> map({ "d" }) ==> say…»
12:51 tadzik wtf
12:51 tadzik works locally
12:52 tadzik m: <a b c> ==> map({ "d" }) ==> &say
12:52 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/aZ85wrGbhG�Sorry, do not know how to handle this case of a feed operator yet.�at /tmp/aZ85wrGbhG:1�------> [32m<a b c> ==> map({ "d" }) ==> &say[33m�[31m<EOL>[0m�    expecting any of:…»
12:52 tadzik argherlartatlatids
12:52 timotimo to be fair, the specs say nothing about using say as part of a feed pipeline
12:52 timotimo m: <a b c> ==> .map( { "d" }) ==> map( *.say )
12:52 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/daR6ko83ag�Sorry, do not know how to handle this case of a feed operator yet.�at /tmp/daR6ko83ag:1�------> [32mb c> ==> .map( { "d" }) ==> map( *.say )[33m�[31m<EOL>[0m�    expecting a…»
12:52 timotimo m: <a b c> ==> map( { "d" }) ==> map( *.say )
12:52 camelia rakudo-moar ce9507: OUTPUT«d␤d␤d␤»
12:56 nine Can someone have a look at https://github.com/niner/Inline-Perl5/issues/4 and tell me if the proposed syntactic sugar is "good" Perl 6? I have no base for evaluating that.
12:57 ibo2perl6 actually I would like to join after the map. Is this actually possible?
12:57 timotimo ibo2perl6: that's not something feed operators would allow, as it's sort of "contrary" to what feeds do
12:57 timotimo you can just collect the results in an array and say the array afterwards:
12:58 timotimo m: my @result <== map({"d"}) <== <a b c d e>; say @result
12:58 camelia rakudo-moar ce9507: OUTPUT«d d d d d␤»
13:01 FROGGS say <a b c>.map( { "d" } ).join
13:01 FROGGS m: say <a b c>.map( { "d" } ).join
13:01 camelia rakudo-moar ce9507: OUTPUT«ddd␤»
13:02 ibo2perl6 <a b c> ==>  map({"d"} ) ==> join(',');
13:02 ibo2perl6 m: <a b c> ==>  map({"d"} ) ==> join(',');
13:02 camelia rakudo-moar ce9507: ( no output )
13:02 FROGGS m: say a b c> ==>  map({"d"} ) ==> join(',');
13:02 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Dh1zXj8IXj�Preceding context expects a term, but found infix ==> instead�at /tmp/Dh1zXj8IXj:1�------> [32msay a b c> ==>[33m�[31m  map({"d"} ) ==> join(',');[0m�»
13:02 FROGGS m: say( a b c> ==>  map({"d"} ) ==> join(',') )
13:02 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/MTzvYrStv_�Preceding context expects a term, but found infix ==> instead�at /tmp/MTzvYrStv_:1�------> [32msay( a b c> ==>[33m�[31m  map({"d"} ) ==> join(',') )[0m�»
13:03 FROGGS gah
13:03 FROGGS m: say( <a b c> ==>  map({"d"} ) ==> join(',') )
13:03 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/so6iieiHI9�Unable to parse expression in argument list; couldn't find final ')' �at /tmp/so6iieiHI9:1�------> [32msay( <a b c> [33m�[31m==>  map({"d"} ) ==> join(',') )[0m�    expectin…»
13:03 FROGGS m: <a b c> ==>  map({"d"} ) ==> join(',') ==> say
13:03 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/o_rnHzqEsx�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument�at /tmp/o_rnHzqEsx:1�------> [32m> ==>  map({"d"} ) ==> join(',') …»
13:03 FROGGS meh ;o)
13:04 ibo2perl6 m: say ( <a b c> ==>  map({"d"} ) ==> join(',') )
13:04 camelia rakudo-moar ce9507: OUTPUT«d,d,d␤»
13:04 FROGGS ohh
13:07 rindolf joined #perl6
13:21 akaseki joined #perl6
13:23 PZt joined #perl6
13:26 timotimo .o( gittip is now called gratipay. cute. )
13:26 [Coke] S05-transliteration/trans.rakudo.moar aborted 56 test(s)
13:26 [Coke] ^^ moar with jit and without
13:26 [Coke] S17-supply/start.t 9 - did we get the other original value
13:26 [Coke] ^^ moar sans jit
13:27 [Coke] parrot is now failing 248 tests.
13:30 ibo2perl6 I am seeing problems with the built-in readline in the perl6 line-by-line interpreter. When I enter uf8 chars the text cursor is not anymore where the input happens but shifted to the right. This is reproducible in linux debian amd64 in konsole, xterm and uxterm.
13:30 [Coke] ibo2perl6: what version of rakudo?
13:31 ibo2perl6 This is perl6 version 2014.08 built on MoarVM version 2014.08
13:32 JimmyZ joined #perl6
13:32 JimmyZ ibo2perl6:  I think it's NYI
13:32 timotimo ibo2perl6: yes, "line noise" is responsible for this and it kind of sucks at it :(
13:32 JimmyZ see http://rakudo.org/2014/08/30/announce-rakudo-star-release-2014-08/  # interactive readline that understands Unicode
13:36 JimmyZ https://github.com/fperrad/ljlinenoise # Linenoise in pure LuaJIT, if someone rewrite it in Perl6 :P
13:36 JimmyZ *wants to
13:53 Ven joined #perl6
13:54 Ven m: <a b c> ==> map({ "d" }) ==> say() # timotimo , tadzik
13:54 camelia rakudo-moar ce9507: OUTPUT«d d d␤»
13:54 Ven also, timotimo , WRT your "catch the warn and mix some role", do you know about common lisp's exceptions?
13:54 abraxxa joined #perl6
13:55 abraxxa i have problem getting panda to work with rakudo 2014.08
13:55 abraxxa i'm running into https://github.com/tadzik/panda/issues/96
13:55 [Coke] m: 3 ==> say() <==4
13:55 camelia rakudo-moar ce9507: OUTPUT«43␤»
13:55 abraxxa the second error but regardless of the proxy env vars
13:55 timotimo Ven: oooh, of course!
13:55 Ven :)
13:56 Ven else it's trying to parse it as <words>
13:56 [Coke] oh, hey, that's my bug.
13:56 abraxxa [Coke]: yes
13:56 Ven timotimo: http://c2.com/cgi/wiki?CommonLispConditionSystem look at that
13:57 abraxxa what's also quite annoying about the stacktrace is that the path are relative and I can't copy'n'paste them quickly to look at the files
13:58 timotimo abraxxa: i agree!
13:58 timotimo the problem is that the source files may not be installed any more when we run into such an error
13:58 * [Coke] looks at RT#122769 and thinks, "uhoh"
13:58 * synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122769
13:58 timotimo or you may have received precompiled modules from someone else's computer
13:59 abraxxa timotimo: does the interpreter know if a source file exists or not?
14:00 abraxxa [Coke]: did you find a workaround?
14:01 mr-foobar joined #perl6
14:01 [Coke] I have the luxury of having a laptop that is occasionally on an open network with no proxy
14:02 abraxxa [Coke]: as I said I get the error without any env *_proxy var set too
14:02 abraxxa JSON::Tiny line 51 reads
14:02 abraxxa return $o.ast;
14:03 [Coke] perhaps you have a bad copy of the file cached?
14:03 abraxxa which file?
14:03 [Coke] ISTR that there was another issue (separate ticket?) where a local empty projects file would cause issues.
14:04 timotimo abraxxa: the error message sounds like the json parse failed without giving a good error message
14:04 abraxxa i'll try rakudo-star instead of rakudo
14:06 abraxxa timotimo: i guess that's because panda created an empty json file, failed to download its contents because of the proxy and didn't delete it
14:06 timotimo that could be the case, yeah
14:07 timotimo it's /home/timo/perl6/install/languages/perl6/site/panda on my local machine
14:08 abraxxa omg
14:08 abraxxa projects.json contains the proxy auth required html
14:08 timotimo m)
14:08 timotimo figured something like that
14:09 Ven well, you'll read it if you want to
14:10 jerrycheung joined #perl6
14:10 * Ven is fine with with stealing from lisp :)
14:10 Ven they got a nice part of the fire of the gods anyway
14:12 abraxxa timotimo: thanks!
14:12 timotimo Ven: lisp syntax still feels a bit foreign to me, so i can't really spot what i should be looking at in particular
14:13 abraxxa i'd like to extend DBIish for Oracle support
14:14 abraxxa any advise where to start?
14:14 Ven timotimo: basically, you define "conditions" (give them a name and some param(s)), then when you're in some function, you create a ... block that'll have a handler for that "exception"/condition
14:15 Ven timotimo: and then, you can use `invoke-restart` to re-enter the proc in some ways
14:15 Ven These way have been defined with `RESTART-CASE`
14:16 Ven you see that "high-level-code" does something several time: (one for each case in the example) : it sets up a handler for ON-ZERO-DENOMINATOR, execute (determine-infinity) in it
14:17 Ven Then you see that DETERMINE-INFINITY uses RESTART-CASE to define "failure handling modes": RETURN-ZERO, RETURN-VALUE, RECALC-USING
14:18 Ven which one of these is executed is determined by the INVOKE-RESTART used in the set up handler (the one in HIGH-LEVEL-CODE)
14:18 timotimo ah, hm
14:18 Ven so basically, DETERMINE-INFINITY/RECIPROCAL-OF has the code for the function *PLUS* the possible handlers
14:19 Ven and the code calling it (here, HIGH-LEVEL-CODE) just has to trap that "condition"/exception and to "call" one of these cases (with INVOKE-RESTART)
14:19 Ven it's very powerful because, unlike exceptions, you don't have only one place to "expect" exceptions and to handle them.
14:20 timotimo you have more than one place to expect/handle exceptions, too
14:20 timotimo exceptions travel up the stack
14:20 Ven no, not in that way.
14:21 [Coke] oh, wait. no, I don't think I ever got panda working.
14:21 Ven You can place exception at one place. Wherever (almost) you want it, but the code trapping the exception is at the same place as the code "trying again" with different parameters
14:21 Ven Which is often not what you want -- the function that failed contains so logic, so it seems normal to have the "restart" logic (which is basically the same, often, or at least in the same domain) be near it
14:22 Ven not near the code calling the function, which might be doing something else entirely
14:22 Ven Whew, I'm spammy...
14:22 timotimo ah
14:22 timotimo i think i get it now
14:22 timotimo so from the catch block you can "goto" any of the restart-cases
14:23 Ven yes
14:23 [Coke] how does one re-install panda?
14:23 Ven that's basically it :).
14:23 Ven and these can re-invoke the function, invoke another one, return some value, tear up the world, ...
14:24 Ven Of course, if you don't want to use the modes the function has provided, you just can decide NOT to use "invoke-restart".
14:26 [Coke] (I accidentally installed one with some debug code. I've removed the debug code, but now I cannot do anything without triggering the debug code.
14:27 [Coke] ah, reboot. (must have typed "panda rebootstrap!")
14:28 spider-mario joined #perl6
14:29 [Coke] ... and I'm stuck again.
14:29 denis_boyun joined #perl6
14:30 [Coke] abraxxa: yes, I gave up, it seems. can't install anything with panda at the moment.
14:30 abraxxa [Coke]: ;(
14:30 * Ven gave up on panda long ago... except with r*
14:30 abraxxa [Coke]: rakudo-star includes NativeCall so I should be good without it for the moment
14:30 jnthn evening, #perl6
14:31 abraxxa how are you installing modules then? by hand?
14:31 abraxxa jnthn: hi!
14:31 Ven o/, jnthn .
14:31 * abraxxa reads http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci02bas.htm#LNOCI16209
14:32 abraxxa C is so absolutely unreadable for me
14:32 [Coke] tadzik: hellllp meeeeeee :)
14:32 Ven abraxxa: bad C is :p
14:32 abraxxa my motivation to add Oracle support to DBIish just went down the drain
14:33 * jnthn is staying at a hotel with Butterfly in its name, which feels appropriately Perl 6-y :)
14:34 abraxxa I can even find the function the OCI docs say that have to be called to establish a connection in DBD::Oracle
14:36 spider-mario joined #perl6
14:37 nine jnthn: I think you're gonna like this :) https://github.com/niner/Inline-Perl5/blob/master/t/inherit.t
14:38 tadzik [Coke]: 'sup?
14:39 nine abraxxa: when you asked about advice where to start I was very tempted to suggest getting a couple of beers...
14:39 abraxxa nine: beer gives me headache, nothing else
14:39 timotimo ohai jnthn
14:39 nine abraxxa: but so does Oracle usually...
14:39 abraxxa i don't think I will ever learn C in this life, looking at it for 10 minutes is enough to turn me off every time I tried in the last 15 years
14:40 Ven nine++
14:40 abraxxa nine: Oracle works since about the same time without a single hickup
14:40 Ven abraxxa: C really is easy. It's very basic. So people do all kind of stupid stuff with it
14:40 abraxxa don't know why so many people bash it
14:40 timotimo jnthn: i'm facing a situation where i want to untap an async socket in response to a more'd "bytes_supply"; i probably cannot ensure no data is lost in between closing it and re-tapping, right?
14:40 abraxxa Ven: besides having more weird characters all over the place then perl
14:40 Ven abraxxa: uuuh... no
14:41 abraxxa even splitting up the definition of a function and its body in separate files is @#$ &(#$ &@%T
14:41 Ven is necessary for linking and stuff. Right.
14:41 abraxxa what is linking?
14:41 jnthn timotimo: yeah, there's a risk of that...
14:42 Ven abraxxa: reusing code from libraries and stuff
14:42 Ven You need to tell the compiler "I expose this and that function"
14:42 [Coke] tadzik: panda bug https://github.com/tadzik/panda/issues/96
14:42 Ven else it'd mean Windows'd have to give out its code so people could use its api ;)
14:42 jnthn timotimo: Best avoid re-tapping. Just take bytes consistenlty if you want to work at that level, then just decode the bufs
14:42 [Coke] both abraxxa and I are stuck.
14:43 jnthn m: <a b c> ==> map({ "d" }) ==> say()
14:43 camelia rakudo-moar ce9507: OUTPUT«d d d␤»
14:43 abraxxa Ven: and why can't it figure that out from the .c file? why an extra .h file?
14:43 Ven abraxxa: because it *doesn't* have a C file.
14:43 Ven libraries don't give out their source code. They just tell the compiler "you'll have access to that"
14:44 abraxxa i mean the Oracle instantclient has 29 .h files, how should I know which of those are needed for NativeCall?
14:44 * [Coke] is going through it again to make sure. if I set the proxy, and rebootstrap, that seems to get me a panda..
14:44 Ven abraxxa: docs
14:44 Ven abraxxa: were those .c files, you'd need docs too
14:44 [Coke] ... nope. on "reinstalling" step, I get the second error (no such method ast)
14:44 jnthn nine: Very nice! Now "just" wants some meta-programming bits to make it work out with "is" and not need the fallback :)
14:44 abraxxa Ven: the link i pasted before are the docs
14:45 Ven abraxxa: I'm not saying the docs are good. I'm saying you're attacking the wrong thing
14:45 treehug88 joined #perl6
14:45 [Coke] ... remove the empty projects.json that had gotten installed, re-rebootstrap...
14:46 [Coke] and it fails again, again have an empty projects.json
14:46 guru joined #perl6
14:46 treehug88 joined #perl6
14:46 abraxxa Ven: so i need to read the docs, find the corresponding function in any of the .h files to find out its parameters?
14:47 Ven abraxxa: if they don't want to give out their source, yes.
14:47 Ven Like in any other languages.
14:47 nine jnthn: cygx already suggested https://github.com/niner/Inline-Perl5/issues/4 which looks like a nice start. I don't know enough Perl 6 to tell if the suggestion is good though.
14:47 abraxxa so the main Oracle library file is called libclntsh.so but there is no libclntsh.h, why?
14:47 Ven the .so is the "blob" of it all
14:49 nine abraxxa: AFICT NativeCall does not need .h files. You have to tell NativeCall what functions are there and what parameters they expect yourself. Is a bit of tedious work, but saves you all the trouble with finding the correct .h files and compiler settings.
14:50 abraxxa nine: but how can i find the required functions and their params without the h files?
14:50 nine abraxxa: this looks like what you need: http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci16rel001.htm#i556149
14:50 abraxxa is that sufficient/the same as in the h file? http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci16rel001.htm#i556149
14:50 abraxxa hm, must be a smith, returns a sword ;)
14:50 nine abraxxa: from what I see yes
14:52 nine abraxxa: and I'm usually only bashing the parts of Oracle DBs that suck. Like it's deviation from standards and overcomplicatedness at times. It's certainly a powerful and stable system.
14:52 nine abraxxa: oh and of course, that it's closed source ;)
14:52 abraxxa so why is the first parameter marked as OUT? is it the return value?
14:54 [Coke] tadzik: figured out my version of this problem.
14:54 nine abraxxa: the function returns a sword (whatever that is in this context). It may also modify the variables pointed to by the envhpp and usrmempp pointers.
14:54 [Coke] abraxxa, you're on your own. :)
14:54 abraxxa i thought one * is a pointer, what are two **?
14:54 [Coke] tadzik: when I go through the proy, I'm getting an html page that asks me to pick an image off a list to prove I'm human.
14:54 nine abraxxa: a pointer to a pointer :)
14:55 [Coke] I would recommend that if the result of that initial download of projects.json is not json, panda dies, letting the user know.
14:55 abraxxa what advantage does that have besides requiring additional memory?
14:55 nine abraxxa: let foo be a pointer. If you pass &foo (a pointer to foo) to the function, it can modify foo.
14:55 [Coke] maybe provide a way for me to pull down that file manually.
14:55 nine abraxxa: it's C's way of allowing multiple return values.
14:56 abraxxa nine: i see
14:56 abraxxa and is that an OpaquePointer in NativeCall?
14:56 nine abraxxa: it's exactly the same in Perl: my $a = 'foo'; modify_it(\$a); # $a may now have changed
14:57 abraxxa but passing the pointer is enough
14:57 nine abraxxa: yes, every pointer maps to an OpaquePointer. I suggest you declare your own data types mit repr('CPointer') though to keep them apart.
14:57 abraxxa to be able to modify it
14:57 nine abraxxa: to be able to modify wherever the pointer points to, not the pointer itself
14:58 timotimo and you can also nativecast a pointer to something else
14:58 nine abraxxa: parameters in C are always passed by value, i.e. copied.
14:58 abraxxa how do I find out the mapping of C library data type to NativeCall data type?
14:59 timotimo you can model a class PoP is repr('CStruct') { has OpaquePointer $inner }
15:01 nine abraxxa: https://github.com/jnthn/zavolaj#passing-and-returning-values
15:01 abraxxa nine: those are the native C types, but the Oracle library defines its own ones
15:02 abraxxa ub4 for example
15:02 abraxxa which seems to take a constant
15:02 nine ub4 sounds like unsinged bytes 4 which I'd guess is an uint32
15:03 abraxxa but how do i find out for sure?
15:03 nine Seems like I'm right: http://www.oracle.com/pls/db112/search?remark=quick_search&amp;word=ub4&amp;partno=
15:04 nine To know for sure you could search the header files for it's definition.
15:04 abraxxa this one? http://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_externproc.htm#ADFNS1409
15:05 hoelzro o/ perl6
15:06 nine abraxxa: looks good
15:06 abraxxa oratypes.h is seems
15:07 abraxxa i guess it makes sense to keep these names and alias them in the NativeCalls module
15:07 nine certainly
15:10 abraxxa so that would be int32 in NativeCall? can/do i have to specify if it's signed or unsigned?
15:10 TimToady unsigned is uint32
15:11 TimToady oh, nine said that already
15:11 abraxxa TimToady: the NativeCall README doesn't mention those
15:13 abraxxa const void    *ctxp is a pointer, but why the const and void?
15:13 TimToady void* is guaranteed to be the widest pointer type, if they vary, I believe
15:14 abraxxa and const means that the pointer can't be changed or the thing it points to?
15:14 * TimToady hasn't backlogged yet, so is saying things without much context
15:15 abraxxa that's all basic C stuff I don't understand so should be fine ;)
15:15 nine abraxxa: the thing it points to may not changed by the function
15:16 PerlJam TimToady: random question -- Is there a particular reason that "perl -v" says "copyright Larry Wall" instead of "copyright The Perl Foundation"?
15:16 abraxxa nine: i see. can i define that for NativeCall too?
15:17 Ven PerlJam: historical reasons :o)
15:17 Ven ENOLARRY
15:17 diakopter eh
15:18 nine abraxxa: I don't know. At least you don't need to. It's mostly a guarantee to you as the users that the function will not change the value and a hint to the compiler that you as a function author don't want to write to so it can tell you if you violate that. Also the compiler may use this information for optimization.
15:18 PerlJam Ven:  Sure, I was just wondering if there were perhaps other reasons why the P5 copyright was not assigned to TPF (as most (all?) of the P6 copyrights seem to be)
15:19 abraxxa nine: ok, thanks
15:21 nine abraxxa: maybe you'll learn C after all :)
15:22 abraxxa nine: i don't want to! who cares about memory management
15:23 TimToady .oO(people who interface to native C code?)
15:23 Ven PerlJam: I'm kidding anyway haha
15:24 abraxxa maybe I'm understanding what's required now that my stomach is filled
15:24 TimToady PerlJam: there was never any particular reason to do that
15:24 PerlJam ok, thanks.
15:25 TimToady and Perl 5 is not the "community rewrite" of Perl :)
15:25 timotimo oh, tony-o == segomos
15:25 timotimo that's good to know
15:25 timotimo .seen segomos
15:25 yoleaux I saw segomos 22 Jul 2014 20:47Z in #perl6: <segomos> m: say s:g/'perl5'/'perl6'/.so;
15:25 abraxxa ah yes....const void    *(*malocfp) (void  *ctxp, size_t size),
15:27 abraxxa so those are three params but for some reason they are not separated by ,
15:28 timotimo huh?
15:28 nine abraxxa: that's only one parameter, it's a function pointer
15:28 timotimo that's a single parameter, which refers to a function with two arguments returning a void pointer
15:28 timotimo what's the cool program called that interprets such syntax? cdecl?
15:28 abraxxa those docs list them are three params: http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci16rel001.htm#i556149
15:29 nine abraxxa: &malocfp(OpaquePointer, int --> OpaquePointer) in NativeCall
15:29 timotimo the docs just fail to mention that ctxp and size are arguments expected by the function you pass as a function pointer
15:30 abraxxa why would I pass a function and its params to another function instead of just calling it before and passing it's return value to the other function?
15:30 timotimo you don't pass the function's parameters
15:30 timotimo you only pass the function; the function you pass the stuff to will call the function by itself and give it whatever parameters it feels like
15:30 timotimo welcome to "learning higher order functions without any explanation"
15:31 abraxxa i why do i need to specify the functions params?
15:31 Ven well then, friday o/
15:31 timotimo what makes you think you do?
15:31 nine abraxxa: in Perl5 a call would probably look like: my $foo = OCLenvCreate(\$envhpp, $mode, \&malocfp, \&ralocfp, \&mfreefp, $xtramemsz, \$usrmempp);
15:32 abraxxa timotimo: so it's only the docs which duplicates the malocfp function params here instead of just linking to its docs?
15:32 * abraxxa looks at the head file
15:32 nine abraxxa: so the compiler can complain if you pass a pointer to a function that does not want exactly those parameters. It can keep you from making mistakes :)
15:34 abraxxa nine: ah, because the compiler doesn't know which pointer to one of the elsewhere defined functions might be passed in there
15:35 timotimo abraxxa: it can't really "link to its docs"
15:35 timotimo because you're expected to supply the implementation
15:35 nine abraxxa: yep
15:35 abraxxa but that's optional to help finding errors at compile time?
15:35 nine abraxxa: no it's absolutely neccessary
15:36 abraxxa and for the Perl interface it doesn't matter, it only gets a pointer to a function
15:36 lizmat_ joined #perl6
15:36 woolfy joined #perl6
15:36 abraxxa but NativeCall doesn't have a way to specify and check it too?
15:36 nine abraxxa: it's part of the function's definition (the one having function pointers as parameters). The function's declaration contains code that will call the passed function and the compiler needs to know which parameters with which types are passed.
15:37 kaleem joined #perl6
15:38 abraxxa it can also look at the declaration of that function to find out which params are passed and what types they are, it just wouldn't know if the types match
15:38 abraxxa so possible runtime error instead of compile time error
15:39 tadzik [Coke]: ah, heh
15:39 abraxxa is size_t a native C data type?
15:40 nine abraxxa: yes, standardized in C99. It's an int basically
15:41 abraxxa oratypes.h has the line # define MINSIZE_TMAXVAL (size_t)4294967295 which made me think it's a uint32
15:42 tadzik [Coke]: well, "failed to resolve host name" doesn't sound like a panda problem :)
15:43 molaf joined #perl6
15:43 nine abraxxa: yes, uint is more precise. It's _usually_ the same as uint32_t on a 32 bit architecture and uint64_t on 64 bit archs.
15:44 abraxxa so int in NativeCall?
15:44 abraxxa uint
15:44 nine yes
15:45 lizmat_ TimToady: about expressing eagerness in reification
15:45 TimToady we haven't (yet?) actually made any guarantees that the "int" type in Perl 6 is the same size as the "int" type in C
15:46 lizmat_ wouldn't it make sense to use a dynamic variable for thet, e.g. $*EAGER
15:46 lizmat_ ?
15:46 TimToady nope, wrong hammer
15:46 lizmat_ whenever you want a stack to be eagerly done, you do:
15:46 abraxxa nine: typedef   signed int sword; #define  SWORDMAXVAL  ((sword) INT_MAX) #define  SWORDMINVAL  ((sword) INT_MIN) #define  MINSWORDMAXVAL  ((sword)  2147483647) #define  MAXSWORDMINVAL  ((sword) -2147483647)
15:47 abraxxa nine: means int32 in NativeCall, right?
15:47 abraxxa ah, no
15:47 abraxxa minimum a 32bit signed int, maximum what the platform supports, right?
15:47 muraiki joined #perl6
15:47 abraxxa so int in NativeCall
15:48 * lizmat assumes this has been discussed to death already, to deserve such an answer
15:48 TimToady no, nobody's mentioned dynvars yet in this regard, but it's just not the direction we need to go
15:49 PerlJam lizmat: even if only by the voices in TimToady's head ;)
15:49 lizmat it seemed like a simple solution to me...
15:49 TimToady and dynvars have the problem that they have to be unset in places too
15:49 TimToady which is why they're also the wrong solution to 'use fatal'
15:49 dalek perl6-roast-data: fe7abd1 | coke++ | / (6 files):
15:49 dalek perl6-roast-data: today (automated commit)
15:49 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/fe7abd19a7
15:50 * lizmat is not seeing when you would want / need to unset dynvars
15:50 lizmat just leaving the scope where you did 'my $*EAGER = True" would be enough?
15:50 TimToady for instance, the outside of a for loop might be eager, but we still have to evaluate its list lazily
15:50 nine abraxxa: you're obviously much more diligent than me ;) I just used Int everywhere in Inline::Perl5. But I guess it might be good to have another look at them.
15:51 abraxxa nine: that's just being careful because I'm not really knowing what i'm doing... ;(
15:51 TimToady list policy really needs to be renegotiated at each level
15:51 lizmat ok, I'll take your word for it  :-)    it seemed like a simple and elegant solution to me
15:52 [Coke] can we move projects.json to a standard HTTP port?
15:52 TimToady one of the major points of the GLR is that we not renegotiate this at every gimme/reify
15:52 PerlJam GLR?
15:52 [Coke] ah, nevermind.
15:52 PerlJam oh!
15:52 PerlJam heh.
15:53 TimToady but dynvars don't work anyway, because policy needs to be negotiated between the user and producer, and the user is not necessarily even in the same dynamic scope (remember we're using coroutines here)
15:53 * PerlJam wonders if it's worth adding GLR to S99 since it's going to happen soon anyway
15:53 PerlJam right?!?  ;)
15:54 [Coke] tadzik: working to get the URL classified so that I don't have to get the captcha.
15:54 TimToady it has been my primary goal for the last month
15:54 TimToady most of rest of what I've done is side effects of trying to feel my way into the GLR
15:54 TimToady but yeah, I hope to make the term obsolete pretty soon
15:54 dalek specs: 7d07bff | (Elizabeth Mattijsen)++ | S99-glossary.pod:
15:54 dalek specs: Add GLR lemma
15:54 dalek specs: review: https://github.com/perl6/specs/commit/7d07bffe8d
15:55 TimToady so sorry I'm a bit morning-snippy, but I have been thinking about this a lot...
15:55 TimToady and someone just asked me to do their PHP homework!
15:57 lizmat .oO( silence descended on the channel )
15:59 guru joined #perl6
15:59 nine That was a joke wasn't it?
15:59 diakopter maybe write it in the Perl subset of PHP
15:59 TimToady alas, no
15:59 TimToady my reply: I am curious why you would think the creator of Perl (not PHP!), would spend his precious time doing your homework for you?
16:00 diakopter The more people you ask..
16:00 lizmat .oO( bounce the mail to Rasmus )
16:00 PerlJam Because Perl people are super smart and can solve any problem, of course!   :)
16:00 * TimToady considered it :)
16:01 pmurias joined #perl6
16:01 TimToady but I'm sure Rasmus deals with this too
16:01 pmurias TimToady: you should send him the answer in Perl 6 ;)
16:04 TimToady even among Perl-folk, so many people want to have a personal relationship with me, and I can only spread myself so thin...
16:07 TimToady I do not have enough time to be friendly with all my friends, alas.
16:07 [Coke] You're the most famous person I talk to on a regular basis. I can see where it would make some people all weird.
16:08 * PerlJam feels weird just talking to "regular" folk most times.
16:08 [Coke] (bacon #: 4)
16:08 [Coke] PerlJam++ true
16:09 [Coke] (bacon - though I have never heard of the other 3 shows in the chain to bacon, so that can't be good)
16:10 * TimToady should publish something with his son Aron in order to acquire an ErdÅ‘s number
16:11 * TimToady used to work with an ErdÅ‘s #1
16:13 [Coke] Nice!
16:17 TimToady so I coulda been an Erdős #2, if I'd been into factoring large numbers :)
16:17 Ulti if I get in a movie with my PhD supervisor I will have an Erdős-Bacon number of 5
16:18 TimToady John Schieffer offered my a cameo in his movie Algorithm, but the scheduling didn't work out
16:18 Ulti getting a low combined number is fairly tricky :)
16:19 Ulti TimToady what would your bacon number have been?
16:20 TimToady noclooney
16:21 TimToady it appears there is also a colony of ants that wishes to have a personal relationship with me...
16:22 huf well, they can have a very personal relationship that lasts the rest of their life...
16:23 huf although it would be the opposite of fulfilling
16:23 * TimToady ponders committing insecticide...
16:24 huf think of it as breeding more sensible ants
16:24 huf ones that stay out of sight :)
16:25 TimToady "Think of it as evolution in action."  --Niven & Pournelle
16:25 FROGGS[mobile] joined #perl6
16:27 TimToady from that book I can never remember the name of...
16:28 Timbus nwc10, sorry i only just backscrolled. i know lists are slow and why, i was more wondering what the refactor actually means. its cool to muse about them being faster, but what is actually involved, internally
16:29 Timbus to make them faster
16:29 TimToady 1) don't keep deciding things over and over
16:29 Timbus lists took a very long time just to work properly after all
16:29 TimToady 2) don't use object dispatch where function dispatch will work
16:29 [Coke] TimToady: mote? earthfall?
16:30 TimToady no, the one with the arcology
16:30 TimToady 3) make better use of the policy information we know to set up minimal supply chains
16:31 Timbus ah. 3 is what i was interested in
16:31 TimToady 4) figure out how to acquire more information about demand
16:31 TimToady 5) figure out better when we have pure code that can work ahead without side effects
16:32 TimToady 6) delay decisions until first handshake of supply and demand
16:32 TimToady 7) rewriting eager gather/take into normal loops and pushes
16:33 TimToady 8) chopping out the middleman where possible (deforesting, in Haskell terminology)
16:33 TimToady 9) avoiding multiple copies of the data
16:34 TimToady 10) ???
16:34 TimToady 11) Profit!!!
16:34 nine Profit!
16:34 Timbus heh
16:36 TimToady I guess 3 and 8 are roughly the same idea
16:36 [Sno] joined #perl6
16:37 Timbus with 7, do you mean, write eager code paths manually, or just generate faster code
16:38 TimToady I mean taking code that is written as gather/take, and internally rewriting it to my @batch; ... @batch.push: $x
16:39 TimToady which is not just for eager code, but lazy code that is trying to work in batches because it knows the code is pure somehow
16:39 TimToady perhaps by examination, perhaps by declaration
16:39 Timbus yeah this seems like quite a refactor
16:40 TimToady understanding different batching strategies like slow-start
16:41 TimToady so, for instance, you're doing initializing something you don't know the size of with pure-thunk() xx *
16:41 TimToady on the one hand, you don't want to call pure-thunk 100000 times to initialize an array that's 10 elements
16:42 TimToady on the other hand, if you're initializing an array with 1000000 elements, you don't want to have a batch size of 10
16:42 Timbus yeah, so start small and double it or so
16:42 TimToady that's the idea
16:43 TimToady oh, another notion, which fights that one: when you use a constant batch size, re-use the array, don't reallocate and re-extend every batch
16:45 TimToady consider a pragma that changes the default list policy from lazy to any of eager, batched, hyper, etc.
16:45 brrt joined #perl6
16:46 TimToady oh, and break as few eggs as possible to make the new omelette :)
16:46 nine TimToady: I guess the struggle to get lists working at least left lots of tests that will help now?
16:46 ajr_ joined #perl6
16:46 TimToady yup, we have that in our favor
16:47 akaseki joined #perl6
16:48 abraxxa nine: can you please explain how I should call the OCIEnvCreate function in my Perl6 module similar to http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci02bas.htm#LNOCI16209 ?
16:50 xinming_ joined #perl6
16:52 nine abraxxa: I don't know yet if and how one can use OUT parameters with NativeCall. I'd probably write a little C wrapper. But maybe someone else has an idea.
16:56 Rotwang joined #perl6
17:12 timotimo out parameters? are those not simply pointers?
17:12 timotimo for those I would suggest a CArray
17:13 gfldex joined #perl6
17:15 grondilu_ joined #perl6
17:15 Woodi_ joined #perl6
17:18 abraxxa timotimo: why a CArray?
17:18 BenGoldberg joined #perl6
17:19 timotimo because that gives you a memory location in which you can have space for a value or multiples
17:20 abraxxa even if I only need one pointer?
17:20 timotimo my $a = CArray[TypeOfThing].new(); $a.push: TypeOfThing
17:21 timotimo yes, you need a location C can write to
17:21 timotimo CArray is easiest AFAICT
17:25 abraxxa i'm not that far to understand what you mean
17:25 abraxxa currently I'm trying to pass username, password and the database name as UTF-16 to Oracle
17:25 abraxxa it also needs the length in bytes for those three
17:26 abraxxa http://doc.perl6.org/routine/encode#class_Str says that .encode('UTF-8') returns a utf8 object but I can't find the docs for such an object
17:28 abraxxa i guess i always get a Buf object back and the correct method is .elems
17:31 BenGoldberg r: "abc".encode('utf-16').WHAT.say
17:31 camelia rakudo-{parrot,jvm,moar} ce9507: OUTPUT«(utf16)␤»
17:35 abraxxa should utf-16 not always be 2 bytes per char?
17:36 nine abraxxa: no, utf-16 is a variable length encoding
17:36 hoelzro abraxxa: utf-16 can also have 4 bytes for some chars
17:36 BenGoldberg Correct.  Each char is encoded as a multiple of two bytes.
17:36 abraxxa ok, so "Bar✌".encode('UTF-16').elems returning 4 is correct?
17:37 BenGoldberg m: "Bar✌".encode('UTF-16')[*].say
17:37 camelia rakudo-moar ce9507: OUTPUT«66 97 114 9996␤»
17:37 BenGoldberg .u ✌
17:37 yoleaux U+270C VICTORY HAND [So] (✌)
17:38 abraxxa m: "Bar✌".encode("UTF-16").say
17:38 camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 270c>␤»
17:38 abraxxa so aren't this five bytes?
17:39 BenGoldberg A Buf isn't always bytes.
17:39 BenGoldberg It could be bytes, or shorts words, or long words, or long long words, etc.
17:39 BenGoldberg Or bits.
17:39 BenGoldberg Or nibbles.
17:41 abraxxa BenGoldberg: doesn't read like it: http://doc.perl6.org/type/Buf
17:42 BenGoldberg "In the abstract it is just a list of integers"
17:43 abraxxa ah, not int8
17:43 abraxxa so how do i get the number of bytes from a Buf?
17:44 nine Fun fact from Wikipedia's UTF-16 article: Python 3.3 no longer ever uses UTF-16, instead strings are stored in one of ASCII/Latin-1, UCS-2, or UTF-32, depending on which code points are in the string, with a UTF-8 version also included so that repeated conversions to UTF-8 are fast
17:44 nine Because obviously just using UTF-8 would have been too easy...
17:44 Px12 joined #perl6
17:44 TimToady hey, it "works" for Perl 5 :)
17:44 FROGGS joined #perl6
17:45 TimToady but I wouldn't exactly call it easy...
17:45 nwc10 Timbus: then I guessed the wrong interpretation of the question that you asked. I'm glad that TimToady answered, because I did not know any of the details, and it was very interesting.
17:47 BenGoldberg m: TypedArray.new.say
17:47 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/OS26z5VJeO�Undeclared name:�    TypedArray used at line 1��»
17:47 BenGoldberg The graph on http://doc.perl6.org/type/Positional.html suggests the existance of a TypedArray class, but it doesn't seem to exist?
17:48 colomon nine++ # added Inline::Perl5 to ecosystem!
17:49 hoelzro nine++
17:49 BenGoldberg 9++ ?
17:52 Timbus nwc10, ah. that's fine. and yeah it was a good response. it's a bit beyond me on how to implement the ideas, though
17:52 * abraxxa can't find a way to get the number of bytes of a Buf
17:53 BenGoldberg A Buf isn't made of bytes.  Its just a list of integers.
17:53 abraxxa so i need to get the number of bytes a String has in a specific encoding
17:55 colomon m: "Bar✌".encode("UTF-8").say
17:55 camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 e2 9c 8c>␤»
17:55 BenGoldberg You need two things: How many integers the string encodes two in a specific coding, and how many bytes per integer in that encoding.
17:55 colomon m: "Bar✌".encode("UTF-8").elems.say
17:55 camelia rakudo-moar ce9507: OUTPUT«6␤»
17:55 colomon m: "Bar✌".encode("UTF-16").elems.say
17:55 camelia rakudo-moar ce9507: OUTPUT«4␤»
17:56 BenGoldberg 4 integers, and two bytes per integer... but how to dynamically find out that "two bytes per integer"?
17:56 colomon m: "Bar✌".encode("UTF-16").max.say
17:56 camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 270c>␤»
17:57 colomon m: "Bar✌".encode("UTF-16").list.max.say
17:57 camelia rakudo-moar ce9507: OUTPUT«9996␤»
17:58 BenGoldberg m: "Bar✌".encode("UTF-16")[0].WHAT.say
17:58 camelia rakudo-moar ce9507: OUTPUT«(Int)␤»
17:58 colomon m: say 9996.base(16)
17:58 camelia rakudo-moar ce9507: OUTPUT«270C␤»
17:58 BenGoldberg m: "Bar✌".encode("UTF-8")[0].WHAT.say
17:58 camelia rakudo-moar ce9507: OUTPUT«(Int)␤»
17:58 colomon …. no, this line of thinking is wrong.
17:58 colomon I think
17:59 BenGoldberg Is there some sort of Encoding module for querying meta-data about specific encodings?
17:59 abraxxa i'd appreciate a bytes method on the Buf objects
17:59 colomon BenGoldberg: I dunno, but it sounds like what is needed here.
18:00 colomon oh!
18:00 colomon m: say "Bar✌".encode("UTF-8") ~~ bug8
18:00 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/NnZZR7WfuF�Undeclared routine:�    bug8 used at line 1��»
18:00 colomon m: say "Bar✌".encode("UTF-8") ~~ buf8
18:00 camelia rakudo-moar ce9507: OUTPUT«False␤»
18:00 colomon m: say "Bar✌".encode("UTF-8") ~~ buf16
18:00 camelia rakudo-moar ce9507: OUTPUT«False␤»
18:01 BenGoldberg bug8 was closer ;)
18:01 japhb blob8 or utf8, IIRC
18:01 colomon I think those last two should work, according to http://perlcabal.org/syn/S32/Containers.html#Buf
18:01 * japhb goes to check
18:01 colomon m: say "Bar✌".encode("UTF-8") ~~ Buf
18:01 camelia rakudo-moar ce9507: OUTPUT«False␤»
18:01 colomon or not
18:01 BenGoldberg m: say "Bar✌".encode("UTF-8") ~~ blob8
18:01 camelia rakudo-moar ce9507: OUTPUT«True␤»
18:01 BenGoldberg Thanks, japhb :)
18:02 colomon m: say "Bar✌".encode("UTF-16") ~~ blob8
18:02 camelia rakudo-moar ce9507: OUTPUT«False␤»
18:02 FROGGS m: say "Bar✌".encode("UTF-8") ~~ utf8
18:02 camelia rakudo-moar ce9507: OUTPUT«True␤»
18:02 colomon m: say "Bar✌".encode("UTF-16") ~~ blob16
18:02 camelia rakudo-moar ce9507: OUTPUT«True␤»
18:02 colomon yeah, there you go
18:02 japhb BenGoldberg: np.  :-)
18:02 colomon japhb++
18:05 SamuraiJack joined #perl6
18:06 BenGoldberg m: say "Bar✌".encode("UTF-16").blob8
18:06 camelia rakudo-moar ce9507: OUTPUT«No such method 'blob8' for invocant of type 'utf16'␤  in block <unit> at /tmp/c6JIjWnlGb:1␤␤»
18:06 BenGoldberg Where is Blob docu-ed?
18:07 brother joined #perl6
18:08 timotimo what makes you think that we have any docs at all?
18:08 timotimo :S
18:09 BenGoldberg m: say blob8.new("Bar✌".encode("UTF-16"))
18:09 camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 0c>␤»
18:09 abraxxa m: say blob8.new("Bar✌".encode("UTF-16")).elems
18:09 camelia rakudo-moar ce9507: OUTPUT«4␤»
18:10 abraxxa ARGH
18:10 BenGoldberg I'd expected it to be at http://doc.perl6.org/type/Blob.html , but that's a 404 not found.
18:10 abraxxa without the html, but still the same
18:13 abraxxa the buf8 just takes the last 8 bits of each element
18:13 TimToady m: <a b c> ==> map({ "d" }) ==> say()
18:13 camelia rakudo-moar ce9507: OUTPUT«d d d␤»
18:13 TimToady timotimo: ^^ that's what ibo2perl6 wanted
18:14 TimToady and one of the motivations for distinguishing say() from say
18:15 TimToady feed operators are currently the only way to add extra list args outside of parens
18:15 TimToady std: say(): 1,2,3
18:15 camelia std 53b3ca6: OUTPUT«ok 00:01 124m␤»
18:15 TimToady STD allows this syntax for that though
18:16 TimToady std: say() <== 1,2,3
18:16 camelia std 53b3ca6: OUTPUT«ok 00:01 123m␤»
18:16 TimToady means roughly the same as that, but feeds may imply pipelining between threads
18:17 jaffa4 m:<a b c> ==> map({ $_ x 2 }) ==> say()
18:17 TimToady space after :
18:17 jaffa4 m: <a b c> ==> map({ $_ x 2 }) ==> say()
18:17 camelia rakudo-moar ce9507: OUTPUT«aa bb cc␤»
18:18 BenGoldberg m: say(): 1, 2, 3;
18:18 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/oLGnuPveuC�Two terms in a row�at /tmp/oLGnuPveuC:1�------> [32msay()[33m�[31m: 1, 2, 3;[0m�    expecting any of:�        postfix�        infix stopper�        infix or meta-infix…»
18:18 TimToady oh, I see Ven++ made the same say() suggestion
18:20 timotimo TimToady: yup, a bit later in the backscroll someone pointed that out as well, i think it was ven++
18:20 dalek Heuristic branch merge: pushed 20 commits to nqp/cglobal by FROGGS
18:20 TimToady I just said that :)
18:20 dwarring joined #perl6
18:20 jaffa4 m: say : 1,2,3;
18:20 camelia rakudo-moar ce9507: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/eqBAs1qZME�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument�at /tmp/eqBAs1qZME:1�------> [32msay [33m�[31m: 1,2,3;[0m� …»
18:20 timotimo sorry, i was still in backscroll :P
18:22 moritz \o
18:23 timotimo ohai moritz
18:24 abraxxa DBDish isn't installable with rakudo-star-2014.08, says that pir isn't a known compilation target
18:25 timotimo that's when you have a moarvm rakudo star, eh?
18:25 abraxxa yes
18:26 * timotimo has to build a rakudo afresh to check it out
18:27 timotimo oh, it has a makefile
18:27 timotimo that's not so awesome
18:27 FROGGS abraxxa: DBIish is included is rakudo star... why do you want to build it?
18:28 FROGGS and, normally you would not use the Makefile but just do: panda install .
18:28 timotimo ah
18:28 timotimo so easy :)
18:29 FROGGS and since panda does not support Makefiles it should work out :o)
18:30 abraxxa FROGGS: i'm trying to adding Oracle support
18:31 FROGGS abraxxa: I see, but still, just use panda to install it :o)
18:31 FROGGS abraxxa: it will pick up added modules, run tests and generally do the right thang
18:32 FROGGS I still have to smile about the php homework *g*
18:32 abraxxa FROGGS: thanks
18:32 FROGGS abraxxa: you're welcome
18:32 abraxxa why not remove the makefile?
18:32 FROGGS abraxxa: that's what I wanted to ask moritz right now :o)
18:32 FROGGS moritz: ^^
18:32 FROGGS moritz: do you mind removing DBIish's Makefile?
18:32 moritz do it, just also patch the README accordingly
18:33 FROGGS meh :P
18:33 FROGGS ohh, I even can do it
18:34 dalek DBIish: f23e1d9 | (Tobias Leich)++ | README (2 files):
18:34 dalek DBIish: rename README to README.pod, so github formats it nicely
18:34 dalek DBIish: review: https://github.com/perl6/DBIish/commit/f23e1d9c70
18:35 abraxxa still doesn't format it
18:36 dalek DBIish: 3511bdb | (Tobias Leich)++ | README.pod:
18:36 dalek DBIish: formatting tweaks
18:36 dalek DBIish: review: https://github.com/perl6/DBIish/commit/3511bdbee7
18:36 FROGGS abraxxa: but now
18:36 abraxxa yes, what did you change?
18:37 abraxxa ah, see
18:38 abraxxa how can i run a specific test? is there something like prove?
18:39 moritz abraxxa: PERL6LIB=lib prove -e perl6 t/the/file.t
18:39 abraxxa Connect failed with error Unknown type uint32 used in native call.
18:39 abraxxa nine: seems there are no unsigned types in NativeCall
18:39 abraxxa moritz: thanks, looks like it wants an alias
18:40 nine abraxxa: ok, you can usually get by without them though.
18:40 dalek DBIish: b87c5c0 | (Tobias Leich)++ | README.pod:
18:40 dalek DBIish: mention installation using panda
18:40 dalek DBIish: review: https://github.com/perl6/DBIish/commit/b87c5c0cae
18:40 abraxxa nine: so what should i use instead? Just int32?
18:40 nine abraxxa: yes
18:40 abraxxa t32
18:41 nine abraxxa: it only makes a difference for values > MAXINT/2
18:42 dalek DBIish: e59df94 | (Tobias Leich)++ | Makefile:
18:42 dalek DBIish: remove Makefile, long live panda
18:42 dalek DBIish:
18:42 dalek DBIish: The Makefile only supported Parrot anyway.
18:42 dalek DBIish: review: https://github.com/perl6/DBIish/commit/e59df94bbc
18:42 abraxxa FROGGS++
18:42 gtodd left #perl6
18:46 abraxxa site comes after lib in the include order?
18:48 abraxxa panda installs to site, rakudo-star comes with DBIish installed in lib which is loaded before the version installed in site
18:48 jaffa4 Can this "class TopWindow is repr('CPointer')" inherit classes?
18:52 Sqirrel joined #perl6
18:54 nine jaffa4: I don't know but also cannot see how that would be possible since it cannot even have attributes.
18:55 nine jaffa4: so I guess it might inherit from other CPointer classes
18:55 * PerlJam would guess that too
18:56 japhb Is it expected that panda fails its own t/ecosystem.t on r-p?
18:57 FROGGS japhb: there is a regressions since a few days I think
18:57 japhb Bah.
18:57 japhb OK, thanks.  Only r-p, or all Rakudos?
18:57 FROGGS japhb: only r-p
18:58 japhb OK, then I'll turn r-p off for now.
18:58 FROGGS japhb: does it complain about VMThreads?
18:58 japhb t/ecosystem.t .. use of uninitialized value $state of type Any in string context  in block  at lib/Panda/Ecosystem.pm:28
18:58 japhb use of uninitialized value of type Any in string context  in any  at gen/parrot/BOOTSTRAP.nqp:87
18:58 japhb No such method 'chars' for invocant of type 'Any'
18:58 FROGGS ahh, this one
18:58 japhb And then a backtrace
18:59 FROGGS I tried to debug it, but probably not hard enough
18:59 jaffa4 I can see there is such things as sub input_box() returns Str is encoded('utf8')..   what encoding are supported?
19:00 abraxxa utf8, utf16 and ascii
19:00 abraxxa jaffa4: see https://github.com/jnthn/zavolaj/#passing-and-returning-values
19:01 guru joined #perl6
19:01 PerlJam S32/Str:index   # test
19:01 jaffa4 utf16 is which by BE nad LE?
19:04 TimToady jaffa4: it's either, but if you don't specify it generally defaults to your current arch
19:05 TimToady that being said, I wonder if we're assuming an archecture when we shouldn't
19:05 TimToady *architecture
19:08 abraxxa how can i find out where the error 'Native call expected object with CPointer representation, but got something else' comes from?
19:08 telex joined #perl6
19:09 TimToady some kind of recursive grep on the source
19:10 TimToady or are you talking about a stack trace?
19:10 abraxxa yes, that would be fine to be sure
19:11 TimToady there's something mysterious that prevents some stack traces in some cases; not sure what's causing that yet
19:12 TimToady agree that it's higly irritating to just get an error message, with not even a line number to look at
19:13 abraxxa ok
19:13 TimToady moarvm in particular is prone to a lot of identical error messages that could come from different spots, but it doesn't bother to report which spot
19:14 TimToady but this message looks like it comes from NativeCall
19:14 abraxxa it does
19:15 * TimToady has never looked inside that
19:15 abraxxa problem is I don't even know which part of *my* code triggers it
19:15 BenGoldberg m: say "Bar✌".encode("UTF-16-LE"); # how do i do this?
19:15 camelia rakudo-moar ce9507: OUTPUT«Unknown string encoding: 'utf-16-le'␤  in method encode at src/gen/m-CORE.setting:6948␤  in block <unit> at /tmp/GwlP4Yz_Ov:1␤␤»
19:15 TimToady what I did when I had the problem was annotate the messages in the source to figure out which one was being triggered
19:15 TimToady then I put an explicit backtrace in
19:16 moritz abraxxa: you can try to catch the error with try { }, and then print $!.backtrace.full
19:16 TimToady BenGoldberg: moar doesn't know those encodings yet
19:16 BenGoldberg p: say "Bar✌".encode("UTF-16-LE");
19:16 camelia rakudo-parrot ce9507: OUTPUT«encoding #-1 not found␤  in method encode at gen/parrot/CORE.setting:6956␤  in block <unit> at /tmp/fTIQeHES2p:1␤␤»
19:16 BenGoldberg Encoding #-1 ??
19:16 abraxxa when i add a warn to my code the line number is a bit of
19:17 TimToady p: say "Bar✌".encode("UTF-16LE");
19:17 camelia rakudo-parrot ce9507: OUTPUT«encoding #-1 not found␤  in method encode at gen/parrot/CORE.setting:6956␤  in block <unit> at /tmp/oVz8PIaEtM:1␤␤»
19:17 moritz error message LTA
19:17 TimToady j: say "Bar✌".encode("UTF-16LE");
19:17 camelia rakudo-jvm ce9507: OUTPUT«Unknown encoding 'utf-16le'␤  in method encode at gen/jvm/CORE.setting:6930␤  in block <unit> at /tmp/sPU08etR8A:1␤␤»
19:18 moritz my theory is that pir::findencoding translates unknown encodings into -1
19:18 moritz and we don't catch that error, and pass that on to whatever handles the encoding, which then dies with this weird error message
19:18 abraxxa i have no idea why it spits out that error
19:18 abraxxa nine: do you have an idea?
19:19 abraxxa i'm trying to call that function http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci16rel001.htm#i562098
19:19 abraxxa i've created OpaquePointer variables for each of them and passing them by reference to get a pointer to a pointer
19:24 treehug88 joined #perl6
19:29 jaffa4 Is there do/include file in Perl 6?
19:31 moritz abraxxa: you can abuse one-element CArrays to get a pointer to something
19:31 abraxxa moritz: just found that out by looking at the sqlite module
19:32 abraxxa timotimo told me that before but I didn't understand
19:35 abraxxa still the same error ;(
19:39 zakharyas joined #perl6
19:39 timotimo what's your code look like?
19:40 abraxxa what's the prefered pastebot in here?
19:40 nine abraxxa: you're just passing different parameters to a function call than you declared.
19:41 nine abraxxa: gist.github.com
19:41 abraxxa http://paste.scsys.co.uk/423118
19:41 timotimo we like gist, non-private gists can be directly executed by camelia
19:42 abraxxa ok, next time
19:42 timotimo where does it explode?
19:42 abraxxa the example in the docs passes 0 instead of pointers though: http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci02bas.htm#LNOCI16209
19:43 abraxxa timotimo: at the call to OCIEnvNlsCreate
19:43 nine abraxxa: that code does not seem complete. Where do OCI_THREADED and $ctxp come from for example?
19:43 abraxxa :1
19:43 timotimo huh, malocfp, ralocfp and mfreefp are IN parameters
19:43 [Coke] timotimo: did that get fixed? ISTR gistEVAL was borked for a long time
19:44 abraxxa nine: yeah, those are constants I've defined
19:44 timotimo oh?
19:44 abraxxa timotimo: does that mean i don't need a CArray or OpaquePointers?
19:44 timotimo i thought it just doesn't like private gists?!
19:45 abraxxa cause I interpreted that void          *(*malocfp) does mean pointer to a pointer because of the two *
19:46 timotimo hold on.
19:47 timotimo cdecl gives me a syntax error :(
19:48 abraxxa timotimo: see http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci16rel001.htm#i562098
19:50 timotimo i think it's a single pointer
19:50 abraxxa i had tried that before
19:50 timotimo well, it's a function pointer, so it'll want special attention
19:51 abraxxa and do i need to pass those memory allocation functions or does 0 mean undefined?
19:52 timotimo that's something the documentation should tell you
19:52 timotimo (but apparently it doesn't tell you)
19:53 abraxxa the error is now Connect failed with error Native call expected object with CArray representation, but got something else
19:53 abraxxa but i only have two CArray params now
19:54 abraxxa $envhpp and $usrmempp
19:54 timotimo did you see above how to declare a function pointer argument?
19:55 Ben_Goldberg joined #perl6
19:55 abraxxa where above? in the docs or the scrollback?
19:55 timotimo scrollback
19:56 abraxxa CArray[OpaquePointer] $envhpp, ?
19:56 timotimo no, hold on
19:57 timotimo 172922      nine │ abraxxa: &malocfp(OpaquePointer, int --> OpaquePointer) in NativeCall
19:57 abraxxa i don't have a user defined memory allocation function to pass it
19:58 timotimo you may still have to give it the right type, no?
19:59 abraxxa why would it complaint about a CArray when i've defined it as OpaquePointer?
19:59 abraxxa but be one of the two params defined as CArray[OpaquePoniter]
20:00 gaussblurinc_ joined #perl6
20:00 dalek zavolaj/cglobal: ac770b5 | (Tobias Leich)++ | lib/NativeCall.pm6:
20:00 dalek zavolaj/cglobal: cglobals are made available by a sub instead of trait
20:00 dalek zavolaj/cglobal:
20:00 dalek zavolaj/cglobal: This way we can bind a proxy to a variable (jnthn++) instead of declaring a subroutine
20:00 dalek zavolaj/cglobal: that feels wrong for such a task. We already can read from global C variables, but
20:00 dalek zavolaj/cglobal: we still need the correct primitive to write to a memory location.
20:00 dalek zavolaj/cglobal: review: https://github.com/jnthn/zavolaj/commit/ac770b5a84
20:03 FROGGS timotimo: do we already have something that let me write to a piece of mem?
20:04 FROGGS (might be just that I'm tired or that my brane doesnt work)
20:04 timotimo not sure ... what happens if you nativecallcast an int to a pointer? :)
20:05 FROGGS timotimo: it will complain that the source is not a pointer :o)
20:05 timotimo but ... that's the point of casting?!
20:05 timotimo can you create an ObjAt from an integer?
20:05 timotimo m: ObjAt.new(1024);
20:05 camelia rakudo-moar ce9507: OUTPUT«Default constructor for 'ObjAt' only takes named arguments␤  in method new at src/gen/m-CORE.setting:924␤  in block <unit> at /tmp/3jzV0QPgAw:1␤␤»
20:06 FROGGS star-m: say OpaquePointer.new(1234)
20:06 camelia star-m 2014.04: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/azRHbRixG4�Undeclared name:�    OpaquePointer used at line 1��»
20:06 FROGGS star-m: use NativeCall; say OpaquePointer.new(1234)
20:06 camelia star-m 2014.04: OUTPUT«Default constructor for 'OpaquePointer' only takes named arguments␤  in method new at src/gen/m-CORE.setting:846␤  in block  at /tmp/TDmN5_QtiT:1␤␤»
20:06 moritz timotimo: by boxing a string
20:06 timotimo maybe an OpaquePointer gets created with box_I?
20:06 FROGGS no, that star is just too old
20:06 moritz m: say nqp::box_s(ObjAt, '1024')
20:06 camelia rakudo-moar ce9507: OUTPUT«Cannot unbox a type object␤  in block <unit> at /tmp/5Te_tdnY9f:1␤␤»
20:07 timotimo why the F would you box a *string* for an address?
20:07 FROGGS though, what I did would create a pointer pointing to 1234
20:07 timotimo also, i think the string comes first in box_s
20:08 timotimo m: say nqp::box_s('1024', ObjAt)
20:08 camelia rakudo-moar ce9507: OUTPUT«1024␤»
20:09 * moritz builds a newer star for camelia
20:09 FROGGS moritz++ # :o)
20:12 FROGGS if I wasn't that tired I'd implement OpaquePointer.alloc and .free
20:12 FROGGS and then make a list of things JNA has and we don't
20:12 FROGGS err, JNI
20:12 FROGGS well, J-something anyway
20:13 abraxxa so is there something i could do or won't that work with the current NativeCall features?
20:14 FROGGS many stuff works... I am currently binding libxml2
20:15 abraxxa am i'm doing something wrong?
20:15 FROGGS I dunno, I didn't backlog
20:18 moritz now I noticed that I haven't built parakudo in a very long time
20:20 hoelzro m: role R { ... } ; class C does R { }
20:20 camelia rakudo-moar ce9507: OUTPUT«===SORRY!===␤None of the parametric role variants for 'R' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤»
20:20 hoelzro should that give a more intesting error message?
20:20 FROGGS ohh yes please :o)
20:21 hoelzro ok, that's a LHF I can put on my TODO list =)
20:24 hoelzro <!> always fails, right? so [ <foo> <!> || <bar> ] will always try to match <bar>, right?
20:25 moritz I think so, yes
20:25 moritz and will terminate LTM
20:29 hoelzro is there a way I can fail the foo branch, even if foo succeeds, but not run the bar branch if foo succeeds?
20:29 hoelzro basically, I want to alter a token to fail entirely, but to provide as much diagnostic information as I can
20:30 moritz I think there are backtracking control primitives specced for that, but rakudo doesn't implement them
20:30 moritz :, :: and :::
20:30 moritz and I think :: is what you want
20:31 hoelzro that's what I was thinking
20:31 hoelzro but I noticed that they aren't used in Rakudo itself, which made me nervous
20:32 hoelzro apparently rightfully so
20:34 moritz woah, rakudo-p setting compilation is REALLY slow
20:34 moritz 200s for stage parse
20:34 moritz where moar is below 50s
20:35 FROGGS mine takes about 105s when moar takes 33s
20:36 FROGGS but perhaps the amount of RAM matters here too
20:36 moritz m: say 105 / 33
20:36 camelia rakudo-moar ce9507: OUTPUT«3.181818␤»
20:40 cooper_ joined #perl6
20:41 vendethiel joined #perl6
20:41 cognome joined #perl6
20:45 abraxxa i pushed my work to https://github.com/abraxxa/DBIish/commit/f1c8e836763acffe8b0c37a110a7e0ef5c192765
20:45 dalek rakudo/nom: 34cf7a9 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
20:45 dalek rakudo/nom: Add some comments about eager candidates
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/34cf7a9ede
20:45 timotimo wow, much code
20:46 timotimo abraxxa: you misspelt "DBI" as "DBD" in the explanation at the way bottom
20:47 abraxxa timotimo: it started as a copy of Pg.pm6
20:48 moritz abraxxa: there's some copy/pasto in the test file that still assumes postgres
20:48 timotimo and the end of the paragraph refers to the "Mini" part of the name, that may be supposed to read "Ish" instead?
20:48 moritz abraxxa: basically the whole pod block at the end
20:49 abraxxa moritz: yeah
20:50 abraxxa i didn't want to invest time in docs as long as not even the most basic call works
20:51 nine abraxxa: what does your current version look like?
20:51 abraxxa nine: what i pushed to github
20:51 nine abraxxa: URI?
20:52 abraxxa nine: https://github.com/abraxxa/DBIish/commit/f1c8e836763acffe8b0c37a110a7e0ef5c192765
20:55 moritz abraxxa: IMHO it's better to simply cut away the docs than keep them when they are wrong
20:56 abraxxa moritz: agreed
20:58 moritz abraxxa: btw, you're welcome to develop in perl6/DBIish directly (in a branch if you want)
20:58 abraxxa moritz: thanks, I'll gladly do that as soon as that starts to work
20:59 nine abraxxa: looks quite sane to me. What's the status? Pity that I can't test myself.
20:59 moritz (invitation sent)
21:00 abraxxa nine: Connect failed with error Native call expected object with CArray representation, but got something else
21:00 abraxxa moritz: thanks, accepted
21:01 itz seems a little faster today compared with a day or so ago
21:01 nine I wonder if developing DBIish actually makes much sense since it's not meant to be a long term solution but a simple reimplementation of DBI. We could use the real DBI now instead and work on the next gen database interface.
21:02 abraxxa nine: but isn't the interface to the various C libraries via NativeCalls still needed?
21:02 nine Though having working database driver code in Perl 6 certainly can help with the latter.
21:02 nine abraxxa: yep, that's what I meant right now.
21:06 abraxxa nine: any idea what triggers the error?
21:08 nine abraxxa: no. I went through your code line by line but everything looks correct. Can you find out if it's the OCIEnvNlsCreate or OCILogon2 call?
21:15 timotimo sprinkle say statements %)
21:15 timotimo or use the debugger
21:24 abraxxa nine: seems to be the first one
21:27 nine abraxxa: I'd replace the two CArray parameters by something else (both in declaration and all) and try if it changes the error message. It'll probably segfault, but at least we then know if it's the parameters or something else.
21:27 abraxxa nine: thanks
21:31 ClarusCogitatio joined #perl6
21:37 cognome_ joined #perl6
21:38 [particle] joined #perl6
21:39 dalek nqp: a3e805a | (David Warring david.warring@gmail.com)++ | examples/rubyish/rubyish.nqp:
21:39 dalek nqp: [examples/rubyish] improved handling of package constants
21:39 dalek nqp: review: https://github.com/perl6/nqp/commit/a3e805af51
21:40 cooper__ joined #perl6
21:40 Alina-malina joined #perl6
21:40 Alina-malina joined #perl6
21:42 tinita_ joined #perl6
21:42 grondilu joined #perl6
21:42 baest_ joined #perl6
21:45 ClarusCogitatio joined #perl6
21:45 ChoHag joined #perl6
21:45 Exodist joined #perl6
21:45 geekosaur joined #perl6
21:46 Psyche^ joined #perl6
21:46 BenGoldberg joined #perl6
21:46 synopsebot joined #perl6
21:47 nine sleep &
21:48 mberends joined #perl6
21:48 ggherdov joined #perl6
22:01 cognome joined #perl6
22:12 japhb_ joined #perl6
22:13 vendethiel- joined #perl6
22:14 nwc10_ joined #perl6
22:14 jlaire_ joined #perl6
22:14 yogan_ joined #perl6
22:14 isacloud_____ joined #perl6
22:14 Timbus_ joined #perl6
22:15 sivoais_ joined #perl6
22:15 petercom1and joined #perl6
22:16 dj_goku_ joined #perl6
22:16 dj_goku_ joined #perl6
22:16 eternaleye_ joined #perl6
22:17 nebuchad` joined #perl6
22:18 ggherdov_ joined #perl6
22:18 vike joined #perl6
22:18 Psyche^_ joined #perl6
22:19 esaym153 joined #perl6
22:20 sivoais joined #perl6
22:20 bjz joined #perl6
22:20 bcode_ joined #perl6
22:21 timotimo joined #perl6
22:24 renormalist joined #perl6
22:25 mst_ joined #perl6
22:26 esaym joined #perl6
22:26 lizmat_ joined #perl6
22:26 kuroseki joined #perl6
22:28 DarthGandalf joined #perl6
22:28 grondilu joined #perl6
22:29 bloonix_ joined #perl6
22:29 Colby` joined #perl6
22:30 petercommand joined #perl6
22:30 telex joined #perl6
22:31 japhb_ joined #perl6
22:31 slavik joined #perl6
22:31 guru joined #perl6
22:31 cognome joined #perl6
22:33 cognome joined #perl6
22:33 bcode_ joined #perl6
22:33 nwc10 joined #perl6
22:33 pochi joined #perl6
22:34 retupmoca t/09-nativecast.t ...... Failed 8/10 subtests # :(
23:05 ilbot3 joined #perl6
23:06 woolfy joined #perl6
23:16 djanatyn joined #perl6
23:38 camelia joined #perl6
23:38 xragnar joined #perl6
23:38 avuserow joined #perl6
23:38 vendethiel joined #perl6
23:38 bjz joined #perl6
23:38 itz joined #perl6
23:38 ggherdov_ joined #perl6
23:38 robinsmidsrod joined #perl6
23:38 _sri joined #perl6
23:38 BenGoldberg joined #perl6
23:38 Tene_ joined #perl6
23:38 gfldex joined #perl6
23:38 ingy joined #perl6
23:38 grondilu_ joined #perl6
23:38 DELLtra joined #perl6
23:38 ivanshmakov joined #perl6
23:38 Psyche^ joined #perl6
23:38 Akagi201 joined #perl6
23:38 noganex_ joined #perl6
23:38 mtj_ joined #perl6
23:38 ggoebel1111116 joined #perl6
23:38 arnsholt joined #perl6
23:38 breinbaa1 joined #perl6
23:38 xfix joined #perl6
23:38 labster_ joined #perl6
23:38 betterworld joined #perl6
23:38 pochi joined #perl6
23:38 nwc10 joined #perl6
23:38 bcode joined #perl6
23:38 slavik joined #perl6
23:38 japhb_ joined #perl6
23:38 petercommand joined #perl6
23:38 bloonix_ joined #perl6
23:38 Pleiades` joined #perl6
23:38 grondilu joined #perl6
23:38 DarthGandalf joined #perl6
23:38 kuroseki joined #perl6
23:38 lizmat_ joined #perl6
23:38 esaym joined #perl6
23:38 mst_ joined #perl6
23:38 renormalist joined #perl6
23:38 eternaleye joined #perl6
23:38 sivoais joined #perl6
23:38 Timbus_ joined #perl6
23:38 isacloud_____ joined #perl6
23:38 jlaire_ joined #perl6
23:38 mberends joined #perl6
23:38 synopsebot joined #perl6
23:38 Exodist joined #perl6
23:38 ClarusCogitatio joined #perl6
23:38 tinita_ joined #perl6
23:38 [particle] joined #perl6
23:38 Sqirrel joined #perl6
23:38 dwarring joined #perl6
23:38 brother joined #perl6
23:38 FROGGS joined #perl6
23:38 Woodi_ joined #perl6
23:38 [Sno] joined #perl6
23:38 mr-foobar joined #perl6
23:38 PZt joined #perl6
23:38 erkan joined #perl6
23:38 exixt joined #perl6
23:38 krunen joined #perl6
23:38 awwaiid joined #perl6
23:38 ivan`` joined #perl6
23:38 cbk1090 joined #perl6
23:38 mattp_ joined #perl6
23:38 MilkmanDan joined #perl6
23:38 carlin joined #perl6
23:38 amkrankr1leuen joined #perl6
23:38 Rounin joined #perl6
23:38 TimToady joined #perl6
23:38 alexghacker joined #perl6
23:38 zoosha joined #perl6
23:38 xiaomiao joined #perl6
23:38 dalek joined #perl6
23:38 eiro joined #perl6
23:38 davido_ joined #perl6
23:38 djanatyn joined #perl6
23:38 Tene joined #perl6
23:38 ribasushi joined #perl6
23:38 erdic joined #perl6
23:38 integral joined #perl6
23:38 jnthn joined #perl6
23:38 flussence joined #perl6
23:38 grep0r_ joined #perl6
23:38 sorear_ joined #perl6
23:38 huf joined #perl6
23:38 salv0 joined #perl6
23:38 hobbs joined #perl6
23:38 yoleaux joined #perl6
23:38 nine joined #perl6
23:38 Bucciarati joined #perl6
23:38 avar joined #perl6
23:38 leedo joined #perl6
23:38 lestrrat joined #perl6
23:38 no-doz joined #perl6
23:38 cibs joined #perl6
23:38 jkg joined #perl6
23:38 moritz joined #perl6
23:38 Khisanth joined #perl6
23:38 Gruber joined #perl6
23:38 woshty joined #perl6
23:38 tardisx joined #perl6
23:38 revdiablo joined #perl6
23:38 cosimo_ joined #perl6
23:38 yukko joined #perl6
23:38 btyler joined #perl6
23:38 clkaoud_ joined #perl6
23:38 6A4AAJUKP joined #perl6
23:38 Juerd joined #perl6
23:38 [Coke] joined #perl6
23:38 mads- joined #perl6
23:38 hoelzro joined #perl6
23:38 aindilis` joined #perl6
23:38 PerlJam joined #perl6
23:38 tadzik joined #perl6
23:38 charsbar__ joined #perl6
23:38 BinGOs joined #perl6
23:38 sjn joined #perl6
23:38 rhr joined #perl6
23:38 haroldwu joined #perl6
23:38 cotto joined #perl6
23:38 broquaint joined #perl6
23:38 cxreg joined #perl6
23:38 danaj joined #perl6
23:38 ntln joined #perl6
23:38 stux|RC-only joined #perl6
23:38 apejens joined #perl6
23:38 simcop2387 joined #perl6
23:38 tokuhirom joined #perl6
23:38 dylanwh joined #perl6
23:38 mathw joined #perl6
23:38 pnu joined #perl6
23:38 felher joined #perl6
23:38 masak joined #perl6
23:38 Maddingue joined #perl6
23:38 ponbiki joined #perl6
23:38 yakudza joined #perl6
23:38 coffeeyy_ joined #perl6
23:38 BooK joined #perl6
23:38 nhayashi joined #perl6
23:38 mls joined #perl6
23:38 kshannon_ joined #perl6
23:38 raydiak joined #perl6
23:38 lue joined #perl6
23:38 rjbs joined #perl6
23:38 Possum joined #perl6
23:38 Guest74506 joined #perl6
23:38 sergot joined #perl6
23:38 yeltzooo joined #perl6
23:38 smash joined #perl6
23:38 diakopter joined #perl6
23:38 Ulti joined #perl6
23:38 dg joined #perl6
23:38 ilogger2 joined #perl6
23:38 tomaw- joined #perl6
23:38 Util joined #perl6
23:38 mtj__ joined #perl6
23:38 wtw joined #perl6
23:38 retupmoca joined #perl6
23:38 Gothmog_ joined #perl6
23:38 sftp joined #perl6
23:38 eMBee joined #perl6
23:38 sunnavy joined #perl6
23:38 nickpatch joined #perl6
23:38 atta joined #perl6
23:38 felipe joined #perl6
23:38 risou_awy joined #perl6
23:38 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
23:39 djanatyn joined #perl6
23:39 japhb joined #perl6
23:39 geekosaur joined #perl6
23:39 eternaleye joined #perl6
23:39 firnsy joined #perl6
23:39 jtpalmer joined #perl6
23:39 Pleiades` joined #perl6
23:39 mst joined #perl6
23:39 Pleiades` joined #perl6
23:39 firnsy joined #perl6
23:39 betterworld joined #perl6
23:39 jercos joined #perl6
23:39 go|dfish joined #perl6
23:39 fling joined #perl6
23:39 baest joined #perl6
23:39 colomon joined #perl6
23:39 cognome joined #perl6
23:39 oetiker joined #perl6
23:39 hugme joined #perl6
23:39 arnsholt joined #perl6
23:39 skarn joined #perl6
23:39 MilkmanDan joined #perl6
23:39 MilkmanDan joined #perl6
23:39 Akagi201 joined #perl6
23:39 grondilu joined #perl6
23:39 hugme joined #perl6
23:39 ClarusCogitatio joined #perl6
23:39 eternaleye joined #perl6
23:39 bloonix joined #perl6
23:39 vendethiel joined #perl6
23:39 xragnar joined #perl6
23:39 djanatyn joined #perl6
23:39 pmichaud joined #perl6
23:39 muraiki joined #perl6
23:39 go|dfish joined #perl6
23:40 ilbot3 joined #perl6
23:40 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
23:42 camelia joined #perl6
23:42 woolfy joined #perl6
23:42 ChoHag joined #perl6
23:42 dj_goku joined #perl6
23:42 go|dfish joined #perl6
23:42 muraiki joined #perl6
23:42 pmichaud joined #perl6
23:42 djanatyn joined #perl6
23:42 xragnar joined #perl6
23:42 vendethiel joined #perl6
23:42 bloonix joined #perl6
23:42 eternaleye joined #perl6
23:42 ClarusCogitatio joined #perl6
23:42 hugme joined #perl6
23:42 grondilu joined #perl6
23:42 Akagi201 joined #perl6
23:42 MilkmanDan joined #perl6
23:42 Guest49163 joined #perl6
23:42 arnsholt joined #perl6
23:42 oetiker joined #perl6
23:42 cognome joined #perl6
23:42 colomon joined #perl6
23:42 baest joined #perl6
23:42 xinming joined #perl6
23:42 Celelibi joined #perl6
23:42 jercos joined #perl6
23:42 betterworld joined #perl6
23:42 mst joined #perl6
23:42 Pleiades` joined #perl6
23:42 jtpalmer joined #perl6
23:42 firnsy joined #perl6
23:42 geekosaur joined #perl6
23:42 japhb joined #perl6
23:42 bjz joined #perl6
23:42 ggherdov_ joined #perl6
23:42 robinsmidsrod joined #perl6
23:42 _sri joined #perl6
23:42 BenGoldberg joined #perl6
23:42 Tene_ joined #perl6
23:42 ingy joined #perl6
23:42 DELLtra joined #perl6
23:42 Psyche^ joined #perl6
23:42 noganex_ joined #perl6
23:42 mtj_ joined #perl6
23:42 ggoebel1111116 joined #perl6
23:42 breinbaa1 joined #perl6
23:42 xfix joined #perl6
23:42 labster_ joined #perl6
23:42 pochi joined #perl6
23:42 nwc10 joined #perl6
23:42 bcode joined #perl6
23:42 slavik joined #perl6
23:42 petercommand joined #perl6
23:42 DarthGandalf joined #perl6
23:42 kuroseki joined #perl6
23:42 lizmat_ joined #perl6
23:42 renormalist joined #perl6
23:42 Timbus_ joined #perl6
23:42 isacloud_____ joined #perl6
23:42 jlaire_ joined #perl6
23:42 mberends joined #perl6
23:42 synopsebot joined #perl6
23:42 Exodist joined #perl6
23:42 tinita_ joined #perl6
23:42 Sqirrel joined #perl6
23:42 dwarring joined #perl6
23:42 brother joined #perl6
23:42 FROGGS joined #perl6
23:42 Woodi_ joined #perl6
23:42 [Sno] joined #perl6
23:42 mr-foobar joined #perl6
23:42 PZt joined #perl6
23:42 erkan joined #perl6
23:42 krunen joined #perl6
23:42 ivan`` joined #perl6
23:42 cbk1090 joined #perl6
23:42 mattp_ joined #perl6
23:42 carlin joined #perl6
23:42 amkrankr1leuen joined #perl6
23:42 Rounin joined #perl6
23:42 TimToady joined #perl6
23:42 alexghacker joined #perl6
23:42 xiaomiao joined #perl6
23:42 dalek joined #perl6
23:42 eiro joined #perl6
23:42 davido_ joined #perl6
23:42 ribasushi joined #perl6
23:42 erdic joined #perl6
23:42 integral joined #perl6
23:42 jnthn joined #perl6
23:42 flussence joined #perl6
23:42 grep0r_ joined #perl6
23:42 sorear_ joined #perl6
23:42 huf joined #perl6
23:42 salv0 joined #perl6
23:42 hobbs joined #perl6
23:42 yoleaux joined #perl6
23:42 nine joined #perl6
23:42 Bucciarati joined #perl6
23:42 avar joined #perl6
23:42 leedo joined #perl6
23:42 lestrrat joined #perl6
23:42 no-doz joined #perl6
23:42 cibs joined #perl6
23:42 jkg joined #perl6
23:42 moritz joined #perl6
23:42 Khisanth joined #perl6
23:42 Gruber joined #perl6
23:42 woshty joined #perl6
23:42 tardisx joined #perl6
23:42 revdiablo joined #perl6
23:42 cosimo_ joined #perl6
23:42 yukko joined #perl6
23:42 btyler joined #perl6
23:42 clkaoud_ joined #perl6
23:42 Juerd joined #perl6
23:42 [Coke] joined #perl6
23:42 mads- joined #perl6
23:42 hoelzro joined #perl6
23:42 aindilis` joined #perl6
23:42 PerlJam joined #perl6
23:42 tadzik joined #perl6
23:42 charsbar__ joined #perl6
23:42 BinGOs joined #perl6
23:42 sjn joined #perl6
23:42 rhr joined #perl6
23:42 haroldwu joined #perl6
23:42 cotto joined #perl6
23:42 broquaint joined #perl6
23:42 cxreg joined #perl6
23:42 danaj joined #perl6
23:42 ntln joined #perl6
23:42 stux|RC-only joined #perl6
23:42 apejens joined #perl6
23:42 simcop2387 joined #perl6
23:42 tokuhirom joined #perl6
23:42 dylanwh joined #perl6
23:42 mathw joined #perl6
23:42 pnu joined #perl6
23:42 felher joined #perl6
23:42 masak joined #perl6
23:42 Maddingue joined #perl6
23:42 ponbiki joined #perl6
23:42 yakudza joined #perl6
23:42 coffeeyy_ joined #perl6
23:42 BooK joined #perl6
23:42 nhayashi joined #perl6
23:42 mls joined #perl6
23:42 kshannon_ joined #perl6
23:42 raydiak joined #perl6
23:42 lue joined #perl6
23:42 rjbs joined #perl6
23:42 Possum joined #perl6
23:42 Guest74506 joined #perl6
23:42 sergot joined #perl6
23:42 yeltzooo joined #perl6
23:42 smash joined #perl6
23:42 diakopter joined #perl6
23:42 Ulti joined #perl6
23:42 dg joined #perl6
23:42 ilogger2 joined #perl6
23:42 tomaw- joined #perl6
23:42 Util joined #perl6
23:42 mtj__ joined #perl6
23:42 wtw joined #perl6
23:42 retupmoca joined #perl6
23:42 Gothmog_ joined #perl6
23:42 sftp joined #perl6
23:42 eMBee joined #perl6
23:42 sunnavy joined #perl6
23:42 nickpatch joined #perl6
23:42 atta joined #perl6
23:42 felipe joined #perl6
23:42 risou_awy joined #perl6
23:42 nebuchadnezzar joined #perl6
23:44 lizmat joined #perl6
23:44 \00 joined #perl6
23:44 daxim joined #perl6
23:44 silug joined #perl6
23:45 itz joined #perl6
23:50 xenoterracide joined #perl6
23:54 telex joined #perl6
23:54 fling joined #perl6
23:54 sivoais joined #perl6
23:54 esaym153 joined #perl6
23:54 awwaiid joined #perl6
23:54 vike joined #perl6
23:55 telex joined #perl6
23:55 sivoais joined #perl6
23:55 fling joined #perl6
23:56 itz joined #perl6
23:58 isacloud_____ joined #perl6
23:59 ggherdov_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo