»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:05 j1n3l0_ left 00:19 MilkmanD1n left, MilkmanDan joined 00:25 xenoterracide left 00:26 BenGoldberg joined 00:32 Rotwang left 00:36 exixt joined 00:40 xenoterracide joined 00:44 akaseki joined 00:47 Salai left, chenryn left 00:48 xenoterracide left 00:51 nbrown__ joined 01:02 yeahnoob joined
TimToady it's the $output dance that isn't working in Parrot 01:02
if you put $output //= $*OUT in the top of sub plan, the tests work better
dinner & 01:03
01:08 xenoterracide joined 01:24 anaeem1 joined 01:27 FROGGS_ joined 01:28 anaeem1 left 01:30 FROGGS left 01:33 dwarring left
carlin nine++ # making Inline::Perl5 "safe to use" 01:37
01:38 dayangkun joined
carlin tadzik: panda's projects.list still isn't updating :( 01:38
01:44 nbrown__ left 01:45 nbrown__ joined, colomon left 01:46 colomon joined 01:52 leont left 02:03 nbrown__ left 02:04 nbrown__ joined 02:09 nbrown__ left 02:20 chenryn joined 02:24 rindolf joined 02:27 nbrown__ joined 02:31 nbrown__ left 02:51 noganex joined 02:55 noganex_ left 02:56 telex left 02:58 telex joined 03:05 immortal joined, immortal left, immortal joined
dalek kudo/nom: a9aebc1 | TimToady++ | lib/Test.pm:
work around Parrot's INIT difficulties

Using INIT here doesn't buy us anything in any case.
03:07
03:07 erkan left 03:09 anaeem1 joined
TimToady that should fix the 100% test failure rate on Parrot 03:13
if PROCESS requires INIT somewhere to get run-time process values, then PROCESS needs to be fixed 03:15
oh, wait, I forgot the real issue, fix coming 03:19
03:23 bcode is now known as we 03:26 jerrycheung joined 03:27 kaare_ joined 03:29 xragnar left 03:30 xragnar joined
dalek kudo/nom: 88bcc59 | TimToady++ | lib/Test.pm:
work around parrot INIT problems

But we still need to wait till main's run time.
03:36
03:39 hagiri joined 03:41 xenoterracide left 03:43 esaym153 joined 04:13 [Sno] left 04:22 Timbus left, Timbus joined 04:28 mattp_ left, mattp_ joined 04:32 kaare_ left
hagiri TimToady 04:33
:)
hi all
:D
04:37 anaeem1 left, noganex left 04:38 noganex joined 04:40 mr-foobar left 04:41 chenryn left 04:44 dwarring joined, awwaiid left
TimToady current stats: r-j fails 10 tests, r-m fails 1 test (probably a flapper), and r-p fails 25 tests 04:51
on Linux Mint, 64-bit 04:52
04:55 chenryn joined 04:59 rindolf left, rindolf joined 05:01 mattp_ left 05:07 mattp_ joined 05:08 kaare_ joined 05:10 anaeem1 joined 05:16 BenGoldberg left 05:20 yeahnoob left 05:23 MikeFair joined, chenryn left 05:30 chenryn joined 05:32 yeahnoob joined 05:34 cbk1090 left 05:35 [Sno] joined, kaleem joined 05:41 yeahnoob left 05:46 cbk1090 joined 05:50 dwarring left 05:52 mr-foobar joined 05:56 xfix_ is now known as xfix, xfix left, xfix joined 05:58 yeahnoob joined 06:08 SamuraiJack joined 06:12 FROGGS_ left
timotimo that doesn't even sound bad! 06:13
06:17 anaeem1 left 06:20 grondilu_ left 06:37 darutoko joined 06:38 hagiri left 06:41 yeahnoob left 06:44 virtualsue joined 06:49 MikeFair left
sergot morning o/ 06:54
06:55 cbk1090 left 06:56 zakharyas joined
moritz \o 06:57
07:00 anaeem1 joined, yeahnoob joined 07:07 Px12 joined 07:08 cbk1090 joined 07:10 Px12 left 07:15 nbrown__ joined, nbrown__ left 07:17 brrt joined
nine morning \o/ 07:17
07:19 Rotwang joined
brrt \o 07:21
07:23 Px12 joined 07:24 rindolf left 07:27 Px12 left 07:29 ivan`` left
tadzik carlin: thank you, I'll start an investigation 07:31
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 07:34 mr-foobar left 07:35 \00 left 07:36 j1n3l0 left 07:38 kaleem left 07:43 anaeem1 left 07:48 mr-foobar joined 07:54 FROGGS joined, Rounin_ is now known as Rounin
brrt recalls reading that feather was in maintenance mode? 07:57
moritz tadzik: well, it could send mails (dunno if the MTA works), or syslog 07:59
nine or the journal if it's a modern enough system 08:02
08:02 \00 joined 08:09 awwaiid joined 08:26 virtualsue left
tadzik modern as in lennartd-modern? :P 08:28
08:31 Px12 joined
nine modern as in finally-after-decades-reliable-daemon-management-modern. 08:31
08:35 Px12 left 08:36 jerrycheung left
brrt lennartd? oh. i get it 08:46
08:54 zakharyas left 08:56 zakharyas joined
timotimo *i* like systemd 09:18
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
and I didn't even try creating my own daemons yet
Timbus setting up a basic daemon tho? real easy and useful
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
for instance I needed to mess with it when turning off the close-the-lid-to-suspend
Timbus yeah lots of.. features 09:21
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
i.e. sysv init is really good if you have a fixed server that has to run a fixed set of services
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.
That was simply impossible before. 09:23
timotimo tadzik: you shouldn't need to mess with that any more
09:23 SamuraiJack left
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
brrt but yeah, it's a complicated system
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.
timotimo yes. oh god, that is SO good, nine 09:24
09:24 leont joined
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 :)
tadzik including a system settings manager
timotimo nine: ooooh
tadzik: what do you think of systemd-inhibit?
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.
tadzik hm, I see
09:26 kaleem joined
nine timotimo: 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
(i have not tried, though)
nine: that is seriously cool.
brrt pretty awesome yeah 09:28
timotimo also, i'm pretty excited about the kdbus stuff
nine Hell systemd starts even my ProgressQuest (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
timotimo hah hah :)
xiaomiao nine: monit ftw? ;)
xiaomiao has been spoilt with sane startup for a few years, downgrading to gnomeOS is not an option
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
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
systemd would just assume that it is running as there's a process
so I'd need monit anyway, and systemd doesn't allow complex ideas like NFS
quite nice for a home desktop, but not yet useful for serious work
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
nine xiaomiao: systemd starts NFS here. No idea what you mean.
xiaomiao nine: try relying on services that pull data over NFS
it fails at ordering, so daemons start before the netmounts are available and hang 09:33
then people get angry
almost hilarious, but nice flashback to the 90s
nine xiaomiao: systemd can order on mount availability.
xiaomiao nine: it has config, but ignores it
because faster
timotimo (and socket activation is quite neat, too)
xiaomiao :D
timotimo: horrible.
timotimo horrible?
xiaomiao yes
e.g. no sane failure modes 09:34
xinetd got discouraged for reasons
09:34 mr-foobar left
timotimo mhm, mhm 09:34
09:35 krunen left
nine Socket activation allows really seamless restarting of fcgi daemons 09:35
xiaomiao xinetd ftw?
09:35 BizarreCake joined, mr-foobar joined
dalek p: 5d69e8e | (Tobias Leich)++ | README.pod:
add travis build status image
09:36
brrt i don't get that argument. either xinetd is good or it is not good 09:37
FROGGS timotimo++ # github.com/perl6/nqp/blob/master/README.pod
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.
xiaomiao nine: if systemd can start
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"?
FROGGS timotimo: also helpful, we smoke master + branches that contain "smoke-me", status of branches shown here: github.com/perl6/nqp/branches
xiaomiao 4kB/s? that's ... cute!
FROGGS timotimo: and you can click the status icon
xiaomiao timotimo: it starts a socket listener, then uses the socket activation protocol to hand it to the daemon
timotimo xiaomiao: it seems like journald has pretty cool features; also, you can still put a regular syslog behind it
xiaomiao: i thought that's also what xinetd does?
xiaomiao timotimo: that way you can connect immediately, even before the daemon is actually up
timotimo: kinda, yes. but xinetd sucks :) 09:39
timotimo ah
xiaomiao timotimo: performance!
FROGGS timotimo: and travis builds (new) pull requests
timotimo neato :)
xiaomiao timotimo: 4kB/s is not tolerable
timotimo mhm
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:41
09:41 yeahnoob left
dalek kudo/nom: a89cfe4 | (Tobias Leich)++ | README.md:
add travis build status image
09:42
timotimo xiaomiao: out of curiosity, where did you get the 4Kb/s number?
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) { ... }".
brrt and.. it works better than stuff like supervisor (pythonland) 09:43
and, dynamic and stuff
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
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.
timotimo journalctl doesn't communicate with the journald
brrt actually, i didn't know that
timotimo that means you can just copy-paste the journal file or reboot your system onto a livecd environment and read out your journal
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
brrt and anyway, it centralises stuff, so you'll now have to trust systemd and lennart
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.
timotimo and the "only for the last/current/... boot" flag is super useful
brrt and old unix guys didn't become old unix guys because they trust so many people
zgrep then :-) 09:46
09:46 nbrown__ joined
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
timotimo yeah, logrotate is kind of enh. 09:47
cool idea in theory, but a bit fiddly in practice
nine I can love UNIX and still want to see some things improved. Simple as that. 09:48
brrt improvement is a thing that depends on your goal 09:49
lizmat good *, #perl6
brrt \o
nine o/ 09:50
lizmat I was wondering, do we have a character class in NQP that just contains CR and LF ?
if not, could we make one? 09:51
looking at the difference in performance of Str.words and Str.lines
$ time perl6 -e '"words".IO.slurp.words'
real0m0.524s
$ time perl6 -e '"words".IO.slurp.lines'
real0m2.489s
09:51 denis_boyun joined
lizmat sincs the words file is the words case (one word per line), it should at least be as fast as .words 09:51
FROGGS lizmat: we have CCLASS_NEWLINE 09:52
lizmat aha! 09:53
lizmat brings out the chainsaw
brrt is the chainsaw the profiler?
FROGGS lizmat: ohh wait
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?
yoleaux timotimo: I'll pass your message to tony-o.
FROGGS lizmat: it contains others as well
brrt very jnthn++ for making that in the first place
lizmat qh,, :-(
ah rather
FROGGS lizmat: like 0x85 and 0x2029 09:54
lizmat hmmm....
well, if we would support those as well
that wouldn't hurt, would it ?
FROGGS it might even be more correct...
lizmat I mean 'CCLASS_WHITESPACE" contains much more than just ' ' :-)
FROGGS true :o)
lizmat and it's 5x as fast as the current approach
FROGGS m: say ("\r\n\x85\x2029" ~~ /\n+/).Str.chars 09:55
camelia rakudo-moar 88bcc5: OUTPUT«4␤»
FROGGS m: say ("\r\n\x0b\x0c\x85\x2029" ~~ /\n+/).Str.chars 09:56
camelia rakudo-moar 88bcc5: OUTPUT«6␤»
FROGGS p: say ("\r\n\x0b\x0c\x85\x2029" ~~ /\n+/).Str.chars
camelia rakudo-parrot 88bcc5: OUTPUT«2␤»
FROGGS eww
I thought I fixed that
j: say ("\r\n\x0b\x0c\x85\x2029" ~~ /\n+/).Str.chars
timotimo oh, i think i get it now
camelia rakudo-jvm 88bcc5: OUTPUT«(timeout)»
FROGGS gah
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.
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.
timotimo .seen tony-o
yoleaux I saw tony-o 29 Aug 2014 17:02Z in #perl6: <tony-o> lol
10:00 grondilu joined, breinbaa1 left 10:01 breinbaas joined
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␤␤»
timotimo m: say "höhöhöhöhö".encode('base64')
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␤␤»
timotimo how do i ...?
we don't have base64 in core-moar? 10:02
brrt apparantly not
what happens when you encode base64 in utf-16
grondilu base-64 is not exactly a string encoding, is it?
brrt :-p 10:03
isn't it? i'm confused about that
timotimo brrt: what?
you encode a string to an ascii string using base64
utf-16 doesn't factor into the thing at all 10:04
wait ...
brrt ... my point is that base64 is in a way a meta-encoding on top of ascii
you could conceivably encode base64 with some other character encoding, like ebdic or so
grondilu base-64 is made to turn any binary-data into ASCII
10:05 virtualsue joined
timotimo ah 10:05
i see now
brrt or utf-16 :-)
and that this would be.. weird. but i don't think it'd be invalid
grondilu so base-64 can not encode any arbitrary string because it does know a priori ho it is encoded in binary
lizmat m: use Test
camelia rakudo-moar 88bcc5: OUTPUT«===SORRY!===␤No such method 'close' for invocant of type 'Any'␤»
lizmat yuck ????
grondilu *does not know
lizmat r: use Test
camelia rakudo-{parrot,jvm,moar} 88bcc5: OUTPUT«===SORRY!===␤No such method 'close' for invocant of type 'Any'␤» 10:06
timotimo oh, huh
i was able to run tests for panda'ed packages locally
huh
m: use Test; say "alive";
camelia rakudo-moar 88bcc5: OUTPUT«alive␤===SORRY!===␤No such method 'close' for invocant of type 'Any'␤»
lizmat I think it only happens if you don't do any tests
m: use Test; pass 10:07
camelia rakudo-moar 88bcc5: OUTPUT«ok 1 - ␤»
timotimo ah
of course
grondilu it would be nice to have a Blob.base64, though.
timotimo github.com/rakudo/rakudo/commit/88...596cb71cd5 - this inits $output, $failure_output and $todo_output in plan, diag, proclaim and done
but not in the END phaser
line 464 may just want to read $handle.?close instead of $handle.close 10:08
10:09 Ven joined
lizmat will fix 10:09
Ven o/, #perl6
masak, moritz , type lovers and others : www.functor.se/research/paper-stew2012/
dalek kudo/nom: 795be4c | (Elizabeth Mattijsen)++ | lib/Test.pm:
Don't complain if we don't test anything
10:10
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…»
timotimo ah, that works. i wonder why i thought it wouldn't
bleh. Digest fails tests when installed via panda, but it works fine when the tests are run from ufo's makefile ... 10:15
grondilu: how far down your priority list is fixing the two TODOs you have in Digest's TODO file? :) 10:16
10:20 Ven left 10:21 jaffa4 joined
jaffa4 m: my int32 $ = 4; 10:21
camelia ( no output )
jaffa4 m: sub m(int32 i) {} m(4); 10:22
camelia rakudo-moar 88bcc5: OUTPUT«===SORRY!=== Error while compiling /tmp/G1gsQbfxo4␤A parameter may only have one prefix type constraint␤at /tmp/G1gsQbfxo4:1␤------> sub m(int32 i⏏) {} m(4);␤ expecting any of:␤ statement list␤ …»
10:23 xinming_ is now known as xinming
jaffa4 m: sub m(int32 $i) {} m(4); 10:24
camelia rakudo-moar 88bcc5: OUTPUT«===SORRY!=== Error while compiling /tmp/ZGUy5I6nO9␤Two terms in a row␤at /tmp/ZGUy5I6nO9:1␤------> sub m(int32 $i) {} ⏏m(4);␤ expecting any of:␤ statement list␤ horizontal whitespace␤ …»
10:27 krunen joined
jaffa4 m: sub m(int32 $i) {}; m(4); 10:28
camelia ( no output )
brrt afk 10:31
10:31 brrt left
jaffa4 m: class a {method m(int32 $i) {};} a.m(4); 10:31
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/8bjcLanvUd␤Two terms in a row␤at /tmp/8bjcLanvUd:1␤------> class a {method m(int32 $i) {};} ⏏a.m(4);␤ expecting any of:␤ statement list␤ horizonta…»
grondilu timotimo: quite far, but I can look at it since you ask... 10:35
timotimo not that important, actually 10:36
just stumbled upon it and thought maybe it'd be super trivial to fix now
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?
m: module Foo { our sub greet { say "hi" } }; import Foo <greet>; greet; 10:38
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/HThyC0cUI1␤Undeclared routine:␤ greet used at line 1. Did you mean 'grep'?␤␤»
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:39
timotimo i think you need to say <&function> 10:40
10:40 bjz joined
jaffa4 What is the size of int? 10:40
grondilu m: module Foo { our sub greet { say "hi" } }; import Foo <&greet>; greet;
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/Ov8YDL1Yag␤Undeclared routine:␤ greet used at line 1. Did you mean 'grep'?␤␤»
timotimo jaffa4: i think those are platform-native integers, so 32bit on 32bit machines, 64bit on 64bit machines 10:41
grondilu by the way do we have something like &sizeof? 10:43
lizmat I was thinking of using int.min int.max for that 10:45
not exactly the same, but useful nonetheless ?
jaffa4 m: print int.min;
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␤␤»
timotimo use Limits:from<C>
jaffa4 m: print Int.min;
camelia rakudo-moar a89cfe: OUTPUT«-Inf»
timotimo :P
jaffa4 m: print Int.max;
camelia rakudo-moar a89cfe: OUTPUT«Inf»
lizmat m: print Num.max
camelia rakudo-moar a89cfe: OUTPUT«Inf»
lizmat I fixed that yesterday 10:46
fsvo fixing
m: print Str.max
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␤␤»
jaffa4 kamat: inf is not correcdt
10:46 nbrown__ left
timotimo it is 10:47
for Int at least
for num there is a highest and lowest number we can represent 10:49
jaffa4 Does it have infinite precision? 10:51
timotimo no
lizmat Int? yes, afaik
jaffa4 m: Int $b = 232323232323232323232323232323232323232323;
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/U_TbwZ4pQ7␤Two terms in a row␤at /tmp/U_TbwZ4pQ7:1␤------> Int ⏏$b = 23232323232323232323232323232323232␤ expecting any of:␤ postfix␤ infix stopper…»
timotimo i don't think you call that "precision"
... what. 10:52
lizmat my missing
timotimo m: Int $b = 100000000; $b *= 1000000 for ^20; say $b.chars
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/Q1jprRqkZe␤Two terms in a row␤at /tmp/Q1jprRqkZe:1␤------> Int ⏏$b = 100000000; $b *= 1000000 for ^20; s␤ expecting any of:␤ postfix␤ infix stopper…»
10:52 exixt left
jaffa4 m: my Int $b = 232323232323232323232323232323232323232323; print $b; 10:52
camelia rakudo-moar a89cfe: OUTPUT«232323232323232323232323232323232323232323»
timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say $b.chars
camelia rakudo-moar a89cfe: OUTPUT«129␤»
timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say $bs
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/WTmOQCvoBa␤Variable '$bs' is not declared␤at /tmp/WTmOQCvoBa:1␤------> 00000000; $b *= 1000000 for ^20; say $bs⏏<EOL>␤ expecting any of:␤ postfix␤»
timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say $b
camelia rakudo-moar a89cfe: OUTPUT«100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000␤»
timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say ($b + 1).is-prime
camelia rakudo-moar a89cfe: OUTPUT«False␤»
timotimo m: my Int $b = 100000000; $b *= 1000000 for ^20; say ($b + 1)
camelia rakudo-moar a89cfe: OUTPUT«100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001␤»
jaffa4 m: my Int $b = -232323232323232323232323232323232323232323; print $b;
camelia rakudo-moar a89cfe: OUTPUT«-232323232323232323232323232323232323232323»
timotimo not prime, eh?
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␤␤»
jaffa4 that is numeric type
lizmat jaffa4: work in progress: native types NYI
colomon ugh, lots of smoke module failures overnight
lizmat jaffa4: as far as finding out min/max values that way 10:54
colomon oh! can only determine max of Numeric type objects? 10:58
jaffa4 is this going to be fixed: 10:59
colomon …. though Str.max should be Inf too, no?
lizmat at the moment: since everybody seems to think this is a good idea, I should probably implement it for native types
jaffa4 m: class a {multi method m(int32 $i) {};}; a.CREATE().m(4);"
camelia rakudo-moar a89cfe: OUTPUT«===SORRY!=== Error while compiling /tmp/SGIOr_9hLk␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/SGIOr_9hLk:1␤------> hod m(int32 $i) {};}; a.CREATE().m(4);"⏏<EOL>␤ expectin…»
jaffa4 m: class a {multi method m(int32 $i) {};}; a.CREATE().m(4);
camelia rakudo-moar a89cfe: OUTPUT«Cannot call 'm'; none of these signatures match:␤:(a: int32 $i, *%_)␤ in block <unit> at /tmp/5XhTg9iOo1:1␤␤»
timotimo at some point i recall a "AfterAll" and "BeforeAll" value could be introduced
lizmat Inf seems like a numerical concept to me, not a string concept
dalek kudo/nom: df2f8b4 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Make Str.lines much simpler, a little faster still

  /usr/share/dict/words: 2.383 -> 2.082, about 13%
