»ö« 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«42True» | ||
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/l2aOgDjuJXTwo terms in a rowat /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 requiredat /tmp/yXJhVe0ixc:1------> 3say7⏏5.say expecting any of: argument listOther 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/dxyJftnN55Unsupported 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/jMOMymWM9PUnsupported 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_x6UviUAhCannot 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/zBq3GerV04Type 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/EYThjF9bgrVariable '$spooky' is not declaredat /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/CM6W9eSFsYInvalid 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:1Array.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 directoryServer 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 directoryLost 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/wFJac5yliUVariable '%h' is not declaredat /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
|