Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-27

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:07 fernando_ joined #perl6
00:08 Diederich ~
00:12 BenGoldberg joined #perl6
00:13 adu joined #perl6
00:17 J-L joined #perl6
00:17 jack_rabbit joined #perl6
00:17 J-L Hello, jack_rabbit!
00:18 jack_rabbit hello
00:19 J-L I've got a question about Perl 6, for anyone who can answer.
00:20 J-L I'll ask my question:  Is there a standard way, in Perl 6, to read keyboard input without echoing what's typed in?
00:21 J-L I find myself needing this functionality when I need a user to type in a password that my Perl program passes to another program.
00:21 J-L In Perl 5, there's the Term::ReadKey module, but that's not standard across all platforms and installations.
00:21 agentzh J-L: maybe port it over?
00:22 J-L Of course, I can (and have) used CPAN to install Term::ReadKey, but that's only good for any platforms that I have the ability to install Perl modules on.  I often have to write scripts for remote users, and installing new modules is not allowed.
00:23 J-L Port it over... for that I'd need the raw code, wouldn't I?  And I'd have to compile it, but then it wouldn't be platform independent.
00:24 J-L What I'm hoping for is something like Term::ReadKey to be included as a standard module in all Perl 6 distributions, so there's no need to depend on CPAN, or solutions that are platform-dependent.
00:26 timotimo is Term::ReadKey writen in C?!
00:27 Akagi201 joined #perl6
00:27 dalek joined #perl6
00:28 jack_rabbit I would guess.
00:28 jack_rabbit Unless perl6 has a builtin termios.
00:28 jack_rabbit perl5 that is.
00:29 timotimo yes, it is written in c
00:29 * timotimo frowns
00:29 raydiak keep the module(s) with your script instead of installing it with cpan (or panda in our case)...maybe have a few-line installer script to wget/curl them for the user into a dir alongside your main script if you want to get fancy...and load the modules from there
00:30 raydiak b/c you don't need to compile for e.g. our nativecall termios module
00:30 timotimo indeed
00:30 telex joined #perl6
00:30 flussence joined #perl6
00:30 timotimo we can has stuff that you'd normally use XS for, but you don't need a C compiler for the same thing in perl6
00:31 J-L Term::ReadKey is written in XS, I believe.
00:31 timotimo yes, i just looked at the source code
00:32 raydiak termios doesn't work on windows of course, but it'd be a small matter to detect windows and fall back to whatever trickery that requires for cmd.exe
00:32 J-L I don't want to write a program that installs modules for itself.  The customers I write my programs for wouldn't appreciate that.
00:32 raydiak not installed system-wide, copied alongside your script
00:33 raydiak and if you don't want to copy them on the user end, just include them with the script in the first place
00:33 J-L Okay, so if I detect that cmd.exe is being used, then what?  I haven't found a consistent way to read non-echoing keyboard input on Win platforms.
00:34 J-L Ultimately, I want to write a script that can read non-echoing keyboard input without the need to install extra modules.  It seems simple enough for a core Perl distribution to be able to handle, but if so I haven't figured out how.
00:35 agentzh hi guys. I'm wondering if there's a recommended way to populate custom parsefail error messages above the .parse() call (except the bloody die approach).
00:35 J-L If the module were Pure-Perl (which it isn't), I could distribute it along with my script.  But it isn't, so I don't think it'll work on all platforms.
00:35 raydiak I'm sure using nativecall or even maybe just writing out the proper escapes once you google the problem in general outside the context of perl, you would find a solution...how does any other windows console program do it?
00:35 raydiak that's what I'm trying to say...the perl 6 termios module *is* pure perl
00:36 J-L raydiak, I don't know how other windows console programs do it.
00:36 skids joined #perl6
00:36 agentzh I see rakudo's parser just calls the magic $*W.throw() method.
00:36 raydiak J-L: google does
00:36 J-L Hmmm... termios is pure perl... that's interesting.
00:36 agentzh TimToady: ping :)
00:37 J-L Even if I see how windows console programs do it, it's all compiled in, right?  That wouldn't help me.
00:37 broquaint TimToady: Nope, thanks for the pointer, that's exactly what I was after :)
00:39 raydiak J-L: after you learn how it is done, you then figure out how to do that in Perl 6...maybe via NativeCall (which does not require compilation), or maybe via terminal escape codes...you'll have to learn more about it or find and example of someone else doing it then port it to p6
00:39 agentzh TimToady: Okay, it seems like passing a custom Actions object to .parse() to collect the error message is a way to go.
00:39 raydiak J-L: or just wait for someone else to pick up the gauntlet :)
00:39 geekosaur afaik it's never done by escape codes
00:39 agentzh TimToady: hoping that .parse() can return a second "err" value for it :)
00:40 geekosaur windows console uses its equivalent of termios even for cursor positioning
00:41 raydiak so just need a call or two to that wrapped in a few lines of p6 w/NativeCall, and you're off and running if you're lucky
00:41 J-L Windows Console might work, but I've seen that it's not guaranteed to exist on all windows Perls.
00:41 agentzh m: die "Bad\n"
00:41 camelia rakudo-moar a15a91: OUTPUT«Bad␤␤  in block <unit> at /tmp/9gS8EbjHlY:1␤␤»
00:41 J-L What's NativeCall exactly?  Another Perl 6 module?  (Lemme look it up.)
00:42 J-L I see that termios seems to be Pure Perl 6 code.  Once I download it, how do I install it?
00:42 raydiak J-L: it's in the core now
00:42 agentzh how can i suppress the "in block <unit>" context info in my die() call?
00:42 agentzh in Perl 5, a trailing newline in die's message can suppress that.
00:43 agentzh can we do something similar in Perl 6?
00:43 raydiak J-L: if you don't want to "install" via our version of cpan (which is panda), then you just save the file to somewhere that your script will find it
00:43 J-L I tried panda once, but it complained about not having git installed (I think).
00:44 J-L What is in the core?  NativeCall, or termios?
00:45 raydiak J-L: e.g. save it in the same dir as your script and then in your script do something along the lines of "use lib $?FILE.IO.dirname; use termios;"
00:45 raydiak J-L: NativeCall is in core
00:46 raydiak J-L: added to core as of very recently though...idk if it's in the last rakudo star windows installer
00:46 raydiak oh, well, I guess NativeCall was probably a star module before anyway though
00:47 J-L Okay, I typed "perl6 -I ." and then typed "use termios" and I got "Nil" as output.  Is that... okay?
00:47 raydiak yep
00:47 raydiak means it works
00:48 J-L Okay, so after "use termios" I typed "my $saved_termios := Term::termios.new(fd => 1).getattr;" (from the documentation) and I got:  Cannot locate symbol 'tcgetattr' in native library ''
00:48 J-L That's doesn't look good.
00:50 * raydiak is not familiar with termios, but would suggest reporting it as an issue on github and see if the author is responsive, unless you feel like fixing it yourself, which is another luxury of keeping your own copy
00:51 raydiak I know someone was working on the panda-windows-git dependency problem, but dunno where that work left off or if there is a way around it now
00:52 J-L Minor question:  What's the proper filename extension for Perl 6 programs?  .pl6 ?  .p6 ?
00:53 raydiak I see p6 more often probably, but I see both often
00:54 J-L I'm looking in termios.pm6 right now, and there appears to be a makeraw() method that calls a cfmakeraw() sub, which is declared as "is native {*}".  I don't know what that means exactly.
00:56 raydiak that sub represents a native library function
00:56 raydiak that's how you wrap .dll/.so stuff to call it in your perl code
00:57 J-L Wouldn't that mean that termios then depends on platform-specific stuff, and isn't purely Pure-Perl?
00:57 J-L Or should it still work on every platform?
00:57 raydiak every platform that support termios
00:58 J-L Hmmm... What about Win platforms?  I've had trouble with them in the past.
00:59 J-L So if termios doesn't work with Windows, would that mean that NativeCall won't either?
00:59 raydiak that's why we were talking about how you would have to fill in the windows gap with your own usage of nativecall (and hopefully wrap your complete solution in another module and share w/us :) )
00:59 raydiak no NativeCall works on windows too, just windows isn't posix unless you want to include cygwin dlls or something, so it doesn't have termios
01:00 laouji joined #perl6
01:00 J-L The thing is, I'm completely at a loss to explain how Win applications do it.
01:00 J-L It seems like some Win applications can override traditional term settings, but I can't figure out how, and I don't know of any cmd settings that will allow me to do it.
01:01 fernando_ joined #perl6
01:01 J-L Anyway, I've got to go.  Thank you so much for your time and help, raydiak.  I might be back tomorrow.
01:01 raydiak I'm wondering if you can use cygwin to fill in the windows support gap
01:01 raydiak J-L: you're welcome...good luck!
01:01 J-L Maybe.  But even if I did use cygwin, I can't guarantee all my customers (that I write scripts for) will have it.
01:02 laouji_ joined #perl6
01:02 J-L It just seems like such a simple problem.  Unfortunately, I've never found a good, simple, completely portable solution.
01:13 raydiak .tell J-L the cygwin dll could be included with your script like the termios module, then modify the termios module to check if it's on windows and nativecall the functions from the dll instead...might even be a change the author of the termios module would be interested in merging too, though I'm not familiar with cygwin's license terms wrt commercial distribution
01:13 yoleaux raydiak: I'll pass your message to J-L.
01:14 raydiak yoleaux++ lets you get the last word in :)
01:16 FROGGS joined #perl6
01:16 dj_goku joined #perl6
01:16 dj_goku joined #perl6
01:25 Maddingu1 joined #perl6
01:34 timotimo agentzh: if that wasn't answered yet, you can "exit" and give an output to stderr using "note" first
01:35 agentzh timotimo: will you please elaborate?
01:35 agentzh timotimo: like using a custom field to hold errors as in Perl6::Grammar?
01:36 agentzh timotimo: oh yeah, die makes me sad in Perl 6 :)
01:37 timotimo well, you can have code like { note "sorry, we've exploded"; exit 1 }
01:41 agentzh timotimo: cool, thanks!
01:42 agentzh timotimo: it produces some garbage at the end: "Failure.new(exception => X::OutOfRange.new(what => $("Start", "argument", "to", "substr"), got => 9, range => "0..8", comment => "use *9 if you want to index relative to the end"))"
01:42 timotimo "it"?
01:42 agentzh note $a, $b; exit 1;
01:42 agentzh but a trivial example works.
01:42 agentzh weird.
01:43 timotimo i don't think note works with two arguments
01:43 agentzh m: note "hello", "world"; exit 1;
01:43 camelia rakudo-moar a15a91: OUTPUT«helloworld␤»
01:43 agentzh seems working.
01:43 timotimo ah, hm
01:43 timotimo i suspect your output comes from somewhere earlier, but what do i know :)
01:44 agentzh but when I use this in my grammar class's method, it produces some garbage at the end of the output.
01:44 timotimo also that error message is missing a - between * and 9 in that comment field
01:45 agentzh ah, it looks like another warning in my note() statement.
01:46 agentzh timotimo: never mind, I fixed it.
01:46 agentzh timotimo: a bad substr() call in the argument to note().
01:46 agentzh timotimo: thanks for your help.
01:46 timotimo fair enough :)
01:47 timotimo though i'm not entirely sure you want to exit the whole program
01:47 agentzh timotimo: right, that's hacky.
01:47 agentzh timotimo: my parser needs clean way to return an error message.
01:47 timotimo you can raise an exception and catch it in your own code and just return Nil or something
01:47 agentzh timotimo: should I use die() to raise the exception?
01:48 agentzh timotimo: sorry if it's a dumb question.
01:48 agentzh timotimo: still reading the synopses.
01:48 timotimo you can use die with a string to raise an exception of type X::AdHoc
01:48 timotimo or you can build your own exception class and die with that
01:48 agentzh that sounds cool.
01:48 dylanwh joined #perl6
01:48 agentzh i'll try it out.
01:48 agentzh timotimo: thanks!
01:49 agentzh timotimo: for die "some string", is there a way to extract only the string part from the resulting Exception class?
01:49 agentzh timotimo: both .gist() and .Str() return the backtrace part also.
01:49 agentzh timotimo: if that can work, then i can save my own Exception class :)
01:49 agentzh timotimo: and it looks cleaner.
01:50 timotimo you can .message
01:50 agentzh wow, trying
01:50 timotimo in general, you can print the .^methods of some object you have
01:51 agentzh timotimo: thanks for the trick!
01:51 agentzh timotimo: and .message indeed works. yay
01:51 timotimo sure, no problem :)
01:51 * agentzh is porting the arith calc example from bison's manual to rakudo.
02:10 fernando_ joined #perl6
02:25 chenryn joined #perl6
02:28 Vlavv joined #perl6
02:48 ilbot3 joined #perl6
02:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
02:52 ash_gti joined #perl6
03:14 dalek rakudo-star-daily: 69b9468 | coke++ | log/ (9 files):
03:14 dalek rakudo-star-daily: today (automated commit)
03:14 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/69b9468666
03:20 fernando_ joined #perl6
03:25 davido__ joined #perl6
03:37 noganex_ joined #perl6
03:41 Ben_Goldberg joined #perl6
03:59 rindolf joined #perl6
04:02 FROGGS joined #perl6
04:09 jack_rabbit joined #perl6
04:32 laouji joined #perl6
04:35 laouji joined #perl6
04:36 uvb joined #perl6
04:37 laouji_ joined #perl6
04:41 echowuhao joined #perl6
04:55 rindolf joined #perl6
05:23 chenryn joined #perl6
05:39 [Sno] joined #perl6
05:53 dalek rakudo/nom: c8ac15b | moritz++ | src/Perl6/Actions.nqp:
05:53 dalek rakudo/nom: Throw redeclaration error for duplicate type capture
05:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8ac15be78
05:55 dalek roast: bf697de | moritz++ | S06-signature/positional.t:
05:55 dalek roast: unfudge now-passing test
05:55 dalek roast: review: https://github.com/perl6/roast/commit/bf697debd9
06:55 kaare_ joined #perl6
06:55 fhelmberger joined #perl6
06:56 dayangkun joined #perl6
06:59 jferrero joined #perl6
07:05 diana_olhovik joined #perl6
07:10 broquaint joined #perl6
07:12 bjz joined #perl6
07:14 FROGGS hoelzro: testers.p6c.org is up since a day or two... now also receiving reports
07:14 FROGGS I need to kill the old site now
07:14 FROGGS brb
07:31 rurban joined #perl6
07:41 FROGGS joined #perl6
07:42 jack_rabbit joined #perl6
07:44 echowuhao joined #perl6
07:52 moritz FROGGS++
07:55 FROGGS moritz: the p6c machine are quite beefy :o)
07:55 FROGGS it is nice to work on these
07:57 FROGGS ahh, the last missing bit before I can update panda is to turn my Dancer app into a service
07:58 _mg_ joined #perl6
07:59 ninedragon_ joined #perl6
08:00 moritz FROGGS: yes, I like it too :-)
08:00 moritz (generous donors)++
08:03 moritz FROGGS: fwiw on hack /etc/systemd/system/dalek-http.service is an example of a starman-powered systemd service file
08:04 moritz also on www /etc/systemd/system/smoke.perl6.org.service (that's deven a Dancer app)
08:05 FROGGS ahh, I see
08:05 FROGGS I already wondered what starman is
08:05 moritz a perl http server
08:06 moritz (I'm open to using other servers, fwiw)
08:07 kaare__ joined #perl6
08:07 moritz I've deployed other stuff via FastCGI, but that's usually a nightmare to debug
08:09 FROGGS I'm not going to debug it anyway, because it is perfect :P
08:09 moritz debugging the configuration / web server setup, not the app itself
08:09 dalek roast: 2431591 | TimToady++ | S03-sequence/basic.t:
08:09 dalek roast: make sure unicode ellipis works for sequence op
08:09 dalek roast: review: https://github.com/perl6/roast/commit/24315915fe
08:09 dalek roast: 29f2815 | TimToady++ | S04-declarations/constant.t:
08:09 dalek roast: fudge constant redecl test
08:09 dalek roast: review: https://github.com/perl6/roast/commit/29f28156e1
08:10 dalek rakudo/nom: 1e57949 | TimToady++ | src/ (3 files):
08:10 dalek rakudo/nom: fix unicode ellipsis support
08:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e57949f84
08:12 laouji_ joined #perl6
08:12 darutoko joined #perl6
08:14 prime joined #perl6
08:22 jack_rabbit joined #perl6
08:26 sqirrel_ joined #perl6
08:27 fhelmberger joined #perl6
08:28 [Sno] joined #perl6
08:29 Rounin joined #perl6
08:34 vike joined #perl6
08:37 Mouq joined #perl6
08:53 zakharyas joined #perl6
09:08 rindolf joined #perl6
09:10 kaleem joined #perl6
09:19 kjs_ joined #perl6
09:29 cschwenz joined #perl6
09:35 jnthn morning, #perl6
09:41 moritz \o jnthn
09:41 psch o/
09:41 psch spectest failure in my jvminterop branch /o\
09:41 moritz maybe we should rename IO::Socket::INET to IO::Socket::TCP
09:41 psch but it's related to &infix:<…> which i didn't do nothing with
09:42 moritz psch: then probably your branch isn't up-to-date with nom
09:42 psch moritz: i rebased after TimToady++'s last commit
09:42 moritz oh
09:42 psch This is perl6 version 2015.02-58-g2aa3f7d built on JVM
09:42 psch m: say 1
09:42 camelia rakudo-moar 1e5794: OUTPUT«1␤»
09:42 psch i guess i can do that again
09:43 laouji_ joined #perl6
09:43 psch oh nvm, differences there have to exist because i have more commits :)
09:43 psch anyway, i'll finish the jvminterop PR and have a look at the &infix:<…> issue
09:44 telex joined #perl6
09:44 dakkar joined #perl6
09:44 psch huh
09:45 psch S04-declarations/constant.t: ok 56 - did we throws_like X::Redeclaration?# TODO constant redeclaration is not yet detected
09:45 psch i definitely didn't touch that either..?
09:50 moritz maybe your roast is out-of-date?
09:51 psch i pulled that too just now again
09:51 hoelzro joined #perl6
09:51 psch although there's a test for #121626 which is marked TODO
09:51 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121626
09:51 moritz ok, it seems TimToady++ fudged the test after it passed
09:52 psch which confuses me a bit, as that should be resolved for 2 weeks now?
09:52 psch that's S14-roles/anonymous.t
09:52 psch two tests actually
09:52 moritz PerlJam++ fixed the constant redeclaration thingy in a15a9164a18d8cb47c8021e266390e0992c7eea6
09:52 espadrine joined #perl6
09:52 Ven joined #perl6
09:53 masak good antenoon, #perl6
09:54 moritz \o masak
09:54 Ven o/, #perl6
09:55 psch o/ masak, Ven
09:57 psch oh
09:57 psch S14-roles/anonymous.t only had moar fudges removed
09:57 psch that took some time to see
09:58 psch not sure if that only passes on my branch for some reason though
09:59 dalek nqp: 9c8c5a3 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java:
09:59 dalek nqp: Correct an error message.
09:59 dalek nqp: review: https://github.com/perl6/nqp/commit/9c8c5a3fcd
09:59 dalek nqp: 8e77578 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
09:59 dalek nqp: Improve marshalling for JVM Interop.
09:59 dalek nqp:
09:59 dalek nqp: Arbitrary dimensions for arrays are now supported properly.
09:59 dalek nqp: review: https://github.com/perl6/nqp/commit/8e775781df
09:59 jnthn I'd guess, since I ported the 6pe work so far to JVM also, that it'd be the benefits of some role fixes too
09:59 jnthn uh, it'd get
10:00 psch https://github.com/rakudo/rakudo/pull/372 for *even better* jvm interop \o/
10:01 psch jnthn: that's probably it then.  i'll rerun the test on nom in a bit
10:02 kjs_ joined #perl6
10:02 Ven psch++ # so much amazing jvm work I can sell to jvm-y people :)
10:02 Ven psch: https://github.com/rakudo/rakudo/pull/372/files#diff-32d43875a3f796653e7e85552f82deddL52 not sure why the indentation change?
10:03 psch Ven: the indentation is the same?  the removed bit has one more level of nesting
10:03 Ven oh, then github messes the rendering
10:04 xfix joined #perl6
10:04 moritz [Coke]: can you check if psch's CLA has arrived at TPF?
10:04 psch Ven: ooh, no, i looked at the wrong lines, you're right
10:05 psch Ven: the first two lines in the function are misindented
10:06 psch in the constructor for DispatchCallSite that is
10:06 psch pushed a fix to the PR, Ven++
10:07 lizmat good morning, #perl6!
10:07 jnthn o/ lizmat
10:07 lizmat seems like some change in the past days made the startup time of rakudo go from .205 to .235 on my machine
10:07 Ven psch++
10:08 psch Ven: if you can get someone to play around with jvminterop i'd appreciate feedback.  known pain points are HOW-related stuff, like inheriting from java classes, but the add_method support we already have might be useful to hack around that
10:08 Kristien joined #perl6
10:08 bjz joined #perl6
10:08 psch Ven: aside from that there's a few spots with marshalling where i'm not sure if stuff is missing and don't really know how to check.  maybe some real world stuff can expose potential problems
10:08 Ven psch: I know around ten people interested in either scripting bot-like behaviors in perl6 for java projects OR parsing stuff from perl6 grammars. Is any of thos possible?
10:08 Kristien morning
10:08 Ven those*
10:09 Ven hi Kristien
10:09 lizmat spectest wallclock up from ~180 to ~210
10:10 psch Ven: getting perl6 parse results to java should be possible, when running perl6 that is.  i.e. write a dataholder class in java, write a runner class, parse in perl6, fill the dataholder, instantiate the runner from perl6
10:10 psch Ven: as for the bot-like behavior, i don't think i understand the use case
10:11 Ven psch: having the base of the code in java/some other bad language, and scripting the more scriptish parts in perl6
10:11 Ven like people embedding lua for AIs etc
10:11 Kristien "some other bad language" Ven++
10:12 psch Ven: i think that's the other way around from what we have then?  i.e. "java myFancyProgrammWhichDecidesSomeLogicInPerl6Code" doesn't work
10:12 Ven alright.
10:12 Ven thanks for your work!
10:12 psch Ven: but deciding in perl6 which java classes to use works
10:12 Ven so using perl6 but relying on well-established java facto^W^W..classes works
10:13 psch it mostly should, yes
10:13 jnthn lizmat: Looking at recent commits, it's hard to guess what did it...
10:13 psch you saw the swing-orwhatwasit example and the tests in t/03-jvm/01-interop.t i suppose
10:14 jnthn lizmat: So guess it'll be a case of bisecting... :(
10:14 lizmat jnthn: it was TimToady's last commit
10:14 lizmat I guess the ellipsis verbatim in the code are causing it...
10:16 larion joined #perl6
10:16 lizmat I guess, if we really want to be serious about getting parrot back, it would be a bad idea anyway to have characters outside of latin-1 in the core setting
10:16 _mg_ joined #perl6
10:16 Kristien lol
10:16 virtualsue joined #perl6
10:17 jnthn lizmat: Really? That harms startup?!
10:18 lizmat well, trying to compile it now: first segfault, now nativecall complains
10:18 lizmat trying now with just the changes in nqp
10:19 lizmat removing:
10:19 lizmat +my &infix:<…> = &infix:<...>;
10:19 lizmat +my &infix:<…^> = &infix:<...^>;
10:19 lizmat in scr/core/operators makes startup go back from .235 to .205
10:20 kaleem joined #perl6
10:20 lizmat perhaps they need to live in a BEGIN
10:21 jnthn That's a heck of a difference...
10:21 jnthn Ohhh
10:21 lizmat nope, the BEGIN doesn't make a difference
10:21 jnthn I bet I can guess
10:21 lizmat do tell
10:21 jnthn token infix:sym<...>  { [<sym>|'…']  <O('%list_infix')> }
10:22 jnthn So, &infix:<…> then looks if the current language has an infix:sym<…> already
10:22 pmurias joined #perl6
10:22 jnthn Finds it doesn't
10:22 jnthn And so extends teh grammar
10:22 jnthn So we're deriving a new language every time we load the setting.
10:23 lizmat sounds about right, not sure how to fix
10:23 pmurias lizmat: we should avoid jumping through hoops in order to enable future support
10:23 pmurias lizmat: if parrot can't support utf8 properly it is it's problem
10:24 lizmat knowing that parrot couldn't support non-latin-1 in the core setting, has been a *long* standing issue
10:24 jnthn lizmat: Well, I'd undo the rule-combining change in grammar.pm for one
10:25 jnthn That should deal wiht startup time.
10:25 lizmat pmurias: it feels to me that not avoiding that (at little cost, I might add), would be felt like throwing up yet another barrier for reunification
10:26 jnthn lizmat: But also I'd consider writing sub infix:<…>(|c) { infix:<...>(|c) } since that avoids the assignment at compile time and also should be rather easier on the optimizer :)
10:27 lizmat jnthn: ok on the last part
10:27 jnthn lizmat: Yeah, but the first part is the really important one ;)
10:27 lizmat but I'm not sure what you mean with undoing the grammar combining change ?
10:28 jnthn Oh
10:28 jnthn The --++++ in Grammar.nqp
10:28 jnthn -    token infix:sym<...>  { [<sym>|'…']  <O('%list_infix')> }
10:28 jnthn ...
10:28 jnthn +    token infix:sym<…^>   { <sym>  <O('%list_infix')> }
10:29 lizmat I can undo that change, but that feels like I'm combining them again?
10:29 jnthn TimToady's patch deleted 4 rules and combined them into 2
10:29 jnthn I'm saying they shoulda been left as the 4
10:30 jnthn oh wait
10:30 jnthn No, I misread
10:30 jnthn Grrr...I need better coffee
10:30 lizmat ok, then I understood ok  :-)
10:31 jnthn I'm still confused what's going on...
10:31 * psch will bbl &
10:31 jnthn I mean, it feels like it has to be something lanruage-y
10:31 lizmat maybe a compile-profile would help ?
10:31 jnthn Perhaps yes
10:32 jnthn I wonder if something is wrong with the grammar gen for my &infix:<foo> things.
10:33 lizmat ok, let me make those subs then first
10:34 pmurias lizmat: people who care about parrot should pay all the cost of it's support until it's proven useful
10:34 gplrxenu joined #perl6
10:35 pmurias lizmat: and parrot forcing us to change Perl 6 is out of the question atm
10:35 lizmat pmurias: nobody is talking about changing Perl 6
10:36 moritz the plan for bringing back r-p isn't to add all the old workarounds, but to improve nqp (+parrot, potentially) to not need the workarounds
10:36 leont joined #perl6
10:36 lizmat ok, I guess we can make it easy on ourselves and drop parrot support from nqp as well
10:36 pmurias lizmat: you suggested keeping stuff outside of latin-1 out of the setting?
10:36 lizmat yes, that has always been the policy until now
10:37 jnthn We don't need to go and change all the places we already wrote char escapes instead.
10:38 lizmat otherwise it took parrot settings to compile N times longer, with N being anything from 10 to 100
10:38 jnthn But we equally don't need to go out of our way to worry about the issue for new additions.
10:38 lizmat jnthn: making them subs, made the startup go back to previous values
10:38 jnthn lizmat: OK, then (a) awesome, (b) we have a bug
10:39 lizmat jnthn: perhaps the lack of a proto ?
10:39 jnthn No, my suspicion is in gen_op or whatever it's called these days
10:40 jnthn I bet it's something silly, like mis-mangling the name when it's a variable decl.
10:40 lizmat could be,
10:40 lizmat brunch&
10:40 jnthn lizmat++ # finding/fixing regression
10:45 gplrxenu What is the most usable perl6 interpreter available?
10:47 timotimo i wouldn't call it an "interpreter", but rakudo is what you want; if you're given the choice of backend, prefer MoarVM ("moar") over jvm or parrot.
10:47 timotimo (it's kind of more like a compiler, really)
10:48 moritz it compiles, but conveniently also executes the code for your pleasure
10:49 chenryn joined #perl6
10:50 jnthn If you're looking to quickly get started, either grab the most recent Rakudo Star release, or if you like to be on the bleeding edge there's https://github.com/tadzik/rakudobrew
10:50 timotimo i must admit, i find the distinction between "interpreter" and "compiler" hard to make
10:50 jnthn timotimo: It's not really worth a lot of time
10:50 timotimo how many "interpreters" these days go off the original source code and interpret it bit by bit?
10:51 timotimo i'd be willing to say "nothing worth talking about"
10:51 jnthn timotimo: It's very fine-grained in the modern world
10:51 spider-mario joined #perl6
10:52 jnthn timotimo: With Moar we start out interpreting bytecode, but JIT-compile hot bits of it :)
10:52 jnthn So you can end up with your running program being half-compiled and half-interpreted :)
10:56 gplrxenu at some point jit programs will be faster than compiled programs (after some running time)
10:58 gplrxenu but to me it seems a bit like the VLIS vs CISC debate
10:58 timotimo VL? Very Lean?
10:58 gplrxenu :)
10:58 jnthn That depeneds hugely on the JIT, but yes, it's certainly been knwown to happen. Not sure it's been observed with the MoarVM JIT yet, but there's time... :)
10:59 * masak .oO( Very Lean. So Scrum. Much Agile. )
11:01 wicope joined #perl6
11:01 Ven joined #perl6
11:02 Ven psch: are java field accessors working?
11:02 timotimo it's almost impossible for our jit in its current state to surpass compiled programs. you know it still emits loads and stores around each operation because dynasm doesn't yet let us pick registers freely?
11:04 jnthn timotimo: Yes, that what makes me doubtful it can happen yet. :)
11:05 timotimo don't get me wrong, i'm super happy we have it and it makes stuff a whole lot faster
11:05 timotimo just saying there's so much more room for improvement
11:06 jnthn The stuff we already can do that a static compiler generally can't is more along the lines of inlining late-bound calls.
11:06 jnthn But that benefit will surely be being dwarfed by our LTA code-gen quality.
11:06 rurban joined #perl6
11:07 jnthn otoh, a year ago we didn't have JIT, inlining, OSRC, etc. at all :)
11:07 jnthn *OSR
11:08 timotimo last night while trying to fall asleep i was thinking perhaps it'd be good to implement "iscclass" in asm
11:09 jnthn Well, I'd wait until we've got NFG in place before looking at that :)
11:09 timotimo k
11:10 jnthn otoh, there may be various kinds of "fast check" you can do that won't be affected, and then fall back to the full thing
11:14 timotimo oh, iscclass expects a string and offset
11:14 timotimo well, MVM_string_is_cclass is implemented as "check bounds, grab grapheme, check cclass"
11:14 timotimo it might be worthwhile to jit that to a function call to "grab grapheme" and then have a jitted version of the inner case statement for check_cclass
11:14 timotimo grapheme_is_cclass*
11:15 jnthn Well, the case statement goes away if JITting if we statically know the cclass :)
11:16 timotimo i'd assume we know that kind of often, but i can do a survey at spesh time
11:16 grondilu joined #perl6
11:17 timotimo hm. it may be required to build MVM_codepoint_has_unicode_value for the jit, too
11:19 timotimo i'm wondering how bad jitting these things will impact the size of the generated code, though
11:19 chenryn joined #perl6
11:19 timotimo at what point does the cost of having a lot of machine code surpass the cost of doing a function call?
11:20 timotimo anyway, i gotta AFK for a while now
11:23 wicope joined #perl6
11:23 diana_olhovik_ joined #perl6
11:25 Ven https://rdstar.wordpress.com/2013/07/22/some-thoughts-on-unicode-in-perl-6/
11:25 Ven "use utf8"? what's that? something specced-but-NYI?
11:25 gplrxenu timotimo: does this cost extimation can be done at runtime checking code cache faults using performance monitoring registers? at least in theory
11:27 kjs_ joined #perl6
11:30 gplrxenu imagining futurable jit which adapt the code dinamically in function of processor feedback in hope that there exist an "optimal solution" or at least not many too-deep local minima to the minimization problem
11:31 gplrxenu could be quite an interesting theoretical landscape
11:36 dalek rakudo/nom: d7a2294 | lizmat++ | src/core/operators.pm:
11:36 dalek rakudo/nom: Fix performance regression
11:36 dalek rakudo/nom:
11:36 dalek rakudo/nom: 1e57949f8426e0d05a increased startup time to .235 from .205, with a similar
11:36 dalek rakudo/nom: increase in CPU time.  According to jnthn++, this could be caused by some
11:36 dalek rakudo/nom: problem in the grammar gen for my &infix:<foo> things, "gen_op" or so.
11:36 dalek rakudo/nom: Presumably something silly such as mis-mangling the name when it's a
11:36 dalek rakudo/nom: variable declaration.
11:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d7a2294323
11:56 Ven psch: how do I access System.out, say?
11:56 FROGGS Ven: nqp::getstdout?
11:56 Ven FROGGS: I mean in r-j
11:57 FROGGS j: say nqp::getstdout
11:58 camelia rakudo-jvm d7a229: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory␤»
11:58 FROGGS Ven: that still gives you the stdout fh
11:58 Ven FROGGS: I'd really like to avoid using nqp:: ;-)
11:58 FROGGS Ven: well, use $*OUT then
11:58 moritz $*OUT
11:59 Ven FROGGS: well, I was asking generally for "how to access fields"
11:59 FROGGS Ven: I'm not sure what you are up to... if this is about user code or code that is meant to live ion rakudo
11:59 FROGGS ahh
11:59 Ven that went with the question I asked psch earlier :)
11:59 FROGGS sorry for the noise then :o)
12:06 lizmat TimToady: re http://irclog.perlgeek.de/perl6/2015-02-26#i_10185056 about .invert
12:07 lizmat isn't then my original commit 4e89bb2a57708f164804 exactly what you need?
12:07 lizmat it mimics HashIter.pairs/invert model completely
12:07 lizmat or is that also wrong ?
12:08 moritz lizmat: seems like TimToady wants the .pairs step to be explicit
12:12 khisanth_ joined #perl6
12:15 lizmat indeed...
12:15 coffee` joined #perl6
12:15 lizmat but that to me feels we would need more of a .vk (opposite of .kv)
12:23 lizmat TimToady: if .invert is the opposite of .pairs (exchanging key/value), perhaps .pairs should also be magic, as described in http://irclog.perlgeek.de/perl6/2015-02-26#i_10185141
12:25 lizmat as currently implemented in EnumMap.STORE ?
12:45 _mg_ joined #perl6
12:46 Ven joined #perl6
12:52 dalek perl6-examples: ec1cbd9 | paultcochrane++ | perlmonks/ (2 files):
12:52 dalek perl6-examples: Add vim coda to perlmonks examples
12:52 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/ec1cbd9c65
12:52 dalek perl6-examples: 3c90664 | paultcochrane++ | other/ (2 files):
12:52 dalek perl6-examples: Add vim coda to "other" examples
12:52 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/3c90664f1d
12:52 dalek perl6-examples: febc585 | paultcochrane++ | other/bottles.pl:
12:52 dalek perl6-examples: Replace ucfirst with tclc
12:52 dalek perl6-examples:
12:52 dalek perl6-examples: .ucfirst is no longer available to capitalise the first letter of a word,
12:52 dalek perl6-examples: this has been replaced by .tclc
12:52 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/febc5853a0
12:54 psch Ven: you can use the generated getter and setter ("get_{$fieldname.lc}" and "set_{$fieldname.lc}") or use something like https://gist.github.com/peschwa/0f8830ba3c6a2eb852ba to wrap them in an lvalue method
12:54 moritz [ptc]: .tc is closer to .ucfirst than .tclc is
12:54 Ven psch: ty
12:55 psch Ven: note that in the gist it uses the descriptor method, but the generated shortname works as well
12:56 psch (although those might not have MMD support, i'd have to check...)
12:59 * Ven just realized that the difference between "leave" and "return" goes back as far as smalltalk...
13:02 laouji joined #perl6
13:02 Kristien joined #perl6
13:05 psch Ven: i'd like the JavaHOW to do that kind of wrapping automatically eventually, but that's probably quite a ways off
13:05 Ven mmh
13:05 * Ven realized that "eqv" itself might be coming from smalltalk...
13:06 [ptc] moritz: ok, good to know.  I'd looked around and found only tclc.  Thanks for the tip, I'll fix up the new docs that I've written
13:07 psch huh, d7a22943 also fixes the java crash in S03-sequence/basic.t apparently
13:07 Ven Do we have a way to remove all the accents from a string? Maybe using unicode-specific properties
13:07 psch that's a bit scary tbh
13:08 moritz Ven: not yet
13:10 Ven moritz: will come with the grapheme stuff that's blocking 6.0?
13:12 dalek doc: c38b844 | paultcochrane++ | lib/Language/traps.pod:
13:12 dalek doc: Use .tc instead of .tclc
13:12 dalek doc:
13:12 dalek doc: .tc maps better to the originally-used ucfirst() function.  Thanks to
13:12 dalek doc: moritz++ for pointing this out.
13:12 dalek doc: review: https://github.com/perl6/doc/commit/c38b844bac
13:14 lizmat Ven: I would think so
13:14 Ven alright. nfg it is then :)
13:16 chenryn joined #perl6
13:18 moritz Ven: I'm not sure it comes with NFG
13:18 Ven oh!
13:18 lizmat moritz: I didn't mean as a direct result of NFG itself, but of general work in that area
13:19 colomon Ven: https://github.com/colomon/TagTools/blob/master/bin/tags-to-filename # by no means exhaustive, but a start that’s worked for me.  :)
13:19 moritz Ven: the way I'd approach it in p5 is to convert to the KD normal form, and then filter out all the mark characters
13:19 Blackrush joined #perl6
13:20 moritz if the general NFG work user-exposes normalization routines, then it'll help
13:20 moritz if not, not so much
13:20 dalek rakudo/nom: ee6f29b | lizmat++ | src/core/EnumMap.pm:
13:20 dalek rakudo/nom: Make %h<a> = 42 about 10% faster
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ee6f29b433
13:20 dalek rakudo/nom: a178073 | lizmat++ | src/core/ (3 files):
13:20 dalek rakudo/nom: Remove some superfluous so's
13:20 dalek rakudo/nom:
13:20 Ven colomon: I'm looking for that...but abstracted away :)
13:20 dalek rakudo/nom: exists_key already is supposed to return a P6 bool
13:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a178073461
13:20 Ven lizmat++
13:21 Blackrush Hi everyone
13:21 Blackrush Do you know how to set the classpath on perl6-j ?
13:21 colomon Ven: yes, I’d love to have one that one required, say, one line of code and handled every bit of Unicode gracefully.  but that code has worked for me so far, given the limited task of trying to sanitize MP3 title tags to use as ASCII filenames.
13:22 Ven psch: ping
13:22 Blackrush I tried using a CLASSPATH var env but it doesnt do anything
13:22 Ven colomon: right, thanks
13:24 psch Ven: pong
13:24 lizmat moritz: wouldn't we need a CCLASS_ACCENT class in nqp (with underlying support for that) to whip Ven's functionality up now?
13:24 Ven psch: Blackrush++ is the one trying it right now :)
13:24 moritz Blackrush: perl-j is a small shell script; you might need to edit it and set the classpath on there
13:24 moritz lizmat: we might
13:24 moritz lizmat: I thought we already did Unicode properties, though?
13:25 psch Blackrush: what's your platform? i didn't test the j-runner on windows, so that might be broken
13:25 Blackrush ubuntu 14.04
13:25 lizmat moritz: we do, but slowly
13:25 Blackrush jdk 1.8
13:25 lizmat having it as a CCLASS would allow us to do it more quickly  :-)
13:26 psch Blackrush: are you using a .jar or a .class?
13:26 Blackrush It's a folder filled with .jar
13:26 Blackrush Generated by Gradle if you are wondering
13:28 psch Blackrush: what does your CLASSPATH look like?
13:28 psch i.e. do you use a wildcard or list only the folder?
13:28 Blackrush export CLASSPATH=$HOME/Workspace/swtour/heat/login-distrib/lib
13:28 psch 'cause apparently java wants a wildcard or an explicit list, according to http://stackoverflow.com/questions/5857321/
13:28 Blackrush lib/ is containing A LOT of jar
13:31 kjs_ joined #perl6
13:31 Blackrush export CLASSPATH=`ls ~/Workspace/swtour/heat/login-distrib/lib/*.jar | tr '\n' ':'`
13:31 Blackrush still not working
13:33 psch Blackrush: gimme a moment, i'll try to figure it out
13:38 lizmat afk for ~ hour or so
13:38 Blackrush I'm also getting a "Cannot stringify this"
13:38 Blackrush When invoking ClassLoader#getResources
13:47 raiph joined #perl6
13:48 ggoebel111111114 joined #perl6
13:51 psch Blackrush: there's the :jar<$filename> adverb, which i keep forgetting about
13:51 psch Blackrush: if you have the jars in your classpath explicitly that should work
13:52 Blackrush I have 40 packages
13:52 psch i.e. «CLASSPATH="$PATHTO/*jar" perl6-j -e"use JavaClass:from<Java>:jar<JavaClass.jar>; my $jcl = JavaClass.new; …»
13:52 Blackrush I'm not feeling like importing every one
13:52 psch Blackrush: well, wildcard imports don't work anyway, and never will
13:52 psch Blackrush: i can see not wanting to name the jar, which is probably solveable
13:52 Blackrush there isn't
13:53 Blackrush echo $CLASSPATH; you won't find any wildcard in there
13:53 psch i mean as in «import java.util.*;»
13:53 Blackrush okay
13:54 Blackrush what about "use org::slf4j::LoggerFactory:from<java>;" then?
13:54 Blackrush do I have to full specify the containing .jar ?
13:54 psch you'd need the filename currently, yes
13:55 psch https://github.com/peschwa/eigmip6/blob/master/tritone-in-c.pl6 is an example that works with «CLASSPATH=$PWD/lib perl6-j tritone-in-c.pl», although it might have bitrotted
13:55 psch i.e. checking out the repo and then running that line from the root of it
13:56 psch i'll have a look if we can make do without the jarname, because i agree that it's a bit cumbersome, and i think it should be solveable, if much slower
13:56 Blackrush do you use a different classloader for perl6's use?
13:56 psch even though it feels a bit spooky, too... "why is my java interop slow?" -"did you specify the jarnames?" feels FAQ-ish
13:57 Blackrush -cp imports every class from every .jar
13:57 Blackrush it's just the classloader you're using that don't find the required classes
13:58 psch Blackrush: we're collecting URLClassLoaders, one for each .jar or .class.
13:58 psch Blackrush: i don't think that -cp imports
13:58 Blackrush it doesn't "import" all the classes indeed
13:58 Blackrush it just tell to the JVM where to find
13:59 Blackrush and then the JVM is getting the classes one by one
13:59 Blackrush well that's how my launcher works
13:59 psch https://github.com/perl6/nqp/blob/master/src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java#L97 typeForName and typeForNameFromJAR (right below)
13:59 psch that's what we're doing currently, i haven't looked much at it, only fixed typeForName to be able to load .class files
14:00 Blackrush even more
14:00 Blackrush use java::lang::System:from<java>;
14:00 Blackrush System.getProperty("java.class.path")
14:01 Blackrush prints out the intended classpath
14:03 Blackrush https://github.com/perl6/nqp/blob/master/src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java#L118
14:03 Blackrush I don't think that's useful
14:03 Blackrush you might just use the system classloader
14:03 Blackrush and it will work anyway
14:04 Blackrush because of the defined classpath
14:04 psch fwiw, this is how java behaves here for me: https://gist.github.com/peschwa/b7e3b402228d6ee75434
14:05 Blackrush exactely
14:06 psch so the .jar has to be explicit in the CLASSPATH (or there has to be a wildcard, as i read)
14:06 Blackrush export CLASSPATH=`ls ~/Workspace/swtour/heat/login-distrib/lib/*.jar | tr '\n' ':'`
14:06 Blackrush i made sure that way
14:06 psch yeah
14:06 psch i don't know how our bootclasspath interacts with the normal classloader
14:06 Blackrush no problem here then, all the jar are explicitly listed
14:07 psch i'm also not sure currently how typeForName{,FromJAR} should be adjusted to use the system classloader
14:07 psch currently, with explicit jars in the CLASSPATH and with :jar<$jarname> you should get the classes loaded correctly
14:07 Blackrush URLClassLoader(URL[]) use the system classloader by default
14:08 psch not needing :jar<$jarname> might work if we switch to the system classloader?
14:09 Blackrush I guess
14:12 psch right, i'll try and figure that out.  as mentioned, :jar<> is cumbersome and easily forgetten :)
14:12 psch Blackrush++
14:13 Blackrush https://gist.github.com/Blackrush/3e96f088881cf3e1be75
14:13 Ven joined #perl6
14:13 Blackrush I'll try another thing
14:16 Blackrush https://gist.github.com/Blackrush/0c1cafe7ff8460b0384d
14:16 Blackrush psch
14:18 Ven Blackrush++ # even if he's a java-lover...
14:18 Blackrush with jdk 1.9 coming next year I really don't know if it'll still work
14:18 Ven (and that's not because we havn't tried to get java out of his mind. but heh)
14:22 Ven .tell Kristien I heard you wanted to learn Pascal, so I put some Pascal in your haskell so you can learn pascal while you learn haskell... https://github.com/int-index/kalium
14:22 yoleaux Ven: I'll pass your message to Kristien.
14:22 Ven Uhm, I'm looking for a module that exposes Shell commands as subs (but not Shell::Command)
14:23 moritz why not Shell::Command?
14:24 Ven moritz: a friend of mine is looking for one that abuses EXPORT and knows there was one looking like this doing that
14:25 Ven I guess I'll just point him to EXPORT's doc..
14:26 [Sno] joined #perl6
14:26 moritz timo/ADT fiddles with EXPORT
14:26 moritz as does tony-o/perl6-slang-sql
14:27 jnthn Ven: I showed that off in my FOSDEM talk
14:28 jnthn The code's on the slides there
14:28 Ven jnthn: that very well might be. I've been sending your talk pdfs to various people :). thanks
14:28 rurban1 joined #perl6
14:30 _mg_ joined #perl6
14:30 Ven jnthn: also..thanks for making all of this possible. This is just plain awesome I get to use all the time. I mean it :)
14:31 dalek perl6-examples: f59fdeb | paultcochrane++ | other/bottles.pl:
14:31 dalek perl6-examples: Use .tc instead of .tclc
14:31 dalek perl6-examples:
14:31 dalek perl6-examples: Since this maps better to the original ucfirst() intent
14:31 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/f59fdebcca
14:31 [Coke] pmurias: don't make me regret adding "JS" as one of the VM values for rakudo-RT.
14:32 Ven rakudo-js?
14:32 Ven [Coke]: I was aware of nqp-js, but not of rakudo-js :)
14:33 jnthn Ven: It wasn't just me who made this stuff possible...but happy you're enjoying using it. :)
14:35 [Coke] ven: it was a... precautionary measure.
14:35 Ven [Coke]: alright :)
14:35 Ven jnthn: I strongly think we'll get insanely good benefits by having per-file compile and run times :)
14:37 jnthn Ven: Yeah, I like the model, and when you have VMs that can then do cross-compilation-unit optimization too then you still keep a path to "link-time" opts. :)
14:37 pmurias [Coke]: you mean I should get to nqp-js hacking ASAP?
14:38 * Ven thinks compile-time as a per module basis will even allow to do with EXPORT/MOP stuff what most language can't do/resort to macros to do
14:39 rindolf joined #perl6
14:40 * [Coke] was only teasing, but that would be awesome.
14:43 colomon are people going to YAPC::NA?
14:44 colomon “Included in these events will be a Perl 6 hackathon with Perl creator Larry Wall on June 11th.”  Hmmm.
14:46 [Coke] I am probably not. (sadface)
14:49 colomon :(
14:50 * colomon thinks the last time he saw [Coke] was … Columbus?
14:51 rmgk_ joined #perl6
14:52 colomon Eeek!  smoke test is dying with a seg fault.  :(
14:53 jnthn /o\
14:55 * colomon is looking suspiciously at Sum — it’s either dying in or right after it, and it seems like it’s been trouble several times this week.
14:55 moritz Sum?
14:58 colomon moritz: https://github.com/skids/perl6sum
15:01 retupmoca .botsnack
15:01 yoleaux :D
15:01 yoleaux 21 Feb 2015 15:04Z <FROGGS_> retupmoca: say nativesizeof(z_stream) / 8; # 112
15:03 laouji joined #perl6
15:19 dalek nqp: d038633 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
15:19 dalek nqp: Simplify class loading, Blackrush++
15:19 dalek nqp: review: https://github.com/perl6/nqp/commit/d03863352f
15:19 psch perl6-j part of that is in the latest jvminterop PR
15:20 psch 'cause it still fits with the general theme of the PR... :)
15:20 sjn \o
15:20 psch Blackrush: you'll have to wait until someone gets around to merging that.  until then you'd still need :jar<…>
15:20 psch o/ sjn
15:21 * sjn is looking for some good examples on what one can do with grammar actions... doc.perl.org seems a bit lacking on that topic :-|
15:21 Blackrush great psch :)
15:21 sjn (unless I'm looking at the wrong places)
15:21 Blackrush why did you wrote all the previous code anyway?
15:22 psch Blackrush: i didn't.  most of the old class loader stuff was from someone else.  i only adjusted typeForName to use similar logic
15:22 psch which, in hindsight, apparently wasn't neccessary :)
15:24 hoelzro FROGGS++
15:24 hoelzro I was thinking about working on a similar site, but now I don't have to =)
15:24 FROGGS hoelzro: you can still hook in :o)
15:24 FROGGS hoelzro: like, improving small things
15:24 hoelzro FROGGS: of course!
15:24 hoelzro is there an API for grabbing the status of an individual module?
15:25 FROGGS hoelzro: not yet
15:25 hoelzro I was thinking of embedding status badges into READMEs
15:25 hoelzro so when you're browsing a module, you can see its status against nightly, and the latest * release
15:26 FROGGS hoelzro: we should probably generate static json blobs like we generate static pages when a distribution changes due to new reports
15:26 hoelzro FROGGS: good idea
15:26 FROGGS hoelzro: here is the code: https://github.com/perl6/cpandatesters.perl6.org/
15:26 hoelzro thanks!
15:28 chenryn joined #perl6
15:28 dalek rakudo/nom: a583643 | peschwa++ | / (2 files):
15:28 dalek rakudo/nom: Improve and test support for Listy types in JVM Interop.
15:28 dalek rakudo/nom:
15:28 dalek rakudo/nom: Handling of listy types of NQP and Perl 6 level is now properly supported and
15:28 dalek rakudo/nom: test coverage has been improved.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a583643e92
15:28 dalek rakudo/nom: 2aa3f7d | peschwa++ | tools/build/NQP_REVISION:
15:28 dalek rakudo/nom: Bump NQP version for BootJavaInterop.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2aa3f7d7b2
15:28 dalek rakudo/nom: 3da28d6 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
15:28 dalek rakudo/nom: Fix indentation, Ven++.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3da28d6c66
15:28 dalek rakudo/nom: 57889e4 | peschwa++ | src/vm/jvm/Perl6/JavaModuleLoader.nqp:
15:28 dalek rakudo/nom: Adjust to simplified Java class loading in NQP.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/57889e4bc5
15:28 dalek rakudo/nom: d941bef | peschwa++ | tools/build/NQP_REVISION:
15:28 dalek rakudo/nom: Another NQP version bump, for simpler class loading.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d941bef587
15:28 dalek rakudo/nom: 11ae56e | FROGGS++ | / (4 files):
15:28 dalek rakudo/nom: Merge pull request #372 from peschwa/jvminterop
15:28 dalek rakudo/nom:
15:28 dalek rakudo/nom: Improve and test support for Listy types in JVM Interop.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11ae56e9d2
15:28 Ven rip dalek?
15:28 Ven oh :o)
15:29 FROGGS no, not this time :o)
15:30 skids joined #perl6
15:30 * lizmat kicks off a jvm build and spectest
15:35 * colomon notes that Sum’s tests have been printing out “use of uninitialized value of type Any in numeric context  in sub  at lib/Sum/MD.pm6:285” for the last ten minutes or so....
15:44 psch oh, i just realized one (maybe significant) change with that implementation of typeForName instead of the previous one
15:44 psch previously we could load .jars in %*LIB without them being in CLASSPATH
15:45 psch or from whereever, really
15:46 psch i'd say needing them in CLASSPATH is a bit more consistent, seeing as we don't look in %*LIB for .so files
15:46 psch for NativeCall that is
15:46 FROGGS hmmm
15:46 FROGGS I think I agree
15:47 FROGGS what's %*LIB anyway?
15:47 psch a placeholder for whatever is populated by -I :)
15:47 psch in reality it's @*INC i think?  i've gotten a bit distracted a bit ago
15:48 * Ven would love to have an .foo()n .bar() ...
15:48 FROGGS Ven: given $obj { .foo(); .bar() }
15:48 FROGGS psch: ahh
15:48 Ven FROGGS: that's ugly :)
15:48 FROGGS psch: @*INC is for modules, so +1 to current behaviour
15:49 FROGGS Ven: no, it's not :o)
15:49 Ven it really is ;o)
15:49 FROGGS no
15:49 FROGGS isnt
15:49 Ven well, that seems like a useless discussion :). Why do we need ";" then :P?
15:50 * FROGGS .oO( This is Ipswitch )
15:50 FROGGS Ven: because you call it on $obj, and not on the result of the call before
15:50 Ven FROGGS: I don't want that. I want to call it on the result of the call before
15:51 Ven $obj.foo.bar for given $obj { .=foo; .=bar }
15:51 FROGGS well, unspace is also quite ugly
15:51 Ven yes
15:51 FROGGS m: 42\␤.say\␤.say
15:51 camelia rakudo-moar 11ae56: OUTPUT«42␤True␤»
15:51 * colomon notes the Sum test is still spitting out that warning multiple times a second.   It’s now been running for 25+ minutes.
15:52 FROGGS O.o
15:52 * Ven seems to agree with this result, but that definitely hasn't worked for him...
15:52 FROGGS colomon: it passed just recently: http://testers.p6c.org/reports/13840.html
15:52 lizmat commute&
15:54 Ven FROGGS: I don't see why we need unspace
15:54 Ven m: say 'foo'   .bar; # heh
15:54 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/l2aOgDjuJX␤Two terms in a row␤at /tmp/l2aOgDjuJX:1␤------> 3say 'foo'   7⏏5.bar; # heh␤    expecting any of:␤        infix stopper␤        infix or meta-infix␤        postfix␤        state…»
15:54 FROGGS TTIAR
15:55 Ven yeah.
15:55 FROGGS because .bar does already mean $_.bar
15:55 Mouq m: say.say
15:55 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5===␤No valid term seen where one is required␤at /tmp/yXJhVe0ixc:1␤------> 3say7⏏5.say␤    expecting any of:␤        argument list␤Other potential difficulties:␤    Unsupported use of bare 'say'; in Perl 6 please use .say …»
15:56 Ven m: say do given 'foo' { .=lc; .=tc; }
15:56 camelia rakudo-moar 11ae56: OUTPUT«Cannot modify an immutable Str␤  in method dispatch:<.=> at src/gen/m-CORE.setting:1332␤  in block <unit> at /tmp/KIcbOvWsd6:1␤␤»
15:56 Ven m: say do given ($ = 'foo') { .=lc; .=tc; }
15:56 camelia rakudo-moar 11ae56: OUTPUT«Foo␤»
15:57 Ven uhm
15:57 Mouq m: $_ = 'foo'; .=lc; .=tc; .say
15:57 camelia rakudo-moar 11ae56: OUTPUT«Foo␤»
15:58 Mouq m: $_ = 'foo'; .=lc.=tc; .say
15:58 camelia rakudo-moar 11ae56: OUTPUT«Foo␤»
15:58 Ven m: macro given($val) { quasi {{{ $_ = $val }}} }; given('a'); .say;
15:58 camelia rakudo-moar 11ae56: OUTPUT«Cannot assign to an immutable value␤  in block  at /tmp/hn8XplEz_g:1␤  in any  at /tmp/hn8XplEz_g:1␤  in block <unit> at /tmp/hn8XplEz_g:1␤␤»
15:59 Ven m: macro given($val) { quasi {{{ $_ = (my $ = $val) }}} }; given('a'); .say;
15:59 camelia rakudo-moar 11ae56: OUTPUT«Cannot assign to an immutable value␤  in block  at /tmp/dK_9Z2CsND:1␤  in any  at /tmp/dK_9Z2CsND:1␤  in block <unit> at /tmp/dK_9Z2CsND:1␤␤»
15:59 Ven uhm
16:01 Mouq m: sub given($val) { $OUTER::_ = $val }; given('a'); .say
16:01 camelia rakudo-moar 11ae56: OUTPUT«a␤»
16:01 Ven Mouq++ # not resorting to macros :)
16:03 Ven I always resort to macros first because there's no other language (that I know of, at least) that allow me to change so much dynamically..
16:03 Ven *AND* statically :P
16:04 Ven Mouq: now, a pipe operator that's not a macro? :P
16:06 mr-foobar joined #perl6
16:06 Ven m: sub infix:<< |> >>($val, &fn) { fn($val) }; say ('a' |> &trim |> &lc);
16:06 camelia rakudo-moar 11ae56: OUTPUT«a␤»
16:07 Mouq m: my $m = 42; macro out { quasi { $m } }; say out
16:07 camelia rakudo-moar 11ae56: OUTPUT«(Mu)␤»
16:07 Mouq m: my $m = 42; macro out { quasi { $OUTER::m } }; say out
16:07 camelia rakudo-moar 11ae56: OUTPUT«(Any)␤»
16:07 Ven m: macro infix:<< |> >>($val, $fn) { quasi { &{{{$fn}}}({{{$val}}})) }; say ('a' |> trim |> lc);
16:07 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dxyJftnN55␤Unsupported use of &{{{$fn}; in Perl 6 please use &({{$fn)␤at /tmp/dxyJftnN55:1␤------> 3x:<< |> >>($val, $fn) { quasi { &{{{$fn}7⏏5}}({{{$val}}})) }; say ('a' |> trim |> l␤»
16:07 Ven this error message *g*
16:07 Mouq m: sub infix:<< |> >>($val, &fn) { fn($val) }; say ("ABCD\n\n" |> &trim |> &lc);
16:07 camelia rakudo-moar 11ae56: OUTPUT«abcd␤»
16:07 colomon FROGGS: it may have passed somewhere, but it’s still going (40+ minutes now) on hack
16:08 gfldex joined #perl6
16:08 Ven Mouq: this one I had :)
16:09 Ven m: macro infix:<< |> >>($val, $fn) { quasi { (&{{{$fn}}})({{{$val}}})) }; say ('a' |> trim |> lc);
16:09 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jMOMymWM9P␤Unsupported use of &{{{$fn}; in Perl 6 please use &({{$fn)␤at /tmp/jMOMymWM9P:1␤------> 3:<< |> >>($val, $fn) { quasi { (&{{{$fn}7⏏5}})({{{$val}}})) }; say ('a' |> trim |> ␤»
16:09 Mouq m: macro infix:<< |> >>($val, $call) { $call.unshift($val) }; say (('a' |> trim) |> lc);
16:09 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/L_x6UviUAh␤Cannot call 'unshift'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤at /tmp/L_x6UviUAh:1␤------> ␤»
16:10 Ven unshift??
16:10 Mouq Ven: You're right, I guess it should be push ;P
16:10 Mouq "trim" is a function call
16:10 Ven you're trying to *push* an argument on the top of the call?
16:10 Ven yeah, I know
16:11 Mouq So saying &{{{$fn}}} doesn't really make much sense with the current way macros work. This isn't lisp :P
16:11 Ven *g*
16:12 Ven I tried!
16:12 dalek doc: 701b217 | moritz++ | / (3 files):
16:12 dalek doc: Document IO::Socket and IO::Socket::INET
16:12 dalek doc: review: https://github.com/perl6/doc/commit/701b217c45
16:12 dalek doc: fa027ee | moritz++ | lib/Type/Metamodel/C3MRO.pod:
16:12 dalek doc: Fix a heading
16:12 dalek doc: review: https://github.com/perl6/doc/commit/fa027ee93d
16:13 FROGGS colomon: what is going where?
16:13 FROGGS colomon: ahh, Sum
16:13 colomon FROGGS: yup
16:13 moritz jnthn: I'm a bit unhappy about the difference between IO::Socket::Async.chars_supply and Proc::Async.chars_supply
16:13 moritz one being an on_demand supply, the other a live one
16:14 colomon I’m thinking I need to block emmentaler from running it if I want to get a full smoke test run
16:14 Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name.Str}}})($val) } }; say (('a' |> trim) |> lc);
16:14 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zBq3GerV04␤Type check failed in unquote evaluation; expected 'AST' but got 'Str'␤at /tmp/zBq3GerV04:1␤------> ␤»
16:15 Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name}}})({{{$val}}}) } }; say (('a' |> 'trim') |> 'lc');
16:15 camelia rakudo-moar 11ae56: OUTPUT«a␤»
16:15 Mouq Eyyy
16:15 colomon FROGGS: oh, I think I see what might be part of the problem from cpandatesters point of view.
16:15 Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name}}})({{{$val}}}) } }; say (('ABCD\n\n' |> 'trim') |> 'lc');
16:15 camelia rakudo-moar 11ae56: OUTPUT«abcd\n\n␤»
16:15 Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name}}})({{{$val}}}) } }; say (("ABCD\n\n" |> 'trim') |> 'lc');
16:15 camelia rakudo-moar 11ae56: OUTPUT«abcd␤»
16:15 colomon FROGGS: if trying to install hangs or crashes panda, you never get a report
16:15 FROGGS :o(
16:15 jnthn moritz: That does sound a bit off, yes.
16:16 moritz jnthn: and (I think) I understand that's because we can't easily pre-declare supplys for the .accept equivalent in the sockets
16:16 FROGGS colomon: if it hangs, yes, panda wont kill it after some time... but if it crashes, panda still gets the exit code and error message
16:16 moritz jnthn: still, would be nice if we could do something about it :-)
16:17 Ven how does callframe.my work?
16:17 colomon FROGGS: I’m pretty sure last time I ran the smoke test, it not only crashed itself, it crashed panda too.  There were 2 “segmentation fault” messages, and no further progress in the smoke test
16:17 moritz Ven: by low-level magic :-)
16:17 jnthn moritz: Agree; mebbe you could RT it so it won't be lost?
16:17 moritz jnthn: willdo
16:17 Ven moritz: I mean -- how do *I* use callframe.my?
16:17 jnthn moritz: kthx
16:17 Ven m: sub foo { say callframe.my<$foo>; }; sub bar { my $foo = 1; foo }; bar;
16:17 camelia rakudo-moar 11ae56: OUTPUT«(Any)␤»
16:18 moritz m: sub foo { say callframe.my<$foo>; }; sub bar { my $foo is dynamic = 1; foo }; bar
16:18 Ven .oO( we're not ruby..not yet *g* )
16:18 camelia rakudo-moar 11ae56: OUTPUT«(Any)␤»
16:18 moritz hrm
16:19 Ven (ruby's "bindings" is insane...)
16:19 moritz m: sub foo { say callframe.my.perl; }; sub bar { my $foo is dynamic = 1; foo }; bar
16:19 camelia rakudo-moar 11ae56: OUTPUT«EnumMap.new("\$!" => Mu, "\$*DISPATCHER" => Mu, "\$_" => Mu, "\$/" => Mu, "RETURN" => Mu, "\&?ROUTINE" => Mu)␤»
16:19 moritz m: sub foo { say callframe(1).my.perl; }; sub bar { my $foo is dynamic = 1; foo }; bar
16:19 FROGGS colomon: wow, never seen that
16:19 camelia rakudo-moar 11ae56: OUTPUT«EnumMap.new("\$!" => Mu, "\$*DISPATCHER" => Mu, "\$_" => Mu, "\&?ROUTINE" => Mu, "\$foo" => Mu, "RETURN" => Mu, "\$/" => Mu)␤»
16:19 colomon FROGGS: given the running time, I think it might be using up all hack’s memory...
16:19 moritz Ven: seems it doesn't work anymore
16:19 Ven well :(
16:19 moritz Ven: or only returns the static pads
16:20 Ven that might be a good thing, tho...
16:20 Ven .oO( I mean, how crazy can you get? ruby-level crazy? )
16:20 Mouq m: sub foo { say CALLER::<$foo> }; sub bar { my $foo is dynamic = 1; foo }; bar
16:20 camelia rakudo-moar 11ae56: OUTPUT«1␤»
16:20 Ven oooh, right Mouq
16:20 colomon FROGGS: just checked with top, and it’s been running 55 minutes and is using 1.1G.  I’d be surprised if that ran hack out, but maybe if it continues this behavior for the next few hours....
16:20 perl6_newbee joined #perl6
16:20 perl6_newbee hi all
16:21 Ven .oO( "if ruby is perl's cousin that does less drugs, perl6 is ruby's other cousin that has fun without the drugs... but maybe with something else instead..." )
16:21 Ven m: sub foo { say CALLER::<$foo> }; sub bar { my $foo = 1; foo }; bar
16:21 camelia rakudo-moar 11ae56: OUTPUT«Cannot access '$foo' through CALLER, because it is not declared as dynamic␤  in method at_key at src/gen/m-CORE.setting:11867␤  in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3531␤  in sub foo at /tmp/BMJNHEjT87:1␤  in sub bar at /tmp/BMJNHEj…»
16:21 Mouq m: sub foo { say callframe(1).my<$foo> }; sub bar { my $foo is dynamic = 1; foo }; bar
16:21 camelia rakudo-moar 11ae56: OUTPUT«1␤»
16:21 Mouq Maybe it just .perls wrong
16:22 Ven uh.
16:22 Ven that didn't work in moritz's example earlier :o)
16:22 Mouq m: sub foo { say callframe(1).my.perl }; sub bar { my $foo is dynamic = 1; foo }; bar
16:22 camelia rakudo-moar 11ae56: OUTPUT«EnumMap.new("\$foo" => Mu, "RETURN" => Mu, "\&?ROUTINE" => Mu, "\$_" => Mu, "\$*DISPATCHER" => Mu, "\$!" => Mu, "\$/" => Mu)␤»
16:22 Ven but now the question is...
16:23 Ven m: sub foo { callframe(1).my<$foo> = 5; }; sub bar { my $foo is dynamic = 1; foo; say $foo; }; bar
16:23 camelia rakudo-moar 11ae56: OUTPUT«5␤»
16:23 Ven hehehehehe
16:23 Ven (that's basically $*foo, tho, right?)
16:23 moritz yes
16:24 moritz m: sub foo { callframe(1).my<$foo> = 5; }; sub bar { my $foo = 1; foo; say $foo}; bar
16:24 camelia rakudo-moar 11ae56: OUTPUT«5␤»
16:24 Ven why have both $*foo and is dynamic?
16:24 Ven I don't know the problem it's trying to solve
16:24 Ven oh.
16:24 moritz except that callframe.my doesn't need 'is dynamic'
16:24 Ven is dynamic is only for "CALLER::"?
16:24 moritz CALLER checks for it
16:24 jnthn my $*foo; # automatically sets "is dynamic"
16:24 moritz Ven: I guess callframe.my is simply broken
16:24 Ven moritz: .my should check for it as well,right?
16:25 jnthn callframe.my probably should care about dynamic
16:25 jnthn Or we're going to get really weird things as the optimizer happily optimizes away non-dynamic lexicals.
16:26 Ven *g*
16:26 moritz "oops"
16:26 Ven m: sub foo { callframe(1).my<$spooky> = 5; }; sub bar { foo; say $spooky; }; bar # lexically => probably checked at compile-time, obv...
16:26 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EYThjF9bgr␤Variable '$spooky' is not declared␤at /tmp/EYThjF9bgr:1␤------> 3ooky> = 5; }; sub bar { foo; say $spooky7⏏5; }; bar # lexically => probably checked␤    expecting any of:␤        post…»
16:27 cschwenz left #perl6
16:30 raiph joined #perl6
16:31 perl6_newbee Is there a problem with unicode and txt files saved on WIndows?
16:31 moritz perl6_newbee: depends :-)
16:32 jnthn Some Windows programs put a byte order mark at the start of the file, for no good reason whatsoever
16:32 moritz perl6_newbee: rakudo defaults to UTF-8, Notepad to UTF-16 (and calls it "Unicode")
16:32 jnthn We go to some effort to cope with that.
16:32 perl6_newbee Every time I open a log file on windows and go through it with .lines I get a exception "Malformed UTF-8"
16:32 jnthn Oh, and what moritz said
16:32 sqirrel joined #perl6
16:32 jnthn perl6_newbee: Find out when encoding the file is actually in and then open it with the correct encoding (it's an argument to open)
16:33 perl6_newbee I tried to open the txt file with open('file', :r, :enc<UTF-16>) but then I got antoher error
16:33 moritz http://doc.perl6.org/routine/open
16:33 moritz nine_: what error?
16:33 moritz erm, sorry, meant perl6_newbee
16:33 moritz note to self: tab-complete on 'perl6', not on 'newb'
16:33 jnthn haha :)
16:34 perl6_newbee moritz: I have to check it again.
16:34 perl6_newbee I tracked the character down to a ü
16:35 perl6_newbee hexdump shows me: fc 0d 0a
16:35 perl6_newbee just for the ü in the file
16:35 perl6_newbee fc is the right hex unicode I think
16:35 moritz 0a is the newline
16:35 jnthn fc means you have latin-1
16:36 flussence .oO( can we have an :enc(*), which uses something like the html spec's detection algorithm? )
16:36 jnthn 0d is \r, 0a is \n
16:36 moritz flussence: that's in fact the default that the design docs mandate
16:36 perl6_newbee so I have to open the file with latin instead of UTF-8?
16:36 moritz flussence: though it only recognized utf-8 and -16 (and maybe -32)
16:36 moritz perl6_newbee: latin-1, not latin
16:36 flussence oh good, for once I'm not suggesting something crazy :D
16:37 jnthn perl6_newbee: Yes, because your file is, apparently, not in utf-8 :)
16:37 perl6_newbee ok thanks a lot for the help. I assume a :enc<latin-1> will do the job?
16:37 jnthn ü is represented as 2 bytes in utf-8
16:38 jnthn perl6_newbee: Think that's right
16:38 perl6_newbee Hmm, latin-1, unicode and so on is a bit puzzling. I though all files are in UTF-8. Ayways, thx
16:38 dalek doc: 3606e95 | moritz++ | lib/Type/IO.pod:
16:38 dalek doc: open: be specific about adverbs in the signature
16:38 dalek doc: review: https://github.com/perl6/doc/commit/3606e95a4d
16:39 moritz perl6_newbee: i wish all files were in UTF-8 :-)
16:39 colomon moritz: or plain 7-bit ascii
16:39 moritz http://perlgeek.de/en/article/encodings-and-unicode it deals with Perl 5, but the intro might be interesting for you
16:39 moritz colomon: that's valid UTF-8 too :-)
16:40 colomon moritz: yes, but the distinction is important.  :)
16:40 moritz colomon: yes. If some software assumes stuff is ASCII, then things will break on the first non-ASCII character
16:40 perl6_newbee Hmm, I already know your web pages :-) I olready start to read this certain page, but did not finish it yet...
16:40 colomon moritz: right
16:41 colomon moritz: note that some file formats are defined as being ascii, and writing out utf-8 where it’s supposed to be ascii causes massive problems
16:42 moritz colomon: been there, seen that :-)
16:42 perl6_newbee sorry... can I give IO::Path the encoding somehow? I tried IO::Path.new('file', :enc<latin-1>) but get still the UTF-8 error. Have I to use open?
16:42 moritz colomon: one of my first paid programming jobs included parsing XML that was documented to be ASCII, the specs said UTF-8, and actually it was in Latin-1
16:42 moritz perl6_newbee: http://doc.perl6.org/routine/open
16:42 colomon moritz: ugh
16:43 moritz colomon: otherwise, it was quite sane. Compared to the FORTRAN data file I also had to parse :-)
16:43 moritz still, it was a fun job, all in all
16:44 moritz free choice of tools, I was allowed to use Linux in an all-windows env, no time pressure, nice colleagues
16:45 moritz in unrelated news, somebody please port sqlalchemy to Perl 6 :-)
16:45 perl6_newbee hmm I though I have to say IO::Path that it should do with enc. Completely forget open can be called with IO. Thanks one more. Now it works
16:49 echowuhao joined #perl6
16:50 diana_olhovik joined #perl6
16:56 telex joined #perl6
16:57 timotimo o/
16:58 timotimo moritz: it was you who suggested IO::Socket::INET to be called ...::TCP instead?
16:58 moritz timotimo: yes
16:58 timotimo that seems like a confusion at a basic level
16:58 moritz timotimo: and thinking more about it, I'd also split .new into .listen and .connect
16:58 timotimo INET is about address family, TCP is about protocol
16:59 moritz well, we only support TCP, no?
16:59 timotimo i.e. you can have TCP, UDP, SCTP over INET and INET6
16:59 timotimo i'm not entirely sure
16:59 timotimo would you prefer we have a separate class for connectionless sockets?
16:59 geekosaur if you only support TCP then you're going to be fairly limited.
17:00 moritz timotimo: I'd prefer for the name to accurately reflect the functionality
17:00 timotimo i'm actually not 100% sure our INET sockets are actually limited to the INET and INET6 address families
17:00 timotimo but to be honest, i've never worked with anything but INET and INET6
17:01 dalek perl6-roast-data: a76b59f | coke++ | / (9 files):
17:01 dalek perl6-roast-data: today (automated commit)
17:01 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/a76b59f812
17:01 timotimo do you get a "raw socket" by supplying a different address family, ooc?
17:01 moritz timotimo: well, $.family is *only* used to determine whether to parse the IP as an IPv4 or an IPv6 address
17:02 moritz and $.proto isn't used at all
17:02 geekosaur timotimo, yes
17:02 timotimo geekosaur: thanks; i'm looking at https://www.iana.org/assignments/address-family-numbers/address-family-numbers.xhtml right now
17:02 moritz geekosaur: not in rakudo
17:02 geekosaur well, protocol family which is yet another different thing
17:02 timotimo that's probably number 6?
17:03 timotimo huh, DNS has its own AF?
17:03 geekosaur but PF is often determined by AF as sockets are used in the wild
17:03 timotimo what does that imply?
17:03 moritz timotimo: and to answer your question: yes, I'd prefere a separate API for connectionless protocols
17:03 timotimo OK
17:03 timotimo this is very, very, very, very pre-6.0, btw :)
17:04 timotimo sadly i'm very far from an expert on network programming
17:04 chenryn joined #perl6
17:04 moritz sadly most of those who contribute code to rakudo seem to be far from expert network programmers
17:04 moritz yours truly included
17:05 * geekosaur is not really an expert either, but generally knows more about it than many. which is kinda a bad indication with respect to networking knowledge
17:06 timotimo :D
17:09 Possum joined #perl6
17:15 Kristien joined #perl6
17:17 Kristien Apparently there is this podcast about CQS
17:17 yoleaux 14:22Z <Ven> Kristien: I heard you wanted to learn Pascal, so I put some Pascal in your haskell so you can learn pascal while you learn haskell... https://github.com/int-index/kalium
17:17 Kristien which takes over _an hour_.
17:17 Kristien vendethiel: I already know Haskell!
17:18 fhelmberger_ joined #perl6
17:19 jnthn Kristien: It's probably 30 minutes telling you what to do, followed by 30 minutes of questions... :P
17:19 Kristien and apparently 60 minutes of boringness :P
17:20 Kristien CQS is great and underestimated though.
17:24 jnthn That and "tell, don't ask"
17:25 El_Che 3~
17:25 fhelmberger joined #perl6
17:26 colomon moritz: how much memory does hack.p6c.org get?
17:26 Sysaxed joined #perl6
17:28 flussence .oO( there are two types of network socket: the ones that barely work, and ones someone else has written a gigantic API around... )
17:29 [Coke] colomon: htop says 20125mb
17:29 colomon [Coke]++
17:30 * colomon feels like an idiot for not realizing that was on his screen as he asked the question
17:30 * TimToady feels like an idiot for fudging a passing test :)
17:30 * colomon is really hogging CPU on hack
17:31 psch [Coke]: can you re-check re: my CLA?
17:32 [Coke] I just checked for moritz earlier today. nope.
17:32 psch oh.  right, i didn't see you replying there
17:32 psch suppose i should send another one? it's been about 2 months
17:34 * colomon Sum has been testing for more than 2 hours now.  And might be testing again in a second instance (cron-job)
17:39 timotimo maybe i'll learn how to libuv and build some UDP stuff atop moarvm to make available to rakudo ...
17:40 grettir joined #perl6
17:42 raiph joined #perl6
17:44 japhb Re: network expertise in the Perl world ... I'd defer to this guy: http://www.amazon.com/Network-Programming-Perl-Lincoln-Stein/dp/0201615711
17:45 japhb That book was my networking-in-Perl bible.
17:50 moritz btw &open uses :nl, IO::Socket::INET uses :input-line-separator
17:53 TimToady vendethiel: I did not know that Smalltalk has either 'leave' or 'eqv', so it's more like parallel evolution
17:57 FROGGS[mobile] joined #perl6
17:57 pyrimidine jantore: Lincoln's a bit busier these days :)
17:58 pyrimidine sorry, that was for japhb ^^^
18:03 moritz colomon: hack has ~20GB RAM; if necessary, that could be upped a bit
18:03 moritz colomon: the physical machine has 32G, www has 4
18:03 moritz so the rest (28g) could be shared between the hypervisor and hack
18:04 moritz currently I have a bit reserved for a third VM, when we need it
18:05 molaf joined #perl6
18:06 moritz TimToady: will you document bare :D as discussed yesterday? or does it still need more thought? or should I do it?
18:07 TimToady go for it
18:07 japhb pyrimidine: What does he do now (that makes him busier than he was then)?
18:08 * El_Che waiting for the FOSDEM videos...
18:08 El_Che a lot have been released already, but so far not "ours"
18:08 * TimToady notices List.rotor is "undesigned" as well
18:09 sqirrel joined #perl6
18:10 dalek specs: 1491b93 | TimToady++ | S32-setting-library/Containers.pod:
18:10 dalek specs: clarify invert semantics
18:10 dalek specs: review: https://github.com/perl6/specs/commit/1491b9321b
18:11 TimToady m: say 1,2,4 … *
18:11 camelia rakudo-moar 11ae56: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296 8589934592 17179869184 34359738368 68719476736…»
18:12 FROGGS joined #perl6
18:15 TimToady m: say (1,2 … *).rotor(3,2)
18:15 camelia rakudo-moar 11ae56: OUTPUT«1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 8 9 10 9 10 11 10 11 12 11 12 13 12 13 14 13 14 15 14 15 16 15 16 17 16 17 18 17 18 19 18 19 20 19 20 21 20 21 22 21 22 23 22 23 24 23 24 25 24 25 26 25 26 27 26 27 28 27 28 29 28 29 30 29 30 31 30 31 32 31 32 33 3…»
18:16 Kristien 16777216 colours
18:16 FROGGS btw, I just committed to panda to change the url the test report go to...
18:17 Rounin joined #perl6
18:17 FROGGS reports are now here: http://testers.p6c.org
18:17 psch FROGGS++
18:17 FROGGS that also means that the website is now pretty awesome fast and stable
18:20 moritz FROGGS++
18:20 moritz S06 says
18:20 moritz A method's invocant
18:20 moritz always has the alias C<self>.  Other styles of self can be declared
18:20 moritz with the C<self> pragma.
18:21 moritz do we hold on to the C<self> pragma?
18:21 moritz I haven't ever heard anybody complaining about it being NYI
18:22 psch m: class A { method foo() { self.perl } }; say A.new.foo # looks like it, if i'm not misunderstanding
18:22 camelia rakudo-moar 11ae56: OUTPUT«A.new()␤»
18:23 psch m: class A { method foo() { self.perl } }; say A.foo # ooc
18:23 camelia rakudo-moar 11ae56: OUTPUT«A␤»
18:23 masak moritz: I think I would be relieved rather than distressed to se it go.
18:23 masak moritz: I do remember there being quite some waves around the specifics of the `self` bikeshed in 2004/2005.
18:23 psch m: my $f = method () { self.perl }; say $f(Str)
18:23 camelia rakudo-moar 11ae56: OUTPUT«Str␤»
18:23 psch m: my $f = method () { self.perl }; say $f("foo")
18:23 camelia rakudo-moar 11ae56: OUTPUT«"foo"␤»
18:23 masak moritz: probably the C<self> pragma fell out as a kind of compromise. a compromise that is no longer needed.
18:24 moritz masak: ok, I'll undocument it with the next push :-)
18:24 masak \self/
18:24 * psch feels like he is misunderstanding somewhere
18:24 * moritz still doesn't know where to document bare :D
18:25 * psch .oO( &bare? )
18:25 moritz psch: the invocant is just the first argument
18:25 * psch .oO( ...and why is moritz happy about that? )
18:25 moritz psch: http://design.perl6.org/S06.html#Invocant_parameters
18:25 psch moritz: right, but bare «self» is not a pragma, is it?
18:25 moritz psch: no
18:25 psch that's where i think i'm a bit lost
18:26 psch i.e. the code i camelia'd works, but will still work?
18:26 moritz psch: but there is a note in S06 that you do something like   use self '$flurb', and self is now splled '$flurb'
18:26 psch ooh
18:26 psch i didn't know that.  and it does sound kind of horrible
18:27 * masak .oO( a $[ for the new milennium! )
18:28 moritz use self '$elf';
18:28 masak use self 's€lf';
18:30 Juerd use self 'this';
18:31 jnthn use self 'restraint';
18:32 jnthn But yeah, I think the pragma can go :P
18:32 dalek specs/newio: df8fa90 | moritz++ | S (2 files):
18:32 dalek specs/newio: Undocument the "self" pragma
18:32 dalek specs/newio:
18:32 dalek specs/newio: which nobody implemented, and nobody misses
18:32 dalek specs/newio: review: https://github.com/perl6/specs/commit/df8fa90248
18:32 moritz oops, wrong branch
18:32 Kristien In Scala you can also rename this!
18:33 dalek specs: 4198be6 | moritz++ | S (2 files):
18:33 dalek specs: Undocument the "self" pragma
18:33 dalek specs:
18:33 dalek specs: which nobody implemented, and nobody misses
18:33 dalek specs: review: https://github.com/perl6/specs/commit/4198be63d6
18:33 psch m: my method foo () { my \this = self; say this.perl }; foo(Str)
18:33 camelia rakudo-moar 11ae56: OUTPUT«Str␤»
18:34 moritz m: my method foo(this:) { say this }; 3.&foo
18:34 camelia rakudo-moar 11ae56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CM6W9eSFsY␤Invalid typename 'this' in parameter declaration.␤at /tmp/CM6W9eSFsY:1␤------> 3my method foo(this7⏏5:) { say this }; 3.&foo␤»
18:34 moritz m: my method foo(\this:) { say this }; 3.&foo
18:34 camelia rakudo-moar 11ae56: OUTPUT«3␤»
18:36 Mouq m: &postcircumfix:<[ ]>.candidates.first({.signature ~~ :($a, Int:D $b)}).wrap(-> $a, $b { callwith $a, $b-1 }); my @a = 1,2,3; say @a[3]
18:36 camelia rakudo-moar 11ae56: OUTPUT«3␤»
18:39 dalek specs: 582cee8 | TimToady++ | S32-setting-library/Containers.pod:
18:39 dalek specs: add Pair.exchange as distinct from .invert
18:39 dalek specs: review: https://github.com/perl6/specs/commit/582cee8a8c
18:40 virtualsue joined #perl6
18:41 laouji joined #perl6
18:43 TimToady not clear there's any use case for a Hash.exchange, since hash keys tend to be scalars in practice
18:43 * Mouq looks at https://help.github.com/enterprise/2.1/user/articles/renaming-a-repository/ ("specs" vs "design" or what have you)
18:44 TimToady personally I'm fine with "specs" if it means "speculations" :P
18:44 moritz masak: we don't have github enterprise
18:44 moritz sorry, meant Mouq
18:44 timotimo github surprise~
18:44 TimToady and specs is already de-deified under Whirlpool
18:45 colomon moritz: eh, I’m just going to kill Sum
18:48 moritz colomon: do that :-)
18:49 dalek specs: ab16f15 | moritz++ | S06-routines.pod:
18:49 dalek specs: Document bare :D at al in parameter lists
18:49 dalek specs:
18:49 dalek specs: wording improvements are very welcome.
18:49 dalek specs: Also, I did not find a proper section to document this,
18:49 timotimo jnthn: do you have a preference for how to put the UDP (or rather: connectionless) related ops into the MVMIOOps?
18:49 dalek specs: so I made my own. Suggestions for a better place are
18:49 dalek specs: also very welcome.
18:49 dalek specs: review: https://github.com/perl6/specs/commit/ab16f1582e
18:50 jnthn timotimo: Umm...not right off.
18:50 jnthn timotimo: Maybe propose something that I/others can review?
18:52 timotimo would you prefer an implementation that can already do basic I/O at the moarvm level (as in: a working example with nqp:: ops)
18:52 jnthn timotimo: Well, maybe start by description of how you'd patch io.h and oplist :)
18:53 jnthn That'll tell most things about the API :)
18:53 jnthn (At the VM and nqp level)
18:53 timotimo OK
18:54 * moritz would have proposed to start with the p6 level API
18:55 jnthn Well, at a VM level we probably don't want to be far from http://en.wikipedia.org/wiki/Berkeley_sockets
18:56 jnthn We may want to, in fact, change the nqp::op API to be more in line with that
18:56 jnthn Rather than just add more to it
18:57 jnthn There won't be a bootstrapping problem to do so since we don't use the socket ops in nqp itself.
18:58 timotimo what's the type of thing we want to expose to the user at nqp/perl6 level for sockaddr?
18:58 dalek specs: a2f4cf4 | TimToady++ | S32-setting-library/Containers.pod:
18:58 dalek specs: doc List.rotor
18:58 dalek specs: review: https://github.com/perl6/specs/commit/a2f4cf44ff
18:58 timotimo in the tcp case we only had to turn an address/port pair into an address once for connect()
18:58 timotimo but in recvfrom we can end up getting a bunch of different addresses
18:58 timotimo and creating a perl6 string and int in a parcel each time seems overkill
18:58 moritz nine_++ # perl6/doc htmlify works with Inline::Python now, and has done so for the last several days
19:01 isBEKaml joined #perl6
19:01 jnthn timotimo: Could be a buffer...
19:02 timotimo indeed it could; i was actually thinking about presenting it as a CStruct repr'd thing
19:02 jnthn That'd also work :)
19:04 jferrero joined #perl6
19:06 dalek roast: 9c362bf | peschwa++ | S04-statements/try.t:
19:06 dalek roast: Unfudge passing test.
19:06 dalek roast: review: https://github.com/perl6/roast/commit/9c362bf960
19:07 Sir_Ragnarok joined #perl6
19:08 fhelmberger joined #perl6
19:09 timotimo at least when we have a buf we can give the user a nice little cache of buf-addrs vs nice objects
19:11 fhelmberger joined #perl6
19:12 jnthn timotimo: Well, just 'cus the NQP exposition of it is buffy doesn't mean the Perl 6 level can't wrap some nicer thing around it
19:14 grettir joined #perl6
19:19 pyrimidine japhb: re: Lincoln, he's pretty much the director for Informatics at OICR:  http://oicr.on.ca/person/oicr-investigator/lincoln-stein
19:20 adu joined #perl6
19:20 BinGOs joined #perl6
19:21 BinGOs joined #perl6
19:21 pyrimidine japhb: he still makes commits to bioperl and gmod stuff but has largely moved away from programming
19:24 dalek roast: a4cc634 | TimToady++ | S04-declarations/constant.t:
19:24 dalek roast: Revert "fudge constant redecl test"
19:24 dalek roast:
19:24 dalek roast: This reverts commit 29f28156e14927b5316bceb4f7b3979e3e147a77.
19:24 dalek roast: review: https://github.com/perl6/roast/commit/a4cc6344c6
19:24 dalek roast: 3dbd986 | TimToady++ | S02-types/pair.t:
19:24 dalek roast: test pair inversion correctly (plus new .exchange)
19:24 dalek roast: review: https://github.com/perl6/roast/commit/3dbd98624d
19:27 TimToady .tell lizmat .invert is not the opposite of .pairs, since invert is intended to do database inversion, so it must split positional values (which is NYI apparently)
19:27 yoleaux TimToady: I'll pass your message to lizmat.
19:33 skids Wow, apparently I have made a testbox-smashing monster.
19:34 skids (Or at lease a monster that smashes tests when rakudo fails to serialize large arrays, probably)
19:37 * skids will have to rebuild latest and see what fun precomp bug it throws at him this time.
19:38 colomon skids: yes, didn’t want to imply the problem was necessarily your fault!  clearly it’s worked in the last week, so unless you’ve been tweaking it lately, it’s probably a change in rakudo that is the direct cause of the problem...
19:39 jnthn Would be good to figure out which change, so we can make things better in Rakudo...
19:40 skids Yeah they are very hard things to hunt, these array problems.  Sometimes just reordering code makes them go away.
19:40 skids So I haven't been able to golf it for an RT.
19:41 timotimo hmm
19:41 skids They almost invariably only happen for precomp though.
19:42 timotimo is there even sense in having asynchronous UDP?
19:42 timotimo i kind of doubt it
19:42 skids (And sometimes only when there are multiple modules in a dependency chain precomped)
19:43 timotimo oh hey skids :)
19:43 skids o/
19:43 Sqirrel joined #perl6
19:43 jnthn timotimo: Sure, you want to tap the arriving datagrams :)
19:44 timotimo hm, fair enough
19:50 dalek specs: d05d16b | moritz++ | LICENSE:
19:50 dalek specs: Add Artistic License 2.0.
19:50 dalek specs:
19:50 dalek specs: Closes #65.
19:50 dalek specs: review: https://github.com/perl6/specs/commit/d05d16bcfe
19:52 Kristien joined #perl6
19:54 colomon finally got a complete smoke run done (skipping Sum) : http://smoke.perl6.org/report
19:54 moritz colomon++
19:55 moritz are smoke.perl6.org/report and testers.p6c.org linked from perl6.org somewhere?
19:55 colomon no clue
19:55 moritz would be worth checking/adding
19:55 moritz also on modules.perl6.org
19:55 timotimo huh, how do i associate extra data with a udp socket in uv for uv_udp_start_recv?
19:56 hoelzro there's a smoke.perl6.org too?
19:56 kjs_ joined #perl6
19:56 moritz hoelzro: aye
19:56 hoelzro wow, I'm out of the loop o_O
19:56 hoelzro how long has that been around?
19:56 moritz hoelzro: smoke.perl6.org shows the results from dedicated smoke runs
19:56 moritz hoelzro: and it has been around with different URLs for at least two years now
19:56 hoelzro wow
19:57 hoelzro is that referenced from anywhere on perl6.org or anything like that?
19:57 jnthn timotimo: Normally by hanging it off .data of some libuv struct
19:57 moritz whereas testers.p6c.org passively collect panda reports
19:57 hoelzro ahhhh
19:58 timotimo ah, maybe in the uv_udp_t
20:01 timotimo indeed, uv_udp_t has a uv_handle_t that has a "data" member that's for this purpose
20:03 jnthn timotimo: Just be very careful what you hang off what
20:03 jnthn (Because GC)
20:04 jnthn (e.g. if you make .data point to something GC-able, we're hosed)
20:05 jnthn So the IO has the GC-able handle object hold things at a level of indirection in a malloc'd thingy, and the .data can point to *that*.
20:05 dalek specs: 5568e90 | moritz++ | README.md:
20:05 dalek specs: Add a README.
20:05 dalek specs:
20:05 dalek specs: Let the bikesheddings begin!
20:05 dalek specs: review: https://github.com/perl6/specs/commit/5568e90231
20:05 Renan_ joined #perl6
20:05 ninedragon_ joined #perl6
20:06 TimToady m: sub foo ($x ($y)) { say "$x $y" }; foo(42)
20:06 camelia rakudo-moar 11ae56: OUTPUT«Too few positionals passed; expected 1 argument but got 0 in sub-signature of parameter $x␤  in sub foo at /tmp/aX7HFHXWqU:1␤  in block <unit> at /tmp/aX7HFHXWqU:1␤␤»
20:06 timotimo understood
20:07 TimToady that's a bit LTA
20:07 timotimo i was thinking of something like the struct MVMIOSyncSocketData
20:07 timotimo except udp sockets don't have a stream-like interface
20:07 Sysaxed joined #perl6
20:07 timotimo so it probably has other demands
20:11 TimToady thinking about sub foo ($k => $v) vs ($p ($k => $v)) for pair matching; would be pretty easy to hack in as sugar for (:key($k), :value($v)) or so
20:12 TimToady if we didn't wanna worry about optimizing it off the bat
20:12 TimToady hmm, baseball idioms, unless it's cricket...
20:13 jnthn TimToady: (LTA) It's not that surprising, in so far as it's doing 42.Capture, which inherits from Mu.Capture, which looks for attributes declared with an accessor
20:13 R0Z joined #perl6
20:13 jnthn TimToady: Which is a good default for most objects. :)
20:13 TimToady but I think a lot of the time people are tempted to use .kv when they'd really rather use .pairs and unpack them
20:14 jnthn I suspect .kv will be the faster choice.
20:14 TimToady but our pair unpacking is clunky
20:14 TimToady yes, but then we could optimize it back to .kv for them :)
20:15 jnthn Really? :P
20:15 TimToady thinking more in the psych space than the impl space here :)
20:15 TimToady more like we'd hook an iterator directly to the unpacker, so we wouldn't do the kv either
20:15 jnthn To me, .kv.map(-> $k, $v { ... }) is nicer; no unpacking to worry about.
20:16 TimToady but if you're storing them for later use, pairs are nicer
20:16 jnthn True
20:16 jnthn Well, sort of :)
20:16 * FROGGS .oO( \//, -- RIP )
20:17 TimToady yeah...sigh...
20:17 FROGGS :o(
20:17 TimToady well, he had a good life
20:18 dalek mu: 7605d53 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
20:18 dalek mu: Note first bunch of closed 'parrot only' tickets
20:18 dalek mu: review: https://github.com/perl6/mu/commit/7605d53ccd
20:19 FROGGS yeah, I guess 83 is an age where it is perfectly fine to go
20:19 virtualsue_ joined #perl6
20:21 espadrine joined #perl6
20:22 skids Should Task::Star still be fetching and installing NativeCall, and if it does is that old code or is it synced?
20:22 tadzik it shouldnot
20:22 FROGGS right
20:23 moritz didn't I open a pull request to remove it?
20:23 moritz ah yes, still open
20:23 moritz tadzik: you're getting behind :-)
20:23 FROGGS https://github.com/tadzik/Task-Star/pull/5
20:27 itz LWP::Simple now needs IO::Socket::SSL in META.info since tests use https
20:28 moritz no, the tests should be conditinoal on IO::Socket::SSL being present
20:28 itz ok in that case the tests are broken
20:28 moritz we won't bundle openssl with R*
20:29 itz or rather test
20:29 Kristien good
20:29 kjs_ joined #perl6
20:30 itz perl6-lwp-simple/t/basic-auth.t probably shouldn't use https
20:30 laouji joined #perl6
20:30 itz oh that isn't the failing one
20:35 itz I think it's get-chunked-6guts.t which is redirecting to https
20:35 itz but can confirm shortly
20:40 R0Z left #perl6
20:42 skids m: my @lperms = [^16], { [ (7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8)[$_[]] ] } ... *[0]  == 4; @lperms.perl.say; # what broke Sum
20:42 camelia rakudo-moar 11ae56: OUTPUT«use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/Y_YDTWe7Ok:1␤␤Array.new([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [], [7], [4])␤»
20:42 skids star: my @lperms = [^16], { [ (7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8)[$_[]] ] } ... *[0]  == 4;
20:42 camelia star-{m,p} 2015.01: ( no output )
20:43 skids whoops
20:43 skids star: my @lperms = [^16], { [ (7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8)[$_[]] ] } ... *[0]  == 4; @lperms.perl.say;
20:43 camelia star-{m,p} 2015.01: OUTPUT«Array.new([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8], [3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12], [1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2], [4, 0, 5, 9, 7, 12, 2,…»
20:43 skids This one not a precomp, at least.
20:49 dalek mu: 321a6c6 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
20:49 dalek mu: Some more closed 'parrot only' tickets
20:49 dalek mu: review: https://github.com/perl6/mu/commit/321a6c6ab6
20:54 PerlJam why are the parrot only tickets being collected in a text file rather than a meta-ticket in RT?
20:55 * Kristien wants to make software.
20:55 timotimo finished watching this anime with my friend, yay
20:56 timotimo FROGGS: are you going to be preparing a msi of star?
20:57 bartolin PerlJam: we discussed that yesterday http://irclog.perlgeek.de/perl6/2015-02-26#i_10185581 and came up with the Mu repository. A meta-ticket in RT would work for me as well -- but I don't think it is much better.
20:57 FROGGS timotimo: I might have time for that this weekend, aye
20:58 TimToady timotimo: you can't say you finished watching an anime without saying which one!
20:58 PerlJam bartolin: an advantage I can think of for using RT is that they could be actual links to the tickets in question making it easier to reopen as needed.  (yes, it's a weak advantage)
20:59 TimToady timotimo: well, unless it's H-y
21:00 timotimo in this case it was Soul Eater
21:00 timotimo not very H-y, if i understand correctly what you mean
21:01 TimToady I understand what you mean by "not very" :)
21:02 Kristien can the Java implementation of Perl 6 be used from a Java program?
21:03 timotimo now i don't understand what you mean by "what you mean by “not very”"
21:05 masak timotimo: now I understand what you mean by «now i don't understand what you mean by "what you mean by “not very”"»
21:05 bartolin PerlJam: I'm kind of indifferent wrt to meta-ticket vs. test file. IMHO bringing back those tickets would be trivial either way compared to bringing back suppport for parrot
21:10 TimToady timotimo: fan service is not considered very H-y :)
21:14 timotimo i think soul eater itself doesn't have too much fanservice
21:14 timotimo well, there is one character that disappears after the tenth episode and returns after the 40th or so; that one's a bit on the fanservice-y side
21:15 TimToady we don't mind a little when it doesn't distract too much from the plot, but when that's the whole point or it's just over-the-top gratuitous, we get tired of it at our house
21:17 kaare__ joined #perl6
21:18 skids star: my $f = buf8.new(1,2,3,4); $f[].perl.say; # Another thing that has changed
21:18 camelia star-{m,p} 2015.01: OUTPUT«Array.new(1, 2, 3, 4)␤»
21:18 skids m: my $f = buf8.new(1,2,3,4); $f[].perl.say;
21:18 camelia rakudo-moar 11ae56: OUTPUT«Buf[uint8].new(1, 2, 3, 4)␤»
21:21 dolmen joined #perl6
21:21 echowuhao joined #perl6
21:24 donaldh joined #perl6
21:25 donaldh Kristien: yes, but YMMV
21:26 timotimo oh yay, i finally understand why the synchronous socket code does things like ref-ing uv structs and running event loops in "normal mode"
21:27 timotimo because in any thread other than the "we do async stuff here" thread we'd never have stuff running on the eventloop except between the start and end of synchronous I/O stuff
21:27 timotimo and the event loop terminates when nothing ref'd remains in it, which is why the on_* functions just unref the thing that was ref'd before
21:28 jnthn timotimo: Yes, that's the aim :)
21:28 donaldh Kristien: have a look at the eval server to get an idea how its done https://github.com/perl6/nqp/blob/master/src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java
21:29 jnthn timotimo: That said, I do seriously wonder if we will actually keep implementing the sync I/O bits in terms of libuv, or we'll just go for the POSIX API.
21:29 jnthn timotimo: I have a feeling that we may be paying a performance price. We should measure, though.
21:29 jnthn timotimo: And sockets is probably where it's least an issue.
21:30 timotimo gotcha
21:30 timotimo but i was supposed to propose changes to the oplist and header file first anyway
21:31 jnthn heh, true :)
21:32 Rounin joined #perl6
21:32 dalek doc: 6931582 | (Steve Mynott)++ | t/pod-htmlify.t:
21:32 dalek doc: use_ok -> use-ok
21:32 dalek doc: review: https://github.com/perl6/doc/commit/6931582fc0
21:32 donaldh Kristien: also take a look at https://github.com/donaldh/perl6-eclipse-plugin/ which embedded perl6 in eclipse
21:32 Kristien ok
21:32 Kristien thanks :3
21:33 Hor|zon joined #perl6
21:39 timotimo jnthn: we can use the posix socket api under windows, too, right? because windows is a certified posix operating system, right?
21:40 * psch thinks we might want to package the evalserver somewhat and provide something like «public String evalP6(String code) { … }»
21:40 psch then we can have p6 that calls p6 via jvm interop to call p6 :P
21:41 psch that's kind of what i imagined as the other use case vendethiel's friends want
21:42 psch donaldh: which bit of how the evalserver handles running p6 code is subject to YMMV?
21:42 psch seeing as that's what we run roast through (in some cases at least?) i'd guess it's rather useable, if unwiedly to set up
21:42 jnthn timotimo: It's...not quite the same API, but close
21:43 jnthn timotimo: https://msdn.microsoft.com/en-us/library/ms740096(VS.85).aspx
21:43 donaldh psch: Well the eval server does just fine but I had real problems repeatedly executing the same code from Eclipse.
21:43 donaldh It's been a while though so I really ought to revisit it.
21:43 timotimo ah, we can just depend on SDL_Net in moarvm :P
21:44 dalek nqp/native-ref: 6e03675 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
21:44 dalek nqp/native-ref: Stub in native_ref container spec.
21:44 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/6e03675fb7
21:47 jnthn Well, that gets BOOTSTRAP.nqp building on native-ref at least...
21:49 TimToady I seem to recall that sockets are different beasties than ordinary file descriptors under Windows, and you can't really select on a mixture
21:49 TimToady (or poll)
21:50 jnthn Correct.
21:50 jnthn Sockets behave POSIX-ier than file things, generally.
21:51 timotimo on windows ,everything is a long pointer to a handle
21:51 geekosaur sockets are a different "namespace" than filehandles on windows
21:51 TimToady those durn union rules...
21:52 TimToady no, you just carry this to that spot there, and that other guy's job is to pick it up from there and take it the rest of the way
21:53 timotimo jnthn: do we do ops with multiple w() arguments?
21:54 jnthn timotimo: no
21:54 jnthn I dunno if it errors out in update_ops.p6
21:54 jnthn However, you'll have no way to map it from NQP
21:54 jnthn Easily
21:55 jnthn And then if you get around that, you'll find the SSA-er, and probably the rest of spesh, is utterly confused. )
21:55 jnthn So yeah, don't do it. :)
21:59 timotimo mhm
22:00 timotimo not entirely sure how to op recvfrom in that case ... returning something that has a positional interface for the address and the received message?
22:00 * donaldh just built rakudo on raspberry pi 2. 15 mins. Nice.
22:01 jercos That quad core power really helps for compiling.
22:02 donaldh And the 1GB ram
22:02 timotimo we don't really benefit from more than one core, though
22:02 jnthn donaldh: Which backend?
22:02 timotimo during compilation i mean
22:02 donaldh rakudo on moar
22:02 moritz not swapping really helps a lot
22:02 lizmat joined #perl6
22:02 jnthn donaldh: Cool :)
22:02 jnthn timotimo: Hmm, pass in a buffer to populate with the address? :)
22:03 timotimo hm. an r() parameter that gets modified
22:03 jnthn Just like the C API ;)
22:03 timotimo we don't rely on anything like read-parameters not being mutated inside spesh, so i guess that's fine
22:03 jnthn Right, we mark whole ops as :pure
22:06 timotimo hm. should the message buffer be passed in and populated or created by the op?
22:11 jnthn Passed in and populated, surely...if the op creates it, we're back to needing two w's
22:11 timotimo should close_fh be re-used for udp sockets, too? i think it fits
22:11 timotimo well, i was going to have the address buffer passed in and populated; that'd leave one slot for the message buffer to be created
22:11 timotimo rather than having to pre-create it
22:14 dalek nqp/native-ref: 94352f7 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/NativeRefREPRData.java:
22:14 dalek nqp/native-ref: Add NativeRefREPRData (though not set up yet).
22:14 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/94352f7351
22:14 dalek nqp/native-ref: 0dd1376 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
22:14 dalek nqp/native-ref: Implement iscont_[ins].
22:14 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/0dd1376e20
22:18 timotimo https://gist.github.com/timo/fff41b480ef842dee120 - this is what i've come up with
22:22 virtualsue joined #perl6
22:24 timotimo it's hardly consistent at all :\
22:28 jnthn timotimo: hmmm
22:30 timotimo maybe i'll put flags before address consistently
22:30 timotimo but that'll make bind look weird if taken on its own
22:35 skids Sum is fixethed.  All problems were Zen slice related.  Oh and one Nil Test::is() thing.
22:35 skids I can actually leave work late in dayloght.  Yay.  o/
22:35 masak have zen slices changed recently?
22:36 skids Yeah some do not return flatennable objects now.
22:36 masak oh, ok.
22:36 skids Not sure whether that's a bug or feature.
22:37 masak me either.
22:37 skids Anyway, decommute.
22:38 lizmat I recently changed %h{} to return self, rather than self.list
22:38 yoleaux 19:27Z <TimToady> lizmat: .invert is not the opposite of .pairs, since invert is intended to do database inversion, so it must split positional values (which is NYI apparently)
22:39 lizmat m: my %h; %h<a>.push(1); %h<a>.push(2); %h.invert.perl
22:39 camelia rakudo-moar 11ae56: ( no output )
22:39 lizmat m: my %h; %h<a>.push(1); %h<a>.push(2); say %h.invert.perl
22:39 camelia rakudo-moar 11ae56: OUTPUT«([1, 2] => "a",).list␤»
22:40 lizmat TimToady: so that should become: (1 => "a", 2=>"a").list ?
22:41 literal where can I find some reading on set operators like (-) and (elem) ?
22:41 bayprogrammer joined #perl6
22:41 literal I don't see much about it in S03, all I really found was S03-operators/set.t
22:44 raydiak literal: they aren't very well documented atm, but https://github.com/rakudo/rakudo/blob/nom/src/core/set_operators.pm is pretty easy to read
22:48 timotimo this kitty is kneading the air, seems like i'm doing my job properly
22:49 dalek rakudo/nom: 2eba6c8 | (sue spence)++ | / (2 files):
22:49 dalek rakudo/nom: Minor spelling corrections.
22:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2eba6c8d6a
22:49 dalek rakudo/nom: abe97eb | lizmat++ | / (2 files):
22:49 dalek rakudo/nom: Merge pull request #373 from virtualsue/nom
22:49 dalek rakudo/nom:
22:49 dalek rakudo/nom: Minor spelling corrections.
22:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abe97eb596
22:52 literal raydiak: nice
22:55 dalek rakudo/nom: 7cb8548 | (Steve Mynott)++ | docs/ (2 files):
22:55 dalek rakudo/nom: fix 3 minor typos
22:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7cb8548d12
22:55 dalek rakudo/nom: 6b88dbd | lizmat++ | docs/ (2 files):
22:55 dalek rakudo/nom: Merge pull request #374 from stmuk/nom
22:55 dalek rakudo/nom:
22:55 dalek rakudo/nom: fix 3 minor typos
22:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b88dbd0f8
22:58 timotimo jnthn: fwiw, i don't think we actually need to extend the MVMIOOps table for udp sockets; it's not really an I/O object as much as a stream/TCP socket is
22:58 timotimo it doesn't seek, it doesn't tell, it doesn't read or write, all it does is close
22:59 jnthn timotimo: Hmm, that kinda makes sense.
22:59 jnthn Well, a normal socket don't seek
23:00 timotimo indeed
23:00 jnthn But yeah, having an inter-packet decode stream thingy for UDP makes relatively little sense.
23:00 jnthn afaict, at least
23:00 timotimo but it does have MVM_io_syncstream_seek and _tell
23:00 timotimo and it puts "seekable" in there, too
23:01 timotimo which ... huh?
23:02 jnthn Does something interesting? :)
23:02 timotimo didn't try yet
23:03 * jnthn re-learns the JVM code-gen stuff a bit so he can implement lexicalref scope :)
23:03 timotimo nqp: my $foo := nqp::socket(); nqp::bind_sk($foo, "0.0.0.0", 12345); nqp::seek($foo, 10);
23:03 timotimo nqp: my $foo := nqp::socket(); nqp::bind_sk($foo, "0.0.0.0", 12345); nqp::seek_fh($foo, 10, 0);
23:03 timotimo nqp-m: my $foo := nqp::socket(); nqp::bind_sk($foo, "0.0.0.0", 12345); nqp::seek_fh($foo, 10, 0);
23:04 camelia joined #perl6
23:04 geekosaur um, sockets aren't seekable anywhere that I'm aware of
23:05 timotimo anywhere except MoarVM :)
23:05 timotimo MVM: always ahead of the curve
23:05 camelia nqp-jvm: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-j": No such file or directory at lib/EvalbotExecuter.pm line 188.␤exec (./rakudo-inst/bin/nqp-j /tmp/tmpfile) failed: No such file or directory␤Server error occurred! Closing Link: ns1.niner.name (Quit: camelia)␤Lost connection…»
23:05 camelia ..nqp-moarvm: OUTPUT«Arg count 0 doesn't equal required operand count 2 for op 'socket'␤   at gen/moar/stage2/QAST.nqp:1466  (/home/camelia/rakudo-inst-2/languages/nqp/lib/QAST.moarvm:compile_mastop:209)␤ from gen/moar/stage2/QAST.nqp:1682  (/home/camelia/rakudo-inst-2/languages/n…»
23:05 camelia ..nqp-parrot: OUTPUT«Can't exec "./rakudo-inst/bin/nqp-p": No such file or directory at lib/EvalbotExecuter.pm line 188.␤exec (./rakudo-inst/bin/nqp-p /tmp/tmpfile) failed: No such file or directory␤Lost connection to server irc.freenode.org.␤»
23:06 timotimo sorry, came
23:06 timotimo hm
23:07 jercos geekosaur: temporal sockets! seek forward, and your program receives data before it arrives :p
23:07 timotimo does the japanese perl6 community have "kamelia", which is a butterfly-tortoise cross?
23:08 timotimo EBADF  The stream specified is not a seekable stream.
23:09 timotimo ^- ought to happen
23:11 timotimo jnthn: how do you feel about flags? MVM_io_socket_create doesn't accept any, though it may want to?
23:16 timotimo we may also want to expose MVM_io_get_hostname so that users can feed nqp::udpsendto with that
23:18 dalek perl6.org: 413201c | (Steve Mynott)++ | source/index.html:
23:18 dalek perl6.org: replace parrot with other backends
23:18 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/413201cd6d
23:18 dalek perl6.org: bee6a34 | (Steve Mynott)++ | source/index.html:
23:18 dalek perl6.org: Merge pull request #16 from stmuk/master
23:18 dalek perl6.org:
23:18 dalek perl6.org: replace parrot with other backends
23:18 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/bee6a34340
23:19 jnthn timotimo: It may want to, yes; they'd want nqp::const::'ing I guess
23:22 Hor|zon joined #perl6
23:26 lizmat skids: re http://irclog.perlgeek.de/perl6/2015-02-27#i_10193043
23:26 lizmat I think I did that when the zen-slice returned self, rather than self.list
23:29 Ben_Goldberg joined #perl6
23:34 pippo joined #perl6
23:35 pippo m: %h = (a => 1, b => 3, c => 1); say %h.invert.invert.perl;
23:35 camelia rakudo-moar 6b88db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wFJac5yliU␤Variable '%h' is not declared␤at /tmp/wFJac5yliU:1␤------> 3%h7⏏5 = (a => 1, b => 3, c => 1); say %h.inve␤    expecting any of:␤        postfix␤»
23:35 pippo m: my %h = (a => 1, b => 3, c => 1); say %h.invert.invert.perl;
23:35 camelia rakudo-moar 6b88db: OUTPUT«("c" => "1", "b" => "3").list␤»
23:36 pippo left #perl6
23:36 masak 'night, #perl6
23:36 lizmat good night, masak
23:37 dalek rakudo/nom: 3eb4463 | lizmat++ | src/core/ (12 files):
23:37 dalek rakudo/nom: Implement .exchange, per recent speculative change
23:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3eb4463e05
23:38 lizmat bonus points for anybody who implements tests  :-)
23:38 telex joined #perl6
23:46 * lizmat also calls it a day
23:47 BenGoldberg_ joined #perl6
23:47 jack_rabbit joined #perl6
23:49 aborazmeh joined #perl6
23:49 aborazmeh joined #perl6
23:49 jnthn 'night, lizmat
23:56 dalek nqp/native-ref: 4ce07b6 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
23:56 dalek nqp/native-ref: Remove dead code.
23:56 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/4ce07b6deb
23:56 dalek nqp/native-ref: 47e84a4 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
23:56 dalek nqp/native-ref: First pass at implementing lexicalref compilation.
23:56 dalek nqp/native-ref: review: https://github.com/perl6/nqp/commit/47e84a4fa2
23:57 jnthn Progress... :)
23:59 jnthn Cold is still annoying...grmbl
23:59 * jnthn goes to rest &
23:59 Houndcat joined #perl6

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

Perl 6 | Reference Documentation | Rakudo