11:00
colomon lizmat: never-the-less, Inf is there in the ordering of strings, too, in p6
m: say "hello" lt Inf
grondilu Str.max should die with an out-of-memory exception :-)
camelia rakudo-moar a89cfe: OUTPUT«False␤»
colomon …. or not?
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
camelia rakudo-moar a89cfe: OUTPUT«Less␤»
lizmat grondilu: please let it fail *just* before that :-)
colomon grondilu: so should Int.max by that logic. ;)
grondilu colomon: ah indeed
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);
camelia ( no output )
11:02 exixt joined
grondilu colomon: well on second thought no, since we have Inf. 11:02
11:07 chenryn left 11:08 exixt left 11:13 SHODAN left
jaffa4 guys, how do I create a new numeric type with constraints in Perl6? 11:16
lizmat mL subset Odd of Int where { $_ % 2 }; my Odd $odd = 2 11:18
m: subset Odd of Int where { $_ % 2 }; my Odd $odd = 2
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␤␤»
lizmat m: subset Odd of Int where { $_ % 2 }; my Odd $odd = 3
camelia ( no output )
11:20 exixt joined
lizmat ok, so now I have a variation of Str.lines that is still 5x as fast as before 11:21
but is not lazy
I'm thinking about making that a candidate reachable by a :eager named parameter 11:22
to be added by optimizers later automagically
or by developers who know what they want
does that make sense ?
jaffa4 lizmat: great 11:23
dalek kudo/nom: f6dd96d | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Add :eager candidates for Str.lines, 5x faster!

