»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:00 espadrine left 00:07 fernando_ left, fernando_ joined, BenGoldberg left
Diederich ~ 00:08
00:12 BenGoldberg joined, fernando_ left 00:13 adu joined 00:17 J-L joined, jack_rabbit joined
J-L Hello, jack_rabbit! 00:17
jack_rabbit hello 00:18
J-L I've got a question about Perl 6, for anyone who can answer. 00:19
I'll ask my question: Is there a standard way, in Perl 6, to read keyboard input without echoing what's typed in? 00:20
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
In Perl 5, there's the Term::ReadKey module, but that's not standard across all platforms and installations.
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.
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:23
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:24
timotimo is Term::ReadKey writen in C?! 00:26
00:27 dalek left, Akagi201 joined, dalek joined, ChanServ sets mode: +v dalek
jack_rabbit I would guess. 00:28
Unless perl6 has a builtin termios.
perl5 that is.
00:29 telex left, Akagi201_ left
timotimo yes, it is written in c 00:29
timotimo frowns
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
b/c you don't need to compile for e.g. our nativecall termios module 00:30
timotimo indeed
00:30 flussence left, telex joined, flussence joined
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:30
J-L Term::ReadKey is written in XS, I believe. 00:31
timotimo yes, i just looked at the source code
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.
raydiak not installed system-wide, copied alongside your script
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.
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:34
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.
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?
that's what I'm trying to say...the perl 6 termios module *is* pure perl
J-L raydiak, I don't know how other windows console programs do it. 00:36
00:36 skids joined
agentzh I see rakudo's parser just calls the magic $*W.throw() method. 00:36
raydiak J-L: google does
J-L Hmmm... termios is pure perl... that's interesting.
agentzh TimToady: ping :)
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 :)
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.
raydiak J-L: or just wait for someone else to pick up the gauntlet :)
geekosaur afaik it's never done by escape codes
agentzh TimToady: hoping that .parse() can return a second "err" value for it :)
geekosaur windows console uses its equivalent of termios even for cursor positioning 00:40
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.
agentzh m: die "Bad\n"
camelia rakudo-moar a15a91: OUTPUT«Bad␤␤ in block <unit> at /tmp/9gS8EbjHlY:1␤␤»
J-L What's NativeCall exactly? Another Perl 6 module? (Lemme look it up.)
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
agentzh how can i suppress the "in block <unit>" context info in my die() call?
in Perl 5, a trailing newline in die's message can suppress that.
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 Rounin left
J-L I tried panda once, but it complained about not having git installed (I think). 00:43
What is in the core? NativeCall, or termios? 00:44
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
J-L: NativeCall is in core
J-L: added to core as of very recently though...idk if it's in the last rakudo star windows installer 00:46
oh, well, I guess NativeCall was probably a star module before anyway though
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
means it works
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
That's doesn't look good.
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:50
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:51
J-L Minor question: What's the proper filename extension for Perl 6 programs? .pl6 ? .p6 ? 00:52
raydiak I see p6 more often probably, but I see both often 00:53
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:55
raydiak that sub represents a native library function 00:56
that's how you wrap .dll/.so stuff to call it in your perl code
J-L Wouldn't that mean that termios then depends on platform-specific stuff, and isn't purely Pure-Perl? 00:57
Or should it still work on every platform?
raydiak every platform that support termios 00:58
J-L Hmmm... What about Win platforms? I've had trouble with them in the past.
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 :) )
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
J-L The thing is, I'm completely at a loss to explain how Win applications do it. 01:00
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
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
J-L: you're welcome...good luck!
01:01 dylanwh left
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:01
01:02 laouji_ joined
J-L It just seems like such a simple problem. Unfortunately, I've never found a good, simple, completely portable solution. 01:02
01:02 J-L left 01:04 laouji left
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.
raydiak yoleaux++ lets you get the last word in :) 01:14
01:16 FROGGS joined, dj_goku left, dj_goku joined, dj_goku left, dj_goku joined 01:25 Maddingu1 joined 01:26 Maddingue left
timotimo agentzh: if that wasn't answered yet, you can "exit" and give an output to stderr using "note" first 01:34
agentzh timotimo: will you please elaborate? 01:35
timotimo: like using a custom field to hold errors as in Perl6::Grammar?
timotimo: oh yeah, die makes me sad in Perl 6 :) 01:36
timotimo well, you can have code like { note "sorry, we've exploded"; exit 1 } 01:37
agentzh timotimo: cool, thanks! 01:41
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"?
agentzh note $a, $b; exit 1;
but a trivial example works.
weird.
timotimo i don't think note works with two arguments 01:43
agentzh m: note "hello", "world"; exit 1;
camelia rakudo-moar a15a91: OUTPUT«helloworld␤»
agentzh seems working.
timotimo ah, hm
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.
timotimo also that error message is missing a - between * and 9 in that comment field
agentzh ah, it looks like another warning in my note() statement. 01:45
timotimo: never mind, I fixed it. 01:46
timotimo: a bad substr() call in the argument to note().
timotimo: thanks for your help.
timotimo fair enough :)
though i'm not entirely sure you want to exit the whole program 01:47
agentzh timotimo: right, that's hacky.
timotimo: my parser needs clean way to return an error message.
timotimo you can raise an exception and catch it in your own code and just return Nil or something
agentzh timotimo: should I use die() to raise the exception?
timotimo: sorry if it's a dumb question. 01:48
timotimo: still reading the synopses.
timotimo you can use die with a string to raise an exception of type X::AdHoc
or you can build your own exception class and die with that
agentzh that sounds cool.
01:48 dylanwh joined
agentzh i'll try it out. 01:48
timotimo: thanks!
timotimo: for die "some string", is there a way to extract only the string part from the resulting Exception class? 01:49
timotimo: both .gist() and .Str() return the backtrace part also.
timotimo: if that can work, then i can save my own Exception class :)
timotimo: and it looks cleaner.
timotimo you can .message 01:50
agentzh wow, trying
timotimo in general, you can print the .^methods of some object you have
agentzh timotimo: thanks for the trick! 01:51
timotimo: and .message indeed works. yay
timotimo sure, no problem :)
agentzh is porting the arith calc example from bison's manual to rakudo.
01:53 jack_rabbit left 01:54 agentzh left 02:09 fernando_ left 02:10 fernando_ joined 02:14 fernando_ left, Vlavv left 02:25 chenryn joined 02:28 Vlavv joined 02:44 ilbot3 left 02:48 ilbot3 joined 02:52 ash_gti joined 03:05 [Sno] left 03:06 grettir left
dalek kudo-star-daily: 69b9468 | coke++ | log/ (9 files):
today (automated commit)
03:14
03:20 fernando_ joined 03:25 fernando_ left, davido__ joined 03:27 davido___ left 03:32 coffee` left 03:37 noganex_ joined 03:40 noganex left 03:41 Ben_Goldberg joined 03:42 BenGoldberg left 03:59 FROGGS left, rindolf joined 04:02 FROGGS joined 04:04 rindolf left 04:08 echowuhao left 04:09 jack_rabbit joined 04:22 ash_gti left 04:25 chenryn left 04:31 laouji_ left 04:32 laouji joined 04:34 laouji left 04:35 laouji joined, leont left 04:36 uvb joined 04:37 laouji_ joined 04:41 echowuhao joined 04:42 laouji_ left 04:48 Ben_Goldberg left 04:55 rindolf joined 05:00 mr-foobar left 05:23 chenryn joined 05:34 broquaint left 05:36 kaare_ left 05:39 rindolf left, [Sno] joined 05:45 adu left
dalek kudo/nom: c8ac15b | moritz++ | src/Perl6/Actions.nqp:
Throw redeclaration error for duplicate type capture
05:53
ast: bf697de | moritz++ | S06-signature/positional.t:
unfudge now-passing test
05:55
06:07 uvb left 06:55 kaare_ joined, fhelmberger joined 06:56 dayangkun joined 06:58 jferrero left 06:59 jferrero joined 07:00 fhelmberger left 07:05 diana_olhovik joined 07:06 dayangkun left 07:10 broquaint joined 07:12 bjz joined
FROGGS hoelzro: testers.p6c.org is up since a day or two... now also receiving reports 07:14
I need to kill the old site now
brb
07:14 FROGGS left 07:31 rurban joined 07:32 jack_rabbit left 07:37 [Sno] left 07:41 FROGGS joined 07:42 jack_rabbit joined 07:43 echowuhao left 07:44 echowuhao joined 07:49 echowuhao left
moritz FROGGS++ 07:52
FROGGS moritz: the p6c machine are quite beefy :o) 07:55
it is nice to work on these
ahh, the last missing bit before I can update panda is to turn my Dancer app into a service 07:57
07:58 _mg_ joined 07:59 ninedragon left, ninedragon_ joined
moritz FROGGS: yes, I like it too :-) 08:00
(generous donors)++
FROGGS: fwiw on hack /etc/systemd/system/dalek-http.service is an example of a starman-powered systemd service file 08:03
08:03 prime left
moritz also on www /etc/systemd/system/smoke.perl6.org.service (that's deven a Dancer app) 08:04
08:05 jack_rabbit left
FROGGS ahh, I see 08:05
I already wondered what starman is
moritz a perl http server
(I'm open to using other servers, fwiw) 08:06
08:07 kaare__ joined
moritz I've deployed other stuff via FastCGI, but that's usually a nightmare to debug 08:07
08:08 kaare_ left
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
dalek ast: 2431591 | TimToady++ | S03-sequence/basic.t:
make sure unicode ellipis works for sequence op
ast: 29f2815 | TimToady++ | S04-declarations/constant.t:
fudge constant redecl test
kudo/nom: 1e57949 | TimToady++ | src/ (3 files):
fix unicode ellipsis support
08:10
08:12 laouji_ joined, darutoko joined 08:14 prime joined 08:17 laouji_ left 08:22 jack_rabbit joined 08:25 _mg_ left 08:26 sqirrel_ joined, bjz left 08:27 fhelmberger joined 08:28 [Sno] joined 08:29 Rounin joined 08:34 vike joined 08:37 Mouq left, Mouq joined 08:39 jack_rabbit left 08:53 zakharyas joined 09:08 rindolf joined 09:10 kaleem joined 09:19 kjs_ joined 09:29 cschwenz joined 09:35 kaleem left, kjs_ left
jnthn morning, #perl6 09:35
09:37 Cyrus1 left
moritz \o jnthn 09:41
psch o/
spectest failure in my jvminterop branch /o\
moritz maybe we should rename IO::Socket::INET to IO::Socket::TCP
psch but it's related to &infix:<…> which i didn't do nothing with
moritz psch: then probably your branch isn't up-to-date with nom 09:42
psch moritz: i rebased after TimToady++'s last commit
moritz oh
psch This is perl6 version 2015.02-58-g2aa3f7d built on JVM
m: say 1
camelia rakudo-moar 1e5794: OUTPUT«1␤»
psch i guess i can do that again
09:43 laouji_ joined
psch oh nvm, differences there have to exist because i have more commits :) 09:43
09:43 telex left
psch anyway, i'll finish the jvminterop PR and have a look at the &infix:<…> issue 09:43
09:44 telex joined, dakkar joined
psch huh 09:44
S04-declarations/constant.t: ok 56 - did we throws_like X::Redeclaration?# TODO constant redeclaration is not yet detected 09:45
i definitely didn't touch that either..?
09:47 laouji_ left 09:49 hoelzro left
moritz maybe your roast is out-of-date? 09:50
psch i pulled that too just now again 09:51
09:51 hoelzro joined
psch although there's a test for #121626 which is marked TODO 09:51
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121626
moritz ok, it seems TimToady++ fudged the test after it passed
psch which confuses me a bit, as that should be resolved for 2 weeks now? 09:52
that's S14-roles/anonymous.t
two tests actually
moritz PerlJam++ fixed the constant redeclaration thingy in a15a9164a18d8cb47c8021e266390e0992c7eea6
09:52 espadrine joined, Ven joined
masak good antenoon, #perl6 09:53
moritz \o masak 09:54
Ven o/, #perl6
psch o/ masak, Ven 09:55
oh 09:57
S14-roles/anonymous.t only had moar fudges removed
that took some time to see
not sure if that only passes on my branch for some reason though 09:58
dalek p: 9c8c5a3 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java:
Correct an error message.
09:59
p: 8e77578 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
Improve marshalling for JVM Interop.

Arbitrary dimensions for arrays are now supported properly.
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
uh, it'd get
psch github.com/rakudo/rakudo/pull/372 for *even better* jvm interop \o/ 10:00
jnthn: that's probably it then. i'll rerun the test on nom in a bit 10:01
10:02 kjs_ joined
Ven psch++ # so much amazing jvm work I can sell to jvm-y people :) 10:02
psch: github.com/rakudo/rakudo/pull/372/...f82deddL52 not sure why the indentation change?
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
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
Ven: the first two lines in the function are misindented 10:05
in the constructor for DispatchCallSite that is 10:06
pushed a fix to the PR, Ven++
lizmat good morning, #perl6! 10:07
jnthn o/ lizmat
lizmat seems like some change in the past days made the startup time of rakudo go from .205 to .235 on my machine
Ven psch++
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
10:08 Kristien joined, bjz joined
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?
Kristien morning
Ven those*
hi Kristien 10:09
lizmat spectest wallclock up from ~180 to ~210
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
Ven: as for the bot-like behavior, i don't think i understand the use case
Ven psch: having the base of the code in java/some other bad language, and scripting the more scriptish parts in perl6 10:11
like people embedding lua for AIs etc
Kristien "some other bad language" Ven++
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.
thanks for your work!
psch Ven: but deciding in perl6 which java classes to use works
Ven so using perl6 but relying on well-established java facto^W^W..classes works
psch it mostly should, yes 10:13
jnthn lizmat: Looking at recent commits, it's hard to guess what did it...
psch you saw the swing-orwhatwasit example and the tests in t/03-jvm/01-interop.t i suppose
jnthn lizmat: So guess it'll be a case of bisecting... :( 10:14
lizmat jnthn: it was TimToady's last commit
I guess the ellipsis verbatim in the code are causing it...
10:16 larion joined
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
10:16 _mg_ joined
Kristien lol 10:16
10:16 Kristien left, virtualsue joined
jnthn lizmat: Really? That harms startup?! 10:17
lizmat well, trying to compile it now: first segfault, now nativecall complains 10:18
trying now with just the changes in nqp
removing: 10:19
+my &infix:<…> = &infix:<...>;
+my &infix:<…^> = &infix:<...^>;
in scr/core/operators makes startup go back from .235 to .205 10:20
10:20 kaleem joined
lizmat perhaps they need to live in a BEGIN 10:20
jnthn That's a heck of a difference... 10:21
Ohhh
lizmat nope, the BEGIN doesn't make a difference
jnthn I bet I can guess
lizmat do tell
jnthn token infix:sym<...> { [<sym>|'…'] <O('%list_infix')> }
So, &infix:<…> then looks if the current language has an infix:sym<…> already 10:22
10:22 pmurias joined
jnthn Finds it doesn't 10:22
And so extends teh grammar
So we're deriving a new language every time we load the setting.
10:22 diana_olhovik left
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
lizmat: if parrot can't support utf8 properly it is it's problem
lizmat knowing that parrot couldn't support non-latin-1 in the core setting, has been a *long* standing issue 10:24
10:24 Ven left
jnthn lizmat: Well, I'd undo the rule-combining change in grammar.pm for one 10:24
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 chenryn left
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:26
lizmat jnthn: ok on the last part 10:27
jnthn lizmat: Yeah, but the first part is the really important one ;)
lizmat but I'm not sure what you mean with undoing the grammar combining change ?
jnthn Oh 10:28
The --++++ in Grammar.nqp
- token infix:sym<...> { [<sym>|'…'] <O('%list_infix')> }
...
+ token infix:sym<…^> { <sym> <O('%list_infix')> }
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
I'm saying they shoulda been left as the 4
oh wait 10:30
No, I misread
Grrr...I need better coffee
lizmat ok, then I understood ok :-)
jnthn I'm still confused what's going on... 10:31
psch will bbl &
jnthn I mean, it feels like it has to be something lanruage-y
lizmat maybe a compile-profile would help ?
jnthn Perhaps yes
I wonder if something is wrong with the grammar gen for my &infix:<foo> things. 10:32
lizmat ok, let me make those subs then first 10:33
pmurias lizmat: people who care about parrot should pay all the cost of it's support until it's proven useful 10:34
10:34 gplrxenu joined
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
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
10:36 leont joined, _mg_ left
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?
lizmat yes, that has always been the policy until now
jnthn We don't need to go and change all the places we already wrote char escapes instead. 10:37
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.
lizmat jnthn: making them subs, made the startup go back to previous values
jnthn lizmat: OK, then (a) awesome, (b) we have a bug
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
I bet it's something silly, like mis-mangling the name when it's a variable decl. 10:40
lizmat could be,
brunch&
jnthn lizmat++ # finding/fixing regression
gplrxenu What is the most usable perl6 interpreter available? 10:45
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
(it's kind of more like a compiler, really)
moritz it compiles, but conveniently also executes the code for your pleasure 10:48
10:49 chenryn joined
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 github.com/tadzik/rakudobrew 10:50
timotimo i must admit, i find the distinction between "interpreter" and "compiler" hard to make
jnthn timotimo: It's not really worth a lot of time
timotimo how many "interpreters" these days go off the original source code and interpret it bit by bit?
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
jnthn timotimo: With Moar we start out interpreting bytecode, but JIT-compile hot bits of it :) 10:52
So you can end up with your running program being half-compiled and half-interpreted :)
10:53 chenryn left 10:54 kjs_ left
gplrxenu at some point jit programs will be faster than compiled programs (after some running time) 10:56
10:57 kaleem left
gplrxenu but to me it seems a bit like the VLIS vs CISC debate 10:58
timotimo VL? Very Lean?
gplrxenu :)
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... :)
masak .oO( Very Lean. So Scrum. Much Agile. ) 10:59
11:00 rurban left 11:01 wicope joined, Ven joined
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?
jnthn timotimo: Yes, that what makes me doubtful it can happen yet. :) 11:04
timotimo don't get me wrong, i'm super happy we have it and it makes stuff a whole lot faster 11:05
just saying there's so much more room for improvement
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
But that benefit will surely be being dwarfed by our LTA code-gen quality.
11:06 rurban joined
jnthn otoh, a year ago we didn't have JIT, inlining, OSRC, etc. at all :) 11:07
*OSR
timotimo last night while trying to fall asleep i was thinking perhaps it'd be good to implement "iscclass" in asm 11:08
jnthn Well, I'd wait until we've got NFG in place before looking at that :) 11:09
timotimo k
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:10
timotimo oh, iscclass expects a string and offset 11:14
well, MVM_string_is_cclass is implemented as "check bounds, grab grapheme, check cclass"
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
grapheme_is_cclass*
jnthn Well, the case statement goes away if JITting if we statically know the cclass :) 11:15
timotimo i'd assume we know that kind of often, but i can do a survey at spesh time 11:16
11:16 grondilu joined
timotimo hm. it may be required to build MVM_codepoint_has_unicode_value for the jit, too 11:17
i'm wondering how bad jitting these things will impact the size of the generated code, though 11:19
11:19 chenryn joined
timotimo at what point does the cost of having a lot of machine code surpass the cost of doing a function call? 11:19
anyway, i gotta AFK for a while now 11:20
11:22 wicope left 11:23 wicope joined, diana_olhovik_ joined
Ven rdstar.wordpress.com/2013/07/22/so...in-perl-6/ 11:25
"use utf8"? what's that? something specced-but-NYI?
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
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:30
could be quite an interesting theoretical landscape 11:31
dalek kudo/nom: d7a2294 | lizmat++ | src/core/operators.pm:
Fix performance regression

1e57949f8426e0d05a increased startup time to .235 from .205, with a similar increase in CPU time. According to jnthn++, this could be caused by some problem in the grammar gen for my &infix:<foo> things, "gen_op" or so. Presumably something silly such as mis-mangling the name when it's a variable declaration.
11:36
Ven psch: how do I access System.out, say? 11:56
FROGGS Ven: nqp::getstdout?
Ven FROGGS: I mean in r-j 11:57
11:57 sqirrel_ left
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␤»
FROGGS Ven: that still gives you the stdout fh
Ven FROGGS: I'd really like to avoid using nqp:: ;-)
FROGGS Ven: well, use $*OUT then
moritz $*OUT
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
ahh
Ven that went with the question I asked psch earlier :)
FROGGS sorry for the noise then :o)
lizmat TimToady: re irclog.perlgeek.de/perl6/2015-02-26#i_10185056 about .invert 12:06
12:07 chenryn left
lizmat isn't then my original commit 4e89bb2a57708f164804 exactly what you need? 12:07
it mimics HashIter.pairs/invert model completely
or is that also wrong ?
moritz lizmat: seems like TimToady wants the .pairs step to be explicit 12:08
12:12 khisanth_ joined 12:14 Khisanth left
lizmat indeed... 12:15
12:15 coffee` joined
lizmat but that to me feels we would need more of a .vk (opposite of .kv) 12:15
12:19 gplrxenu left 12:22 abraxxa left
lizmat TimToady: if .invert is the opposite of .pairs (exchanging key/value), perhaps .pairs should also be magic, as described in irclog.perlgeek.de/perl6/2015-02-26#i_10185141 12:23
as currently implemented in EnumMap.STORE ? 12:25
12:36 laouji left, Ven left 12:41 kjs_ left 12:45 _mg_ joined 12:46 Ven joined
dalek pan style="color: #395be5">perl6-examples: ec1cbd9 | paultcochrane++ | perlmonks/ (2 files):
Add vim coda to perlmonks examples
12:52
pan style="color: #395be5">perl6-examples: 3c90664 | paultcochrane++ | other/ (2 files):
Add vim coda to "other" examples
pan style="color: #395be5">perl6-examples: febc585 | paultcochrane++ | other/bottles.pl:
Replace ucfirst with tclc

  .ucfirst is no longer available to capitalise the first letter of a word,
