»ö« 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:02 Sqirrel joined
dalek kudo-star-daily: 763c426 | coke++ | log/ (14 files):
today (automated commit)
00:04
timotimo should panda be taught about the fact that NativeCall dependencies are satisfied by a sufficiently recent rakudo? 00:08
00:09 chenryn joined
timotimo or should i remove NativeCall from my module's dependencies? 00:10
also, am i to remove "use NativeCall;" from my scripts? 00:11
apparently i am
00:13 Mouq is now known as Quom 00:15 Quom is now known as Mouq, Mouq is now known as Quom 00:16 Quom is now known as Mouq 00:21 coyocanid left
japhb TimToady: Um, I'm "wrong on the internet"? About what? 00:28
timotimo um ... 00:33
this could be a problem ...
nativecallinvoke doesn't even appear in speshlogs or jitlogs
00:44 adu left
masak 'night, #perl6 00:52
timotimo japhb: what did you reference? i missed something funny?
00:55 chenryn left
japhb timotimo: I saw a highlight in my IRC client from TimToady telling me I was wrong on the internet, and referencing something in the backlog, but it wasn't the immediately previous line, so I wasn't sure what he was talking about. 00:56
(I'm not surprised about being wrong, more curious what came up worth pointing out. :-)
timotimo ah 00:57
:)
00:59 cbk1090 joined
geekosaur I infer he disagrees about how / \ / is recognized? 01:00
std: / \ /
camelia std f9b7f55: OUTPUT«===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20 at /tmp/Dca41IIzPi line 1:␤------> / \ ⏏/␤Parse failed…»
geekosaur hm, std does the same though
good question
unless this means the rules have changed again :)
timotimo maybe japhb claimed something about how / \ / works? 01:01
cbk1090 Does Perl6 receive input from $*IN or %*ARGS when working with data from a web form using POST. Im trying to make a basic CGI debugger/tester for Perl6. 01:02
I know there are modules out there now SCGI etc, but I just need something basic, and I want to learn how to do it from the ground up. 01:03
timotimo AFAIK $*IN is how you get the body of the request and %*ENV is where you find all the key/value things, no? 01:04
hobbs cbk1090: if you're doing CGI then you're getting data from $*IN and %*ENV, that's implicit in the definition of CGI :)
01:04 Mouq left
hobbs yeah, what timotimo said :) 01:04
timotimo implicit? i was hoping it'd be explicitly stated somewhere
hobbs timotimo: well, the implication comes from the fact that the CGI spec wasn't written for Perl 6 :)
timotimo ah 01:05
01:05 Mouq joined
timotimo right, there's a bit of transfer required from "the environment" to "%*ENV" and from "stdin" to "$*IN" 01:05
dalek c: 80b124b | util++ | lib/ (8 files):
Fix typos.
hobbs zactly 01:06
cbk1090: www.ietf.org/rfc/rfc3875 is probably useful reading for you, if you want to reinvent this wheel :)
cbk1090 I'm sorry for trying to use CGI style, I have seen the advantages of newer models like SCGI etc. but like I said I'm really just trying to start off with the basics 01:07
timotimo that's no problem
we trust you're aware of the trade-offs and drawbacks CGI has
hobbs cbk1090: as long as you're aware, no one should mind
cbk1090 timotimo, yes, i'am. But for what I'm doing, I really only need the basics. I'm just making a contact-us form and trying to send the output to a file, that the perl6 script opens and writes to. 01:09
I know its lame but I like it that way. don't need/want email server running 01:10
timotimo sure 01:11
do we have support for file locking in core, btw?
well, we have NativeCall, so you can just use fcntl (or what function gives you locking?) 01:12
oh, i didn't even know about record locking
cbk1090 timotimo, file locking is what I'll work on next... I'm just trying to take things one step at a time. 01:13
timotimo and i didn't know about open file description locks, either 01:14
but those seem to be rather recent additions
cbk1090 when I use %*ENV I don't see the key/values. And when I use $*IN I get nothing...?
timotimo m: say %*ENV.keys 01:15
camelia rakudo-moar 9add92: OUTPUT«MANPATH PERLBREW_VERSION PERLBREW_PERL SHELL PERL5LIB USER LS_COLORS PERLBREW_BASHRC_VERSION PERLBREW_ROOT PATH _ PWD LANG PERLBREW_HOME GPG_TTY HOME SHLVL PERLBREW_MANPATH LS_OPTIONS LOGNAME PERLBREW_PATH LC_CTYPE␤»
timotimo m: say $*IN.get().perl
camelia rakudo-moar 9add92: OUTPUT«"Céad slán ag sléibhte maorga Chontae Dhún na nGall"␤»
timotimo m: say %*ENV
camelia rakudo-moar 9add92: OUTPUT«GPG_TTY => not a tty, HOME => /home/camelia, LANG => POSIX, LC_CTYPE => en_US.UTF-8, LOGNAME => camelia, LS_COLORS => , LS_OPTIONS => -N --color=none -T 0, MANPATH => /home/camelia/perl5/perlbrew/perls/perl-5.20.1/man:/usr/local/man:/usr/share/man, PATH =>…»
cbk1090 I have tested my Apache/CGI config and it works with old perl
timotimo could you share the code?
cbk1090 yes %*ENV has a bunch of vars in it but not the responce form the web form. Ok 01:16
pastebin.com/YRd9aueH
timotimo you may want to just use flock(2) instead of fcntl, it's got a simpler API
are you sure the query string would be in @*ARGS?
hobbs it wouldn't 01:17
cbk1090 Well that is what I had at first, I was just trying anything. Mostly what I do when learning perl6 01:18
timotimo also, consider replacing my $starDate with something like this: my $starDate = "$dt.year()-$dt.month()-$dt.day() $dt.hour():$dt.minute():$dt.second()"
hobbs %*ENV<QUERY_STRING> has query args
timotimo fewer " that way
cbk1090 the file write stuff is REMed out though
hobbs but if the form is a POST then you need to read from stdin to get the post body
timotimo REM? oh that's old school :)
cbk1090 :) 01:19
sorry i started on BASIC when I was 11
jercos yeah nowadays bash scripts shorten than to "rm"
timotimo hahaha 01:20
oh you're mean :)
hobbs jercos: and you use the C convention of a * at the beginning of every line of comment, right? :)
japhb Now, now, no fishing the Sea of Gullibility ... 01:21
jercos Right, rm /* for the first block, then rm *, and end with rm */
TimToady japhb: yes, I'm referring to your tutorial, where you said you could quote whitespace with backslash, which you can't
also, you have mm// where you want ms//
japhb TimToady: link? I must have forgotten?
TimToady did you do github.com/perlpilot/perl6-docs/bl...-intro.pod or am I misattributing? 01:22
someone mentioned it overnight
timotimo nope, perlpilot and moritz are mainly blame'd 01:23
TimToady ah, I see that, now that I look
japhb Mis-attributing! Hah! I'm not wrong (about that) on the internet!
TimToady so...nevermind :)
japhb I was also talking about a tutorial overnight, but in a different venue, and for a different tutorial. 01:24
Mouq I believe perlpilot === PerlJam
timotimo me, too
TimToady yeah, don't know how I short-circuited that 01:25
must've been a faulty ^^ operator :)
japhb Heh
TimToady PerlJam: you're wrong on the internet! :) 01:26
geekosaur we're alive, we're on the internet: we're wrong on the internet 01:27
japhb is just wrong, regardless of venue ;-) 01:28
TimToady it's just a good thing TimToady is not on the internet right now...
timotimo it kinda seems like postcircumfix:<( )> (as added by the Native role) is not being called ith an interned callsite. which now makes total sense to me that i look at it 01:31
because it has flattened args
Mouq
.oO( There's more than one way to be wrong on the internet )
timotimo .o( there is more than one wrong on the internet ) 01:32
japhb .o( There is more than one wrong internet )
hobbs I've seen "sorry, wrong window" before, but I'm not so sure about "sorry, wrong internet" 01:33
timotimo .o( there is more than internet ) 01:34
hobbs I've been on two of them 01:35
01:36 colomon left 01:37 colomon joined 02:03 telex left 02:04 telex joined 02:08 adu joined 02:22 Peter_R left
ruoso made a bit more progress in the grammar-ebnf slang, but I can't seem to be able to do anything useful in the actions... if I uncomment any of the "make" parts in github.com/ruoso/Grammar-EBNF/blob...Actions.pm it starts failing with obscure errors... 02:23
I have been using github.com/tony-o/perl6-slang-sql/...ng/SQL.pm6 as the reference 02:24
02:24 Peter_R joined
ruoso I believe it may be related to the fact that I am delegating to another grammar and another action class... 02:24
github.com/ruoso/Grammar-EBNF/blob...04_slang.t has my end goal 02:25
ruoso bbl &
02:28 grettir left
timotimo ruoso: what's the deal with the code duplication of the actions in Grammar/EBNF.pl? 02:29
02:31 tim joined
Mouq timotimo: It's not duplication, that's the actions for the slang 02:31
timotimo oh 02:32
i'm not sure i understand, but i'ven't written or read a slang yet
02:37 tim left 02:45 ilbot3 left 02:48 ilbot3 joined
Mouq timotimo: There's the EBNF grammar and actions that do their thing, and then the slang ties the grammar/actions into the parser, in this case by augmenting the Perl 6 grammar and actions 02:51
03:04 noganex_ joined 03:06 colomon left, colomon joined 03:07 noganex left 03:11 kshannon left 03:12 kshannon joined 03:14 kaare_ left, kaare_ joined 03:18 Patterner joined 03:22 Psyche^ left 03:29 sada joined 03:30 sada left 03:55 kurahaupo1 joined, jack_rabbit joined 04:09 BenGoldberg left 04:19 ggoebel111111114 left 04:21 mr-foobar left 04:26 mephinet joined 04:31 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 04:50 mr-foobar joined 05:09 mephinet left 05:31 Mouq left 05:40 firefish5000 joined 05:41 diana_olhovik_ joined 05:45 firefish5000 left 05:47 firefish5000 joined 05:53 [Sno] left, Mouq joined 05:59 mr-foobar left
firefish5000 Good day #perl6! I was having trouble with overriding named (slurpy) parameters. Do they get appended to the end of the list or something? 06:03
m: sub SSay (*%_) { say %_.perl;}; SSay(is0=>0,is1=>0,is2=>0,|{is1=>1,is2=>1},is2=>2);
camelia rakudo-moar 9add92: OUTPUT«("is1" => 1, "is0" => 0, "is2" => 1).hash␤»
06:10 mr-foobar joined, bjz joined
firefish5000 Correction, I dont have a problem with Slurpy parameters, but the |{Magical Pipe that makes my hashes go through as named args whos name I do not recall} 06:11
06:12 mr-foobar left 06:14 bjz left 06:18 sqirrel_ joined 06:20 molaf joined
TimToady sure looks like they're appended after the literal args, doesn't it... 06:24
06:24 mephinet joined
TimToady m: \((is0=>0,is1=>0,is2=>0,|{is1=>1,is2=>1},is2=>2).perl 06:25
camelia rakudo-moar 9add92: OUTPUT«===SORRY!=== Error while compiling /tmp/S_VN12QlkO␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at /tmp/S_VN12QlkO:1␤------> =>0,is2=>0,|{is1=>1,is2=>1},is2=>2).perl⏏<EOL>␤ …»
TimToady m: \(is0=>0,is1=>0,is2=>0,|{is1=>1,is2=>1},is2=>2).perl
camelia rakudo-moar 9add92: OUTPUT«===SORRY!=== Error while compiling /tmp/wxEnaufw3g␤Variable '&prefix:<|>' is not declared␤at /tmp/wxEnaufw3g:1␤------> \(is0=>0,is1=>0,is2=>0,⏏|{is1=>1,is2=>1},is2=>2).perl␤»
TimToady oh hoof, you're a Capture, you're supposed to know about |
hobbs is the source for camelia available? And which would be preferable -- a patch to turn ANSI color codes into IRC color codes, or a patch to strip them? :) 06:28
06:30 kaleem joined, diana_olhovik_ left
TimToady likes the colors 06:31
and the ANSI colors show up fine in irssi :) 06:32
hobbs ah, they don't for me
TimToady if IRC colors can improve what the logger gets though, I'd be okay with that
I suspect, however, that they'd just be a different set of mojibake 06:33
hobbs I'm treated to i.imgur.com/LPqtYlZ.png
firefish5000 I guess its not an odd feature then. For future reference, what do we call the prefix:<|> oporator (or would that be its name? 06:34
TimToady maybe your client has an option for ANSI colors that you need to turn on?
hobbs I was just looking for a setting like that, I don't think there is 06:35
TimToady doesn't really have a name yet; I think of it as a slit in the argument list into which you slide run-time args
hobbs TimToady: 03is this green?
TimToady and as you can see, rakudo doesn't exactly treat it as an operator anyway, but as special syntax
hobbs: yes
hobbs then I'll take a stab at the IRC color option, and if it bothers more people, I'll be quiet :) 06:36
TimToady it's not green in the irc logs, but maybe that's an improvement over mojibake 06:37
hobbs arguably :)
firefish5000 I suppose for now prefix:<|> it is (your probably the only one who would understand me if I asked about the slit operator) 06:38
06:40 gfldex joined 06:41 adu left, adu joined 06:46 bjz joined
hobbs TimToady: do you know if the source is available? Should I ask nine_? 06:46
TimToady github.com/perl6/evalbot.git or so, I think 06:49
hobbs that looks right 06:51
firefish5000 hobbs, hexchat gives results similar (worse for me) to yours, along with my phons irc. So your not alone and a patch would be great :) 06:53
hobbs firefish5000: yeah, I'm on xchat which hexchat is a derivative of
firefish5000 m: sub SSay (*%_) { say %_.perl;}; SSay(|{is0=>0,is1=>0,is2=>0},|{is1=>1,is2=>1},|{is2=>2}); # Seems like slurping everything does the trick 06:54
camelia rakudo-moar 9add92: OUTPUT«("is0" => 0, "is1" => 1, "is2" => 2).hash␤»
06:54 kurahaupo1 left
firefish5000 hobbs, I use to use xchat, but my distro dropped them since development seemed to stop. 06:56
firefish5000 rejoices as his code starts functioning again! 06:58
hobbs it stopped in a place that doesn't bother me :)
TimToady ~. 07:02
firefish5000 lol, well I imagine any vulnerabilities would be negligible. Though I might worry about hart-bleed. 07:03
TimToady stupid wifi at this hospital knocks me off every half hour or so...
(in waiting room waiting for arrival of 3rd grandkid...)
07:05 spider-mario left, sqirrel_ left
firefish5000 Oh, i'm surprised your online. Omedetou gozaimasu ([an early] congradulations) 07:07
TimToady どうも有難う。。。 07:09
07:11 raiph left
TimToady finds it entertaining that "arigatou" actually comes from "exists difficulty" 07:12
firefish5000 apparently its to acknowledge that the other person has gone through the difficulty to do something for you..(im not making much since, I had to look it up) 07:16
You have gone through part would be implied probably, though when you look at just 'difficaulty exist', you would assume bad news... 07:18
07:25 Rounin joined 07:30 [Sno] joined, gfldex left 07:33 jack_rabbit left 07:36 SHODAN left 07:38 SHODAN joined 07:46 diana_olhovik_ joined
jnthn morning, #perl6 07:53
07:54 FROGGS joined
sjn good *, jnthn & #perl6 07:56
moritz \o jnthn, sjn, *
07:58 darutoko joined, _mg_ joined
TimToady jnthn: see note above about | appending rather than inserting 08:01
also, wondering why a capture composer like \() can't do | insertion 08:03
jnthn TimToady: Saw it; there's not a lot I can easily do about it, though.
TimToady: | really should work in \(...), but \(...) is odd in ohter ways too at the moment.
*other
08:04 prime left
dalek ast: aaa9a03 | moritz++ | S19-command-line/repl.t:
Avoid test failure in S19-command-line/repl.t on parrot