So the lazy form is still the default: the eager version could be used when needed, or when the optimizer determines it can (in the future).
11:36
lizmat this 5x speed difference is also a good indication of what to expect from the Big List Refactor, I would think 11:37
11:37 chenryn joined
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
nwc10 by "has a size" I guess it's the same as "is a regular file, and not a socket, tty, pipe, or stuff"
lizmat working on IO::Handle.lines atm
nwc10 OK. I don't know enough to be helpful.
so
lizmat++ 11:41
and I'll go back to drinking coffee
lizmat :-)
lizmat gets another cuppa tea
nwc10 needs to remember to brink a kettle to Salzburg, "just in case" 11:42
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
11:44 chenryn left
Timbus .. better question: what is the list refactor 11:44
timotimo m: say "foobar".index("!") 11:46
camelia rakudo-moar df2f8b: OUTPUT«(Int)␤»
timotimo lizmat: is Str.split already optimized for cases where a limit is given? 11:47
11:48 colomon left
lizmat not as far as I know 11:48
11:48 bjz left, bjz joined
lizmat one of things I'm looking at now that MMD is not costly in the settings anymore 11:48
previously, we need to get things together in one method as MMD was expensive
not so anymore
timotimo cool 11:49
lizmat eager version of IO.lines is about 4x faster 11:50
timotimo neato 11:51
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
11:52 Salai joined
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: ??
timotimo or was that just testing how long it takes to run the method itself? 11:53
not iterating over the result?
lizmat it's basically changing a gather / while into a whiile / push
timotimo mhm, right 11:54
and if we know we're allowed to destroy the list we've created, we can turn the for into a while + shift
lizmat yes, but that would imply passing for() knowledge into the reification
carlin heh, bonus systemd argument in the backlog :) 11:55
11:55 akaseki left
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
camelia rakudo-moar df2f8b: OUTPUT«0␤»
timotimo m: my @a = 1 xx 100_000; my $s = 0; for @a { $s += $_ }; say time - BEGIN time
camelia rakudo-moar df2f8b: OUTPUT«1␤»
timotimo m: my @a = 1 xx 100_000; my $s = 0; for @a { $s += $_ }; say now - BEGIN now
camelia rakudo-moar df2f8b: OUTPUT«0.94479438␤»
lizmat now - BEGIN now ?
timotimo m: my @a = 1 xx 100_000; my $s = 0; while @a { $s += @a.shift }; say now - BEGIN now
camelia rakudo-moar df2f8b: OUTPUT«1.58643147␤»
timotimo er ... oh!
so iterating over lists is already faster than shifting off a list until it's gone 11:56
m: my @a = 1 xx 100_000; my $s = 0; for ^@a { $s += @a[$_] }; say now - BEGIN now
camelia rakudo-moar df2f8b: OUTPUT«1.3809772␤»
timotimo even that is a tiny bit faster than shifting 11:57
good to know!
grondilu why is while/shift slower, though? 11:58
timotimo interesting question; we don't shrink lists that we shift from, so it shouldn't have copying overhead from realloc 11:59
11:59 brrt joined
timotimo xiaomiao: can you give a source or benchmark for the 4kB/s number you have for journal? 11:59
12:03 brrt left 12:04 colomon joined
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
this feels SO dirty in my mind, but it's cool that it could work m)
12:05 brrt joined
dalek kudo/nom: ce95079 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
Add :eager candidates to IO::Handle.lines

  /usr/share/dict/words: 2.787s -> 0.768s (about 3.5x as fast)