this has been replaced by .tclc
psch Ven: you can use the generated getter and setter ("get_{$fieldname.lc}" and "set_{$fieldname.lc}") or use something like gist.github.com/peschwa/0f8830ba3c6a2eb852ba to wrap them in an lvalue method 12:54
moritz [ptc]: .tc is closer to .ucfirst than .tclc is
Ven psch: ty
psch Ven: note that in the gist it uses the descriptor method, but the generated shortname works as well 12:55
12:55 jferrero left
psch (although those might not have MMD support, i'd have to check...) 12:56
Ven just realized that the difference between "leave" and "return" goes back as far as smalltalk... 12:59
13:00 _mg_ left 13:02 laouji joined, Kristien joined
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
Ven realized that "eqv" itself might be coming from smalltalk...
13:06 laouji left
[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:06
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
psch that's a bit scary tbh
moritz Ven: not yet 13:08
Ven moritz: will come with the grapheme stuff that's blocking 6.0? 13:10
dalek c: c38b844 | paultcochrane++ | lib/Language/traps.pod:
Use .tc instead of .tclc

  .tc maps better to the originally-used ucfirst() function. Thanks to
  moritz++ for pointing this out.
13:12
13:12 Kristien left
lizmat Ven: I would think so 13:14
Ven alright. nfg it is then :)
13:16 [Sno] left, chenryn joined
moritz Ven: I'm not sure it comes with NFG 13:18
Ven oh!
lizmat moritz: I didn't mean as a direct result of NFG itself, but of general work in that area
colomon Ven: github.com/colomon/TagTools/blob/m...o-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
moritz if the general NFG work user-exposes normalization routines, then it'll help 13:20
if not, not so much
dalek kudo/nom: ee6f29b | lizmat++ | src/core/EnumMap.pm:
Make %h<a> = 42 about 10% faster
kudo/nom: a178073 | lizmat++ | src/core/ (3 files):
Remove some superfluous so's

exists_key already is supposed to return a P6 bool
Ven colomon: I'm looking for that...but abstracted away :)
Ven lizmat++
Blackrush Hi everyone 13:21
Do you know how to set the classpath on perl6-j ?
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.
Ven psch: ping 13:22
Blackrush I tried using a CLASSPATH var env but it doesnt do anything
Ven colomon: right, thanks
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?
Ven psch: Blackrush++ is the one trying it right now :)
moritz Blackrush: perl-j is a small shell script; you might need to edit it and set the classpath on there
lizmat: we might
lizmat: I thought we already did Unicode properties, though?
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
lizmat moritz: we do, but slowly
Blackrush jdk 1.8
lizmat having it as a CCLASS would allow us to do it more quickly :-)
psch Blackrush: are you using a .jar or a .class? 13:26
Blackrush It's a folder filled with .jar
Generated by Gradle if you are wondering
psch Blackrush: what does your CLASSPATH look like? 13:28
i.e. do you use a wildcard or list only the folder?
Blackrush export CLASSPATH=$HOME/Workspace/swtour/heat/login-distrib/lib
psch 'cause apparently java wants a wildcard or an explicit list, according to stackoverflow.com/questions/5857321/
Blackrush lib/ is containing A LOT of jar
13:31 kjs_ joined
Blackrush export CLASSPATH=`ls ~/Workspace/swtour/heat/login-distrib/lib/*.jar | tr '\n' ':'` 13:31
still not working
psch Blackrush: gimme a moment, i'll try to figure it out 13:33
lizmat afk for ~ hour or so 13:38
Blackrush I'm also getting a "Cannot stringify this"
When invoking ClassLoader#getResources
13:47 raiph joined 13:48 ggoebel111111114 left, skids left, ggoebel111111114 joined 13:49 Ven left
psch Blackrush: there's the :jar<$filename> adverb, which i keep forgetting about 13:51
Blackrush: if you have the jars in your classpath explicitly that should work
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; …»
Blackrush I'm not feeling like importing every one
psch Blackrush: well, wildcard imports don't work anyway, and never will
Blackrush: i can see not wanting to name the jar, which is probably solveable
Blackrush there isn't
echo $CLASSPATH; you won't find any wildcard in there 13:53
psch i mean as in «import java.util.*;»
Blackrush okay
what about "use org::slf4j::LoggerFactory:from<java>;" then? 13:54
do I have to full specify the containing .jar ?
psch you'd need the filename currently, yes
github.com/peschwa/eigmip6/blob/ma...e-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
i.e. checking out the repo and then running that line from the root of it
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?
psch even though it feels a bit spooky, too... "why is my java interop slow?" -"did you specify the jarnames?" feels FAQ-ish
Blackrush -cp imports every class from every .jar 13:57
it's just the classloader you're using that don't find the required classes
psch Blackrush: we're collecting URLClassLoaders, one for each .jar or .class. 13:58
Blackrush: i don't think that -cp imports
Blackrush it doesn't "import" all the classes indeed
it just tell to the JVM where to find
and then the JVM is getting the classes one by one 13:59
well that's how my launcher works
psch github.com/perl6/nqp/blob/master/s...p.java#L97 typeForName and typeForNameFromJAR (right below)
that's what we're doing currently, i haven't looked much at it, only fixed typeForName to be able to load .class files
Blackrush even more 14:00
use java::lang::System:from<java>;
System.getProperty("java.class.path")
prints out the intended classpath 14:01
github.com/perl6/nqp/blob/master/s....java#L118 14:03
I don't think that's useful
you might just use the system classloader
and it will work anyway
because of the defined classpath 14:04
psch fwiw, this is how java behaves here for me: gist.github.com/peschwa/b7e3b402228d6ee75434
Blackrush exactely 14:05
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' ':'`
i made sure that way
psch yeah
i don't know how our bootclasspath interacts with the normal classloader
Blackrush no problem here then, all the jar are explicitly listed
psch i'm also not sure currently how typeForName{,FromJAR} should be adjusted to use the system classloader 14:07
currently, with explicit jars in the CLASSPATH and with :jar<$jarname> you should get the classes loaded correctly
Blackrush URLClassLoader(URL[]) use the system classloader by default
psch not needing :jar<$jarname> might work if we switch to the system classloader? 14:08
Blackrush I guess 14:09
psch right, i'll try and figure that out. as mentioned, :jar<> is cumbersome and easily forgetten :) 14:12
Blackrush++
Blackrush gist.github.com/Blackrush/3e96f088881cf3e1be75 14:13
14:13 Ven joined
Blackrush I'll try another thing 14:13
gist.github.com/Blackrush/0c1cafe7ff8460b0384d 14:16
psch
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
Ven (and that's not because we havn't tried to get java out of his mind. but heh)
.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... github.com/int-index/kalium 14:22
yoleaux Ven: I'll pass your message to Kristien.
Ven Uhm, I'm looking for a module that exposes Shell commands as subs (but not Shell::Command)
moritz why not Shell::Command? 14:23
Ven moritz: a friend of mine is looking for one that abuses EXPORT and knows there was one looking like this doing that 14:24
14:25 rindolf left
Ven I guess I'll just point him to EXPORT's doc.. 14:25
14:26 [Sno] joined
moritz timo/ADT fiddles with EXPORT 14:26
as does tony-o/perl6-slang-sql
jnthn Ven: I showed that off in my FOSDEM talk 14:27
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 14:30 _mg_ joined
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:30
dalek pan style="color: #395be5">perl6-examples: f59fdeb | paultcochrane++ | other/bottles.pl:
Use .tc instead of .tclc