it seems to print the ">" prompt to STDERR
08:04
jnthn TimToady: It occurs to me that the way to implement \(...) is to just compile it into a call to a sub MAKE-A-CAPTURE(|c) { c } :)
And use the normal args processing logic. 08:05
jnthn isn't sure why it's not done like that already...
Maybe it was a performance thing, but we can construct a |c in a sub using bind lowering these days, not even a trip through the slow-path binder.
So it probably is the fastest way.
TimToady: oh, or alternatively we define method new(|c) { c } on Capture ? 08:06
TimToady: Which snapshots it after the slef.
*self
nwc10 good UGT, * 08:10
jnthn TimToady: At the moment Caputre takes a :@list and :%hash named args, fwiw 08:12
08:12 prime joined 08:14 kurahaupo1 joined, rurban joined 08:15 larion left 08:17 rindolf joined 08:18 fhelmberger joined 08:19 kjs_ joined 08:20 pmqs left 08:24 wicope joined 08:28 Kristien joined
Kristien mood gorning 08:28
08:34 abraxxa joined, abraxxa left, FROGGS left, kurahaupo1 left
vendethiel o/, #perl6 08:34
08:39 mattp_ left 08:40 mattp_ joined, ponbiki left 08:41 pdcawley joined, ponbiki joined 08:42 ponbiki is now known as Guest76664
Kristien I want FIFOs that discard input if there are no writers. 08:45
s/writers/readers/
jnthn m: my $s = Supply.new; $s.emit(1); $s.tap(&say); $s.emit(2); 08:47
camelia rakudo-moar 9add92: OUTPUT«1␤2␤»
jnthn wtf?!
That's meant to only say 2. arrrrgh.
raydiak m: my $s = Supply.new; $s.emit(1); sleep 1; $s.tap(&say); $s.emit(2); 08:48
camelia rakudo-moar 9add92: OUTPUT«1␤2␤»
jnthn How the heck is it keeping the values around? It's meant to be a simple pub-sub thing and if nobody listens they're gone. :/
raydiak maybe it erroneously defaults to an on-demand supply? 08:49
jnthn But those need explicit creation.
08:49 zakharyas joined
jnthn m: my $s = Supply.new; $s.emit(1); $s.tap(&say); $s.emit(2); $s.tap(&say); 08:50
camelia rakudo-moar 9add92: OUTPUT«1␤2␤»
jnthn And if it was an on-demand one the output should be 1212.
raydiak yep, seems not
08:51 pecastro left
jnthn It's almost as if it's doing a "buffer until first tap", which is a potentially useful behavior, but certainly not the right default. 08:52
raydiak was just looking for any mention of such behavior
jnthn I'd imagine it's a relatively rare thing to want, though. For on-demand supplies you don't start the flow until you tap, so there's no race. And for live supplies you know you're tapping into a live stream of values. 08:54
08:55 virtualsue joined
raydiak agreed it certainly doesn't seem like what we want, and doesn't seem to be designed as such as far as docs say 08:55
github.com/rakudo/rakudo/blob/nom/....pm#L65-67 is that...pushing onto a queue if it hasn't been tapped yet? 08:58
moritz yes 08:59
and it should only do that for an on-demand supply, right?
raydiak correct
jnthn Uh, no, on-demand ones shouldn't work like that either. 09:00
On demand ones typically run some code when you tap them
Supply.interval(1) for example runs code to start a timer.
raydiak: Ugh, looks like 09:02
raydiak so nothing should have been emitted to them before they were tapped?
jnthn I don't have time to worry about this now.
raydiak: For an on-demand one, yes; it's the act of tapping that starts the flow of values. 09:03
raydiak we could maybe just add a " && self.live" on L65 in the condition on L65 maybe
jnthn I need, when I have time, to look at why we ended up with this. 09:05
Probably something somewhere wants this kind of behavior, rightly or wrongly.
raydiak github.com/rakudo/rakudo/commit/8a...33e845ee57 looks like lizmat++ tried to rip it out and had problems 09:06
09:06 adu left
jnthn At least it's easy to remove 09:06
But yeah, we should look at something specific to categorize/classify 09:07
moritz t/spec/integration/advent2013-day14.t hung for me in j-spectest 09:08
... but works fine in isolation 09:13
jnthn urgh 09:15
fwiw, social.msdn.microsoft.com/Forums/e...n?forum=rx is a useful post on the semantics of GroupBy in Rx, which are the kind of problem we have with classify/categorize.
Basically, you don't emit the value into the nested Supply until the emit call for the Supply itself has returned, so any subscription done on it has taken place. 09:16
And, short of folks doing stuff to explicitly introduce a race condition (like in the question), it works out. 09:17
09:18 Guest76664 is now known as ponbiki
nwc10 fwierzbicki.blogspot.co.at/2015/02/...eased.html 09:20
nwc10 is pleased to see that its making progress. 09:21
er, grammar. it's
nwc10 isn't pleased to see that it's yet another usless-use-of-javascript page.
vendethiel .tell btyler lots of articles sum up my point of view on go, tmikov.blogspot.fr/2015/02/you-dont...e-you.html and yager.io/programming/go.html are pretty much on point 09:27
yoleaux vendethiel: I'll pass your message to btyler.
09:28 _mg_ left 09:30 dakkar joined 09:33 adu joined 09:38 Kristien left 09:39 espadrine_ joined 09:41 FROGGS joined 09:44 espadrine_ left, espadrine joined 09:45 larion joined 09:47 sqirrel_ joined, donaldh joined, kjs_ left 09:51 kjs_ joined 09:52 firefish5000 left
masak good antenoon, #perl6 09:52
jnthn ma/sak 09:53
raydiak \o masak
09:53 _mg_ joined
raydiak lacks the energy to maintain corporeal form, and disperses into the aether for a regeneration cycle 09:56
09:59 _mg_ left
dalek kudo/nom: 9f7187a | lizmat++ | docs/release_guide.pod:
Propose "Parrotopia" as name for release #85
10:02
10:02 kaleem left
lizmat inspired by www.marsanomalyresearch.com/evidenc...otopia.htm 10:03
10:04 kjs_ left
lizmat realizes it could be construed in many ways but intends it to be as something with a history to be(re-)discovered and hard to reach 10:04
btyler vendethiel: yes, the language has a ton of shortcomings. my point was that go (and node) are two very strong recent samples of lots of people getting excited about a platform and investing time into it -- writing libraries, writing apps, etc.
yoleaux 09:27Z <vendethiel> btyler: lots of articles sum up my point of view on go, tmikov.blogspot.fr/2015/02/you-dont...e-you.html and yager.io/programming/go.html are pretty much on point
vendethiel btyler: oh, sure, that happens a lot. fwiw, I also think there are tons of thing wrong with, say, docker or chef which are apparently loved by maby 10:06
s/aby/any/
10:07 abraxxa joined
TimToady still waitin' for another grandkid... 10:07
btyler sure. but again, solved problems for lots of people, became wildly popular. the core thing here is that dismissing $popular_thing because it isn't as good as $rather_obscure_thing and assuming that people will sort out how awesome your project is for themselves is a mistake, and will lead to marginalization of your preferred platform 10:08
10:08 kaleem joined
btyler and marginalization makes the platform worse for doing real things 10:08
vendethiel btyler: which, really, isn't what I'm trying to convey here :-) 10:09
btyler ok, talking past each other I suppose
10:09 dg left
lizmat TimToady: wow... but still, for the mother to be, I suspect the "waiting" is even more annoying :-) 10:11
10:11 firefish5000 joined
TimToady indeed, that's harder than I'll ever work... :) 10:12
10:14 dg joined 10:19 firefish5000 left, Vlavv_ left
sergot morning #perl6 ! 10:20
nwc10 TimToady: sibling of existing grandkid, or cousin? 10:21
lizmat sergot o/
jnthn btyler: I guess it's a case of things having to be simultaneously familiar enough to another widely adopted thing that the leap isn't frightening for the average developer, while at the same time seeming different enough to offer some new value. :) 10:22
lizmat: Tomorrow is release day? When're you planning to cut it, ooc? 10:25
lizmat jnthn: yes, tomorrow is release day
jnthn lizmat: More concretely: is a MoarVM release tomorrow morning fine? 10:26
lizmat yeah, that would be fine :-)
jnthn OK, cool.
10:26 diana_olhovik_ left
nwc10 for a daylight value of morning, or a UGT value? :-) 10:26
10:26 diana_olhovik_ joined
lizmat I mean, you're morning already ends at 10:00 UTC anyway :-) 10:26
jnthn nwc10: Daylight. :)
lizmat *your
jnthn lizmat: True :)
Hm, which means it's already time to make lunch :) 10:31
10:32 Vlavv_ joined
TimToady nwc10: sibling to Cid, and a cousin of Julian 10:35
nwc10 which demonstrates that I'd already lost count!
10:43 kjs_ joined, firefish5000 joined
TimToady well, it's 3 grandkids now \o/ 10:52
as of about 13 minutes ago
lizmat cograts TimToady (and everybody involved!)
*congrats :-)
TimToady healthy lungs anyway :)
from what we could hear... 10:53
10:57 kjs_ left
dalek kudo/nom: 66de7b2 | lizmat++ | src/core/Str.pm:
Make Str.trans(Str,'x') 10 - 30% faster still
10:57
10:58 rurban1 joined
alpha- congratz 11:00
jnthn TimToady: Congrats! :) 11:04
lizmat
.oO( nobody seems to like "Parrotopia" as a release name just yet )
11:05
jnthn lizmat: Hey, nobody disliked it either :P
lizmat alternative could be Berlin 11:06
jnthn I'm a little skeptical they're a Pm group in that location :P
Uh, PM :)
lizmat which has a wall-like ring to it
well, yeah, but it could, in the far future have a PM group :-)
and Berlin *does* have a PM group afaik 11:07
|Tux| thinks he is moving in the right direction ...
All tests successful.
Files=8, Tests=17671, 60 wallclock secs ( 1.92 usr 0.14 sys + 60.00 cusr 0.48 csys = 62.54 CPU)
Result: PASS
lizmat |Tux|: did it get any faster recently?
|Tux| not till this morning, lemme check now 11:08
11:08 adu left
jnthn wonders if it's a parallel test run... 11:08
|Tux| no it is not
jnthn Doens't look it from the numbers. May also help :)
(If "I have to wait for tests" is a bottleneck.) 11:10
nwc10 TimToady: congratulations. 11:12
FROGGS TimToady: congrats! \o/ 11:14
|Tux| is 4% speed improvement about right?
|Tux| also congrats grandpa TimToady 11:15
masak TimToady: grand congrats on the grandkid :)
|Tux| test 50000 38.723 38.529
test-x 50000 38.435 38.241
but *that* is something I like. complete code now faster than my starting point
38.x used to be between 39.x and 42.x 11:16
x being noise
masak .oO( I don't always include noise, but when I do, I include it after the decimal point. ) 11:17
[ptc] TimToady: congratulations! 11:18
jnthn
.oO( 42.wtfmasak :P )
|Tux|: And I hope Rakudo/Moar improvements will make it a good bit faster still in the weeks/months to come :) 11:19
|Tux| I currently build about twice a week
I currently build about twice a day
masak I currently build about twice an hour 11:20
|Tux| I have other $work tasks
moritz TimToady: congratulations!
|Tux| what is the last generic method being called (even after BUILD) when new() is invoked that can access all attributes set in BUILD? 11:27
11:28 kjs_ joined
moritz |Tux|: .new calls .BUILDALL, which again class all BUILD submethods 11:28
|Tux|: so if you want to hook in essentially after object creation, write your own BUILDALL, use callsame() to re-dispatch to the default one 11:29
|Tux|: and then do whatever you want to do
|Tux| I cannot call self!method from the end of BUILD, which is essentially what I want to do
|Tux| tries ...
BUILDALL also needs *%init ? 11:31
masak enjoys seeing |Tux| discover Perl 6
|Tux| :)
moritz method BUILDALL(@autovivs, %attrinit) # is what src/core/Mu has 11:32
|Tux|: if you don't need the arguments, just capture them call
jnthn If you don't want any of the argumens, then just method BUILDALL(|) { callsame; ...stuff... }
moritz method BUILDALL(|c) { callsame; do your stuff here }
|Tux| I'm amazed that I am even publicly enthusiastic ( www.perlmonks.org/?node_id=1116877 )
jnthn moritz++ is faster :)
moritz or right, with an anonymous capture, if you don't need it at all in the code
|Tux| same with BUILDALL: I am unable to access $!attribute from self!method call from BUILD or BUILDALL 11:34
lemme check if I can make an example ... 11:35
11:36 sqirrel_ left
moritz m: class A { has $!x; submethod BUILD(:$!x) { }; method BUILDALL(|) { callsame; say $!x } }; A.new(x => 42) 11:36
camelia rakudo-moar 66de7b: OUTPUT«42␤»
jnthn Just in case: make sure it's method BUILDALL, not submethod BUILDALL 11:37
lizmat wow, for the first time in a *long* time, not just bad reactions on a P6 thread on Perl Monks , wow! 11:44
(at least, that I know about: I generally avoid PerlMonks) 11:45
moritz lizmat: fwiw I've occasionally answered questions there (that already had a p5 answer) with a p6 answer, and the reactions were usually mixed to positive 11:46
I don't think I've ever seen purely negative threads
|Tux| gist.github.com/Tux/ac2055cfd4b0806a538b <= That is my problem
moritz (I always answered with working code, not hypothetical stuff)
|Tux|: you don't initialize foo and bar in the same object, so one of them will always be undefined 11:48
|Tux|: hence the warning from !sanity_check
|Tux| foo and bar have a default in the declaration
I expect those to be true before BUILD 11:49
moritz your expectations don't match what's specced/implemented
|Tux| if that is not the case, I need to move the defaults to BUILDALL? 11:50
moritz if you write a BUILD, the defaults don't work anymore
|Tux| FUCK!
sorry
moritz well, you can do
my %defaults = (a => 'A', ...)
and then inside BUILD, iterate over %defaults instead of %init
and do a if %init{$key}:exists { do your magic here } 11:51
|Tux| this is so completely unexpected
masak |Tux|++ # www.perlmonks.org/?node_id=1116877
11:59 yakudza joined
El_Che Slang::Tuxic 12:09
haha
:)
12:09 firefish5000 left
El_Che reading |Tux|'s post 12:09
12:09 telex left 12:10 telex joined 12:13 coffee` joined 12:15 Ven joined
timotimo o/ 12:15
|Tux| Hmmm, boooo! «C.new ($attr => $x);» => Default constructor for 'C' only takes named arguments 12:16
moritz yes, $attr => $x is a named argument 12:18
erm, positional
jnthn If you want to treat it as a named do |($attr => $x)
moritz put a |(...) around it to re-interpolate it into the argument list, which will make it named
|Tux| hmmm, new surprises 12:22
12:31 Alina-malina left 12:32 Alina-malina joined
|Tux| having the defaults as noted in the declaration be valid even before BUILD is probably too late a change to request? 12:36
timotimo that's something the default BUILDALL does; you can override it and use the buildallplan that's created for you, i'd think. let me have a look 12:41
tadzik what are you trying to do?
I'm experienced at not having BUILD doing what I expect :P
timotimo yeah, you can get the BUILDPLAN and BUILDALLPLAN via self.BUILD[ALL]PLAN
12:44 pdcawley left
timotimo [Tux]: i have something that might help you 12:48
you should be able to do something like my $object = self.bless(...); $object!attr = 5;
right?
[ptc] m: use Test; skip "next line shouldn't run"; eval_dies_ok('warn'); 12:49
camelia rakudo-moar 66de7b: OUTPUT«ok 1 - # SKIP next line shouldn't run␤Warning in block <unit> at EVAL_0:1␤␤not ok 2 - ␤␤# Failed test at /tmp/dvUvkt9Sn0 line 1␤»
[ptc] m: use Test; plan 1; skip "next line shouldn't run"; eval_dies_ok('warn');
camelia rakudo-moar 66de7b: OUTPUT«1..1␤ok 1 - # SKIP next line shouldn't run␤Warning in block <unit> at EVAL_0:1␤␤not ok 2 - ␤␤# Failed test at /tmp/Ae45K2N776 line 1␤# Looks like you planned 1 tests, but ran 2␤# Looks like you failed 1 tests of 2␤»
|Tux| short explain: for all attributes that can be controlled through either new or accessors, the call should finish with a call to check the validity of each of the attributes in relation to one another 12:50
timotimo that's not how skip works
[ptc] timotimo: but that's how it's documented/specced
timotimo oh?
have a quick link for me?
[ptc] "skip the next count tests"
moritz then the documentation needs to be updated
[ptc] mom
timotimo yeah, it can't actually influence the following code
AFAIK you'd run skip instead of the test 12:51
[ptc] timotimo: perl6/specs/S24-testing.pod
12:52 molaf_ joined
timotimo The skip() function is called instead of the some tests (usually because they would die), and emits $count SKIP markers in the TAP output. 12:52
[ptc] yup
timotimo The todo() and skip() functions are generally automatically generated by some sort of source code fudging program.
[ptc] yeah, that wasn't that clear to me
timotimo OK
which part of the document led you to believe otherwise? because that part needs changed 12:53
[ptc] so how should one use skip?
well, that was the bit which led me to believe that skip just skips the following $count tests
timotimo if $*VM<name> eq "moar" { is $foo, $bar } else { skip "not on Moar, sorry!" } 12:54
[ptc] I remember thinking when first reading it, "hey, there must be some cool magic going on here"
timotimo: much better
I'll update the docs, thanks for your help!
timotimo no, thank *you*!
12:55 molaf left
[ptc] ach 12:55
12:58 ggoebel111111114 joined, Ven left, Ven joined 12:59 grondilu joined
grondilu tadzik: u ther? 12:59
tadzik grondilu: yer
grondilu when I rebootstrap panda, it refetches and reinstalls NativeCall. I guess I should remove it now that it is in core, shouldn't I?
moritz yes 13:00
lizmat shouldn't we wait until the next rakudo* release?
moritz lizmat: I plan to do a R* release ASAP after the rakudo compiler release 13:01
lizmat ++moritz
moritz lizmat: and it would be most awesome if stuff wouldn't depend on NativeCall anymore
lizmat agree
tadzik grondilu: oh, I didn't notice it's core :o
grondilu but there is no remove|uninstall command to panda, is there?
tadzik grondilu: it should be fired from the ecosystem then 13:02
grondilu: no, there's not
lizmat tadzik: firing now would break things for people not on blead
tadzik lizmat: oh, indeed
moritz the ideal procedure would be: 1) wait for the release 13:03
2) remove NativeCall.pm from the zavolaj repo
3) update all modules that depend on NativeCall to not do that anymore
4) throw out nativecall from META.info
lizmat moritz: could we inject a rakudo version dependency ? 13:04
moritz lizmat: I don't think that's supported. Or is it, tadzik?
tadzik moritz: unsupported, no :( 13:05
you could have a Build.pm that checks this before compiletime
[ptc] timotimo: so, todo() works much the same way, yes?
tadzik and do magic then
timotimo indeed
tadzik to some extend
[ptc] cool, ta
timotimo if you look at our spec test suite, you can see our "fudge and run" thingie
that reads "special" comments like #?todo 5 "still buggy" 13:06
and comments out lines, replacing them with todo calls instead
[ptc] ok, will have a look 13:08
m: use Test; plan 1; if $*KERNEL ~~ 'win' { ok(True); } else { todo "not yet implemented"; }
camelia rakudo-moar 66de7b: OUTPUT«1..1␤# Looks like you planned 1 tests, but ran 0␤»
timotimo um ... huh?
[ptc] was a bit confused that no tests were counted in that code
timotimo m: say $*KERNEL
camelia rakudo-moar 66de7b: OUTPUT«linux (1.SMP.Wed.Dec.17.18.0.44.UTC.2014.762.f.27.a)␤»
timotimo m: say $*KERNEL.perl
camelia rakudo-moar 66de7b: OUTPUT«Kernel.new(release => "#1 SMP Wed Dec 17 18:00:44 UTC 2014 (762f27a)", name => "linux", auth => "unknown", version => Version.new('1.SMP.Wed.Dec.17.18.0.44.UTC.2014.762.f.27.a'), signature => Blob, desc => Str)␤»
[ptc] that shouldn't follow the happy path, however am surprised that the todo'd test isn't counted 13:09
timotimo oh, hah
ah, todo wants you to run atest after it 13:10
m: use Test; plan 1; if $*KERNEL ~~ 'win' { ok(True); } else { todo "not yet implemented"; nok(True) }
camelia rakudo-moar 66de7b: OUTPUT«1..1␤not ok 1 - # TODO not yet implemented␤␤# Failed test at /tmp/z5_FCX4ki5 line 1␤»
moritz yes, that's the difference between TODO and SKIP
timotimo m: use Test; plan 1; if $*KERNEL ~~ 'win' { ok(True, "calling some WinAPI function works"); } else { todo "not yet implemented"; nok(True, "calling some WinAPI function works") }
camelia rakudo-moar 66de7b: OUTPUT«1..1␤not ok 1 - calling some WinAPI function works# TODO not yet implemented␤␤# Failed test 'calling some WinAPI function works'␤# at /tmp/OMTT5OXKre line 1␤»
timotimo sorry, i explained it wrong before
good thing you looked extra closely 13:11
13:11 Mouq left, skids left
[ptc] so the todo should barf, whereas the skip doesn't? 13:11
timotimo barf? 13:12
[ptc] fail
|Tux| FROGGS, is it hard to have Slang::Tuxic also accept «$object."$method" (foo => 1);» ? 13:13
moritz [ptc]: the todo() makes the next test not fail
timotimo er
[ptc] timotimo: www.urbandictionary.com/define.php?term=barf 13:14
timotimo i'd express it "the todo() makes the failure of the next test be interpreted as inverted"
moritz not inverted
masak "it will end up being a hotch potch of different styles on a block-by-block basis enabled through the use of lexical pragmas" -- www.perlmonks.org/?node_id=1116989
moritz a todo'ed pass isn't a fail
FROGGS [Tux]: no, I guess that should be easily doable
timotimo m: use Test; todo "this test is known to not succeed yet"; ok True, "oops!";
camelia rakudo-moar 66de7b: OUTPUT«ok 1 - oops!# TODO this test is known to not succeed yet␤»
timotimo oh, it's not
that must be something our spec test runner does, in that case
masak I doubt that will happen. (the BrowserUk quote). people are more sensible than that. 13:15
|Tux|++'s slang is an extreme point, no the default.
we can still have tools that convert styles.
[ptc] so the above example from timotimo++ should have been this: 13:16
m: use Test; plan 1; if $*KERNEL ~~ 'win' { ok(True, "calling some WinAPI function works"); } else { todo "not yet implemented"; ok(True, "calling some WinAPI function works") }
camelia rakudo-moar 66de7b: OUTPUT«1..1␤ok 1 - calling some WinAPI function works# TODO not yet implemented␤»
moritz normally, a todo() comes before a *failing* test
[ptc] however, the test is still run, whereas a skip isn't 13:17
?
moritz m: sub my-custom-pi { 3 }; plan 1; todo 'not yet precise enough'; is my-custom-pi(), pi, 'my-custom-pi';
camelia rakudo-moar 66de7b: OUTPUT«===SORRY!=== Error while compiling /tmp/v06ZVlFQ6A␤Undeclared routines:␤ is used at line 1␤ plan used at line 1␤ todo used at line 1␤␤»
moritz m: sub my-custom-pi { 3 }; use Test; plan 1; todo 'not yet precise enough'; is my-custom-pi(), pi, 'my-custom-pi';
camelia rakudo-moar 66de7b: OUTPUT«1..1␤not ok 1 - my-custom-pi# TODO not yet precise enough␤␤# Failed test 'my-custom-pi'␤# at /tmp/Gzx0eaXVwc line 1␤# expected: '3.14159265358979'␤# got: '3'␤»
moritz [ptc]: if you use skip(), you have to ensure yourself that the tests aren't run 13:18
[ptc] moritz: was just trying to get the distinction clear in my head...
moritz if $*KERNEL.is-win { run_5_windows_only_tests() } else { skip 'windows-only tests', 5 } 13:19
[ptc] moritz: but in the custom-pi code, it still fails...
or do I interpret that incorrectly?
moritz [ptc]: the test harness doesn't report it as a failure
[ptc]: because it specia-cases the # TODO $reason comment at the end
[ptc] moritz: ah, that's the piece of info that I'm missing
13:19 kaleem left
[ptc] in other words, prove works 13:20
13:24 pecastro joined
psch /o\ 13:30
something is wrong with array marshalling as i'm implementing it
jvm SIGSEGVs are a strong indicator
timotimo eep
psch but the AbstractMethodError that i get when it doesn't SIGSEGV also points to "something is wrong" 13:31
same for the NPE
that's all with the same changes
the core problem with all of this is differentiating between NQP listy types and other-HLL listy types 13:32
the former have to be handled in BootJavaInterop, so we always have rudimentary support 13:33
and that works fine for one-dimensional lists
but multi-dim means that i have to either 1) generate something that iterates over all dimensions (which... ugh) or 2) i write bytecode to call through to a java-implementation that iterates through all dimensions 13:34
the latter is what i've been trying, and running into troubles with testing it on NQP level, while testing the BootJavaInterop in Perl 6 means having to deal with gcx.List and/or gcx.Array as listy types, which NQP doesn't know about 13:35
so i tried overriding marshalOut in RakudoJavaInterop to write bytecode that calls a different iterate-through-array implementation and that's where i'm getting these fun failures 13:36
but i just realised that that might be because i'm calling emitGetFromNQP twice for cases where i call through to the BootJavaInterop marshalOut 13:37
13:45 Ven left 13:46 Ven joined, Ven left, Ven joined, Ven left
|Tux| If «my $foo = 1; $fop.say;» warns with «Variable '$fop' is not declared. Did you mean '$foo'?», could 13:47
13:48 Ven joined
timotimo could what? 13:48
|Tux| «my $foo = "abc"; $foo ~~ s{ a(.)c} = $1; $foo.say;» warn with something like «You used $1 in Regex, but you caught only 1. Did you mean $0?»
timotimo, I didn't type that fast
timotimo OK 13:53
that's a good question 13:54
doesn't seem trivial
13:54 kjs_ left
moritz it shouldn't be hard 13:55
$1 is just a shortcut for $/[0]
ShimmerFairy I don't think the "did you mean" part is very feasible, but the rest of it could be (e.g. You use $9 in Regex, but only have 5 positional captures)
moritz so by overriding Match.at_pos we could get such a warning
timotimo oh, you mean a run-time warning 13:56
moritz yes
compile-time... do we know the max capture number at compile time? 13:57
timotimo we could somehow record it 13:58
jnthn We assign the indices at compile time
timotimo not sure if it's gettable easily from what we have right now
jnthn I think it's stored then in a CAPS property on the Regex object.
m: Regex.^methods.map(*.name).say
camelia rakudo-moar 66de7b: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> ACCEPTS Bool gist <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> of returns onlystar assuming candidates cando multi soft wrap unwrap yada package WHY set_w…»
jnthn Hm :)
psch !shared owns CAPS iirc 13:59
jnthn m: /a(b)c/.CAPS
moritz m: Regex.^methods.map(*.name).grep(none('<anon>')).say
camelia rakudo-moar 66de7b: OUTPUT«ACCEPTS Bool gist of returns onlystar assuming candidates cando multi soft wrap unwrap yada package WHY set_why perl add_phaser fire_phasers phasers perl arity count signature outer static_id of returns ACCEPTS Str␤»
( no output )
jnthn m: /a(b)c/.CAPS.perl.say
camelia rakudo-moar 66de7b: OUTPUT«("" => 1e0, "0" => 1e0).hash␤»
moritz it uses floats as values?
jnthn NQP... :) 14:00
jnthn sees room for improvement 14:01
Ven
.oO( <anon> <anon> <anon> <anon> BATMAN )
|Tux| improvement++
jnthn Anyway, the keys of that CAPS hash on the Regex tell you what captures are available.
14:01 xfix joined
jnthn m: /a(b)(c)/.CAPS.keys.map(+*).max 14:02
camelia ( no output )
jnthn m: /a(b)(c)/.CAPS.keys.map(+*).max.say
camelia rakudo-moar 66de7b: OUTPUT«1␤»
jnthn m: /a(b)(c)(d)/.CAPS.keys.map(+*).max.say
camelia rakudo-moar 66de7b: OUTPUT«2␤»
jnthn Realizing the current $/ corresponds to the results of that regex is much harer, of course :)
*arder
bah, *
psch irclog.perlgeek.de/perl6/2015-01-26#i_10004857 # lies somewhere in that area as well i think 14:04
there's a gist that fixes the irclog one, but as i said, it's probably not the right spot to fix
psch should probably rakudobug that
14:05 xfix left 14:09 colomon left 14:10 colomon joined 14:11 Kristien joined
lizmat m: say $*DISTRO.is-win # for [ptc] 14:14
camelia rakudo-moar 66de7b: OUTPUT«False␤»
masak would like a perl6 flag to quickly `use strict;` on the command line instead of having to write it out longhand
either that, or have it on by default :)
timotimo like -E instead of -e? :P
masak that would work. not sure it'd be my preferred spelling, though. 14:15
dalek kudo/nom: 12c7e5c | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
Only need to check for is-win once
kudo/nom: 9a54f1b | lizmat++ | src/core/Inc.pm:
Shave off a little bit of startup time

By not initializing $*DISTRO if we don't need it
masak I'd also like some way to conveniently list-assign my numbered captures to variables. something like `my ($foo, $bar, $baz) = $string ~~ /(..)(..)(..);/` 14:16
14:16 Kristien left
masak except that doing it exactly in that way obviously won't work. 14:16
and it'd be a shame to have to parenthesize the whole expression just to put .list or .[] on it :/ 14:17
(haven't tried this)
timotimo try indirect method call syntax
(and enjoy having a :; at the end) 14:18
14:19 colomon left, raiph joined, xfix joined 14:20 colomon joined
masak could you show how you mean? 14:21
dalek c: 2dbf8d9 | paultcochrane++ | t/pod-convenience.t:
Test Pod::Convenience::pod-title
14:22
c: e31824c | paultcochrane++ | t/pod-convenience.t:
Test Pod::Convenience::pod-block
doc: 36d1915 | paultcochrane++ | t/pod-convenience.t:
14:22 dalek left
masak it sounds viable, but I don't see exactly how. 14:22
14:22 dalek joined, ChanServ sets mode: +v dalek
timotimo my ($foo, $bar, $baz) = list $string ~~ /(..)(..)(..);/:; 14:23
not sure it'll actually work
m: my $string = "abcdef;"; my ($foo, $bar, $baz) = list $string ~~ /(..)(..)(..);/:; 14:24
camelia rakudo-moar 66de7b: OUTPUT«===SORRY!=== Error while compiling /tmp/caWm7DzzkH␤Unrecognized regex metacharacter ; (must be quoted to match literally)␤at /tmp/caWm7DzzkH:1␤------> r, $baz) = list $string ~~ /(..)(..)(..)⏏;/:;␤ expectin…»
timotimo m: my $string = "abcdef"; my ($foo, $bar, $baz) = list $string ~~ /(..)(..)(..)/:;
camelia ( no output )
timotimo m: my $string = "abcdef"; my ($foo, $bar, $baz) = list $string ~~ /(..)(..)(..)/:; say $foo; say $baz;
camelia rakudo-moar 66de7b: OUTPUT«「ab」␤「ef」␤»
timotimo cute.
masak timotimo++
14:25 pdcawley joined
masak yeah, I don't mind that colon at all. 14:25
it's worth it :>
also, TIL that you could put the colon *there*! o.O
masak .oO( when Larry gets the colon, expect crazy shit ) :P
timotimo :) 14:26
PerlJam Greetings!
psch o/ PerlJam 14:29
masak \o PerlJam 14:30
lizmat PerlJam o/ 14:31
hmm.. looks like my last patch shaves about 10% off of startup time for perl6 -e 1 (from .230 -> .205) 14:33
tadzik \o/
timotimo oooooh 14:34
dalek kudo/newio: c81abe2 | FROGGS++ | lib/NativeCall.pm:
fix lib loading for NativeCall on JVM on OSX
14:36
kudo/newio: 9add92b | lizmat++ | docs/ChangeLog:
Add Str.subst being 12x as fast
kudo/newio: 9f7187a | lizmat++ | docs/release_guide.pod:
Propose "Parrotopia" as name for release #85
kudo/newio: 66de7b2 | lizmat++ | src/core/Str.pm:
Make Str.trans(Str,'x') 10 - 30% faster still
kudo/newio: 12c7e5c | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
Only need to check for is-win once
kudo/newio: 9a54f1b | lizmat++ | src/core/Inc.pm:
Shave off a little bit of startup time

By not initializing $*DISTRO if we don't need it
kudo/newio: 9a2ba03 | lizmat++ | / (6 files):
Merge branch 'nom' into newio
timotimo rip dalekh
... or not! <3
lizmat guess not
[Coke] congrats to TimToady++ 14:38
Ven congrats! :)
timotimo yeah, congrats to timtoady and the band! :) 14:39
nine_ +1 for easily accessible use strict for command line one liners. Typing the occational my beats figuring out where the typo is. 14:42
PerlJam Using -E will be familiar to P5ers if nothing else. :) 14:45
lizmat afk for a bit& 14:47
15:03 Ven left 15:04 skids joined 15:07 Ugator joined 15:11 Rounin left 15:17 _mg_ joined 15:20 Kristien joined, Ven joined 15:26 jakesyl left 15:28 jakesyl joined, _mg_ left 15:29 rindolf left
timotimo .tell japhb can we somehow get a test into perl6-bench that's very different from the other tests? i'm thinking of "maxrss used for starting up a repl and immediately killing it" and "maxrss used for 'say(1)'" 15:29
yoleaux timotimo: I'll pass your message to japhb.
15:36 Ven left 15:37 Mouq joined
b2gills PerlJam: the problem with using -E is that on Perl5 it enables all of the new "features" like `say` ( It's as if you said `perl -Mfeature=:all -e '...'` ) 15:39
PerlJam how is that a problem exactly? Perl 6 already enables all of those features :) 15:40
masak I'm not too sold on using -E in Perl 6 for something so different from -e in Perl 5. 15:41
also, -E in Perl 5 was kind of a "lesser evil". in Perl 6 it's still not too late to simply make strict the default, even on the command line. 15:42
PerlJam this is true. I already write one-liners as if strict were enabled because of the cultural bias towards stricture. 15:44
masak yes. I can totally see where the idea of "...oh, but on the command line your don't care so much about stricture, and it's more like it's in the way". 15:45
it's just, in actual practice I don't find that to be true at all. at least not for me personally.
I'm more annoyed by the absence of those strictures than I would even by by their presence.
timotimo PerlJam: in your introduction to regexes, you have confused ** and % at the very end (<ident>**',' should be <ident>* % ',') 15:47
masak Perl 6 is known for incorporating hard-won experiences from authors into the language itself. I believe this is one of those times where we could do that.
masak places himself firmly in the "strictures for -e" camp
timotimo how about -ə for strict mode? 15:48
FROGGS :D
masak hehe.
how about -∄ for non-strict?
timotimo PerlJam: and if you're already editing in that vicinity, why not mention that you can use <{ ... }> for code that influences match pass/fail :) 15:49
PerlJam timotimo: or ... I could give you a commit bit :) 15:50
timotimo: barring that, I have no problems with pull requests :)
timotimo oh snap! :)
gotta go! :P
15:50 Ven joined
FROGGS hehe 15:50
timotimo i think i'll pour a tiny bit of time into the moarvm changelog for the upcoming release 15:51
interesting. the changelog for 2015.01 had * instead of + for the items
maybe that's because of 2015?
should i keep that for 2015.02?
15:53 gfldex joined
geekosaur pick a new one every month? :P 15:53
dalek ecs/newio: 081e2aa | TimToady++ | S32-setting-library/Numeric.pod:
document .base and .base-repeatig changes
15:54
ecs/newio: ad449e5 | paultcochrane++ | S32-setting-library/IO.pod:
Format code-like string with C< >
ecs/newio: 55b6345 | paultcochrane++ | S (5 files):
Merge branch 'master' of github.com:perl6/specs
ecs/newio: 5a4a8f7 | TimToady++ | S32-setting-library/Numeric.pod:
document polymod
ecs/newio: dbee059 | (L. Grondin)++ | S99-glossary.pod:
adding GIL
ecs/newio: 8a79001 | lizmat++ | S (2 files):
Merge branch 'master' into newio
15:59 yeahnoob joined 16:14 Ven left 16:19 Kristien left 16:25 larion left 16:27 mr-foobar joined 16:34 rurban left 16:35 perl6_newbee joined
perl6_newbee hi all 16:35
dalek rl6-roast-data: ba4c249 | coke++ | / (5 files):
today (automated commit)
perl6_newbee tadzik, you'r on? 16:36
16:37 tengignick joined
[Coke] The only thing I did intentionally different in 2015.01 was use unicode in the release announcement. 16:37
Feel free to bugfix my li choice. 16:38
16:39 [particle]1 joined
lizmat afk for a few hours& 16:39
16:39 [particle] left
[Coke] lizmat++ all those speedups 16:40
we need a march compiler release. Anyone in? If you can't take march, but can take april, I can switch with you. 16:41
16:44 abraxxa left
FROGGS I can do the march release 16:44
[Coke] FROGGS++ 16:51
|Tux| (allofyou)++
hahainternet o thx |Tux| 16:54
timotimo yay
16:55 davido__ left 16:57 davido__ joined 17:03 perlfan is now known as estrabd
psch hrm, i don't get it. Ops.typeName gives me Array but p6listitems of that Array doesn't support positional access :/ 17:06
timotimo is it inside a scalar container that you have to decont first? 17:08
do you have to get at its $!storage OSLT?
psch OSLT? 17:09
p6listitems gives me a BOOTArray
timotimo "or something like that"
psch it's $!items for List and Array is List, but that's wrapped in p6listitems afaiu 17:10
unless that's for decont, which i do once for the incoming SMO
17:13 diana_olhovik_ left
psch gist.github.com/peschwa/ed6bc57c8cf9d41650b9 # timotimo 17:13
hobbs github.com/perl6/evalbot/pull/6 -- IRC color patch from last night
psch i'll try decont'ing the BOOTArray now
hobbs the guts of it are in a module that I just released; no docs yet but I do intend to maintain it :)
17:14 espadrine left
psch i have a suspicion that my half-understandingly bumbling around will make code that should be implemented more sensibly anyway 17:15
but having it kinda-sorta work beats not-working, and i do hope do understand what i'm doing
17:16 gfldex left 17:18 kjs_ joined
psch i don't understand Array.at_pos though, and that's probably why i'm stuck 17:22
'cause i have to either call it or emulate it 17:23
timotimo hobbs: i'm thankful for the irc colors patch
hobbs: ever since i switched from irssi to weechat, camelia has been looking strange
17:24 Kristien joined 17:25 kjs_ left
Kristien On a scale from C to Lua, how dynamic is the Perl 6 object model? Can you do stuff like intercepting method calls? 17:25
flussence 11
grondilu you mean 42, right? 17:26
Kristien 42 doesn't lie between C and Lua. :(
timotimo yeah you can intercept method calls; look at how grammar::tracer works :)
grondilu to be fair, one could give a percentage, 0% being C and 100% being Lua 17:27
nine_ Kristien: what makes you think that Lua is the end of the scale?
timotimo what makes you think that 100% is the end of the scale?
Kristien nine_: it's the scale I specified!
moritz Kristien: it's pretty flexible, if you're willing to go meta
Kristien nice
I wanna do some AOP stuff.
nine_ Kristien: then you shouldn't be surprised that not everything fits in your scale ;)
timotimo Android Opensource Project?
Kristien maybe can be done through roles though
timotimo no, wait, that's AOSP
Kristien aspect-oriented programming which is a fancy word for hooks. 17:28
timotimo ah, Aspect Oriented
yeah
moritz Kristien: iirc jnthn++ once gave an exmple of AOP through the meta object system in one of his talks
dalek c: a077742 | moritz++ | lib/Language/functions.pod:
Start to document custom operators
17:28 donaldh left
hobbs timotimo: who do I bug to merge it? :) 17:29
moritz hobbs: merge what?
hobbs moritz: evalbot pull request
timotimo do we need to install a module system-wide for it to work?
Kristien the bug. he's fixing a bug request.
moritz hobbs: I meant to do that :-)
hobbs timotimo: needs to be installed somewhere, at leat :) 17:30
dalek c: 3d85453 | moritz++ | lib/Language/operators.pod:
[operators] Remove some outdated notes

also add links to the function docs on defining new operators
17:31
timotimo i wonder if "lift" is going to make it into 6.0.0 17:32
moritz it's ironic that IRC::FromANSI::Tiny, despite its name, has 4 additional dependencies :-) 17:33
dalek albot: cee617d | (Andrew Rodland)++ | evalbot.pl:
Convert ANSI colors to IRC (mIRC) colors

This makes things more readable for folks with non-console clients, as well as the IRClog (which strips IRC colors, but leaves the ANSI codes in place as garbage).
albot: 057fccc | moritz++ | evalbot.pl:
Merge pull request #6 from arodland/master

Convert ANSI colors to IRC (mIRC) colors
17:34 camelia left
colomon m: this is a test 17:34
17:34 camelia joined
moritz colomon: I just restarted camelia :-) 17:34
colomon :)
timotimo moritz: that's what allows it to be so tiny!
colomon I’m wondering if the IRC colors will work better in my client
the ANSI ones never have 17:35
moritz we'll see
m: 1 1
17:35 ChanServ sets mode: +v camelia
camelia rakudo-moar 66de7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/w7DztlCQQc␤Two terms in a row␤at /tmp/w7DztlCQQc:1␤------> 031 7⏏051␤ expecting any of:␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement modifie…» 17:35
colomon yes!
timotimo happy!
thank you, hobbs 17:36
colomon hobbs++
moritz irclog.perlgeek.de/perl6/2015-02-18#i_10137129 the logs insert some 5s in there
hobbs welcome :)
FROGGS hobbs++
hobbs (looks good for me too)
17:36 kjs_ joined
timotimo dude 17:37
moritz sweet
hobbs moritz: funny, I thought it was stripping properly yesterday
it's still less noisy than what it did with ANSI
timotimo yes, very
(and a 7 and a 1)
FROGGS well, 8 bit color codes... 17:39
hobbs as for the name, I just copied rwstauner's convention :)
FROGGS probably 1 is reset or something 17:40
or perhaps I am mistaken
17:40 FROGGS left 17:41 kjs_ left
hobbs the 1 is actually a 1 17:41
timotimo oh, haha 17:43
of course
17:47 rurban joined 17:49 dakkar left 17:52 virtualsue left, virtualsue joined 17:54 diana_olhovik joined
tadzik perl6_newbee: not really 17:56
17:56 virtualsue left
hoelzro _sri_: [Coke] and I have been working on a Perl 6 port of mojolicious a bit, and I was thinking about it a bit last night. Are there any aspects of Mojolicious that you feel would change a lot in such a port? 18:00
(ex. using native lists/arrays instead of a Mojo::Collection, because they support methods now)
18:03 tgt joined 18:06 amaliapomian joined, Ven joined
_sri_ hoelzro: i would change a lot i suppose 18:08
some things like Mojo::DOM should remain pretty much unchanged, but you'd want to pick up perl6 best practices for the reactive bits, like using promises and supplies 18:09
and i suspect high performance web servers in perl6 will look very different from perl5 18:10
when you have proper threads you can do a lot of things very different
18:11 pmurias joined, Kristien left
_sri_ of course, you should be able to start with the current architecture, and then experiment 18:12
collection and bytestream would definitely go
but that's a very minor part 18:13
18:13 pmurias_ joined 18:14 pmurias_ left
pmurias hi 18:14
yoleaux 17 Feb 2015 13:44Z <nwc10> pmurias: good UGT, pmurias
_sri_ the core question is what a high performance web server looks like in perl6, what paradigms would be used?
Ven o/, #perl6
timotimo ohai pmurias 18:15
nine_ Would it make sense to drop the Mojo:: prefix from a lot of the modules? Mojo is kind of an alternate CPAN ecosystem. In Perl 6, there's not much of an ecosystem to alternate, so why not adopt the Mojo stuff as default?
_sri_ i would appreciate it if you left the Mojo:: prefix for the official port
18:16 espadrine joined
nine_ _sri_: makes absolute sense from a Mojo perspective but none at all from a Perl 6 perspective. We're struggeling to get one ecosystem off the ground, let alone two. 18:17
timotimo :auth<mojo> :P
_sri_ nine_: sure, competing eco systems is the problem you want to have :) 18:18
as long as there's no official namespace registry i suppose it doesn't matter anyway
flussence wonders how badly things would break if there were two modules in the ecosystem list differing only in :auth 18:19
nine_ I've never used it, but if Mojo is as well designed and integrated as people tell me, it very well deserves a promotion to default ecosystem
hoelzro nine_, _sri_: I started a module called Mojolicish, which aims to be mostly understandable if you know P5 Mojolicious, and is a pain to type
_sri_ hoelzro: i like that :)
hoelzro I started by working on porting lite_app.t to Perl 6 18:20
18:20 _mg_ joined
hoelzro and filling in features as needed 18:20
maybe I should publish that repo
_sri_ architecture wise, i'm only really worried about the lower level bits
18:20 FROGGS joined
_sri_ from Mojo::Message::* and downwards 18:21
hoelzro _sri_: I'm no big Mojo user, but the things that struck me were Mojo::Collection and all the event loop stuff
also, I created dash-y aliases for underscore methods (ex. user-agent and user_agent)
_sri_ managing 10k concurrent websocket connections will certainly look very different in perl6
hoelzro: yea, the event loop stuff is what will change most
hoelzro maybe I should just treat Mojolicish as a spike, and ignore websockets and eventy stuff for now 18:22
I think it will eventually get cannibalized and moved into [Coke]'s mojo repo eventually
_sri_ wonders how much memory threads in perl6 use these days 18:24
one thread per websocket would be a game changer 18:25
that's more like how play framework works 18:27
perl6_newbee tadzik: ^^
flussence just spawned 16 threads in repl, mem usage went from 26 to 97MB. 18:28
dunno if that's a meaningful benchmark or not
_sri_ connections get accepted in an event loop (netty i believe) and dispatched into an actor framework
(may be akka now)
nine_ flussence: probably not
_sri_ flussence: ouch
18:29 telex left, yeahnoob left
flussence I did «start { .get } for ^100» and counted the RES number in top 18:30
18:30 virtualsue joined
flussence well, ^16 there 18:30
18:30 telex joined, spider-mario joined
Mouq flussence: Just entering "1" in the REPL makes my usage jump though 18:31
flussence oh, ok, forgot the repl is lazy-loaded... it *starts* from 90MB
Mouq Yeah :P
_sri_ anyway, i guess i'm not really helping with this ;p
flussence trying to spawn 1000 threads is capped at 16 active, but "only" uses 240MB of total RAM there
_sri_ porting mojolicious as is wouldn't be the worst idea at least for experimenting 18:32
minimalistic event loop is always a safe bet
18:32 Kristien joined 18:33 Ven left
Kristien hola 18:33
timotimo hola kristien
flussence if I tweak $*SCHEDULER there, I can indeed spawn a thousand threads without my desktop exploding...
they're using about 2MB each, mind you...
perl6_newbee bye all
timotimo bye mister newbie
hm 18:34
perl6_newbee :-)
timotimo newbie person*
Mouq flussence: "perl6 -e'get; start { .get } for ^100; get;'" might be give a accurate picture
_sri_ flussence: for comparison, the akka docs say "Small memory footprint; ~2.5 million actors per GB of heap."
18:34 perl6_newbee left
timotimo FWIW, each thread gets its own nursery, which is 4mb big IIRC 18:35
and since we're semispace, that'd probably be 8mb during GC 18:36
18:36 grettir joined
flussence it also said 11.7GB of virtual memory, I guess it's allocating all that but not using it 18:37
_sri_ there is no 1:1 mapping of actors to threads though, so what i said was rather meaningless... sorry
flussence wouldn't those be closer to green threads? 18:38
18:38 larion joined
_sri_ i vaguely remember a 4kb per thread cost 18:38
yea, green threads distributed across real threads 18:39
hobbs aka M:N threads
18:41 b2gills joined
_sri_ 8mb per thread is an interesting number though 18:42
18:42 Rounin joined
_sri_ i would definitely start with a plain old event loop :) 18:43
hoelzro: you'll also notice that a lot of the objects in mojolicious are observables 18:48
18:48 virtualsue left
_sri_ i'm not sure how that would change with new perl6 paradigms 18:48
hoelzro _sri_: hmm, I hadn't considered that
_sri_ you prolly would want to use supplies in some way, how i'm not sure yet 18:49
hoelzro hmm
I think for now I'm going to go with a more or less straight port over 18:50
_sri_ sure
hoelzro P5 smells can be cleaned up as we discover them
hobbs i.imgur.com/Zvet0h.jpg
_sri_ :)
FROGGS hobbs++ # uhf 18:51
_sri_ although i have a hunch that it can be solved mostly with delegation... each event becomes a property of the object containing a supply object 18:52
$c.res.finish.tap(...); 18:53
hoelzro hmm
that does seem very nice
18:53 average joined
hoelzro maybe that should be one p6-ism I incorporate 18:53
average I have some concerns that Perl6 might want to compete with J 18:54
I can understand that Perl6 builds upon the culture that Perl5 has created
18:55 kjs_ joined
average but J is not exactly an ideal imho 18:55
grondilu Perl 6 is quite different from J, but truly J is quite different from everything else
average if anyone here read/wrote J code(I've only read code in it, and never wrote any) they probably know what I'm talking about
grondilu: actually I would say J is probably the ideal that every oneliner-writer would aspire to 18:56
grondilu not sure
pmurias average: why are you concerned that we plan to out-J J?
grondilu it's true that J is awesome to write short code, but Perl 6 does not have that objective. 18:57
average grondilu: and Perl6 seems to carry the same goal that Perl5 has in relation to compactness of some pieces of code(or brevity if you will)
grondilu yes, but not to the extend J does.
_sri_ who knows, maybe someone will make goroutines the preferred perl6 concurrency model :)
average pmurias: because that is my impression, by reading articles about Perl6 and pdfs that I have readily available through the use of Google 18:58
_sri_ (talking about m:n threads)
grondilu for one, P6 does not have a global stack with one-letter operators on them.
flussence
.oO( Slang::APL )
grondilu hopes he remembers how J works right.
s/operators on them/operators on it/ 18:59
Kristien an APL slang would be great
APL is a wonderful programming language.
grondilu J is APL's child
so what you want is a J SLang 19:00
average I don't advocate APL as a role-model for programming languages to aspire to
Kristien no
APL > J
psch timotimo: i figured it out... turns out i was calling atpos with the incoming SixModelObject, and not the result of p6listitems(decont(in))...
grondilu well OK, I don't know APL enough to argue. IIRC APL uses special characters though, for instance. I'm not even sure there are in unicode. 19:01
geekosaur they are, actually
b2gills don't try to find the factorial of 100,000 `(2..100000).reduce: &[*]` or you may have to restart your computer 19:02
average anyway, I just wanted to share this concern with you. also, I'll offer a more blunt perspective: Nobody's dick is going to get super-hard(or vaginas super-wet) if you write short code (even in Perl6 presentations).
sorry for the language, but that had to be said
geekosaur (operators at least. don't bother looking for the traditional way to escape quote-quad)
19:02 b2gills left 19:03 zakharyas left
grondilu average: I sincerely thinks you worry too much. Perl 6 is good for golfing, but not to the extend it makes the language as obscure as J 19:03
average: do you have examples of P6 code you think goes too far in the "short code" approach? 19:04
average grondilu: there are plenty, but I'd rather not dig them up
timotimo psch: ooooh 19:05
flussence > ([*] 2..100000).log(10)␤Inf
grondilu it's a very subjective assessment, anyway.
flussence
.oO( no wonder it wouldn't print it... )
average grondilu: that may be the case
grondilu here is an example that I could describe as "J-like": rosettacode.org/wiki/Averages/Pytha...ans#Perl_6 19:06
19:06 kjs_ left, pmurias left
grondilu I did write this one but I usually don't write P6 code like that. I just wanted to do it here for fun. Thought it was appropriate 19:06
19:06 b2gills joined
psch timotimo: gist.github.com/peschwa/ed6bc57c8cf9d41650b9 # edited out debug output 19:07
average grondilu: ah, ok. yes, that is the sort of thing I was refering to. I don't mind it btw, I think it's great. I just don't see it as a selling point for a programming language.
Mouq average: There's a focus in Perl 6 on appropriate Huffmanizing. So common things get short, and less common things get long; not "common things get short, and less common things also get short"
grondilu basically lots of metaoperators. I have the feeling those are what you fear and find "J-esque"
psch although i still need an nqp-level test i think, which will probably have to compile some java (as will the rakudo tests) because i don't think there's multi-dim array args in rt.jar methods
Mouq Where short/long is analagous to obfuscated/readable 19:08
average grondilu: well, J is basically the future for this trend of metaoperator abundance
grondilu the difference is that in Perl 6 you don't have to use them.
average grondilu: I think J can tell us whether that was a good/bad idea
grondilu there is more than one way to do things. If they were a bad idea, people will not use them. It's as simple as that. 19:09
kind of like with junctions. They are very cool but as a matter of fact they are not used as much as one might expect. 19:10
average heh, yeah, I didn't know junctions turned out to be like that
grondilu not sure what you mean. 19:11
average a few years back Damian Conway was giving presentations on them
geekosaur would like to note that he wants a programming language, not a nanny
average junctions and superpositions
grondilu I suppose he thought they would be much more prominent in P6. It appears they are not that much important (I may be wrong on that, though) 19:12
masak it's an overarching theme. overall, I'm much more happy every day to use Perl 6 sane features than its cool features.
junctions are useful sugar.
I don't use them for much beyond just sugar. 19:13
grondilu but metaoperators are really cool and useful. Sometimes I wonder how we could do without it and whenever I write in perl5, I really do miss them.
average I also think a good idea is to study how exactly languages are released and how they get adopted 19:14
and how they're marketed
PerlJam grondilu: are there particular meta-ops that you miss more than others?
grondilu [+]
average NodeJS , Golang , Julia are all good examples for that
19:14 raiph left
grondilu more precisely [] 19:14
average It seems to me that there is a problem with Perl6 on the releasing/marketing side of things 19:15
grondilu or Z
average not releasing per-se, but the getting-it-across to users that it is released
PerlJam average: but it's not "released" yet :)
average I don't know how Golang or NodeJS did it, but Perl6 certainly does not do that very succesfuly
flussence NodeJS is a good historical example, lest we end up with our own io.js exodus 19:16
grondilu Golang is supporeted by Google.
average yes Golang is supported by Google and that may be an explanation
grondilu NodeJS runs the most useful programming language on the web (javascript), so no wonder it is looked at. 19:17
average but there are plenty other examples that did not benefit from the a burgeois-like backing such as the one Golang benefited from Google
grondilu there is python, which is the best programming language ever for retarded people. 19:18
:)
timotimo ... what
grondilu was kidding
19:18 raiph joined
average Python is ok, but it goes back to 1989, a loong time ago, and I imagine things were very different back then 19:19
nine_ I'm not sure how retarded people benefit from an inferior language.
grondilu always thought that python being easy to learn means it's made for simple-minded people
average but there are closer examples on the timeline which can be studied
grondilu the main reason Perl 6 is nor as popular nor as marketed as other languages is that it's been mostly a theoretical language for quite some time. 19:21
flussence nine_: python is a good escape route from VB
grondilu it does kind of has similarities indeed, now you mention it
Kristien the biggest problem I have with python is its lack of and totally unnavigatable documentation 19:22
many things are way underspecified and it seems to be the culture
the idea is to put interfaces in documentation and the practice is that there is no documentation so no interfaces either
grondilu what I don't like about pyhton is that it is verbose and that to do anything you have to look for the correct library.
PerlJam grondilu: that is a property not unique to python. 19:23
grondilu it is exacerbated in python
19:23 Mouq left
average grondilu: Python as a whole is more cohesive in its module eco-system than Perl5 19:23
geekosaur python as cobol for the modern age: discuss :p
flussence geekosaur: 2 or 3? 19:24
geekosaur (actually I'm not interested in language bashing... more making the point that python ain't the first *or* the worst)
in that category
nine_ Don't get me started on Python. There's __getattr__ which allows you to intercept access to an object's attribute. Except that it does not always get called. But hey, there's __getattribute__! And you can probably guess from the very descriptive name that this intercepts __all__ attribute access. All? No! It still doesn't!
grondilu I don't complain about the system of modules, I complain about the fact that modules are the way to approach pretty much everything in this language
average grondilu: As a Python user I can enumerate real fast the important Python modules numpy,sympy,scipy,pillow,matplotlib,pandas,sqlalchemy,flask,django
and with confidence I can say that there are at most 2-3 that I've missed 19:25
I cannot do the same thing as a Perl5 user
grondilu TimToady often gives trigonometry as an example. You need to "import math" in order to use trigonometric functions. That's LTA
flussence
.oO( "is that an african or a european python?" )
dalek kudo/nom: b18b0a2 | FROGGS++ | t/04-nativecall/0 (4 files):
turn printf("ok 1 - foo\n") from C into proper P6 test

This solves two issues: First, when we have a mix of printf-style tap output from C and tap output from Perl 6, we have to be very careful about flushing stdout or otherwise the tap parser receives the lines out of order, which is considered failure. Secondly, we would have to hard code the subtest number, or like in 06-struct.c use
  "sub test syntax" which just ignores these lines.
Using Test.pm exlusively makes us flexicible in skipping tests, it let's us have a plan and nicely ordered tap output.
average yes, I've missed nltk probably 19:26
grondilu average: again, I'm not talking about the existence or abundance of modules, I'm talking about the fact that the language itself can't do much without them.
(except if you're willing to reinvent the wheel)
average Perl5 itself cannot do much without CPAN
nine_ What really, really sucks about Python and destroyed the language for me is their culture of answering with "you should not have this problem" to questions about extreme measures for extreme situations.
timotimo the stdlib of python is rotting away 19:27
better to have a very slim core and good modules
grondilu average: see my example of trigonometry above. See also on rosettacode where you'll see that python often needs to invoke a module to do stuff that are easily done natively in perl6
19:27 larion left, MadcapJake joined
average yes, but there is no cohesive set of modules in Perl5, that is the problem of CPAN 19:27
Kristien I really don't have a problem with imports. 19:28
flussence metacpan.org/search?q=Task%3A%3AKensho
PerlJam average: There is no cohesive set of problems what perl5 is perfect for either. :)
Kristien the only thing I don't want to have to import anything for is a function that aids in printf debugging
19:28 davido__ left
Kristien I'm fine with imports for everything else. 19:28
PerlJam s/what/for which/
19:28 MadcapJake left
PerlJam Kristien: even regex? 19:29
Kristien sure
timotimo Kristien: and you especially don't want the compiler to bail out if you're not using some import
average grondilu: also notice that although you may call Python "retarded", it has books published for nearly every good/popular module that it offers
Kristien I want the compiler to catch all references to nonexisting variables.
19:30 MadcapJake joined
grondilu average: I was being sarcastic. I didn't really mean it. 19:30
average Perl5 barely managed to get books out about modules, and it almost came to a halt now in 2015 (not many.. not sure if any.. module-centric Perl5 books are published anymore)
19:30 davido__ joined
Kristien Catching scoping errors at runtime is absolutely retarded for many reasons. It has no benefits and brings many problems. 19:30
grondilu python is a nice programming language, it's just verbose and boring, imho.
plus it's not as simple as advertised, when you look in details. 19:31
PerlJam grondilu: Where's the verbosity sweet-spot? I don't think of python as being particularly verbose. Not like Java or COBOL for instance.
19:31 gfldex joined
PerlJam grondilu: (but I agree on "boring" completely :) 19:31
moritz one thing I dislike about both python and js is that as the user of a class, you need to distinguish between attributes and getter methods 19:32
masak also, different problems have different verbosity sweet spots.
moritz: yes, that breaks a named law, but I forget the name.
moritz is it .length or .length()?
masak "uniform access principle"?
timotimo lenght!
Kristien it's len(…)
grondilu good point, verbosity is sometimes a good thing but not always.
PerlJam moritz: oh my does that bite me every time I use JS.
moritz masak: encapsulation
Kristien masak: UAP is supported by both Python and JS.
flussence if you're gonna write an entire book about a programming language *module*, the code had better not change before I'm done reading it 19:33
arnsholt Fun Python scoping fact: All variables are scoped to their function (modulo nonlocal/global) except one; the variable introduced by "except Exception as e" is local to the except
masak Kristien: yes, but not "by default".
average flussence: yes..
Kristien arnsholt: same for javascript
average flussence: and this holds for some of the Python books out there
masak grondilu: I like how Perl 6 can be either APL or Java. not many languages out there offer that.
Kristien that's how ES6-to-ES5 compilers implement let and const
average flussence: and I totally agree with the idea and I think this is a major selling point that Python has
Kristien using try { throw void 0; } catch (x) { … }
arnsholt The reason being that the exception object contains a reference to the call frame, which contains a reference to the variables 19:34
So if e was scoped to the frame, there'd be a reference cycle, which is bad, Python's GC being mostly refcounted
19:37 zakharyas joined
nine_ Yes, Python is not designed for the user but for the implementor of the compiler. It even says so in the official documentation. 19:38
19:40 Mouq joined
grondilu does it? That's amazing. 19:40
timotimo OpenSSL fails to test :(
flussence and on the extreme end of that scale you have PHP, which uses \ for module namespaces because it was too hard to parse ::
nine_ That's for example the cited reason why you can't name a function "if" in Python. It would have made writing the parser a bit more difficult.
arnsholt grondilu: I haven't seen it explicitly stated in the docs, but there are several things where implementations details leak through, like lots of hashes all over the place 19:41
grondilu funnily enough a python interpreter written in Perl 6 may be able to allow htat.
average flussence: also, I don't think Task::Kensho is a cohesive set of modules for Perl5. It's simply a metadistribution that has a selected set of distributions as deps(among which Task::Catalyst which is another meta-distribution). 19:42
nine_ grondilu: I only discovered this restriction after my own Python parser written in Perl 5 with Marpa allowed such functions without a problem :)
Mouq m: sub if ($) {}; sub infix:<if> ($,$) {}; sub prefix:<if> ($) {}; sub postfix:<if> ($) {}; if (if\if()\if if if\if\if()\if) { }
camelia ( no output )
timotimo oh mouq
average flussence: I think it's great, but it's not quite a cohesive set of modules.
19:43 gaussblurinc_ joined
average flussence: nltk for example in Python, as a module, is probably better than all Lingua::* modules on CPAN put together 19:43
grondilu also in python 3 print is a function which means you have to use parenthesis around the string argument. I can't believe people are not upset about that.
average flussence: nntplib in Python is better than probably all NNTP-related modules on CPAN 19:44
Kristien grondilu: maybe because consistency is good
a major problem with python is also its many violations of The Zen of Python
average flussence: sqlalchemy is another one which is quite cool, and is easy to use and has been available for some time now. I can easily say that sqlalchemy is indeed much easier to use, has better documentation than its Perl5-analogue named DBIx::Class 19:45
Kristien such as namespaces being a honking great idea and we should do more of those, yet nobody does it
flussence average: I won't contest those opinions; I don't use python (2 or 3).
moritz has recently started on a project that uses sqlalchemy 19:46
so far, I like it
Kristien I chose to use Python for a current project at work a few months ago because my colleague was most proficient with it. Other choice was Scala. 19:47
the fucker left a month later
masak if they ever do a rewrite, clearly they should call it sqlchemistry
flussence and if I were to go to #python to criticise their language, I'd first learn the state of it in 2015, not base my prejudices on something I read last decade.
Kristien how to upset Kristien in a month
flussence &
grondilu well, hopefully at some point we'll be able to use python's modules transparently in Perl 6.
retupmoca timotimo: re: OpenSSL can you see what's failing?
Kristien OpenSSL is a failure by itself.
retupmoca timotimo: I haven't been able to reproduce that on my windows or linux machine
19:48 fhelmberger left
timotimo gimme a second 19:48
grondilu being able to use the huge accumulated work of python's modules with dying of boredom from the dullness of the language would be great.
Kristien m: say do { for 1..10 { $_ } }
camelia rakudo-moar 66de7b: OUTPUT«Nil␤»
retupmoca but apparently sergot and the smoke tests are both failing it
grondilu s/with/without/
retupmoca not sure if it's a different version of the openssl lib or what 19:49
timotimo # Failed test 'Got good response' │··············
retupmoca yeah, same place sergot failed
timotimo t/02-socket.t → Dubious, test returned 1 Failed 1/4 subtests
average but anyway, at least Perl6 has its own object system and it doesn't ship separate as some sort of monstrous abandoned stepchild 19:50
if it can get some good modules and books written about them, like nicely typeset books or PDFs with documentation(no POD is not exactly what I'm talking about)
that'd be super-cool
retupmoca timotimo: thanks - if you figure out more, open an issue please; otherwise I'll try to reproduce it on my machines
TimToady Kristien: that *should* produce nothing, since the for is at statementlist level 19:51
b2gills average: There has been at least one book that was typeset in POD
Kristien yeah I thought maybe for returns a list like in CoffeeScript
good thing it doesn't :)
average b2gills: I know
grondilu average: what do you have against POD?
timotimo you need "do for" rather than "do { for }" for that 19:52
average but if I say what I don't think is cool, I should also give a suggestion for a replacement, so here it is:
Org-Mode
it's the best thing you could ever write anything in
Kristien m: say do for 1..10 { $_ }
camelia rakudo-moar 66de7b: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
nine_ grondilu: there's actually not much missing to get to use whatever:from<Python> 19:53
Kristien m: sub f { for 1..10 { $_ } }; say f
camelia rakudo-moar 66de7b: OUTPUT«Nil␤»
Kristien nice
average I would totally replace POD in Perl6 with Org format
Kristien I use pod for spec of language I work on. Pod is great.
average Github already renders Org documents
Kristien it also renders pods
b2gills GitHub also renders POD
grondilu nine_: nice to here about that but I suspect you're being unreasonably optimistic.
average I think POD is limited in a number of ways, yes, it's an ok markup language.. it could be better(see Org) 19:54
PerlJam nine_: does that mean that Inline::Python mostly works?
average but anyway, the part about POD is not that important
grondilu is there a Vim version :) ?
dalek kudo/nom: b5b174d | FROGGS++ | t/04-nativecall/0 (6 files):
last batch of printf to Test.pm transition
average I was recommending Org-Mode for people who want to write books about Perl6 or Perl6 modules :) 19:55
grondilu: there is one yes. I haven't tried it though, I went for Emacs + Evil-Mode + Org-Mode
(same thing)
nine_ grondilu: why do you think so?
grondilu nine_: just an intuition, but I'd gladly be proven wrong. 19:56
[Coke] my efforts with mojo6 consisted mostly of creating a repo. I haven't done anything I'd consider real work on it yet. hoelzro++ is doing much better. :)
(happy to accept patches or chat about what to work on) 19:57
nine_ PerlJam: if I can use PyQt4 (which requires me to derive from Python classes), it can't be that bad ;)
grondilu average: I dont know org-mode well, but I suppose writing a SLang for it should not be impossible.
Mouq average: Perl 5 POD or Perl 6 Pod?
PerlJam nine_: for both py2 and py3? :) 19:58
19:58 gaussblurinc_ left
average Mouq: I only know Perl 5 POD 19:58
b2gills The best thing about POD is that the documentation can be right next to the code
nine_ PerlJam: py2 for now. But py3 support is not difficult. It's mostly a matter of looking at Perl 5's Inline::Python. I left the #ifdefs out for the sake of faster progress. No other reason. 19:59
timotimo i'm just now running a benchmark on latest rakudo (but sadly nqp and moar haven't been updated yet)
average b2gills: you should see Org-Mode, it turns the idea of "commented code" inside out into "comments that also have pieces of code that can assemble into actual programs via org-babel-tangle" 20:00
PerlJam nine++ 20:01
b2gills I'm not going to learn Emacs just for something at about equal parity to POD 20:02
average exactly, that's why I didn't learn Emacs either :) I just used Evil-mode which is basically vim 20:03
TimToady and reordering code is very, very anti-one-pass-parsing
b2gills I'm not planning on learning vi either
TimToady it only works when you lock down the language
and no 100-year language is going to be a lockdown language 20:04
20:04 [Sno] left
average b2gills: exactly, that's why you can emacs -nw ./notes/document.org --eval "(progn (org-html-export-to-html)(save-buffer)(kill-emacs))" 20:04
b2gills: so you don't have to learn emacs at all if you want to render .org documents :) 20:05
grondilu average: I tried viper-mode once, is Evil-mode better?
average grondilu: yes
20:08 average left 20:10 camelia left, amaliapomian left 20:11 _mg_ left
grondilu just watch evil-mode's four minute demo on youtube. Seems nice indeed but I'm not sure I'm willing to install emacs again. 20:12
20:12 darutoko left
TimToady of course, dialects of Perl 6 can restrict the programmer in various ways, but we mustn't put the mother language on such an evolutionary dead end 20:14
Kristien wooo I wrote a program in Ada. 20:15
vendethiel Kristien: can you link me (privately) the one you used? I followed a tutorial for ada but didn't manage to get a free & working compiler 20:17
Kristien the what I used?
oh
ideone.com/
TimToady Kristien or vendethiel: feel free to add a Perl 6 entry for rosettacode.org/wiki/Rendezvous :)
Kristien TimToady: I have no idea what that is about. 20:18
20:18 Mouq left
TimToady if you keep learning Ada, you will :) 20:19
TimToady really liked Ada back in the day
20:19 camelia joined
TimToady as you can see from our use of => for pairing 20:19
Kristien Am I allowed to use libraries that do that for me? 20:20
Kristien doesn't like implementing things.
20:21 ChanServ sets mode: +v camelia
masak TimToady: sounds like you changed your mind and don't like Ada so much anymore... 20:21
TimToady I still like Ada in lots of ways, but my capacity for liking has outgrown it :) 20:22
masak :D
Kristien I tend to like languages older than the web.
Any software older than the web actually 20:23
masak Kristien: you and me both.
Kristien it seems like there were less fools in this industry before the web existed
masak Kristien: I still have a soft spot for 320x200 graphics.
PerlJam Kristien, masak: so ... COBOL?
Kristien I liked COBOL when I used it. I wrote a game in it once. 20:24
masak PerlJam: I don't have any experience with COBOL.
vendethiel *g* I need to learn cobol
PerlJam vendethiel: you really don't :)
TimToady COBOL has its charms, especially when it abends and prints a 4-inch line-printer listing
PerlJam Kristien: when did you use COBOL?
lizmat Q: release name for parrot: a. Parrotopia b. Berlin c. your suggestion
*rakudo
argh
geekosaur remembers math teacher saying we could submit a program to do riemannian integration in any language... so wrote it in cobol just to be difficult 20:25
dalek kudo/nom: 99ea17b | FROGGS++ | t/04-nativecall/08-callbacks.c:
make float tests more robust
Kristien PerlJam: about a year ago
for about an hour
masak lizmat: we haven't had *Berlin* yet!?
geekosaur these days they'd probably get agda :p
Kristien then I disposed of the filthy compiler
TimToady debugged a 4-inch COBOL coredump before he ever learned the languge :)
vendethiel well, really, just for my information. I "learned" fortran and Ada just because they seemed "interesting"
masak lizmat: "Parrotopia" sounds awfully cheeky to me.
20:25 rindolf joined
geekosaur (the teacher in question and I had an interesting relationship) 20:25
PerlJam lizmat: b.
Util Ack! modules.perl6.org/ is showing 0 modules,
and `curl -sS modules.perl6.org/proto.json` returns `{}`.
lizmat masak: inspired by www.marsanomalyresearch.com/evi​den...otopia.htm
masak Util: :/ 20:26
lizmat: 404.
PerlJam Util: not for me.
arnsholt geekosaur: I haven't written in perverse languages, but I did once hand in an assignment where all variable names and menu prompts were in Latin =D
colomon what PerlJam said
lizmat www.marsanomalyresearch.com/evidenc...otopia.htm
that better ? 20:27
masak ah. there was a strange invisible character in the first URL.
Util Works now!
masak lizmat: even knowing where the name comes from, it feels cheeky.
Util I will have to start typing slower :^(
masak like "hi Parrot, sorry we're suspending you, here, have a release name!" *pat pat*
lizmat yeah, I didn't intend it to be interpreted that way, but it probably will :-( 20:28
TimToady agrees with masak that it would be taken badly
masak I think mine is the best-case interpretation.
masak .oO( Parrot + Utopia (as in "no such place") )
PerlJam lizmat: so ... Berlin :) 20:29
arnsholt No place would be a-topia I think. IIRC eu-topia is "good place"
masak +1 to Berlin
arnsholt: ah -- you're right.
masak .oO( Parrot is in a *good place* ) *thumbs up* 20:30
TimToady
.oO(a...formerly divided city...)
well, there isn't anything that can't be construed negatively somehow...
dalek kudo/nom: 4cd8d08 | lizmat++ | docs/release_guide.pod:
2015.02 will be Berlin
masak TimToady: I take offence at that.
Util Consider saving the name Parrotopia for a future release, when Rakudo *un*suspends Parrot!
hobbs arnsholt: except it's ou-topos, not eu-topos.
PerlJam TimToady: that's a *positive*. It was *formerly* divided ;)
lizmat Util: that's a deal! 20:31
Util :)
PerlJam Util++
TimToady gets off the fence
moritz wanted to propose a release name of a city where parrots live
... and then read the parrots are basically everywhere except Europe 20:32
lizmat moritz: that's how I found parrotopia :-)
masak moritz: and they're *loud*.
dalek kudo/cpp: 9bf52eb | lizmat++ | src/core/Str.pm:
Make Str.subst(Str,Str,:global) about 12x faster

By using the TRANSPOSE helper sub
20:32 dalek left
moritz lizmat: maybe Brasila 20:32
TimToady Rio?
timotimo poor dalek! :(
20:33 dalek joined, ChanServ sets mode: +v dalek
TimToady Belem? 20:33
FROGGS timotimo: he'll be fine :o)
moritz en.wikipedia.org/wiki/Parrot#media..._range.png ok, seems to be more "south half"
lizmat I think the symbolism of Berlin, having been divided, now united again, is a good one for this release
masak +1
timotimo the dalek rises again
masak I was sure we had Berlin already. but maybe my brain finds Beijing and thinks that's it. 20:34
TimToady we'll just have to shoot people that try to escape for a while
moritz git grep Berlin|wc -l
0
hobbs arnsholt: but that doesn't seem to have carried over as a prefix in any other english words I can find
moritz git tag|grep Berlin
TimToady oh wait, we're the *west*
moritz 0
lizmat $ grep Berlin docs/release_guide.pod
2015-02-19 Rakudo #85 "Berlin" (lizmat)
20:34 zakharyas left
masak :) 20:34
moritz :-)
TimToady well darn, it's taken :)
masak lizmat has the truth from the near future, it seems. 20:35
TimToady maybe she just revised history
lizmat masak: it could be your future if you pulled
PerlJam then it would be his present
masak aw, for me? you shouldn't have. 20:36
TimToady
.oO(we're all pulling for each other...)
timotimo is working through the moarvm release guide 20:38
FROGGS timotimo++
20:38 Mouq joined
masak oh, timotimo++ is doing the moarvm release? 20:38
timotimo yeah, it seems very easy to do 20:39
PerlJam timotimo: could you change it such that MoarVM is released on the 3rd Tue of each month? :)
masak will this be the first non-jnthn moarvm release?
moritz has there been a parrot release this month? 20:40
FROGGS masak: I've done two already while you guys were in .cn :o) 20:41
masak moritz: yes, I think so.
FROGGS: oh! FROGGS++
20:41 bjz left
FROGGS moritz: I've seen the preparations 20:41
Util moritz: Yes, rurban released 7.1.0 - Lilian's Lovebird 20:42
moritz how fitting
tgt Hi. I'm playing with NativeCall on OS X and I'm not sure what to do about this error: "Cannot locate native library '/System/Library/Frameworks/Security.framework/Versions/Current/Security.dylib'".
I'm using "is native('/System/Library/Frameworks/Security.framework/Versions/Current/Security')", which is the full path since it can't just find Security. There's no .dylib extension on the Security framework. Any workarounds?
moritz github.com/parrot/parrot/commit/2f...367d11f5c1
FROGGS hi tgt, I can help you 20:43
tgt: is there a chance that you upgrade rakudo? 20:44
tgt: ohh, wait, let me check something
geekosaur this is framework vs. normal dylib 20:45
you may have some fun with that...
Util moritz: I had seen the commit message, but had not paired it with the Changelog diff. :-/
tony-o vendethiel: thanks for the sql slang commit
FROGGS geekosaur: what does that mean? it is not a "normal" dynamic library?
geekosaur not entirely, no 20:46
20:46 mohij joined
vendethiel tony-o: thanks for the sql-slang 20:46
geekosaur frameworks do some weird things with RPATHs and such which can make linking with them interesting
Util I agree (with pmichaud's gist) that Rakudo's suspension of Parrot support makes sense, 20:47
given the timeframe you all have for GIL and the other major changes.
I won't deny that it stings, though.
Kristien GIL lol
geekosaur and ideally a user should be able to specify something like is framework('Security') and it searches the framework path for the appropriate framework
20:48 rindolf left
lizmat Util: GIL ? you mean GLR ? 20:48
20:48 rindolf joined
FROGGS tgt: looks we have a fundamental problem with frameworks... the file extension might be the smallest issue 20:49
Util lizmat: Yes, and it was an error in memory, not in typiing :(
FROGGS tgt: I can help you hack around the file extension if you want though
PerlJam Util: just say it was because we were talking about python earlier :)
masak Util: it's to your credit that you phrase it like that. ("I agree" -- "won't deny that it stings") 20:50
lizmat Util: the other day rurban mentioned GIL being one of the pitfalls of Moar
TimToady gotta be a pun on gilliam in there somewehre
masak lizmat: (which is incorrect as moarvm doesn't have one)
tgt FROGGS: Ah :( Any idea what issues I might run into if you do help me hack around it?
FROGGS tgt: I can only repeat what what geekosaur said just now 20:51
Kristien vendethiel: stackoverflow.com/questions/180778/...ion-of-ada
lizmat masak Util : indeed... so I was wondering whether that misconception was wider spread
vendethiel thanks Kristien
didn't know ideone had ada
tgt Okay. Well, how can I work around the file extension issue? I'll see what issues I run into.
Util Strange; thanks for telling me of the coincidence.
FROGGS tgt: just let it return $libname instead of appending the extension here: github.com/rakudo/rakudo/blob/nom/...ll.pm#L126 20:52
moritz in totally unrelated news, we have 30 modules in the ecosystem that declare a dependency on NativCall
geekosaur well, you can certainly try it. sometimes it just works, other times it leads to runtime errors referring to paths with @s in them which means you need to add extra code to interpret Apple's special rpath variables
Util I had in my head "Great List Refactoring", and my brain told me that you abbreviate it as G I L. Weird.
masak Util: Perl 6 and Parrot seems to have both attracted a critical mass of community members. I think part of the reason we're in the position we are today is that... there isn't much overlap between the two communities.
FROGGS moritz: we need to change their META.info, right?
moritz FROGGS: yes. After the release. 20:53
FROGGS right
20:53 virtualsue joined
masak Util: most discussions I see between Perl 6 people and Parrot people these days seem to have the structure of two disjoint communities talking across a rift of incomprehension and non-mutual goals. 20:53
geekosaur developer.apple.com/library/mac/do...yld.1.html scan down to DYNAMIC LIBRARY LOADING (it's not hyperlinked, sigh) 20:54
moritz how I found it: git clone [email@hidden.address] cd perl6-all-modules; git grep NativeCall */*/META.info|wc -l
ok, it's one less, it counts zavolaj's META.info too
dalek kudo/nom: 44f1a54 | lizmat++ | t/01-sanity/53-transpose.t:
Add some TRANSPOSE(-ONE) sanity tests
20:55
masak Util: from the Parrot point of view, Rakudo "leaving the nest" was a big mistake and a regrettable decision. from the Perl 6 point of view, it helped Rakudo accelerate and take off in various ways.
FROGGS geekosaur: ohh, I just knew about @rpath
20:55 espadrine_ joined 20:56 espadrine left 20:57 kurahaupo joined
Kristien didn't know parrot was still a thing 20:57
bye!
20:57 Kristien left
nine_ moritz: parrots do live in Europe: poissonenciel.hubpages.com/hub/wild...-in-europe 20:58
moritz nine_: yes, but they are more exception
Util nine_: Hooray!
timotimo oh timo
lizmat fwiw, in our last place in Amsterdam, we had wild parrots pass by every day around 4pm in the afternoon
about 20 green parrots... 20:59
timotimo if you compare most current nqp and rakudo against 2014.01 instead of 2015.01, you'll have a bad time
geekosaur not sure how much extra foo you might need for framework support, perhaps start with developer.apple.com/library/mac/do...TP40001830
timotimo m: say 19.4 / 17.4
camelia rakudo-moar 66de7b: OUTPUT«1.114943␤»
timotimo 11.5% improvement in test scores between rakudo since last release
16.7% improvement for nqp in the same time 21:00
moritz timotimo: between 2015.01 and now?
timotimo yes
moritz that's quite nice. 21:01
21:01 rurban left
dalek kudo/newio: b18b0a2 | FROGGS++ | t/04-nativecall/0 (4 files):
turn printf("ok 1 - foo\n") from C into proper P6 test

This solves two issues: First, when we have a mix of printf-style tap output from C and tap output from Perl 6, we have to be very careful about flushing stdout or cafa85f | lizmat++ | t/01-sanity/50-path.t: TRANSPOSE tests live in 53-trans.t now
21:01
21:01 dalek left
lizmat sorry dalek 21:01
21:02 dalek joined, ChanServ sets mode: +v dalek
moritz timotimo: probably much due to -O2 compilation of MoarVM? 21:02
Util masak: `from the Parrot POV, Rakudo "leaving the nest" was ...decision.` 21:03
Well, from *some* Parrot people's POV. From where I stand,
Parrot took an early gamble on getting a convergence/buy-in by Ruby/Python/etc,
who would save manpower by pooling all VM efforts into Parrot, abandoning their own internal VM.
Many (slow) design decision were to support that expectation of many language clients, and future manpower. 21:04
A disconnect with the Perl 6 implementors resulted.
The Ruby/Parrot VMs multiplied, and we lost that bet.
TimToady none of us was quite smart enough to understand that the goals of having a VM to run all languages and a language to run on all VMs would turn out to be too big an impedance mismatch for the tunnels to meet nicely in the middle of the mountain 21:05
Util MoarVM is an understandable reaction to the disconnect, and "impedance mismatch"
FROGGS lizmat: nativecall passes now on all backends on linux and osx, and on windows+moar (I did not test windows+parrot or windows+jvm)
moritz FROGGS++
Util TimToady: So true.
timotimo i didn't even think of --optimize=1
lizmat FROGGS: cool
I cannot test windows+parrot or windows+jvm 21:06
moritz that's OK. Nobody expects the release manager to be able to test on all platforms.
lizmat would appreciate someone stepping forward who can do that tomorrow sometime just before the release freeze 21:07
FROGGS lizmat: I can do that hopefully
21:07 Mouq left
lizmat well, the windows+parrot is one that I would like to do *this* (last) time 21:07
so that we are sure we have something viable on win_parrot
FROGGS ahh, I also tested all backends on 32bit linux successfully 21:08
lizmat for the foreseeable future
FROGGS yeah
Util I do see a future for Parrot,
both as a short-term failover for MoarVM (less needed every day!),
and as a long-term option for implementing `use Ruby` and `use Python <[23]>` within Perl 6 code.
21:08 Mouq joined, camelia left
masak I can't ever fault someone for having hope. 21:08
Util :) 21:09
masak maybe Parrot will somehow regain all its lost momentum.
stranger things have happened.
moritz being free of its Perl 6 shackles
masak right.
vendethiel masak: which kinds of thing
21:09 camelia joined
masak vendethiel: a concrete example eludes me right now 21:09
PerlJam Looking at the long term has gotten Perl 6 where it is today ... maybe Parrot can figure a path to the future in a similar way. 21:10
moritz vendethiel: peaceful reunion of Germany comes to mind
maybe not weirder, but certainly more astonishing
21:10 ChanServ sets mode: +v camelia
Util PerlJam: indeed 21:11
Different subject - I have on my dusty TODO list:
Write a testing system (like Roast, but with more fudging points)
to extract all Perl 6 solutions from RosettaCode, and use it to:
1. check that the latest Perl 6 does not break the solution code (`make rc`), and
2. check that the solutions really produce the {{OUT}} output blocks on RC.
jdv79 it seems like there is more to the parrot stuff though. there have been multiple personality clashes and burn outs.
Util I am considering it instead as a GSoC project. I already have some extraction code, as does Ingy.
Any thoughts?
moritz Util: +1 21:12
PerlJam Util: +1 !
TimToady probably have to provide some annotations when there's more than one solution, or where the test code is separate from the implementation code
though generally everything before the first {{out}} is one implementation of the solution 21:13
masak Util: +1
TimToady also, we'd have to be more explicit about 'use solver-from-that-other-RC-entry;'
Util TimToady: Right; it will be a dance of massaging the parser, and massaging the RC solutions, to meet in a middle that the RC staff won't reject as "not human-oriented"
TimToady well, the annotations could be external too, in which case they'd be transparent on RC 21:14
PerlJam Util: your extraction code is in P5 or P6?
Util TimToady: I hope that anything "solver-from-that-other-RC-entry" is worth making a Perl 6 module in its own right.
moritz on yet another topic, I've been trying to make at least one perl6/doc commit a day
Util PerlJam: P5
21:14 rurban joined
moritz and when I have no idea what to do, I 'git grep TODO' 21:15
so, if you want docs for a specific subject, you can "hack" me by leaving TODOs
PerlJam moritz: is that a questhub thing for you? 21:16
Util moritz: Excellent!
PerlJam (one commit per day)
moritz PerlJam: no, it's simply a thing :-)
tgt Thanks FROGGS++, geekosaur++ for your help, it seems to work for what I wanted.
moritz PerlJam: and I managed it most of this year, except for a few days when my laptop's power supply was broken 21:17
21:17 colomon left
moritz (I know, easier to say in February than in December) 21:18
21:18 camelia left
timotimo so weird errors is failing a test 21:18
psch stops talking to camelia for now
it wasn't even particularly weird things
timotimo and procasync/basic.t is sometimes randomly passing a TODO test, yeah?
moritz timotimo: it's always passing for me, but always failing for lizmat++, it seems 21:19
timotimo mh, understood
lizmat moritz: it's flapping, usully fails
*usually 21:20
Util PerlJam: github.com/Util/RosettaCode_utilities
moritz lizmat: oh, then I misunderstood
21:22 Rounin left
jdv79 is there a real pretty printing solution yet? 21:23
21:23 Kristien joined 21:24 Mouq left
Util jdv79: Do you mean a Perl 6 equivalent to `perltidy` ? 21:26
timotimo here's a MoarVM release tarball for y'all: t.h8.lv/MoarVM-2015.02.tar.gz
lizmat timotimo++ 21:27
Util timotimo++
Kristien timotimo++
lizmat Looking at the NativeCall code, I was wondering whether we don't need something like:
TRAITS is export(:DEFAULT, :traits) { 21:28
* multi's that have "is export..." automatically added
}
would be like a special BEGIN block that sets up default traits 21:29
jdv79 no, like JSON::Tiny's pretty or Data::Dumper - (mostly) lossless human readable data dumping
lizmat TimToady: would save a lot of repeating ourselves
jdv79 i remember a discussion involving args to .gist or .perl but i don't know if it any doable idea emerged
Util jdv79: From faq.perl6.org/ : $obj.Str gives a string representation, 21:31
$obj.gist a short summary of that object suitable for fast recognition by the programmer,
and $obj.perl gives a Perlish representation.
Kristien I like the all-caps keywords found in AWK and Perl. 21:32
21:32 [Sno] joined 21:33 H2O1 joined, colomon joined
Util jdv79: I don't see a discussion involving args to .gist in my scan of the #perl6 logs, but it sounds interesting. 21:34
moritz fwiw setting build JVM is broken for me 21:35
it complains about $path-sep not being declared 21:36
21:36 H2O1 left
lizmat moritz: I guess I broke that then 21:36
lizmat is checking 21:37
moritz lizmat: yes, looks like
21:37 xfix left
moritz lizmat: the #?if jvm block in src/core/Inc.pm uses $path-sep 21:37
lizmat: but that was only declared in the if { ... } above 21:38
lizmat yeah, on it
flussence lizmat: I've wanted something like that TRAITS thing for years... specifically so I don't have to write "is native(...)" a dozen times :)
PerlJam flussence: use a macro ;) 21:40
Kristien I love how LLVM TCOs non-tail calls.
flussence I'm not enough of a wizard to come up with one... :(
(I've tried, but the whole macro thing makes about as much sense to me as xslt) 21:42
hoelzro .oO( TACOs? )
21:47 rindolf left
dalek kudo/nom: 50e3214 | lizmat++ | src/core/Inc.pm:
Fix JVM breakage after $*DISTRO.path-sep opt

  moritz++ for pointing out
21:49
21:54 rindolf joined
Kristien tail call optimisation as a verb 21:54
lizmat good night, #perl6! See you tomorrow for Rakudo compiler release day 21:57
masak 'night, lizmat
raydiak good afternoon #perl6 22:02
Util Hi, raydiak 22:03
raydiak \o Util how goes it? 22:04
22:05 FROGGS_ joined 22:07 virtualsue left, Sqirrel left 22:08 FROGGS left 22:11 rurban1 left 22:13 colomon left
jdv79 Util: paste.scsys.co.uk/464508 22:14
i don't find any of the existin perl6 stringifications good enough 22:15
timotimo i hope i was able to free up some time for jnthn tomorrow morning :3
masak timotimo++ 22:22
22:28 Ugator left
jdv79 i don't find any of the existin perl6 stringifications good enough 22:28
wrong tab:(
22:30 gfldex left 22:31 spider-mario left, skids left, rindolf left
dalek kudo-star-daily: cb71164 | coke++ | log/ (14 files):
today (automated commit)
22:34
[Coke] Util: (rc) when you do that, feel free to rip out the two manual tests in roast that started down that path. 22:38
22:38 colomon joined 22:48 raiph left 22:50 tgt left
Util jdv79: Does it have to be a built-in method? We do already have this: github.com/FROGGS/p6-JSON-Pretty/ 22:51
Coke: Will do; thanks!
22:53 grondilu left 22:56 pmurias joined
pmurias Ulti: I think MoarVM with minor changes will be able to support both ruby and python 22:57
22:57 kjs_ joined
masak that's the impression I have, too. 22:58
22:59 diana_olhovik left
masak and I think that the chances for any kind of success (along several interesting dimensions, including language interoperability) are higher on moarvm than on Parrot. 22:59
Kristien maybe it can support the language I'm working on!
the only thing I have so far is a small part of the object model and a compacting GC :P 23:00
jdv79 Util: it seems as if it should be builtin. you think it doesn't belong there? 23:02
pmurias masak: IMHO the big problem with part is that it seem to have ~1 developer
masak: and moarvm is a very similiar thing that has much more
Kristien s/more/moar/ 23:03
masak very similar goals. vastly easier to hack on. ridiculously less technical debt. 23:04
and -- not to forget -- built with Perl 6 and Perl 6 OO and 6model knowledge in mind. 23:05
and the Perl 6 type system, and other Perl 6 requirements.
pmurias why didn't parrot adopt the 6model and other nqp stuff? 23:07
it seemed that jnthn was building his own vm on top of parrot before he decided to rip it off and turn it into moarvm 23:08
masak pmurias: my answer to why: "some unknown mix of technical debt and lack of tuits" -- irclog.perlgeek.de/perl6/2015-01-18#i_9963364 23:09
pmurias: no, I know of no such stage. jnthn didn't start out building a vm on top of parrot.
unless you're talking about the things Rakudo on Parrot has to re-implement. 23:10
Util pmurias: As best I can tell, Parrot fully intended to move to 6model. I would blame lack of tuits far over tech-debt. 23:12
23:12 rurban1 joined, Kristien left
masak does Parrot have a roadmap? I looked but couldn't find one in the git repository. 23:13
23:16 rurban1 left 23:19 filin joined
Util masak: Nothing current 23:20
jdv79 pmurias: i think chromatic wrote about those times 23:26
23:31 kjs_ left, kjs_ joined 23:35 filin left 23:42 MadcapJake left, MadcapJake joined 23:43 wicope left, lichtkind joined, tengignick left 23:45 espadrine_ left, espadrine_ joined
masak 'night, #perl6 23:46
lichtkind good night m􏿽xE4sak
raydiak g'night masak
Util g'night, masak 23:47
23:49 Sqirrel joined 23:53 pmurias left