12:06
lizmat timotimo: feels like something that would case a global deopt 12:07
*cause
about to go on errands
timotimo feels like something that would cause someone who reads the code to be *super* confused :)
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«===SORRY!=== Error while compiling /tmp/M5_V2CWCXP␤Missing semicolon.␤at /tmp/M5_V2CWCXP:1␤------> thod data { "hi there" } }; $!.resume } ⏏say "done!"␤ expecting any of:␤ method arguments␤ …»
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!"
camelia rakudo-moar df2f8b: OUTPUT«===SORRY!=== Error while compiling /tmp/vdOk_1pmnl␤Unable to parse expression in block; couldn't find final '}' ␤at /tmp/vdOk_1pmnl:1␤------> "hi there" } }; $!.resume }; say "done!"⏏<EOL>␤ expecting any of…»
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!"
camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤done!␤»
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!"
camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤done!␤»
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!␤»
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!"
camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤signal in method doit at /tmp/tBPTh7BChi:1␤␤Trying to unwind over wrong handler␤»
timotimo :(
oh, derp
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!"
camelia rakudo-moar df2f8b: OUTPUT«foobar Test.new()␤signal in method doit at /tmp/GTyswvwhIG:1␤␤Trying to unwind over wrong handler␤»
timotimo :\ 12:10
12:15 brrt left, immortal left 12:16 erkan joined, erkan left, erkan joined 12:28 telex left 12:30 telex joined 12:36 brrt joined
lizmat errands& 12:39
12:40 kaleem left, chenryn joined 12:41 ibo2perl6 joined
ibo2perl6 m: say map( {"d"} ), <a b c>; 12:42
camelia rakudo-moar ce9507: OUTPUT«a b c␤»
dalek kudo-star-daily: e338bbb | coke++ | log/ (14 files):
today (automated commit)
12:43
ibo2perl6 i would expect "d d d"
FROGGS m: say <a b c>.map( { "d" } )
camelia rakudo-moar ce9507: OUTPUT«d d d␤»
12:43 brrt left
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> );
camelia rakudo-moar ce9507: OUTPUT«d d d␤»
ibo2perl6 yes now i see 12:44
12:44 chenryn left 12:45 ajr joined 12:46 ajr is now known as Guest77128, Guest77128 is now known as ajr_
ibo2perl6 but then how can I combine map with ==> ? 12:49
timotimo m: <a b c> ==> map( { "d" }) ==> say 12:50
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== 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␤------> <a b c> ==> map( { "d" }) ==> say…»
timotimo m: <a b c> ==> map( { "d" }) ==> .say
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/D6UUFUG9Tk␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/D6UUFUG9Tk:1␤------> <a b c> ==> map( { "d" }) ==> .say⏏<EOL>␤ expecting any of:…»
timotimo m: <a b c> ==> .map( { "d" }) ==> .say
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/QhZq8F6ceJ␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/QhZq8F6ceJ:1␤------> <a b c> ==> .map( { "d" }) ==> .say⏏<EOL>␤ expecting any of…»
timotimo oh?
did that kind of get busted with the bare say changes?
ibo2perl6 say <a b c> ==> map({"d"} )
m: say <a b c> ==> map({"d"} )
camelia rakudo-moar ce9507: OUTPUT«a b c␤»
ibo2perl6 this doesnt work
timotimo hm? 12:51
tadzik m: <a b c> ==> map({ "d" }) ==> say
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== 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␤------> <a b c> ==> map({ "d" }) ==> say…»
tadzik wtf
works locally
m: <a b c> ==> map({ "d" }) ==> &say 12:52
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/aZ85wrGbhG␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/aZ85wrGbhG:1␤------> <a b c> ==> map({ "d" }) ==> &say⏏<EOL>␤ expecting any of:…»
tadzik argherlartatlatids
timotimo to be fair, the specs say nothing about using say as part of a feed pipeline
m: <a b c> ==> .map( { "d" }) ==> map( *.say )
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/daR6ko83ag␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/daR6ko83ag:1␤------> b c> ==> .map( { "d" }) ==> map( *.say )⏏<EOL>␤ expecting a…»
timotimo m: <a b c> ==> map( { "d" }) ==> map( *.say )
camelia rakudo-moar ce9507: OUTPUT«d␤d␤d␤»
nine Can someone have a look at 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:56
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
you can just collect the results in an array and say the array afterwards:
m: my @result <== map({"d"}) <== <a b c d e>; say @result 12:58
camelia rakudo-moar ce9507: OUTPUT«d d d d d␤»
FROGGS say <a b c>.map( { "d" } ).join 13:01
m: say <a b c>.map( { "d" } ).join
camelia rakudo-moar ce9507: OUTPUT«ddd␤» 13:02
ibo2perl6 <a b c> ==> map({"d"} ) ==> join(',');
m: <a b c> ==> map({"d"} ) ==> join(',');
camelia ( no output )
FROGGS m: say a b c> ==> map({"d"} ) ==> join(',');
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/Dh1zXj8IXj␤Preceding context expects a term, but found infix ==> instead␤at /tmp/Dh1zXj8IXj:1␤------> say a b c> ==>⏏ map({"d"} ) ==> join(',');␤»
FROGGS m: say( a b c> ==> map({"d"} ) ==> join(',') )
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/MTzvYrStv_␤Preceding context expects a term, but found infix ==> instead␤at /tmp/MTzvYrStv_:1␤------> say( a b c> ==>⏏ map({"d"} ) ==> join(',') )␤»
FROGGS gah 13:03
m: say( <a b c> ==> map({"d"} ) ==> join(',') )
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/so6iieiHI9␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/so6iieiHI9:1␤------> say( <a b c> ⏏==> map({"d"} ) ==> join(',') )␤ expectin…»
FROGGS m: <a b c> ==> map({"d"} ) ==> join(',') ==> say
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== 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␤------> > ==> map({"d"} ) ==> join(',') …»
FROGGS meh ;o)
ibo2perl6 m: say ( <a b c> ==> map({"d"} ) ==> join(',') ) 13:04
camelia rakudo-moar ce9507: OUTPUT«d,d,d␤»
FROGGS ohh
13:05 mr-foobar left 13:07 rindolf joined 13:21 akaseki joined 13:23 PZt joined 13:24 Salai left
timotimo .o( gittip is now called gratipay. cute. ) 13:26
[Coke] S05-transliteration/trans.rakudo.moar aborted 56 test(s)
^^ moar with jit and without
S17-supply/start.t 9 - did we get the other original value
^^ moar sans jit
parrot is now failing 248 tests. 13:27
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?
ibo2perl6 This is perl6 version 2014.08 built on MoarVM version 2014.08 13:31
13:32 JimmyZ joined
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 :(
JimmyZ see rakudo.org/2014/08/30/announce-raku...e-2014-08/ # interactive readline that understands Unicode
github.com/fperrad/ljlinenoise # Linenoise in pure LuaJIT, if someone rewrite it in Perl6 :P 13:36
*wants to
13:53 Ven joined
Ven m: <a b c> ==> map({ "d" }) ==> say() # timotimo , tadzik 13:54
camelia rakudo-moar ce9507: OUTPUT«d d d␤»
Ven also, timotimo , WRT your "catch the warn and mix some role", do you know about common lisp's exceptions?
13:54 abraxxa joined
abraxxa i have problem getting panda to work with rakudo 2014.08 13:55
i'm running into github.com/tadzik/panda/issues/96
[Coke] m: 3 ==> say() <==4
camelia rakudo-moar ce9507: OUTPUT«43␤»
abraxxa the second error but regardless of the proxy env vars
timotimo Ven: oooh, of course!
Ven :)
else it's trying to parse it as <words> 13:56
[Coke] oh, hey, that's my bug.
abraxxa [Coke]: yes
Ven timotimo: c2.com/cgi/wiki?CommonLispConditionSystem look at that
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:57
timotimo abraxxa: i agree! 13:58
the problem is that the source files may not be installed any more when we run into such an error
[Coke] looks at RT#122769 and thinks, "uhoh"
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122769
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?
[Coke]: did you find a workaround? 14:00
14:01 mr-foobar joined
[Coke] I have the luxury of having a laptop that is occasionally on an open network with no proxy 14:01
14:02 JimmyZ left
abraxxa [Coke]: as I said I get the error without any env *_proxy var set too 14:02
JSON::Tiny line 51 reads
return $o.ast;
[Coke] perhaps you have a bad copy of the file cached? 14:03
abraxxa which file?
[Coke] ISTR that there was another issue (separate ticket?) where a local empty projects file would cause issues.
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:05 jepeway_ left
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
it's /home/timo/perl6/install/languages/perl6/site/panda on my local machine 14:07
abraxxa omg 14:08
projects.json contains the proxy auth required html
timotimo m)
figured something like that
Ven well, you'll read it if you want to 14:09
14:10 jerrycheung joined
Ven is fine with with stealing from lisp :) 14:10
they got a nice part of the fire of the gods anyway
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
abraxxa i'd like to extend DBIish for Oracle support 14:13
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:14 leont left
Ven timotimo: and then, you can use `invoke-restart` to re-enter the proc in some ways 14:15
These way have been defined with `RESTART-CASE`
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:16
Then you see that DETERMINE-INFINITY uses RESTART-CASE to define "failure handling modes": RETURN-ZERO, RETURN-VALUE, RECALC-USING 14:17
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
Ven so basically, DETERMINE-INFINITY/RECIPROCAL-OF has the code for the function *PLUS* the possible handlers
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
it's very powerful because, unlike exceptions, you don't have only one place to "expect" exceptions and to handle them.
timotimo you have more than one place to expect/handle exceptions, too 14:20
14:20 ibo2perl6 left
timotimo exceptions travel up the stack 14:20
Ven no, not in that way.
[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
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 jerrycheung left
Ven not near the code calling the function, which might be doing something else entirely 14:22
Whew, I'm spammy...
timotimo ah
i think i get it now
so from the catch block you can "goto" any of the restart-cases
Ven yes 14:23
[Coke] how does one re-install panda?
Ven that's basically it :).
and these can re-invoke the function, invoke another one, return some value, tear up the world, ...
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:24
[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:26
ah, reboot. (must have typed "panda rebootstrap!") 14:27
14:28 spider-mario joined, spider-mario left 14:29 denis_boyun left
[Coke] ... and I'm stuck again. 14:29
14:29 denis_boyun joined
[Coke] abraxxa: yes, I gave up, it seems. can't install anything with panda at the moment. 14:30
abraxxa [Coke]: ;(
Ven gave up on panda long ago... except with r*
14:30 [Sno] left
abraxxa [Coke]: rakudo-star includes NativeCall so I should be good without it for the moment 14:30
jnthn evening, #perl6
abraxxa how are you installing modules then? by hand? 14:31
jnthn: hi!
Ven o/, jnthn .
abraxxa reads docs.oracle.com/cd/E11882_01/appdev...LNOCI16209
C is so absolutely unreadable for me 14:32
[Coke] tadzik: hellllp meeeeeee :)
Ven abraxxa: bad C is :p
abraxxa my motivation to add Oracle support to DBIish just went down the drain
jnthn is staying at a hotel with Butterfly in its name, which feels appropriately Perl 6-y :) 14:33
abraxxa I can even find the function the OCI docs say that have to be called to establish a connection in DBD::Oracle 14:34
14:36 spider-mario joined
nine jnthn: I think you're gonna like this :) github.com/niner/Inline-Perl5/blob.../inherit.t 14:37
tadzik [Coke]: 'sup? 14:38
14:38 kaare_ left
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
timotimo ohai jnthn
nine abraxxa: but so does Oracle usually...
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
Ven nine++ 14:40
abraxxa nine: Oracle works since about the same time without a single hickup
Ven abraxxa: C really is easy. It's very basic. So people do all kind of stupid stuff with it
abraxxa don't know why so many people bash it
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?
abraxxa Ven: besides having more weird characters all over the place then perl
Ven abraxxa: uuuh... no
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.
abraxxa what is linking?
jnthn timotimo: yeah, there's a risk of that...
Ven abraxxa: reusing code from libraries and stuff 14:42
You need to tell the compiler "I expose this and that function"
[Coke] tadzik: panda bug github.com/tadzik/panda/issues/96
Ven else it'd mean Windows'd have to give out its code so people could use its api ;)
jnthn timotimo: Best avoid re-tapping. Just take bytes consistenlty if you want to work at that level, then just decode the bufs
[Coke] both abraxxa and I are stuck.
jnthn m: <a b c> ==> map({ "d" }) ==> say() 14:43
camelia rakudo-moar ce9507: OUTPUT«d d d␤»
abraxxa Ven: and why can't it figure that out from the .c file? why an extra .h file?
Ven abraxxa: because it *doesn't* have a C file.
libraries don't give out their source code. They just tell the compiler "you'll have access to that"
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..
Ven abraxxa: docs
abraxxa: were those .c files, you'd need docs too
[Coke] ... nope. on "reinstalling" step, I get the second error (no such method ast)
jnthn nine: Very nice! Now "just" wants some meta-programming bits to make it work out with "is" and not need the fallback :)
abraxxa Ven: the link i pasted before are the docs
Ven abraxxa: I'm not saying the docs are good. I'm saying you're attacking the wrong thing 14:45
[Coke] ... remove the empty projects.json that had gotten installed, re-rebootstrap...
14:45 treehug88 joined, ajr_ left
[Coke] and it fails again, again have an empty projects.json 14:46
14:46 treehug88 left, guru joined, treehug88 joined
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:46
14:47 guru is now known as Guest33852
Ven abraxxa: if they don't want to give out their source, yes. 14:47
14:47 Guest33852 is now known as ajr_
Ven Like in any other languages. 14:47
nine jnthn: cygx already suggested 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.
abraxxa so the main Oracle library file is called libclntsh.so but there is no libclntsh.h, why?
Ven the .so is the "blob" of it all
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:49
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: docs.oracle.com/cd/E11882_01/appdev...tm#i556149
abraxxa is that sufficient/the same as in the h file? docs.oracle.com/cd/E11882_01/appdev...tm#i556149
hm, must be a smith, returns a sword ;)
nine abraxxa: from what I see yes
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
abraxxa: oh and of course, that it's closed source ;)
abraxxa so why is the first parameter marked as OUT? is it the return value?
[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.
[Coke] abraxxa, you're on your own. :)
abraxxa i thought one * is a pointer, what are two **?
[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.
nine abraxxa: a pointer to a pointer :)
[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?
nine abraxxa: let foo be a pointer. If you pass &foo (a pointer to foo) to the function, it can modify foo.
[Coke] maybe provide a way for me to pull down that file manually.
nine abraxxa: it's C's way of allowing multiple return values.
abraxxa nine: i see 14:56
and is that an OpaquePointer in NativeCall?
nine abraxxa: it's exactly the same in Perl: my $a = 'foo'; modify_it(\$a); # $a may now have changed
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.
abraxxa to be able to modify it
nine abraxxa: to be able to modify wherever the pointer points to, not the pointer itself
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.
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 }
nine abraxxa: github.com/jnthn/zavolaj#passing-a...ing-values 15:01
abraxxa nine: those are the native C types, but the Oracle library defines its own ones
ub4 for example 15:02
which seems to take a constant
nine ub4 sounds like unsinged bytes 4 which I'd guess is an uint32
abraxxa but how do i find out for sure? 15:03
nine Seems like I'm right: www.oracle.com/pls/db112/search?rem...mp;partno=
To know for sure you could search the header files for it's definition. 15:04
abraxxa this one? docs.oracle.com/cd/E11882_01/appdev...#ADFNS1409
hoelzro o/ perl6 15:05
nine abraxxa: looks good 15:06
abraxxa oratypes.h is seems
i guess it makes sense to keep these names and alias them in the NativeCalls module 15:07
nine certainly
15:08 denis_boyun left
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
oh, nine said that already 15:11
abraxxa TimToady: the NativeCall README doesn't mention those
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
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
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
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?
Ven PerlJam: historical reasons :o) 15:17
ENOLARRY
diakopter eh
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)
abraxxa nine: ok, thanks 15:19
15:19 FROGGS left 15:20 anocelot_ left 15:21 virtualsue left
nine abraxxa: maybe you'll learn C after all :) 15:21
abraxxa nine: i don't want to! who cares about memory management 15:22
TimToady
.oO(people who interface to native C code?)
15:23
Ven PerlJam: I'm kidding anyway haha
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
PerlJam ok, thanks.
TimToady and Perl 5 is not the "community rewrite" of Perl :) 15:25
timotimo oh, tony-o == segomos
that's good to know
.seen segomos
yoleaux I saw segomos 22 Jul 2014 20:47Z in #perl6: <segomos> m: say s:g/'perl5'/'perl6'/.so;
abraxxa ah yes....const void *(*malocfp) (void *ctxp, size_t size),
so those are three params but for some reason they are not separated by , 15:27
timotimo huh? 15:28
nine abraxxa: that's only one parameter, it's a function pointer
timotimo that's a single parameter, which refers to a function with two arguments returning a void pointer
what's the cool program called that interprets such syntax? cdecl?
abraxxa those docs list them are three params: docs.oracle.com/cd/E11882_01/appdev...tm#i556149
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
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
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
welcome to "learning higher order functions without any explanation"
abraxxa i why do i need to specify the functions params? 15:31
Ven well then, friday o/
15:31 Ven left
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);
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
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 :)
abraxxa nine: ah, because the compiler doesn't know which pointer to one of the elsewhere defined functions might be passed in there 15:34
timotimo abraxxa: it can't really "link to its docs" 15:35
because you're expected to supply the implementation
nine abraxxa: yep
abraxxa but that's optional to help finding errors at compile time?
nine abraxxa: no it's absolutely neccessary
abraxxa and for the Perl interface it doesn't matter, it only gets a pointer to a function 15:36
15:36 woolfy left, lizmat_ joined, woolfy joined
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 15:38 lizmat left
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
so possible runtime error instead of compile time error
tadzik [Coke]: ah, heh 15:39
abraxxa is size_t a native C data type?
nine abraxxa: yes, standardized in C99. It's an int basically 15:40
15:41 we is now known as bcode
abraxxa oratypes.h has the line # define MINSIZE_TMAXVAL (size_t)4294967295 which made me think it's a uint32 15:41
tadzik [Coke]: well, "failed to resolve host name" doesn't sound like a panda problem :) 15:42
15:43 molaf joined
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:43
abraxxa so int in NativeCall? 15:44
uint
nine yes
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
lizmat_ wouldn't it make sense to use a dynamic variable for thet, e.g. $*EAGER 15:46
?
TimToady nope, wrong hammer
lizmat_ whenever you want a stack to be eagerly done, you do:
15:46 lizmat_ is now known as lizmat
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:46
nine: means int32 in NativeCall, right? 15:47
15:47 muraiki left
abraxxa ah, no 15:47
minimum a 32bit signed int, maximum what the platform supports, right?
15:47 muraiki joined
abraxxa so int in NativeCall 15:47
15:48 zakharyas left
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
PerlJam lizmat: even if only by the voices in TimToady's head ;) 15:49
15:49 kaleem left
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
which is why they're also the wrong solution to 'use fatal'
dalek rl6-roast-data: fe7abd1 | coke++ | / (6 files):
today (automated commit)
lizmat is not seeing when you would want / need to unset dynvars 15:50
just leaving the scope where you did 'my $*EAGER = True" would be enough?
TimToady for instance, the outside of a for loop might be eager, but we still have to evaluate its list lazily
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.
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
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?
TimToady one of the major points of the GLR is that we not renegotiate this at every gimme/reify
PerlJam GLR?
[Coke] ah, nevermind.
PerlJam oh!
heh.
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
right?!? ;)
15:53 molaf left
[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
most of rest of what I've done is side effects of trying to feel my way into the GLR
but yeah, I hope to make the term obsolete pretty soon
dalek ecs: 7d07bff | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add GLR lemma
TimToady so sorry I'm a bit morning-snippy, but I have been thinking about this a lot... 15:55
and someone just asked me to do their PHP homework! 15:56
lizmat
.oO( silence descended on the channel )
15:57
15:58 ajr_ left 15:59 guru joined
nine That was a joke wasn't it? 15:59
diakopter maybe write it in the Perl subset of PHP
15:59 guru is now known as Guest59280
TimToady alas, no 15:59
15:59 Guest59280 is now known as ajr_
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? 15:59
diakopter The more people you ask.. 16:00
lizmat
.oO( bounce the mail to Rasmus )
PerlJam Because Perl people are super smart and can solve any problem, of course! :)
TimToady considered it :)
16:01 pmurias joined
TimToady but I'm sure Rasmus deals with this too 16:01
pmurias TimToady: you should send him the answer in Perl 6 ;)
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:04
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.
PerlJam feels weird just talking to "regular" folk most times. 16:08
[Coke] (bacon #: 4)
PerlJam++ true
(bacon - though I have never heard of the other 3 shows in the chain to bacon, so that can't be good) 16:09
TimToady should publish something with his son Aron in order to acquire an Erdős number 16:10
TimToady used to work with an Erdős #1 16:11
[Coke] Nice! 16:13
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
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 :)
TimToady what would your bacon number have been? 16:19
TimToady noclooney 16:20
it appears there is also a colony of ants that wishes to have a personal relationship with me... 16:21
huf well, they can have a very personal relationship that lasts the rest of their life... 16:22
although it would be the opposite of fulfilling 16:23
TimToady ponders committing insecticide...
huf think of it as breeding more sensible ants 16:24
ones that stay out of sight :)
TimToady "Think of it as evolution in action." --Niven & Pournelle 16:25
16:25 FROGGS[mobile] joined
TimToady from that book I can never remember the name of... 16:27
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:28
to make them faster 16:29
TimToady 1) don't keep deciding things over and over
Timbus lists took a very long time just to work properly after all
TimToady 2) don't use object dispatch where function dispatch will work
[Coke] TimToady: mote? earthfall?
TimToady no, the one with the arcology 16:30
3) make better use of the policy information we know to set up minimal supply chains
Timbus ah. 3 is what i was interested in 16:31
TimToady 4) figure out how to acquire more information about demand
5) figure out better when we have pure code that can work ahead without side effects
6) delay decisions until first handshake of supply and demand 16:32
7) rewriting eager gather/take into normal loops and pushes
8) chopping out the middleman where possible (deforesting, in Haskell terminology) 16:33
9) avoiding multiple copies of the data
10) ??? 16:34
11) Profit!!!
nine Profit!
Timbus heh
TimToady I guess 3 and 8 are roughly the same idea 16:36
16:36 [Sno] joined, akaseki is now known as Salai
Timbus with 7, do you mean, write eager code paths manually, or just generate faster code 16:37
TimToady I mean taking code that is written as gather/take, and internally rewriting it to my @batch; ... @batch.push: $x 16:38
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
perhaps by examination, perhaps by declaration
Timbus yeah this seems like quite a refactor
16:40 dayangkun left
TimToady understanding different batching strategies like slow-start 16:40
16:40 Rotwang left
TimToady so, for instance, you're doing initializing something you don't know the size of with pure-thunk() xx * 16:41
on the one hand, you don't want to call pure-thunk 100000 times to initialize an array that's 10 elements
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
TimToady that's the idea
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:43
consider a pragma that changes the default list policy from lazy to any of eager, batched, hyper, etc. 16:45
16:45 brrt joined, ajr_ left
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
TimToady yup, we have that in our favor 16:46
16:47 akaseki joined
abraxxa nine: can you please explain how I should call the OCIEnvCreate function in my Perl6 module similar to docs.oracle.com/cd/E11882_01/appdev...LNOCI16209 ? 16:48
16:49 Salai left, brrt left 16:50 akaseki is now known as Salai, xinming_ joined
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:52
16:53 xinming left 16:54 ajr_ left, pmurias left 16:56 Rotwang joined 17:03 treehug88 left
timotimo out parameters? are those not simply pointers? 17:12
for those I would suggest a CArray
17:13 gfldex joined 17:15 grondilu_ joined, Woodi_ joined
abraxxa timotimo: why a CArray? 17:18
17:18 Woodi left, BenGoldberg joined 17:19 grondilu left
timotimo because that gives you a memory location in which you can have space for a value or multiples 17:19
abraxxa even if I only need one pointer? 17:20
timotimo my $a = CArray[TypeOfThing].new(); $a.push: TypeOfThing
yes, you need a location C can write to 17:21
CArray is easiest AFAICT
abraxxa i'm not that far to understand what you mean 17:25
currently I'm trying to pass username, password and the database name as UTF-16 to Oracle
it also needs the length in bytes for those three
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:26
i guess i always get a Buf object back and the correct method is .elems 17:28
BenGoldberg r: "abc".encode('utf-16').WHAT.say 17:31
camelia rakudo-{parrot,jvm,moar} ce9507: OUTPUT«(utf16)␤»
abraxxa should utf-16 not always be 2 bytes per char? 17:35
nine abraxxa: no, utf-16 is a variable length encoding 17:36
hoelzro abraxxa: utf-16 can also have 4 bytes for some chars
BenGoldberg Correct. Each char is encoded as a multiple of two bytes.
abraxxa ok, so "Bar✌".encode('UTF-16').elems returning 4 is correct?
BenGoldberg m: "Bar✌".encode('UTF-16')[*].say 17:37
camelia rakudo-moar ce9507: OUTPUT«66 97 114 9996␤»
BenGoldberg .u ✌
yoleaux U+270C VICTORY HAND [So] (✌)
abraxxa m: "Bar✌".encode("UTF-16").say 17:38
camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 270c>␤»
abraxxa so aren't this five bytes?
BenGoldberg A Buf isn't always bytes. 17:39
It could be bytes, or shorts words, or long words, or long long words, etc.
Or bits.
Or nibbles.
abraxxa BenGoldberg: doesn't read like it: doc.perl6.org/type/Buf 17:41
BenGoldberg "In the abstract it is just a list of integers" 17:42
abraxxa ah, not int8 17:43
so how do i get the number of bytes from a Buf?
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
Because obviously just using UTF-8 would have been too easy...
17:44 Px12 joined
TimToady hey, it "works" for Perl 5 :) 17:44
17:44 FROGGS joined
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.
BenGoldberg m: TypedArray.new.say 17:47
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/OS26z5VJeO␤Undeclared name:␤ TypedArray used at line 1␤␤»
BenGoldberg The graph on doc.perl6.org/type/Positional.html suggests the existance of a TypedArray class, but it doesn't seem to exist?
colomon nine++ # added Inline::Perl5 to ecosystem! 17:48
hoelzro nine++ 17:49
BenGoldberg 9++ ?
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
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
colomon m: "Bar✌".encode("UTF-8").say 17:55
camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 e2 9c 8c>␤»
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.
colomon m: "Bar✌".encode("UTF-8").elems.say
camelia rakudo-moar ce9507: OUTPUT«6␤»
colomon m: "Bar✌".encode("UTF-16").elems.say
camelia rakudo-moar ce9507: OUTPUT«4␤»
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
camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 270c>␤»
colomon m: "Bar✌".encode("UTF-16").list.max.say 17:57
camelia rakudo-moar ce9507: OUTPUT«9996␤»
BenGoldberg m: "Bar✌".encode("UTF-16")[0].WHAT.say 17:58
camelia rakudo-moar ce9507: OUTPUT«(Int)␤»
colomon m: say 9996.base(16)
camelia rakudo-moar ce9507: OUTPUT«270C␤»
BenGoldberg m: "Bar✌".encode("UTF-8")[0].WHAT.say
camelia rakudo-moar ce9507: OUTPUT«(Int)␤»
colomon …. no, this line of thinking is wrong.
I think
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
colomon BenGoldberg: I dunno, but it sounds like what is needed here.
oh! 18:00
m: say "Bar✌".encode("UTF-8") ~~ bug8
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/NnZZR7WfuF␤Undeclared routine:␤ bug8 used at line 1␤␤»
colomon m: say "Bar✌".encode("UTF-8") ~~ buf8
camelia rakudo-moar ce9507: OUTPUT«False␤»
colomon m: say "Bar✌".encode("UTF-8") ~~ buf16
camelia rakudo-moar ce9507: OUTPUT«False␤»
BenGoldberg bug8 was closer ;) 18:01
japhb blob8 or utf8, IIRC
colomon I think those last two should work, according to perlcabal.org/syn/S32/Containers.html#Buf
japhb goes to check
colomon m: say "Bar✌".encode("UTF-8") ~~ Buf
camelia rakudo-moar ce9507: OUTPUT«False␤»
colomon or not
BenGoldberg m: say "Bar✌".encode("UTF-8") ~~ blob8
camelia rakudo-moar ce9507: OUTPUT«True␤»
BenGoldberg Thanks, japhb :)
colomon m: say "Bar✌".encode("UTF-16") ~~ blob8 18:02
camelia rakudo-moar ce9507: OUTPUT«False␤»
FROGGS m: say "Bar✌".encode("UTF-8") ~~ utf8
camelia rakudo-moar ce9507: OUTPUT«True␤»
colomon m: say "Bar✌".encode("UTF-16") ~~ blob16
camelia rakudo-moar ce9507: OUTPUT«True␤»
colomon yeah, there you go
japhb BenGoldberg: np. :-)
colomon japhb++
18:03 FROGGS[mobile] left 18:05 SamuraiJack joined
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␤␤»
BenGoldberg Where is Blob docu-ed?
18:07 brother| left, brother joined
timotimo what makes you think that we have any docs at all? 18:08
:S
BenGoldberg m: say blob8.new("Bar✌".encode("UTF-16")) 18:09
camelia rakudo-moar ce9507: OUTPUT«Buf:0x<42 61 72 0c>␤»
abraxxa m: say blob8.new("Bar✌".encode("UTF-16")).elems
camelia rakudo-moar ce9507: OUTPUT«4␤»
abraxxa ARGH 18:10
BenGoldberg I'd expected it to be at doc.perl6.org/type/Blob.html , but that's a 404 not found.
abraxxa without the html, but still the same
the buf8 just takes the last 8 bits of each element 18:13
TimToady m: <a b c> ==> map({ "d" }) ==> say()
camelia rakudo-moar ce9507: OUTPUT«d d d␤»
TimToady timotimo: ^^ that's what ibo2perl6 wanted
and one of the motivations for distinguishing say() from say 18:14
feed operators are currently the only way to add extra list args outside of parens 18:15
std: say(): 1,2,3
camelia std 53b3ca6: OUTPUT«ok 00:01 124m␤»
TimToady STD allows this syntax for that though
std: say() <== 1,2,3 18:16
camelia std 53b3ca6: OUTPUT«ok 00:01 123m␤»
TimToady means roughly the same as that, but feeds may imply pipelining between threads
jaffa4 m:<a b c> ==> map({ $_ x 2 }) ==> say() 18:17
TimToady space after :
jaffa4 m: <a b c> ==> map({ $_ x 2 }) ==> say()
camelia rakudo-moar ce9507: OUTPUT«aa bb cc␤»
BenGoldberg m: say(): 1, 2, 3; 18:18
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== Error while compiling /tmp/oLGnuPveuC␤Two terms in a row␤at /tmp/oLGnuPveuC:1␤------> say()⏏: 1, 2, 3;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix…»
TimToady oh, I see Ven++ made the same say() suggestion
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
TimToady I just said that :)
18:20 dwarring joined
jaffa4 m: say : 1,2,3; 18:20
camelia rakudo-moar ce9507: OUTPUT«===SORRY!=== 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␤------> say ⏏: 1,2,3;␤ …»
timotimo sorry, i was still in backscroll :P
moritz \o 18:22
timotimo ohai moritz 18:23
abraxxa DBDish isn't installable with rakudo-star-2014.08, says that pir isn't a known compilation target 18:24
timotimo that's when you have a moarvm rakudo star, eh? 18:25
abraxxa yes
timotimo has to build a rakudo afresh to check it out 18:26
oh, it has a makefile 18:27
that's not so awesome
FROGGS abraxxa: DBIish is included is rakudo star... why do you want to build it?
and, normally you would not use the Makefile but just do: panda install . 18:28
timotimo ah
so easy :)
FROGGS and since panda does not support Makefiles it should work out :o) 18:29
18:30 rindolf left
abraxxa FROGGS: i'm trying to adding Oracle support 18:30
FROGGS abraxxa: I see, but still, just use panda to install it :o) 18:31
abraxxa: it will pick up added modules, run tests and generally do the right thang
I still have to smile about the php homework *g* 18:32
abraxxa FROGGS: thanks
FROGGS abraxxa: you're welcome
abraxxa why not remove the makefile?
FROGGS abraxxa: that's what I wanted to ask moritz right now :o)
moritz: ^^
moritz: do you mind removing DBIish's Makefile?
moritz do it, just also patch the README accordingly
FROGGS meh :P 18:33
ohh, I even can do it
dalek Iish: f23e1d9 | (Tobias Leich)++ | README (2 files):
rename README to README.pod, so github formats it nicely
18:34
abraxxa still doesn't format it 18:35
dalek Iish: 3511bdb | (Tobias Leich)++ | README.pod:
formatting tweaks
18:36
FROGGS abraxxa: but now
abraxxa yes, what did you change?
ah, see 18:37
how can i run a specific test? is there something like prove? 18:38
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.
nine: seems there are no unsigned types in NativeCall
moritz: thanks, looks like it wants an alias
nine abraxxa: ok, you can usually get by without them though. 18:40
dalek Iish: b87c5c0 | (Tobias Leich)++ | README.pod:
mention installation using panda
abraxxa nine: so what should i use instead? Just int32?
nine abraxxa: yes
abraxxa t32
nine abraxxa: it only makes a difference for values > MAXINT/2 18:41
dalek Iish: e59df94 | (Tobias Leich)++ | Makefile:
remove Makefile, long live panda