Since this maps better to the original ucfirst() intent
14:31
[Coke] pmurias: don't make me regret adding "JS" as one of the VM values for rakudo-RT.
Ven rakudo-js? 14:32
[Coke]: I was aware of nqp-js, but not of rakudo-js :)
jnthn Ven: It wasn't just me who made this stuff possible...but happy you're enjoying using it. :) 14:33
[Coke] ven: it was a... precautionary measure. 14:35
Ven [Coke]: alright :)
jnthn: I strongly think we'll get insanely good benefits by having per-file compile and run times :)
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?
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:38
14:39 rindolf joined
[Coke] was only teasing, but that would be awesome. 14:40
14:41 Rounin left
colomon are people going to YAPC::NA? 14:43
“Included in these events will be a Perl 6 hackathon with Perl creator Larry Wall on June 11th.” Hmmm. 14:44
[Coke] I am probably not. (sadface) 14:46
colomon :( 14:49
colomon thinks the last time he saw [Coke] was … Columbus? 14:50
14:50 rurban1 left 14:51 rmgk is now known as Guest10916, rmgk_ joined, Guest10916 left, rmgk_ is now known as rmgk
colomon Eeek! smoke test is dying with a seg fault. :( 14:52
jnthn /o\ 14:53
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 _mg_ left
colomon moritz: github.com/skids/perl6sum 14:58
retupmoca .botsnack 15:01
yoleaux :D
21 Feb 2015 15:04Z <FROGGS_> retupmoca: say nativesizeof(z_stream) / 8; # 112
15:03 laouji joined 15:08 laouji left
dalek p: d038633 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
Simplify class loading, Blackrush++
15:19
psch perl6-j part of that is in the latest jvminterop PR
'cause it still fits with the general theme of the PR... :) 15:20
sjn \o
psch Blackrush: you'll have to wait until someone gets around to merging that. until then you'd still need :jar<…>
o/ sjn
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 :)
sjn (unless I'm looking at the wrong places)
Blackrush why did you wrote all the previous code anyway?
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
which, in hindsight, apparently wasn't neccessary :)
15:23 chenryn left
hoelzro FROGGS++ 15:24
I was thinking about working on a similar site, but now I don't have to =)
FROGGS hoelzro: you can still hook in :o)
hoelzro: like, improving small things
hoelzro FROGGS: of course!
is there an API for grabbing the status of an individual module?
FROGGS hoelzro: not yet 15:25
hoelzro I was thinking of embedding status badges into READMEs
so when you're browsing a module, you can see its status against nightly, and the latest * release
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
FROGGS hoelzro: here is the code: github.com/perl6/cpandatesters.perl6.org/
hoelzro thanks!
15:28 chenryn joined
dalek kudo/nom: a583643 | peschwa++ | / (2 files):
Improve and test support for Listy types in JVM Interop.

Handling of listy types of NQP and Perl 6 level is now properly supported and test coverage has been improved.
15:28
kudo/nom: 2aa3f7d | peschwa++ | tools/build/NQP_REVISION:
Bump NQP version for BootJavaInterop.
kudo/nom: 3da28d6 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:
Fix indentation, Ven++.
kudo/nom: 57889e4 | peschwa++ | src/vm/jvm/Perl6/JavaModuleLoader.nqp:
Adjust to simplified Java class loading in NQP.
kudo/nom: d941bef | peschwa++ | tools/build/NQP_REVISION:
Another NQP version bump, for simpler class loading.
kudo/nom: 11ae56e | FROGGS++ | / (4 files):
Merge pull request #372 from peschwa/jvminterop

Improve and test support for Listy types in JVM Interop.
Ven rip dalek?
oh :o)
FROGGS no, not this time :o) 15:29
15:30 skids joined
lizmat kicks off a jvm build and spectest 15:30
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:35
15:41 kaare__ left
psch oh, i just realized one (maybe significant) change with that implementation of typeForName instead of the previous one 15:44
previously we could load .jars in %*LIB without them being in CLASSPATH
or from whereever, really 15:45
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
for NativeCall that is
FROGGS hmmm
I think I agree
what's %*LIB anyway? 15:47
psch a placeholder for whatever is populated by -I :)
in reality it's @*INC i think? i've gotten a bit distracted a bit ago
Ven would love to have an .foo()n .bar() ... 15:48
FROGGS Ven: given $obj { .foo(); .bar() }
psch: ahh
Ven FROGGS: that's ugly :)
FROGGS psch: @*INC is for modules, so +1 to current behaviour
Ven: no, it's not :o) 15:49
Ven it really is ;o)
FROGGS no
isnt
Ven well, that seems like a useless discussion :). Why do we need ";" then :P?
FROGGS .oO( This is Ipswitch ) 15:50
Ven: because you call it on $obj, and not on the result of the call before
Ven FROGGS: I don't want that. I want to call it on the result of the call before
$obj.foo.bar for given $obj { .=foo; .=bar } 15:51
FROGGS well, unspace is also quite ugly
Ven yes
FROGGS m: 42\␤.say\␤.say
camelia rakudo-moar 11ae56: OUTPUT«42␤True␤»
colomon notes the Sum test is still spitting out that warning multiple times a second. It’s now been running for 25+ minutes.
FROGGS O.o 15:52
Ven seems to agree with this result, but that definitely hasn't worked for him...
FROGGS colomon: it passed just recently: testers.p6c.org/reports/13840.html
lizmat commute&
15:52 lizmat left
Ven FROGGS: I don't see why we need unspace 15:54
m: say 'foo' .bar; # heh
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…»
FROGGS TTIAR
Ven yeah. 15:55
FROGGS because .bar does already mean $_.bar
Mouq m: say.say
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 …»
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␤␤»
Ven m: say do given ($ = 'foo') { .=lc; .=tc; }
camelia rakudo-moar 11ae56: OUTPUT«Foo␤»
Ven uhm 15:57
Mouq m: $_ = 'foo'; .=lc; .=tc; .say
camelia rakudo-moar 11ae56: OUTPUT«Foo␤»
Mouq m: $_ = 'foo'; .=lc.=tc; .say 15:58
camelia rakudo-moar 11ae56: OUTPUT«Foo␤»
Ven m: macro given($val) { quasi {{{ $_ = $val }}} }; given('a'); .say;
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␤␤»
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␤␤»
Ven uhm
Mouq m: sub given($val) { $OUTER::_ = $val }; given('a'); .say 16:01
camelia rakudo-moar 11ae56: OUTPUT«a␤»
Ven Mouq++ # not resorting to macros :)
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
*AND* statically :P
Mouq: now, a pipe operator that's not a macro? :P 16:04
16:06 mr-foobar joined
Ven m: sub infix:<< |> >>($val, &fn) { fn($val) }; say ('a' |> &trim |> &lc); 16:06
camelia rakudo-moar 11ae56: OUTPUT«a␤»
Mouq m: my $m = 42; macro out { quasi { $m } }; say out 16:07
camelia rakudo-moar 11ae56: OUTPUT«(Mu)␤»
Mouq m: my $m = 42; macro out { quasi { $OUTER::m } }; say out
camelia rakudo-moar 11ae56: OUTPUT«(Any)␤»
Ven m: macro infix:<< |> >>($val, $fn) { quasi { &{{{$fn}}}({{{$val}}})) }; say ('a' |> trim |> lc);
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␤»
Ven this error message *g*
Mouq m: sub infix:<< |> >>($val, &fn) { fn($val) }; say ("ABCD\n\n" |> &trim |> &lc);
camelia rakudo-moar 11ae56: OUTPUT«abcd␤»
colomon FROGGS: it may have passed somewhere, but it’s still going (40+ minutes now) on hack
16:08 gfldex joined
Ven Mouq: this one I had :) 16:08
16:09 diana_olhovik_ left
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 |> ␤»
Mouq m: macro infix:<< |> >>($val, $call) { $call.unshift($val) }; say (('a' |> trim) |> lc);
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␤------> ␤»
Ven unshift?? 16:10
Mouq Ven: You're right, I guess it should be push ;P
"trim" is a function call
Ven you're trying to *push* an argument on the top of the call?
yeah, I know
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*
I tried! 16:12
dalek c: 701b217 | moritz++ | / (3 files):
Document IO::Socket and IO::Socket::INET
c: fa027ee | moritz++ | lib/Type/Metamodel/C3MRO.pod:
Fix a heading
FROGGS colomon: what is going where? 16:13
colomon: ahh, Sum
colomon FROGGS: yup
moritz jnthn: I'm a bit unhappy about the difference between IO::Socket::Async.chars_supply and Proc::Async.chars_supply
one being an on_demand supply, the other a live one
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);
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␤------> ␤»
Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name}}})({{{$val}}}) } }; say (('a' |> 'trim') |> 'lc'); 16:15
camelia rakudo-moar 11ae56: OUTPUT«a␤»
Mouq Eyyy
colomon FROGGS: oh, I think I see what might be part of the problem from cpandatesters point of view.
Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name}}})({{{$val}}}) } }; say (('ABCD\n\n' |> 'trim') |> 'lc');
camelia rakudo-moar 11ae56: OUTPUT«abcd\n\n␤»
Mouq m: macro infix:<< |> >>($val, $fn-name) { quasi { &::({{{$fn-name}}})({{{$val}}}) } }; say (("ABCD\n\n" |> 'trim') |> 'lc');
camelia rakudo-moar 11ae56: OUTPUT«abcd␤»
colomon FROGGS: if trying to install hangs or crashes panda, you never get a report
FROGGS :o(
jnthn moritz: That does sound a bit off, yes.
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
moritz jnthn: still, would be nice if we could do something about it :-)
Ven how does callframe.my work? 16:17
16:17 raiph left
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 :-)
jnthn moritz: Agree; mebbe you could RT it so it won't be lost?
moritz jnthn: willdo
Ven moritz: I mean -- how do *I* use callframe.my?
jnthn moritz: kthx
Ven m: sub foo { say callframe.my<$foo>; }; sub bar { my $foo = 1; foo }; bar;
camelia rakudo-moar 11ae56: OUTPUT«(Any)␤»
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* )
camelia rakudo-moar 11ae56: OUTPUT«(Any)␤»
moritz hrm
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
camelia rakudo-moar 11ae56: OUTPUT«EnumMap.new("\$!" => Mu, "\$*DISPATCHER" => Mu, "\$_" => Mu, "\$/" => Mu, "RETURN" => Mu, "\&?ROUTINE" => Mu)␤»
moritz m: sub foo { say callframe(1).my.perl; }; sub bar { my $foo is dynamic = 1; foo }; bar
FROGGS colomon: wow, never seen that
camelia rakudo-moar 11ae56: OUTPUT«EnumMap.new("\$!" => Mu, "\$*DISPATCHER" => Mu, "\$_" => Mu, "\&?ROUTINE" => Mu, "\$foo" => Mu, "RETURN" => Mu, "\$/" => Mu)␤»
colomon FROGGS: given the running time, I think it might be using up all hack’s memory...
moritz Ven: seems it doesn't work anymore
Ven well :(
moritz Ven: or only returns the static pads
Ven that might be a good thing, tho... 16:20
.oO( I mean, how crazy can you get? ruby-level crazy? )
Mouq m: sub foo { say CALLER::<$foo> }; sub bar { my $foo is dynamic = 1; foo }; bar
camelia rakudo-moar 11ae56: OUTPUT«1␤»
Ven oooh, right Mouq
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_newbee hi all 16:20
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
m: sub foo { say CALLER::<$foo> }; sub bar { my $foo = 1; foo }; bar
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…»
Mouq m: sub foo { say callframe(1).my<$foo> }; sub bar { my $foo is dynamic = 1; foo }; bar
camelia rakudo-moar 11ae56: OUTPUT«1␤»
Mouq Maybe it just .perls wrong
Ven uh. 16:22
that didn't work in moritz's example earlier :o)
Mouq m: sub foo { say callframe(1).my.perl }; sub bar { my $foo is dynamic = 1; foo }; bar
camelia rakudo-moar 11ae56: OUTPUT«EnumMap.new("\$foo" => Mu, "RETURN" => Mu, "\&?ROUTINE" => Mu, "\$_" => Mu, "\$*DISPATCHER" => Mu, "\$!" => Mu, "\$/" => Mu)␤»
Ven but now the question is...
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␤»
Ven hehehehehe
(that's basically $*foo, tho, right?)
moritz yes
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␤»
Ven why have both $*foo and is dynamic?
I don't know the problem it's trying to solve
oh.
moritz except that callframe.my doesn't need 'is dynamic'
Ven is dynamic is only for "CALLER::"?
moritz CALLER checks for it
jnthn my $*foo; # automatically sets "is dynamic"
moritz Ven: I guess callframe.my is simply broken
Ven moritz: .my should check for it as well,right?
jnthn callframe.my probably should care about dynamic 16:25
Or we're going to get really weird things as the optimizer happily optimizes away non-dynamic lexicals.
Ven *g* 16:26
moritz "oops"
Ven m: sub foo { callframe(1).my<$spooky> = 5; }; sub bar { foo; say $spooky; }; bar # lexically => probably checked at compile-time, obv...
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 16:30 raiph joined
perl6_newbee Is there a problem with unicode and txt files saved on WIndows? 16:31
moritz perl6_newbee: depends :-)
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")
jnthn We go to some effort to cope with that.
perl6_newbee Every time I open a log file on windows and go through it with .lines I get a exception "Malformed UTF-8"
jnthn Oh, and what moritz said
16:32 sqirrel joined
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:32
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 doc.perl6.org/routine/open
nine_: what error?
erm, sorry, meant perl6_newbee
note to self: tab-complete on 'perl6', not on 'newb'
jnthn haha :)
perl6_newbee moritz: I have to check it again. 16:34
I tracked the character down to a ü
hexdump shows me: fc 0d 0a 16:35
just for the ü in the file
fc is the right hex unicode I think
moritz 0a is the newline
jnthn fc means you have latin-1
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
moritz flussence: that's in fact the default that the design docs mandate
perl6_newbee so I have to open the file with latin instead of UTF-8?
moritz flussence: though it only recognized utf-8 and -16 (and maybe -32)
perl6_newbee: latin-1, not latin
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 :)
perl6_newbee ok thanks a lot for the help. I assume a :enc<latin-1> will do the job?
jnthn ü is represented as 2 bytes in utf-8
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
dalek c: 3606e95 | moritz++ | lib/Type/IO.pod:
open: be specific about adverbs in the signature
moritz perl6_newbee: i wish all files were in UTF-8 :-) 16:39
colomon moritz: or plain 7-bit ascii
moritz perlgeek.de/en/article/encodings-and-unicode it deals with Perl 5, but the intro might be interesting for you
colomon: that's valid UTF-8 too :-)
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
perl6_newbee Hmm, I already know your web pages :-) I olready start to read this certain page, but did not finish it yet...
colomon moritz: right
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:41
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?
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
perl6_newbee: doc.perl6.org/routine/open
colomon moritz: ugh
moritz colomon: otherwise, it was quite sane. Compared to the FORTRAN data file I also had to parse :-) 16:43
still, it was a fun job, all in all
free choice of tools, I was allowed to use Linux in an all-windows env, no time pressure, nice colleagues 16:44
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 16:51 diana_olhovik joined, zakharyas left 16:53 Ven left 16:54 Possum left 16:55 telex left 16:56 telex joined
timotimo o/ 16:57
moritz: it was you who suggested IO::Socket::INET to be called ...::TCP instead? 16:58
16:58 FROGGS left
moritz timotimo: yes 16:58
timotimo that seems like a confusion at a basic level
moritz timotimo: and thinking more about it, I'd also split .new into .listen and .connect
timotimo INET is about address family, TCP is about protocol
16:59 chenryn left
moritz well, we only support TCP, no? 16:59
timotimo i.e. you can have TCP, UDP, SCTP over INET and INET6
i'm not entirely sure
would you prefer we have a separate class for connectionless sockets?
geekosaur if you only support TCP then you're going to be fairly limited.
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
but to be honest, i've never worked with anything but INET and INET6
dalek rl6-roast-data: a76b59f | coke++ | / (9 files):
today (automated commit)
17:01
timotimo do you get a "raw socket" by supplying a different address family, ooc?
moritz timotimo: well, $.family is *only* used to determine whether to parse the IP as an IPv4 or an IPv6 address
and $.proto isn't used at all 17:02
geekosaur timotimo, yes
timotimo geekosaur: thanks; i'm looking at www.iana.org/assignments/address-f...bers.xhtml right now
moritz geekosaur: not in rakudo
geekosaur well, protocol family which is yet another different thing
timotimo that's probably number 6?
huh, DNS has its own AF? 17:03
geekosaur but PF is often determined by AF as sockets are used in the wild
timotimo what does that imply?
moritz timotimo: and to answer your question: yes, I'd prefere a separate API for connectionless protocols
timotimo OK
this is very, very, very, very pre-6.0, btw :)
sadly i'm very far from an expert on network programming 17:04
17:04 chenryn joined
moritz sadly most of those who contribute code to rakudo seem to be far from expert network programmers 17:04
yours truly included
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:05
timotimo :D 17:06
17:09 Possum joined 17:15 Kristien joined
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... github.com/int-index/kalium
Kristien which takes over _an hour_.
vendethiel: I already know Haskell!
17:18 fhelmberger_ joined
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
CQS is great and underestimated though. 17:20
17:20 fhelmberger left
jnthn That and "tell, don't ask" 17:24
17:25 raiph left
El_Che 3~ 17:25
17:25 fhelmberger_ left, fhelmberger joined
colomon moritz: how much memory does hack.p6c.org get? 17:26
17:26 Sysaxed joined
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:28
17:28 rurban left 17:29 virtualsue left
[Coke] colomon: htop says 20125mb 17:29
colomon [Coke]++
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 :)
colomon is really hogging CPU on hack
psch [Coke]: can you re-check re: my CLA? 17:31
[Coke] I just checked for moritz earlier today. nope. 17:32
psch oh. right, i didn't see you replying there
suppose i should send another one? it's been about 2 months
colomon Sum has been testing for more than 2 hours now. And might be testing again in a second instance (cron-job) 17:34
17:35 pmurias left 17:39 dakkar left
timotimo maybe i'll learn how to libuv and build some UDP stuff atop moarvm to make available to rakudo ... 17:39
17:40 grettir joined, Blackrush left 17:42 raiph joined
japhb Re: network expertise in the Perl world ... I'd defer to this guy: www.amazon.com/Network-Programming-...0201615711 17:44
That book was my networking-in-Perl bible. 17:45
moritz btw &open uses :nl, IO::Socket::INET uses :input-line-separator 17:50
TimToady vendethiel: I did not know that Smalltalk has either 'leave' or 'eqv', so it's more like parallel evolution 17:53
17:53 sqirrel left 17:57 FROGGS[mobile] joined
pyrimidine jantore: Lincoln's a bit busier these days :) 17:57
sorry, that was for japhb ^^^ 17:58
17:58 chenryn left
moritz colomon: hack has ~20GB RAM; if necessary, that could be upped a bit 18:03
colomon: the physical machine has 32G, www has 4
so the rest (28g) could be shared between the hypervisor and hack
currently I have a bit reserved for a third VM, when we need it 18:04
18:05 molaf joined
moritz TimToady: will you document bare :D as discussed yesterday? or does it still need more thought? or should I do it? 18:06
TimToady go for it 18:07
japhb pyrimidine: What does he do now (that makes him busier than he was then)?
El_Che waiting for the FOSDEM videos... 18:08
a lot have been released already, but so far not "ours"
TimToady notices List.rotor is "undesigned" as well
18:09 sqirrel joined 18:10 sqirrel left
dalek ecs: 1491b93 | TimToady++ | S32-setting-library/Containers.pod:
clarify invert semantics
18:10
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
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:15 espadrine left
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
FROGGS reports are now here: testers.p6c.org 18:17
psch FROGGS++
FROGGS that also means that the website is now pretty awesome fast and stable
moritz FROGGS++ 18:20
S06 says
A method's invocant
always has the alias C<self>. Other styles of self can be declared
with the C<self> pragma.
do we hold on to the C<self> pragma? 18:21
I haven't ever heard anybody complaining about it being NYI
18:21 Sysaxed left
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()␤»
psch m: class A { method foo() { self.perl } }; say A.foo # ooc 18:23
camelia rakudo-moar 11ae56: OUTPUT«A␤»
masak moritz: I think I would be relieved rather than distressed to se it go.
moritz: I do remember there being quite some waves around the specifics of the `self` bikeshed in 2004/2005.
psch m: my $f = method () { self.perl }; say $f(Str)
camelia rakudo-moar 11ae56: OUTPUT«Str␤»
psch m: my $f = method () { self.perl }; say $f("foo")
camelia rakudo-moar 11ae56: OUTPUT«"foo"␤»
masak moritz: probably the C<self> pragma fell out as a kind of compromise. a compromise that is no longer needed.
moritz masak: ok, I'll undocument it with the next push :-) 18:24
masak \self/
psch feels like he is misunderstanding somewhere
moritz still doesn't know where to document bare :D
psch .oO( &bare? ) 18:25
moritz psch: the invocant is just the first argument
psch .oO( ...and why is moritz happy about that? )
moritz psch: design.perl6.org/S06.html#Invocant_parameters
psch moritz: right, but bare «self» is not a pragma, is it?
moritz psch: no
psch that's where i think i'm a bit lost
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'
psch ooh
i didn't know that. and it does sound kind of horrible
masak .oO( a $[ for the new milennium! ) 18:27
moritz use self '$elf'; 18:28
masak use self 's€lf';
Juerd use self 'this'; 18:30
jnthn use self 'restraint'; 18:31
But yeah, I think the pragma can go :P 18:32
dalek ecs/newio: df8fa90 | moritz++ | S (2 files):
Undocument the "self" pragma

which nobody implemented, and nobody misses
moritz oops, wrong branch
Kristien In Scala you can also rename this!
dalek ecs: 4198be6 | moritz++ | S (2 files):
Undocument the "self" pragma

which nobody implemented, and nobody misses
18:33
psch m: my method foo () { my \this = self; say this.perl }; foo(Str)
camelia rakudo-moar 11ae56: OUTPUT«Str␤»
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␤»
moritz m: my method foo(\this:) { say this }; 3.&foo
camelia rakudo-moar 11ae56: OUTPUT«3␤»
18:35 kjs_ left
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␤»
dalek ecs: 582cee8 | TimToady++ | S32-setting-library/Containers.pod:
add Pair.exchange as distinct from .invert
18:39
18:41 virtualsue joined, laouji joined
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 help.github.com/enterprise/2.1/use...epository/ ("specs" vs "design" or what have you)
TimToady personally I'm fine with "specs" if it means "speculations" :P 18:44
moritz masak: we don't have github enterprise
sorry, meant Mouq
timotimo github surprise~
TimToady and specs is already de-deified under Whirlpool
colomon moritz: eh, I’m just going to kill Sum 18:45
18:46 laouji left
moritz colomon: do that :-) 18:48
dalek ecs: ab16f15 | moritz++ | S06-routines.pod:
Document bare :D at al in parameter lists

wording improvements are very welcome. Also, I did not find a proper section to document this, so I made my own. Suggestions for a better place are also very welcome.
18:49
timotimo jnthn: do you have a preference for how to put the UDP (or rather: connectionless) related ops into the MVMIOOps?
jnthn timotimo: Umm...not right off. 18:50
timotimo: Maybe propose something that I/others can review?
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 :)
That'll tell most things about the API :) 18:53
(At the VM and nqp level)
timotimo OK
moritz would have proposed to start with the p6 level API 18:54
jnthn Well, at a VM level we probably don't want to be far from en.wikipedia.org/wiki/Berkeley_sockets 18:55
18:56 Kristien left
jnthn We may want to, in fact, change the nqp::op API to be more in line with that 18:56
Rather than just add more to it
There won't be a bootstrapping problem to do so since we don't use the socket ops in nqp itself. 18:57
timotimo what's the type of thing we want to expose to the user at nqp/perl6 level for sockaddr? 18:58
dalek ecs: a2f4cf4 | TimToady++ | S32-setting-library/Containers.pod:
doc List.rotor
timotimo in the tcp case we only had to turn an address/port pair into an address once for connect()
but in recvfrom we can end up getting a bunch of different addresses
and creating a perl6 string and int in a parcel each time seems overkill
moritz nine_++ # perl6/doc htmlify works with Inline::Python now, and has done so for the last several days
19:01 isBEKaml joined
jnthn timotimo: Could be a buffer... 19:01
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 19:05 Sir_Ragnarok left
dalek ast: 9c362bf | peschwa++ | S04-statements/try.t:
Unfudge passing test.
19:06
19:07 Sir_Ragnarok joined 19:08 fhelmberger left, fhelmberger joined
timotimo at least when we have a buf we can give the user a nice little cache of buf-addrs vs nice objects 19:09
19:10 grettir left 19:11 fhelmberger left, larion left, fhelmberger joined
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:12
19:14 grettir joined 19:16 perl6_newbee left
pyrimidine japhb: re: Lincoln, he's pretty much the director for Informatics at OICR: oicr.on.ca/person/oicr-investigator...coln-stein 19:20
19:20 adu joined, adu left, BinGOs left, BinGOs joined 19:21 BinGOs left, BinGOs joined
pyrimidine japhb: he still makes commits to bioperl and gmod stuff but has largely moved away from programming 19:21
dalek ast: a4cc634 | TimToady++ | S04-declarations/constant.t:
Revert "fudge constant redecl test"