The Makefile only supported Parrot anyway.
18:42
abraxxa FROGGS++
18:42 gtodd left
abraxxa site comes after lib in the include order? 18:46
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
nine jaffa4: I don't know but also cannot see how that would be possible since it cannot even have attributes. 18:54
jaffa4: so I guess it might inherit from other CPointer classes 18:55
PerlJam would guess that too
japhb Is it expected that panda fails its own t/ecosystem.t on r-p? 18:56
FROGGS japhb: there is a regressions since a few days I think 18:57
japhb Bah.
OK, thanks. Only r-p, or all Rakudos?
FROGGS japhb: only r-p
18:58 darutoko left
japhb OK, then I'll turn r-p off for now. 18:58
FROGGS japhb: does it complain about VMThreads?
japhb t/ecosystem.t .. use of uninitialized value $state of type Any in string context in block at lib/Panda/Ecosystem.pm:28
use of uninitialized value of type Any in string context in any at gen/parrot/BOOTSTRAP.nqp:87
No such method 'chars' for invocant of type 'Any'
FROGGS ahh, this one
japhb And then a backtrace
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?
abraxxa utf8, utf16 and ascii 19:00
jaffa4: see github.com/jnthn/zavolaj/#passing-...ing-values
19:01 guru joined
PerlJam S32/Str:index # test 19:01
jaffa4 utf16 is which by BE nad LE?
19:01 guru is now known as Guest15402, Guest15402 is now known as ajr_
TimToady jaffa4: it's either, but if you don't specify it generally defaults to your current arch 19:04
that being said, I wonder if we're assuming an archecture when we shouldn't 19:05
*architecture
19:06 telex left
abraxxa how can i find out where the error 'Native call expected object with CPointer representation, but got something else' comes from? 19:08
19:08 telex joined
TimToady some kind of recursive grep on the source 19:09
or are you talking about a stack trace? 19:10
abraxxa yes, that would be fine to be sure
TimToady there's something mysterious that prevents some stack traces in some cases; not sure what's causing that yet 19:11
agree that it's higly irritating to just get an error message, with not even a line number to look at 19:12
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
but this message looks like it comes from NativeCall 19:14
abraxxa it does
TimToady has never looked inside that 19:15
abraxxa problem is I don't even know which part of *my* code triggers it
BenGoldberg m: say "Bar✌".encode("UTF-16-LE"); # how do i do this?
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␤␤»
TimToady what I did when I had the problem was annotate the messages in the source to figure out which one was being triggered
then I put an explicit backtrace in
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
BenGoldberg p: say "Bar✌".encode("UTF-16-LE");
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␤␤»
BenGoldberg Encoding #-1 ??
abraxxa when i add a warn to my code the line number is a bit of
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␤␤»
moritz error message LTA
TimToady j: say "Bar✌".encode("UTF-16LE");
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␤␤»
moritz my theory is that pir::findencoding translates unknown encodings into -1 19:18
and we don't catch that error, and pass that on to whatever handles the encoding, which then dies with this weird error message
abraxxa i have no idea why it spits out that error
nine: do you have an idea?
i'm trying to call that function docs.oracle.com/cd/E11882_01/appdev...tm#i562098 19:19
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
jaffa4 Is there do/include file in Perl 6? 19:29
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
timotimo told me that before but I didn't understand 19:32
19:34 rurban left
abraxxa still the same error ;( 19:35
19:36 BizarreCake left 19:39 zakharyas joined
timotimo what's your code look like? 19:39
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.
abraxxa: gist.github.com 19:41
abraxxa paste.scsys.co.uk/423118
timotimo we like gist, non-private gists can be directly executed by camelia
abraxxa ok, next time 19:42
timotimo where does it explode?
abraxxa the example in the docs passes 0 instead of pointers though: docs.oracle.com/cd/E11882_01/appdev...LNOCI16209
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?
abraxxa :1
timotimo huh, malocfp, ralocfp and mfreefp are IN parameters
[Coke] timotimo: did that get fixed? ISTR gistEVAL was borked for a long time
abraxxa nine: yeah, those are constants I've defined 19:44
timotimo: does that mean i don't need a CArray or OpaquePointers?
timotimo oh?
i thought it just doesn't like private gists?!
abraxxa cause I interpreted that void *(*malocfp) does mean pointer to a pointer because of the two * 19:45
timotimo hold on. 19:46
cdecl gives me a syntax error :( 19:47
abraxxa timotimo: see docs.oracle.com/cd/E11882_01/appdev...tm#i562098 19:48
timotimo i think it's a single pointer 19:50
abraxxa i had tried that before
timotimo well, it's a function pointer, so it'll want special attention
abraxxa and do i need to pass those memory allocation functions or does 0 mean undefined? 19:51
timotimo that's something the documentation should tell you 19:52
(but apparently it doesn't tell you)
abraxxa the error is now Connect failed with error Native call expected object with CArray representation, but got something else 19:53
but i only have two CArray params now
$envhpp and $usrmempp 19:54
timotimo did you see above how to declare a function pointer argument?
19:55 BenGoldberg left, Ben_Goldberg joined
abraxxa where above? in the docs or the scrollback? 19:55
timotimo scrollback
abraxxa CArray[OpaquePointer] $envhpp, ? 19:56
timotimo no, hold on
172922 nineabraxxa: &malocfp(OpaquePointer, int --> OpaquePointer) in NativeCall 19:57
abraxxa i don't have a user defined memory allocation function to pass it
timotimo you may still have to give it the right type, no? 19:58
abraxxa why would it complaint about a CArray when i've defined it as OpaquePointer? 19:59
but be one of the two params defined as CArray[OpaquePoniter]
20:00 gaussblurinc_ joined
dalek volaj/cglobal: ac770b5 | (Tobias Leich)++ | lib/NativeCall.pm6:
cglobals are made available by a sub instead of trait

This way we can bind a proxy to a variable (jnthn++) instead of declaring a subroutine that feels wrong for such a task. We already can read from global C variables, but we still need the correct primitive to write to a memory location.
20:00
FROGGS timotimo: do we already have something that let me write to a piece of mem? 20:03
(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:04 SamuraiJack left
FROGGS timotimo: it will complain that the source is not a pointer :o) 20:05
timotimo but ... that's the point of casting?!
can you create an ObjAt from an integer?
m: ObjAt.new(1024);
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␤␤»
FROGGS star-m: say OpaquePointer.new(1234) 20:06
camelia star-m 2014.04: OUTPUT«===SORRY!=== Error while compiling /tmp/azRHbRixG4␤Undeclared name:␤ OpaquePointer used at line 1␤␤»
FROGGS star-m: use NativeCall; say OpaquePointer.new(1234)
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␤␤»
moritz timotimo: by boxing a string
timotimo maybe an OpaquePointer gets created with box_I?
FROGGS no, that star is just too old
moritz m: say nqp::box_s(ObjAt, '1024')
camelia rakudo-moar ce9507: OUTPUT«Cannot unbox a type object␤ in block <unit> at /tmp/5Te_tdnY9f:1␤␤»
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
timotimo also, i think the string comes first in box_s
m: say nqp::box_s('1024', ObjAt) 20:08
camelia rakudo-moar ce9507: OUTPUT«1024␤»
moritz builds a newer star for camelia 20:09
FROGGS moritz++ # :o)
if I wasn't that tired I'd implement OpaquePointer.alloc and .free 20:12
and then make a list of things JNA has and we don't
err, JNI
well, J-something anyway
abraxxa so is there something i could do or won't that work with the current NativeCall features? 20:13
FROGGS many stuff works... I am currently binding libxml2 20:14
abraxxa am i'm doing something wrong? 20:15
FROGGS I dunno, I didn't backlog
moritz now I noticed that I haven't built parakudo in a very long time 20:18
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:␤»
hoelzro should that give a more intesting error message?
FROGGS ohh yes please :o)
hoelzro ok, that's a LHF I can put on my TODO list =) 20:21
<!> always fails, right? so [ <foo> <!> || <bar> ] will always try to match <bar>, right? 20:24
moritz I think so, yes 20:25
and will terminate LTM
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
20:29 zakharyas left
hoelzro basically, I want to alter a token to fail entirely, but to provide as much diagnostic information as I can 20:29
moritz I think there are backtracking control primitives specced for that, but rakudo doesn't implement them 20:30
:, :: and :::
and I think :: is what you want
hoelzro that's what I was thinking 20:31
but I noticed that they aren't used in Rakudo itself, which made me nervous
apparently rightfully so 20:32
20:32 vendethiel- left
moritz woah, rakudo-p setting compilation is REALLY slow 20:34
200s for stage parse
where moar is below 50s
FROGGS mine takes about 105s when moar takes 33s 20:35
but perhaps the amount of RAM matters here too 20:36
moritz m: say 105 / 33
camelia rakudo-moar ce9507: OUTPUT«3.181818␤»
20:40 cooper_ joined 20:41 cognome left, vendethiel joined, cognome joined
abraxxa i pushed my work to github.com/abraxxa/DBIish/commit/f...ef5c192765 20:45
dalek kudo/nom: 34cf7a9 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Add some comments about eager candidates
timotimo wow, much code
abraxxa: you misspelt "DBI" as "DBD" in the explanation at the way bottom 20:46
abraxxa timotimo: it started as a copy of Pg.pm6 20:47
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?
moritz abraxxa: basically the whole pod block at the end
abraxxa moritz: yeah 20:49
i didn't want to invest time in docs as long as not even the most basic call works 20:50
nine abraxxa: what does your current version look like? 20:51
abraxxa nine: what i pushed to github
nine abraxxa: URI?
abraxxa nine: github.com/abraxxa/DBIish/commit/f...ef5c192765 20:52
moritz abraxxa: IMHO it's better to simply cut away the docs than keep them when they are wrong 20:55
abraxxa moritz: agreed 20:56
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
nine abraxxa: looks quite sane to me. What's the status? Pity that I can't test myself. 20:59
moritz (invitation sent)
abraxxa nine: Connect failed with error Native call expected object with CArray representation, but got something else 21:00
moritz: thanks, accepted
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.
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.
abraxxa: yep, that's what I meant right now.
abraxxa nine: any idea what triggers the error? 21:06
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:08
21:09 jaffa4 left
timotimo sprinkle say statements %) 21:15
or use the debugger
abraxxa nine: seems to be the first one 21:24
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:29 ClarusCogitatio left 21:31 ClarusCogitatio joined 21:37 cognome_ joined 21:38 [particle] joined, ClarusCogitatio left 21:39 Alina-malina left
dalek p: a3e805a | (David Warring [email@hidden.address] | examples/rubyish/rubyish.nqp:
[examples/rubyish] improved handling of package constants
21:39
21:40 cooper__ joined, Alina-malina joined, tinita_ joined, grondilu joined 21:41 baest_ joined, ClarusCogitatio joined 21:42 ChoHag left, ChoHag joined, Exodist left, Exodist joined 21:43 cognome left, grondilu_ left, [particle]1 left, tinita left, cooper_ left, baest left, geekosaur left, geekosaur joined 21:44 ggherdov left 21:45 timotimo left, synopsebot left, Psyche^ left, Psyche^ joined, Ben_Goldberg left 21:46 BenGoldberg joined, synopsebot joined, Px12 left
nine sleep & 21:47
21:48 mberends joined, ggherdov joined 21:49 gaussblurinc_ left 21:55 abraxxa left 21:59 treehug88 left 22:00 cognome_ left 22:01 cognome joined 22:06 cognome left 22:11 spider-mario left 22:12 japhb_ joined, isacloud____ left 22:13 vendethiel- joined 22:14 nwc10_ joined, jlaire_ joined, yogan_ joined, isacloud_____ joined, Timbus_ joined 22:15 sivoais_ joined, petercom1and joined 22:16 dj_goku_ joined, eternaleye_ joined 22:17 nebuchad` joined 22:18 ggherdov_ joined, vike joined, Psyche^_ joined, ggherdov left, Psyche^ left, bjz left, Timbus left, esaym153 left, labster left, sivoais left, renormalist left, petercommand left, Celelibi left, yogan left 22:19 cooper__ left, ggherdov_ is now known as ggherdov, sivoais_ is now known as sivoais, esaym153 joined 22:20 sivoais left, sivoais joined, bjz joined, bcode_ joined 22:21 timotimo joined 22:24 renormalist joined 22:25 DarthGandalf left, mst_ joined, bcode left, bcode_ is now known as bcode, esaym153 left 22:26 esaym joined, lizmat_ joined, kuroseki joined 22:27 Rotwang left 22:28 DarthGandalf joined, petercom1and left, ChoHag left, grondilu left, telex left, gfldex left, slavik left, grondilu joined 22:29 dj_goku_ left, japhb_ left, Alina-malina left, avuserow left, ingy left, Colby` joined, bloonix_ joined, Psyche^_ left, Salai left 22:30 petercommand joined, ggoebel1111114 is now known as 17SAA7ZD9, muraiki left, lizmat left, \00 left, 17SAA7ZD9 left, firnsy left, daxim left, mtj_ left, Pleiades` left, silug left, Colby` is now known as Pleiades`, telex joined 22:31 japhb_ joined, slavik joined, guru joined, guru left, cognome joined 22:32 vendethiel left, colomon left, eternaleye left, nebuchadnezzar left, bloonix left, vike1 left, jlaire left, betterworld left, robinsmidsrod left, _sri left, go|dfish left, dj_goku left, mst left, nwc10 left, japhb left, eternaleye_ is now known as eternaleye 22:33 cognome left, cognome joined, bcode_ joined, nwc10 joined, pochi joined
retupmoca t/09-nativecast.t ...... Failed 8/10 subtests # :( 22:34
22:37 betterworld joined, cognome left 22:38 timotimo left, bcode left, vike left, nebuchad` left, ggherdov left, yogan_ left, nwc10_ left, geekosaur left, baest_ left, ajr_ left, xinming_ left, woolfy left, xfix left, pochi_ left, Akagi201 left, oetiker left, Guest42178 left, ivanshmakov left, bcode_ is now known as bcode 22:39 labster_ joined 22:41 bjz left, xfix joined, xfix left, xfix joined, breinbaa1 joined, arnsholt joined, ggoebel1111116 joined, mtj_ joined, breinbaas left, arnsholt_ left, jercos left 22:42 telex left, BenGoldberg left, noganex_ joined, Akagi201 joined, Psyche^ joined, xragnar left, pmichaud left, ivanshmakov joined, DELLtra joined 22:43 grondilu_ joined, ingy joined, vendethiel- left, ashleydev left, gfldex joined, ilbot3 left, Tene_ joined, Tene_ left, Tene_ joined, itz left, fling left 22:44 noganex left, hugme left
DELLtra o/ 22:44
22:44 BenGoldberg joined, _sri joined, kst left, jtpalmer left, robinsmidsrod joined 22:45 ggherdov_ joined, thilp_ left, itz joined, bjz joined
DELLtra o/ 22:45
hi
I need help with this scritp not understand fpaste.org/133306/10556906/ 22:46
22:46 vendethiel joined 22:47 avuserow joined, xragnar joined 22:48 Tene left, betterworld left, japhb_ left, Pleiades` left, grondilu left, djanatyn left, mst_ left, eternaleye left, zoosha left 22:50 djanatyn joined, japhb joined 22:52 geekosaur joined 22:53 eternaleye joined 22:54 firnsy joined, jtpalmer joined, Pleiades` joined, mst joined, Pleiades` left, Pleiades` joined, firnsy left, firnsy joined 22:55 betterworld joined, jercos joined, Celelibi joined, xinming joined, go|dfish joined 22:57 gfldex left, fling joined 22:58 baest joined, colomon joined 22:59 ClarusCogitatio left 23:00 cognome joined 23:02 oetiker joined 23:06 vendethiel left, itz left, arnsholt left, hugme joined, arnsholt joined, ChanServ sets mode: +v hugme 23:08 telex joined, [particle] left, bloonix_ left, fling left 23:09 exixt left 23:10 skarn joined, skarn is now known as Guest49163, go|dfish left, awwaiid left 23:11 ivanshmakov left 23:12 djanatyn left 23:13 hugme left 23:14 Akagi201 left, MilkmanDan left, xragnar left, MilkmanDan joined, MilkmanDan left, MilkmanDan joined 23:15 sivoais left 23:16 Akagi201 joined, grondilu_ left, avuserow left, esaym left, grondilu joined 23:17 hugme joined, ChanServ sets mode: +v hugme, ClarusCogitatio joined 23:20 eternaleye left 23:21 eternaleye joined 23:22 camelia left 23:27 bloonix joined 23:31 vendethiel joined 23:33 xragnar joined, djanatyn joined 23:34 pmichaud joined 23:36 muraiki joined 23:37 go|dfish joined 23:38 dj_goku joined, ChoHag joined, ilbot3 joined, woolfy joined, JTAAFVNA joined, camelia joined 23:39 telex left, ilbot3 left 23:41 ilbot3 joined, ashleydev joined, zoosha_ joined, timotimo joined, yogan_ joined 23:42 nebuchadnezzar joined 23:44 lizmat joined, \00 joined, daxim joined, silug joined, lizmat left 23:45 itz joined 23:50 xenoterracide joined 23:54 telex joined, fling joined, sivoais joined, esaym153 joined, awwaiid joined, vike joined, sivoais left, fling left, telex left, Tene_ is now known as Tene 23:55 telex joined, sivoais joined, fling joined, itz left 23:56 itz joined 23:58 isacloud_____ left, isacloud_____ joined, ChanServ sets mode: +v camelia 23:59 ggherdov_ left, ggherdov_ joined