This reverts commit 29f28156e14927b5316bceb4f7b3979e3e147a77.
19:24
ast: 3dbd986 | TimToady++ | S02-types/pair.t:
test pair inversion correctly (plus new .exchange)
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.
skids Wow, apparently I have made a testbox-smashing monster. 19:33
(Or at lease a monster that smashes tests when rakudo fails to serialize large arrays, probably) 19:34
skids will have to rebuild latest and see what fun precomp bug it throws at him this time. 19:37
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:38
jnthn Would be good to figure out which change, so we can make things better in Rakudo... 19:39
skids Yeah they are very hard things to hunt, these array problems. Sometimes just reordering code makes them go away. 19:40
So I haven't been able to golf it for an RT.
timotimo hmm 19:41
skids They almost invariably only happen for precomp though.
timotimo is there even sense in having asynchronous UDP? 19:42
i kind of doubt it
skids (And sometimes only when there are multiple modules in a dependency chain precomped)
timotimo oh hey skids :) 19:43
skids o/
19:43 Sqirrel joined
jnthn timotimo: Sure, you want to tap the arriving datagrams :) 19:43
timotimo hm, fair enough 19:44
dalek ecs: d05d16b | moritz++ | LICENSE:
Add Artistic License 2.0.

Closes #65.
19:50
19:52 Kristien joined
colomon finally got a complete smoke run done (skipping Sum) : smoke.perl6.org/report 19:54
moritz colomon++
are smoke.perl6.org/report and testers.p6c.org linked from perl6.org somewhere? 19:55
colomon no clue
moritz would be worth checking/adding
also on modules.perl6.org
timotimo huh, how do i associate extra data with a udp socket in uv for uv_udp_start_recv?
hoelzro there's a smoke.perl6.org too? 19:56
19:56 kjs_ joined
moritz hoelzro: aye 19:56
hoelzro wow, I'm out of the loop o_O
how long has that been around?
moritz hoelzro: smoke.perl6.org shows the results from dedicated smoke runs
hoelzro: and it has been around with different URLs for at least two years now
hoelzro wow
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
moritz whereas testers.p6c.org passively collect panda reports
hoelzro ahhhh
timotimo ah, maybe in the uv_udp_t 19:58
20:01 Rounin left
timotimo indeed, uv_udp_t has a uv_handle_t that has a "data" member that's for this purpose 20:01
jnthn timotimo: Just be very careful what you hang off what 20:03
(Because GC)
(e.g. if you make .data point to something GC-able, we're hosed) 20:04
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 ecs: 5568e90 | moritz++ | README.md:
Add a README.

Let the bikesheddings begin!
20:05 Renan_ joined, ninedragon_ left, ninedragon_ joined 20:06 ninedragon_ is now known as ninedragon
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␤␤»
timotimo understood
TimToady that's a bit LTA 20:07
timotimo i was thinking of something like the struct MVMIOSyncSocketData
20:07 Sysaxed joined
timotimo except udp sockets don't have a stream-like interface 20:07
so it probably has other demands
20:08 kjs_ left
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:11
20:12 Renan_ left
TimToady if we didn't wanna worry about optimizing it off the bat 20:12
hmm, baseball idioms, unless it's cricket...
20:13 darutoko left
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
20:13 R0Z joined
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:13 Sysaxed left
jnthn I suspect .kv will be the faster choice. 20:14
TimToady but our pair unpacking is clunky
yes, but then we could optimize it back to .kv for them :)
jnthn Really? :P 20:15
TimToady thinking more in the psych space than the impl space here :)
more like we'd hook an iterator directly to the unpacker, so we wouldn't do the kv either
jnthn To me, .kv.map(-> $k, $v { ... }) is nicer; no unpacking to worry about.
TimToady but if you're storing them for later use, pairs are nicer 20:16
jnthn True
Well, sort of :)
FROGGS .oO( \//, -- RIP )
TimToady yeah...sigh... 20:17
FROGGS :o(
TimToady well, he had a good life
dalek : 7605d53 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
Note first bunch of closed 'parrot only' tickets
20:18
FROGGS yeah, I guess 83 is an age where it is perfectly fine to go 20:19
20:20 virtualsue_ joined, virtualsue left, virtualsue_ is now known as virtualsue 20:21 espadrine joined
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
FROGGS right
moritz didn't I open a pull request to remove it? 20:23
ah yes, still open
tadzik: you're getting behind :-)
FROGGS github.com/tadzik/Task-Star/pull/5
20:24 echowuhao left
itz LWP::Simple now needs IO::Socket::SSL in META.info since tests use https 20:27
moritz no, the tests should be conditinoal on IO::Socket::SSL being present 20:28
itz ok in that case the tests are broken
moritz we won't bundle openssl with R*
itz or rather test 20:29
Kristien good
20:29 kjs_ joined
itz perl6-lwp-simple/t/basic-auth.t probably shouldn't use https 20:30
20:30 laouji joined
itz oh that isn't the failing one 20:30
20:33 raiph left, Guest96799 left 20:34 wicope left 20:35 laouji left
itz I think it's get-chunked-6guts.t which is redirecting to https 20:35
but can confirm shortly
20:36 Hor|zon left 20:38 rindolf left 20:40 R0Z left
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])␤»
skids star: my @lperms = [^16], { [ (7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8)[$_[]] ] } ... *[0] == 4;
camelia ( no output )
skids whoops 20:43
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;
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,…»
skids This one not a precomp, at least.
dalek : 321a6c6 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
Some more closed 'parrot only' tickets
20:49
PerlJam why are the parrot only tickets being collected in a text file rather than a meta-ticket in RT? 20:54
Kristien wants to make software. 20:55
timotimo finished watching this anime with my friend, yay
20:56 diana_olhovik left
timotimo FROGGS: are you going to be preparing a msi of star? 20:56
bartolin PerlJam: we discussed that yesterday 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
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)
TimToady timotimo: well, unless it's H-y 20:59
timotimo in this case it was Soul Eater 21:00
not very H-y, if i understand correctly what you mean
TimToady I understand what you mean by "not very" :) 21:01
Kristien can the Java implementation of Perl 6 be used from a Java program? 21:02
timotimo now i don't understand what you mean by "what you mean by “not very”" 21:03
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
TimToady timotimo: fan service is not considered very H-y :) 21:10
21:10 kjs_ left
timotimo i think soul eater itself doesn't have too much fanservice 21:14
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
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:15
21:17 kaare__ joined
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)␤»
skids m: my $f = buf8.new(1,2,3,4); $f[].perl.say;
camelia rakudo-moar 11ae56: OUTPUT«Buf[uint8].new(1, 2, 3, 4)␤»
21:19 virtualsue left 21:21 dolmen joined, echowuhao joined 21:24 donaldh joined
donaldh Kristien: yes, but YMMV 21:25
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:26
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
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 :)
donaldh Kristien: have a look at the eval server to get an idea how its done github.com/perl6/nqp/blob/master/s...erver.java
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
timotimo: I have a feeling that we may be paying a performance price. We should measure, though.
timotimo: And sockets is probably where it's least an issue.
timotimo gotcha 21:30
but i was supposed to propose changes to the oplist and header file first anyway
jnthn heh, true :) 21:31
21:32 Rounin joined
dalek c: 6931582 | (Steve Mynott)++ | t/pod-htmlify.t:
use_ok -> use-ok
21:32
donaldh Kristien: also take a look at github.com/donaldh/perl6-eclipse-plugin/ which embedded perl6 in eclipse
Kristien ok
thanks :3
21:33 Hor|zon joined 21:38 Hor|zon left
timotimo jnthn: we can use the posix socket api under windows, too, right? because windows is a certified posix operating system, right? 21:39
psch thinks we might want to package the evalserver somewhat and provide something like «public String evalP6(String code) { … }» 21:40
then we can have p6 that calls p6 via jvm interop to call p6 :P
that's kind of what i imagined as the other use case vendethiel's friends want 21:41
21:41 fhelmberger left
psch donaldh: which bit of how the evalserver handles running p6 code is subject to YMMV? 21:42
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
jnthn timotimo: It's...not quite the same API, but close
timotimo: msdn.microsoft.com/en-us/library/m...S.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.
It's been a while though so I really ought to revisit it.
timotimo ah, we can just depend on SDL_Net in moarvm :P
dalek p/native-ref: 6e03675 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
Stub in native_ref container spec.
21:44
jnthn Well, that gets BOOTSTRAP.nqp building on native-ref at least... 21:47
21:48 xfix left
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
(or poll)
jnthn Correct. 21:50
Sockets behave POSIX-ier than file things, generally.
timotimo on windows ,everything is a long pointer to a handle 21:51
geekosaur sockets are a different "namespace" than filehandles on windows
TimToady those durn union rules...
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:52
timotimo jnthn: do we do ops with multiple w() arguments? 21:53
jnthn timotimo: no 21:54
I dunno if it errors out in update_ops.p6
However, you'll have no way to map it from NQP
Easily
And then if you get around that, you'll find the SSA-er, and probably the rest of spesh, is utterly confused. ) 21:55
So yeah, don't do it. :)
21:57 muraiki left
timotimo mhm 21:59
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.
jercos That quad core power really helps for compiling. 22:01
donaldh And the 1GB ram 22:02
timotimo we don't really benefit from more than one core, though
jnthn donaldh: Which backend?
timotimo during compilation i mean
donaldh rakudo on moar
moritz not swapping really helps a lot
22:02 lizmat joined
jnthn donaldh: Cool :) 22:02
timotimo: Hmm, pass in a buffer to populate with the address? :)
timotimo hm. an r() parameter that gets modified 22:03
jnthn Just like the C API ;)
timotimo we don't rely on anything like read-parameters not being mutated inside spesh, so i guess that's fine
jnthn Right, we mark whole ops as :pure
22:04 dolmen left
timotimo hm. should the message buffer be passed in and populated or created by the op? 22:06
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
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
rather than having to pre-create it
dalek p/native-ref: 94352f7 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/NativeRefREPRData.java:
Add NativeRefREPRData (though not set up yet).
22:14
p/native-ref: 0dd1376 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Implement iscont_[ins].
timotimo gist.github.com/timo/fff41b480ef842dee120 - this is what i've come up with 22:18
22:22 virtualsue joined
timotimo it's hardly consistent at all :\ 22:24
jnthn timotimo: hmmm 22:28
timotimo maybe i'll put flags before address consistently 22:30
but that'll make bind look weird if taken on its own
skids Sum is fixethed. All problems were Zen slice related. Oh and one Nil Test::is() thing. 22:35
I can actually leave work late in dayloght. Yay. o/
masak have zen slices changed recently?
skids Yeah some do not return flatennable objects now. 22:36
masak oh, ok.
skids Not sure whether that's a bug or feature.
masak me either. 22:37
skids Anyway, decommute.
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)
lizmat m: my %h; %h<a>.push(1); %h<a>.push(2); %h.invert.perl 22:39
camelia ( no output )
lizmat m: my %h; %h<a>.push(1); %h<a>.push(2); say %h.invert.perl
camelia rakudo-moar 11ae56: OUTPUT«([1, 2] => "a",).list␤»
lizmat TimToady: so that should become: (1 => "a", 2=>"a").list ? 22:40
literal where can I find some reading on set operators like (-) and (elem) ? 22:41
22:41 bayprogrammer joined
literal I don't see much about it in S03, all I really found was S03-operators/set.t 22:41
22:41 skids left 22:43 donaldh left
raydiak literal: they aren't very well documented atm, but github.com/rakudo/rakudo/blob/nom/...erators.pm is pretty easy to read 22:44
timotimo this kitty is kneading the air, seems like i'm doing my job properly 22:48
22:49 Kristien left
dalek kudo/nom: 2eba6c8 | (sue spence)++ | / (2 files):
Minor spelling corrections.
22:49
kudo/nom: abe97eb | lizmat++ | / (2 files):
Merge pull request #373 from virtualsue/nom

Minor spelling corrections.
literal raydiak: nice 22:52
dalek kudo/nom: 7cb8548 | (Steve Mynott)++ | docs/ (2 files):
fix 3 minor typos
22:55
kudo/nom: 6b88dbd | lizmat++ | docs/ (2 files):
Merge pull request #374 from stmuk/nom

fix 3 minor typos
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
it doesn't seek, it doesn't tell, it doesn't read or write, all it does is close
jnthn timotimo: Hmm, that kinda makes sense. 22:59
Well, a normal socket don't seek 23:00
timotimo indeed
jnthn But yeah, having an inter-packet decode stream thingy for UDP makes relatively little sense.
afaict, at least
timotimo but it does have MVM_io_syncstream_seek and _tell
and it puts "seekable" in there, too
which ... huh? 23:01
jnthn Does something interesting? :) 23:02
timotimo didn't try yet
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 camelia left
timotimo nqp: my $foo := nqp::socket(); nqp::bind_sk($foo, "0.0.0.0", 12345); nqp::seek_fh($foo, 10, 0); 23:03
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
geekosaur um, sockets aren't seekable anywhere that I'm aware of 23:04
timotimo anywhere except MoarVM :) 23:05
MVM: always ahead of the curve
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…»
..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…»
..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:05 ChanServ sets mode: +v camelia
timotimo sorry, came 23:06
hm
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?
EBADF The stream specified is not a seekable stream. 23:09
^- ought to happen
jnthn: how do you feel about flags? MVM_io_socket_create doesn't accept any, though it may want to? 23:11
23:11 isBEKaml left
timotimo we may also want to expose MVM_io_get_hostname so that users can feed nqp::udpsendto with that 23:16
dalek href="https://perl6.org:">perl6.org: 413201c | (Steve Mynott)++ | source/index.html:
replace parrot with other backends
23:18
href="https://perl6.org:">perl6.org: bee6a34 | (Steve Mynott)++ | source/index.html:
Merge pull request #16 from stmuk/master

replace parrot with other backends
jnthn timotimo: It may want to, yes; they'd want nqp::const::'ing I guess 23:19
23:23 Hor|zon joined
lizmat skids: re irclog.perlgeek.de/perl6/2015-02-27#i_10193043 23:26
I think I did that when the zen-slice returned self, rather than self.list
23:27 Hor|zon left 23:29 Ben_Goldberg joined 23:34 pippo joined
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␤»
pippo m: my %h = (a => 1, b => 3, c => 1); say %h.invert.invert.perl;
camelia rakudo-moar 6b88db: OUTPUT«("c" => "1", "b" => "3").list␤»
23:36 pippo left
masak 'night, #perl6 23:36
23:36 telex left
lizmat good night, masak 23:36
dalek kudo/nom: 3eb4463 | lizmat++ | src/core/ (12 files):
Implement .exchange, per recent speculative change
23:37
lizmat bonus points for anybody who implements tests :-) 23:38
23:38 telex joined 23:39 virtualsue left
lizmat also calls it a day 23:46
23:47 BenGoldberg_ joined, espadrine left, jack_rabbit joined 23:49 aborazmeh joined, aborazmeh left, aborazmeh joined
jnthn 'night, lizmat 23:49
23:50 Ben_Goldberg left
dalek p/native-ref: 4ce07b6 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Remove dead code.
23:56
p/native-ref: 47e84a4 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
First pass at implementing lexicalref compilation.
jnthn Progress... :) 23:57
Cold is still annoying...grmbl 23:59
jnthn goes to rest &
23:59 Houndcat joined, aborazmeh left