»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 ivanshmakov joined 00:04 dmol left
[Coke] jnthn++ 00:08
timotimo oh wow. 00:09
00:16 Akagi201 joined 00:17 cooper_ left 00:18 thou left 00:19 cooper_ joined 00:20 thou joined 00:21 Akagi201 left 00:28 cooper_ left 00:31 cooper_ joined 00:34 thou left 00:35 raiph left 00:38 erkan left 00:47 telex left 00:48 telex joined
hoelzro yoleaux: seen pmurias 00:51
.seen pmurias
yoleaux I saw pmurias 29 Jul 2014 21:22Z in #perl6: <pmurias> psch: it's the same big number I get
hoelzro .tell pmurias I got NQP JS building after a rebase on the latest nqp: github.com/hoelzro/nqp/tree/nqp-js
yoleaux hoelzro: I'll pass your message to pmurias. 00:52
01:03 eternaleye left 01:08 cbk1090 joined 01:14 cooper_ left 01:15 cooper_ joined 01:16 dayangkun joined 01:17 Akagi201 joined 01:22 Akagi201 left, cooper_ left
cbk1090 I guess I'm asking what does the Record:data part mean? 01:22
sorry didn't mean to send that over on the line.
01:23 cbk1090 left, cooper_ joined 01:24 Akagi201 joined
TimToady fails to see any significant use of after anywhere in the compiler; nearly all of them are a single character 01:27
and hence hardly need to be flipped in the first place 01:28
jnthn: ^^
or am I missing something? 01:29
01:29 cooper_ left
TimToady it's not like I'm half blind...oh wait... 01:29
01:30 cooper_ joined 01:32 hoverboard joined 01:35 BenGoldberg joined, cooper_ left 01:36 cooper_ joined
hoelzro TimToady: do you mind if I ask you a quick question about your recent changes to S26? 01:36
01:44 klapperl_ joined 01:47 akaseki joined
hoelzro in the changes you made, it seems like multiple leading comments are separated by a newline 01:47
but if I have a POD block like =begin NAME\nfoo\nbar\n=end NAME, $=pod[$idx] ends up being 'foo bar', so I would've expected it to be space (rather than newline) separated 01:48
should I change the S26 stuff to reflect this?
01:48 klapperl left 01:49 BenGoldberg left 01:53 araujo left 01:54 araujo joined 01:56 chenryn joined 02:00 xiaomiao is now known as AmazingPudding 02:01 btyler joined 02:03 btyler left 02:05 btyler joined
timotimo tomorrow i'll probably write an application that wants to parse json documents at interactive speeds ... :\ 02:06
our parse-json benchmark is still at about 1.6 times per second
02:07 bjz_ left
timotimo well, okay, the document we parse is 33.682kb big 02:07
... actually, that's 33684 characters 02:08
hoelzro wow, that's a big improvement over the last time I tried parsing JSON
02:08 BenGoldberg joined
hoelzro it was like .03 times per second then =P 02:08
timotimo not really, though
in my long-term benchmarks it seems like we've only gotten faster a tiny bit
moar-nqp is about 2.5x faster than rakudo-moar and perl5 is about 10x faster still 02:09
at least rakudo-moar is exactly as fast as nqp-parrot, heh.
hoelzro =) 02:10
02:10 thou joined
timotimo japhb: would it be possible to massage something like "characters per second" into the parse-json benchmark plot we output? 02:12
that might make it more sensible
hmm. actually, we might want to have multiple documents, which would turn the graph into a scatter plot ...
(since different documents will differ in depth and number of objects created in total etc etc) 02:13
hoelzro timotimo: the performance issue I found with JSON was object creation
so that would be an alternative benchmark
timotimo ... yeah, it most probably is that :(
hm, did we ever bench how >>.foo compares against .map: *.foo? 02:14
02:14 thou left
timotimo m: my @a = 1 .. 1000; @a>>.is-prime; say now - BEGIN now; 02:14
camelia rakudo-moar 820565: OUTPUT«0.0246440␤»
timotimo m: my @a = 1 .. 1000; @a.map( *.is-prime ); say now - BEGIN now; 02:15
camelia rakudo-moar 820565: OUTPUT«0.02609814␤»
02:15 [particle] joined
timotimo m: my @a = 1 .. 100000; @a>>.is-prime; say now - BEGIN now; 02:15
camelia rakudo-moar 820565: OUTPUT«(timeout)»
timotimo m: my @a = 1 .. 5000; @a>>.is-prime; say now - BEGIN now;
camelia rakudo-moar 820565: OUTPUT«1.20515505␤»
timotimo m: my @a = 1 .. 5000; @a.map( *.is-prime ); say now - BEGIN now;
camelia rakudo-moar 820565: OUTPUT«1.1574913␤»
timotimo is-prime is probably not the right method for this 02:16
Str is probably cheap.
m: my @a = 1 .. 100000; @a.map( *.Str ); say now - BEGIN now;
camelia rakudo-moar 820565: OUTPUT«0.482987␤»
timotimo m: my @a = 1 .. 100000; @a>>.Str; say now - BEGIN now;
camelia rakudo-moar 820565: OUTPUT«0.5566723␤»
timotimo m: my @a = 1 .. 1000000; @a.map( *.Str ); say now - BEGIN now;
camelia rakudo-moar 820565: OUTPUT«5.4631956␤»
timotimo m: my @a = 1 .. 1000000; @a>>.Str; say now - BEGIN now;
camelia rakudo-moar 820565: OUTPUT«6.3738923␤»
timotimo that won't give us a 10x speed increase 02:17
02:17 noganex joined
timotimo maybe we could try to have a benchmark parse-json-no-actions 02:17
hoelzro I think I tried that once 02:18
02:18 lustlife joined
hoelzro like a year ago 02:18
it'd be worth trying agani
*again 02:19
hmm
I don't know how hashes are implemented at the moment
but in a JSON document, for example, the keys are known in advance
I'
I'm sure there are plenty such scenarios; I wonder if that case could be optimized?
02:20 noganex_ left
timotimo i will try it again 02:20
a parser that can assume a fixed structure can certainly be much faster
if it's acceptable to segfault or undefinedly-behave given a malformed document, you can skip a whole bunch of stuff 02:21
like, look only at the first letter of a key and decide which key it'll be, if it can be decided at that point already
hoelzro you're talking about applying my idea in the grammar? 02:22
I was thinking of doing it in the actions, or rather, in the Hash constructor
btyler what about nativecall bindings to libjansson (or similar)? might be easier than working out tricky optimizations in p6-land 02:23
timotimo well, completely unrelated to that, i've been interested in making a json parser that doesn't use the grammar machinery and see if it can be any faster
btyler: well volunteered! ;)
btyler timotimo: just pondering if the purpose is "parse json fast from p6 code" or "parse json fast -in- p6 code"
timotimo right; in my personal case, it's "parse json fast from p6 code" 02:24
extra bonus: i know that the document format is at least somewhat fixed
but i'd rather our parse-json module (or a json::fast module) would be usable for this task than hacking something myself
sadly, i don't have an example document of the type handy, otherwise i'd benchmark with that to get some more relevant numbers
02:26 hoverboard left
timotimo m: say "rakudo does {687956 / 40} characters per second when parsing perl6 code, including building the AST and stuff." 02:30
camelia rakudo-moar 820565: OUTPUT«rakudo does 17198.9 characters per second when parsing perl6 code, including building the AST and stuff.␤»
timotimo m: say "rakudo does {33682 / (1 / 1.3)} CPS when parsing json including building the object"
camelia rakudo-moar 820565: OUTPUT«rakudo does 43786.6 CPS when parsing json including building the object␤»
timotimo at least we parse json faster than perl6 code. anything else would have been very surprising 02:31
02:32 btyler left
timotimo though it kinda surprises me we're only about 2.5x faster at json than we are at p6 code; maybe because the actions in the core setting are written in nqp and can generate tighter code? 02:34
02:35 btyler joined 02:38 aoseki joined 02:40 akaseki left, ariden__ joined, btyler left 02:41 btyler joined 02:43 aoseki left
grondilu m: say "{.perl}" for 1/3, 1; 02:44
camelia rakudo-moar 820565: OUTPUT«Nil␤Nil␤»
grondilu n: say "{.perl}" for 1/3, 1;
camelia niecza v24-109-g48a8de3: OUTPUT«<1/3>␤1␤»
grondilu p: say "{.perl}" for 1/3, 1;
camelia rakudo-parrot 820565: OUTPUT«<1/3>␤1␤»
grondilu m: say "{.perl}" given 1/2 02:45
camelia rakudo-moar 820565: OUTPUT«Nil␤»
hoelzro *that's* where the 130 second parse comes from - my S26 branch o_O
timotimo whoa, how'd you manage that? 02:46
hoelzro shrugs
probably introduced a horrible regex into the grammar!
I just rebased; maybe I missed some handy optimization work 02:47
02:47 jnap1 left
timotimo that would be one hell of an optimization ... 02:49
02:49 raiph joined
hoelzro heh 02:50
indeed
that'll be the last thing I do before the final submission as a PR, I guess
yeah, no 02:51
same parse time
02:52 ariden__ left 02:53 akaseki joined
dalek ast/S26-WHY: c28851f | (Rob Hoelz)++ | S26-documentation/ (12 files):
Change .content to .contents for POD blocks

To match up with specs
02:55
timotimo wow, what. 02:59
parse-json vs parse-json-no-obj-creation ...
not that big of a difference
t.h8.lv/p6bench/2014-07-30-json_stuff.html 03:00
t.h8.lv/p6bench/2014-07-30-recent-rakudos.html - here's a comparison with a few more historical versions 03:03
8205 is today's rakudo, 319 is a few days old
huh, the charrange benchmark confuses me 03:05
but it could very well be that it has been fixed between benchmark runs
oh d'oh! 03:06
i've accidentally overwritten the parse-json benchmark with the parse-json-no-obj-creation 03:07
m)
03:07 hoverboard joined
dalek rl6-bench: 2f84e2d | (Timo Paulssen)++ | / (3 files):
new benchmark: json parsing without creating objects
03:08
timotimo damnit, i wanted to go to bed %) 03:11
hoelzro timotimo: isn't it like 5AM by you? 03:12
timotimo yes >_< 03:13
hoelzro then go to bed =)
timotimo i spent much of last day sleeping off my ear infection, so i'm not terribly tired
hoelzro don't get me wrong; it's nice to have someone to talk to while I'm actually working on stuff =)
timotimo feels more like an obligation than a physiological necessity at this moment
hoelzro ah 03:14
you're making *me* feel bad for wanting to go to bed =P 03:19
timotimo t.h8.lv/p6bench/2014-07-30-json-speed.html - btw
hoelzro wow
timotimo oh, i put one too many rakudos in there
hoelzro that's underwhelming
timotimo refresh for less spam
it is, isn't it?
hoelzro oh well, you never know until you measure 03:20
timotimo i'm somewhat surprised to say the least
hoelzro me too
timotimo at least now we know that our json parsing alone isn't perfect
hoelzro indeed!
timotimo so we can have a look at what exactly we're spending our time doing there and maybe find something that'll improve parsing across the board
hoelzro that would be great 03:21
timotimo heads off to bed
hoelzro after S26, I would be interested in working on that
I'm hoping to start writing bindings to webservices
'night timotimo
timotimo sounds lovely :) 03:22
ttyl
hoelzro later
TimToady p6: printf "%+.5f", pi 03:25
camelia rakudo-{parrot,jvm,moar} 820565: OUTPUT«3.14159»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: invalid format specifier␤ at /home/p6eval/niecza/lib/CORE.setting line 1403 (sprintf @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1404 (printf @ 5) ␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecz…»
TimToady no +? 03:26
03:28 Rotwang left
TimToady should print out +3.14159 03:28
space doesn't work either, which appears to be a regression from rakudo version #22 "Thousand Oaks", according to rosettacode.org/wiki/Roots_of_unity#Perl_6 03:33
btyler anyone know what env var needs to be set for dyncall to find a native lib? NativeCall/dyncall can't find the darn thing in /usr/local/lib. tried CPATH/DYLD_FALLBACK_LIBRARY_PATH/LIBRARY_PATH. also only have a wee bit of C knowledge, so my model is probably rather out of line with reality 03:35
03:36 thou joined
TimToady used to be LD_LIBRARY_PATH back in the day 03:36
btyler oh, also, this is OSX. not sure if that matters
TimToady well, almost certainly they've changed it, since Apple can't leave any interface alone 03:37
03:42 itz joined 03:44 itz_ left 03:48 kaare_ joined 03:53 AmazingPudding is now known as bonsaikitten 03:58 nbrown joined 04:02 xenoterracide_ left, xenoterracide_ joined, ventica joined
ventica m: say "o/"; 04:02
camelia rakudo-moar 820565: OUTPUT«o/␤»
04:07 xenoterracide_ left 04:09 eternaleye joined 04:13 thou left 04:16 rindolf joined
rindolf Hi all. 04:19
04:22 chenryn left, kurahaupo left 04:23 nbrown left 04:27 aoseki joined
btyler doh, typo in the "is native('foo')" library name. that -would- make it hard to find 04:28
04:29 akaseki left
dalek ast: f0033ca | (David Warring [email@hidden.address] | S32-str/sprintf.t:
added sprintf test cases for "%+.5f" "%.5f"
04:30
dwarring TimToady: ^^ hope that covers the regressions
04:39 gamo joined 04:40 thou joined
gamo perl6 is slower than perl5 04:41
04:46 BenGoldberg left 04:47 raiph left
dwarring afk 04:48
btyler woohoo, got some really basic JSON parsing going with libjansson and nativecall
nativecall is incredible
04:53 chenryn joined 04:58 nbrown joined 05:01 kurahaupo_mobile joined 05:06 [Sno] left 05:09 nbrown left 05:12 ventica left 05:32 vendethiel left 05:36 jnap joined 05:37 djanatyn left
dalek p: 854efd3 | duff++ | / (2 files):
RT #122437 fix sprintf regression

The " " and "+" flags weren't being taken into account for floating point numbers. Added checks for these flags and some tests.
05:37
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122437
05:38 djanatyn joined 05:50 Possum joined 05:58 gfldex left 05:59 FROGGS joined 06:07 denis_boyun_ joined 06:13 SevenWolf joined
dalek ast: b25116e | duff++ | S06-other/misc.t:
Add a couple of tests for RT #76096
06:16
ast: 5b6b146 | duff++ | S32-str/sprintf.t:
Update tests for RT #122437
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76096
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122437
kudo/nom: 11e1937 | duff++ | tools/build/NQP_REVISION:
bump NQP_REVISION to get sprintf fixes
sergot hi o/ 06:17
avuserow \o 06:20
06:27 sftp left 06:31 [Sno] joined 06:32 sftp joined 06:34 jnap left 06:36 denis_boyun_ left 06:37 denis_boyun joined 06:40 jnap joined 06:42 SevenWolf left 06:51 chenryn left
avuserow I gathered the parrot segfault traceback from a coredump: gist.github.com/avuserow/5da7dc1a8a0d8211bdf3 . It happens intermittently on jsonrpc/t/server.t, but sometimes other tests fail. This is on Fedora 19 64-bit fwiw. 06:51
I can provide more info if needed. Seems reasonably reproducible if I run it a few times. 06:52
06:54 zakharyas joined 07:01 chenryn joined
avuserow I just updated the above gist. I'm also seeing segfaults in the doc/t/typegraph.t test intermittently. I was able to replicate the same backtrace on two machines (though both running the same Linux setup) 07:05
I think the parrot spectests are clean here (with a few TODOs passing), where "here" is testing the July releases of Parrot/Rakudo/etc 07:06
should I be filing these into a specific bug tracker? let me know. 07:08
and with that, good night #perl6
moritz good night avuserow
ingy you guys are funny 07:27
I'm reading perlcabal.org/syn/S02.html
todo(:parrøt<0.42>, :dötnet<1.2>));
:P
07:30 FROGGS left 07:34 virtualsue joined 07:38 darutoko joined 07:39 kst` joined 07:40 oetiker joined, kst left 07:42 pecastro left 07:43 kst`` joined 07:44 kst` left 07:45 jnap left, oetiker left 07:46 jnap joined, oetiker joined 07:51 dmol joined 07:55 denis_boyun left 07:56 denis_boyun joined
masak good morning, #perl6 07:57
nwc10 good masak, #perl6
or something like that
08:01 hoverboard left
moritz \o * 08:03
btyler timotimoe: re your "well volunteered", here's a starting point for bindings to libjansson: github.com/kanatohodets/p6-json-jansson
08:03 FROGGS joined
btyler timotimo* 08:04
unfortunately there's something really funky going on where the JSON primitives only get spit out some of the time 08:05
once I figure that out I'll start working on loading the JSON into a p6 data structure, ether pulling it from C-land on-demand via a proxy, or just chomping through it as soon as jansson has it parsed 08:06
08:07 thou left 08:11 kaare_ left 08:17 kaare_ joined 08:26 kivutar joined 08:28 dmol left 08:29 Ven joined
Ven Wow, I just learned that Ruby 2.0 was actually started in 2003 :o) 08:30
and it got released in 2013
I also just learned that Ruby has call/cc !
nwc10 but, was the Ruby 2.0 from 2003 any relation to the 1.99999999999 that was released in 2013? 08:31
has PHP decided whether the next version is 6 or 7? And whether it's anything more than marketing?
08:31 kivutar left 08:32 Akagi201_ joined 08:33 Akagi201 left, denis_boyun left
moritz maturing a dynamic language sure seems like a painful process 08:34
08:34 denis_boyun_ joined 08:35 fhelmberger joined
nwc10 Once you have a userbase, anything you change breaks your existing users' code. 08:35
It's not clear that any dynamic language has yet demonstrated success 08:36
08:37 pmurias joined
pmurias hoelzro: great! 08:37
yoleaux 00:52Z <hoelzro> pmurias: I got NQP JS building after a rebase on the latest nqp: github.com/hoelzro/nqp/tree/nqp-js 08:38
08:38 Akagi201 joined, Akagi201_ left
Ven moritz: "dynamic language" ? 08:40
nwc10 one specific problem is that if you are deploying source code, rather than compiled code, any newer version of the runtime has to be source-compatible 08:41
you don't have "existing binaries" that just keep working.
Ven dynamic = interpreted ? 08:44
08:44 Akagi201 left, Akagi201_ joined
Ven nwc10: sometimes, you rely on environment stuff that isn't available (like dlls) 08:45
pmurias how do I switch my git repo to hoelzro's one? 08:46
08:46 jnap left
Ven pmurias: what do you mean ? You can add his as a remote 08:46
nwc10 Ven: yes, agree.
FROGGS pmurias: git remote add hoezlro <url> 08:47
and then you can checkout hoelzro instead of origin
moritz Ven: "dynamic language" as in perl, python, ruby, js, php 08:48
Ven moritz: as in unityped ? as in interpreted ?
moritz Ven: if you want a definition, it would be run-time typed
those languages are *not* untyped 08:49
Ven I didn't write untyped.
FROGGS what is 'unityped' ?
moritz oh, I thought unityped was a typo for untyped
sorry
Ven FROGGS: existentialtype.wordpress.com/2011/...languages/
08:49 kurahaupo_mobile is now known as kurahaupo
Ven moritz: why would it be harder than maturing a statically typed language ? You usually can't break people's code 08:50
admittedly, if you do, you'll (probably) know sooner, but that's still broken.
FROGGS Ven: no, unityped does not fit here I think
pmurias FROGGS: and how can I make it the defaul? 08:51
Ven FROGGS: << we have no choice but to regard it as a value of the “one true type” that is classified, not typed, as an integer >>
FROGGS pmurias: edit your .git/config? I dunno how mad that is
moritz Ven: I have no idea, I merely observe that python, ruby, perl and php seem to have more trouble than C++, C#, Fortran and C, for example 08:52
nwc10 C++, C#, Fortran and C all have more than one "vendor", and have a standards committee to design what is accepted
Ven moritz: do they ? I don't know Fortran, C is pretty much unevolving, C++ adds features that would be done 10 times better if they could break BC, and C# is going in a "dynamic" direction
nwc10 oh, crap, not C# sort of 08:53
Ven I think c++ is really the counter-example to "statically languages have a easy (kinda) time growth"
nwc10 problem continues to exist between keyboard and chair
moritz Ven: well, C++ evolution isn't pretty, but it looks like all major compilers seem to either implement C++11, or are pretty much on their way to do it. No huge fragmentation of the language and community 08:54
08:54 molaf_ joined
Ven moritz: you must mean on their way to C++14, by now :). I don't see fragmentations in the hundreds of ruby or even scheme implementations 08:54
(or they're labeled as such, such as rubinius X and racket) 08:55
cognominal When you ship a binary, you don't have the problem of mismatch of interpreter and source, whatever mismatch may mean. On the other hand the binary is tied to an OS and an processor instruction set. 08:56
Ven cognominal: and to some environmental stuff, often
cognominal yes
08:56 Akagi201_ left 08:57 kivutar joined, molaf left 09:03 jnap joined 09:06 virtualsue left 09:09 Akagi201 joined 09:10 cooper_ left 09:11 cooper_ joined 09:15 Akagi201_ joined
eiro hello guys 09:17
09:18 Akagi201 left
Ulti ohai 09:18
cognominal I think that so called dynamic languages come with very different cultures that implies degrees of freedom provided by the decoupling from a processor instruction set. That leads to the freedom and the necessity to create a culture/ecosystem with many ways to go astray. With smalltalk, one seems to eventually get the worse all posible worlds. It comes with its own "OS" which is really an evolving image so good luck for a portable scr 09:19
ipt, you don't get to chose you editor, the editing environment.has not evolved eons. Ruby has choosed to fully embrace the web but nodejs can do it more fully. The Perl crowd choosed to stay in a ghetto, less though than smalltalk, by ignoring the client side of the web and staying resolutely a tty culture. I am not sure if that culture comes from some leader(s) vision, accidental constraints, or happenstance.
FROGGS hi eiro
cognominal salut
09:20 Akagi201_ left
nwc10 not convinced that "Ruby chose to fully embrace the web" It's more selection bias - Ruby wasn't really visble until Rails appeared, and Rails is all about the web 09:23
cognominal I am curious how many people here are runing their irc client in a tty multiplexor à la screen or tmux :)
nwc10 is using tmux
cognominal nwc10, so that falls in the category happenstance :)
moritz happily uses both screen and tmux, depending on the context (but screen for irss) 09:24
bonsaikitten quassel is quite useful
much less affected by laggy connections 09:25
Ven cognominal: java is decoupled from the processor instruction set, too 09:26
cognominal that confirms my suspicion : Perl people thrive in the tty world. 09:27
09:27 thou joined
moritz cognominal: or maybe IRC people thrive in the tty world :-) 09:27
cognominal: selection bias and all that :-)
cognominal :) 09:28
moritz
.oO( now that I know about selection bias, I see it everywhere! )
cognominal :) 09:29
09:31 thou left
pmurias cognominal: do ruby people irc through their web browsers? 09:32
cognominal pmurias, I don't know. 09:34
My thought is that Perl 6 is a heck of a language, but a language is nothing without a media. 09:36
Ven pmurias: I actually do. hahahahaha 09:37
(only when not at home, though :b. But then, I usually don't do ruby at home)
masak cognominal: I'm on screen.
moritz btw convos.by/ is a web-based IRC client written in perl 09:38
09:45 ilogger2 joined, ChanServ sets mode: +v ilogger2 09:46 [particle] joined
zengargoyle meh, web is just a sparkly tty anyway. 09:57
10:04 virtualsue joined 10:06 spider-mario joined
masak p6: printf "%+.5f", pi 10:07
camelia rakudo-jvm 11e193: OUTPUT«(timeout)» 10:08
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: invalid format specifier␤ at /home/p6eval/niecza/lib/CORE.setting line 1403 (sprintf @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1404 (printf @ 5) ␤ at /tmp/tmpfile line 1 (mainline @ 3) ␤ at /home/p6eval/niecz…»
..rakudo-{parrot,moar} 11e193: OUTPUT«+3.14159»
masak aha, PerlJam++ fixed it :) 10:09
10:09 Woodi joined
cognominal zengargoyle: and mostly a readonly tty if one has only access to the browser, except for wikis. The wikipedia has not strayed far apart from the original wiki concept except very recently. 10:12
10:15 spider-mario left
moritz m: say nqp::iscclass( nqp::const::CCLASS_PRINTING, nqp::unbox_s("a"), 0) 10:17
camelia rakudo-moar 11e193: OUTPUT«1␤»
10:17 chenryn joined
moritz m: print nqp::iscclass( nqp::const::CCLASS_PRINTING, nqp::unbox_s(chr($_)), 0) for 0..255; 10:17
camelia rakudo-moar 11e193: OUTPUT«0000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111»
moritz m: print nqp::iscclass( nqp::const::CCLASS_PRINTING, nqp::unbox_s(chr($_)), 0) for 0..2550;
camelia rakudo-moar 11e193: OUTPUT«0000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…»
10:25 jnap joined
masak closes his eyes and imagines a classify-into-ranges builtin 10:28
probably a good case for a module, more realistically.
also, probably quite close to skip lists.
Ven masak: classify-into-ranges ? 10:29
rindolf zengargoyle: I might as well argue that reddit has no advantage over Usenet. 10:33
masak Ven: with what moritz did above, it would return (0 => 0..31, 1 => 32..2550)
rindolf zengargoyle: or that we should still use a chisel and a mallet.
zengargoyle: cuneiform, anyone? ;-)
zengargoyle, cognominal : www.robcottingham.ca/cartoon/archiv...rain-fire/ 10:34
10:42 xragnar_ joined, xragnar_ is now known as xragnar
nwc10 cmd: Rounded run time per iteration: 4.736e+02 +/- 1.2e+00 (0.3%) 10:52
compare with
cmd: Rounded run time per iteration: 7.1820e+01 +/- 4.2e-02 (0.1%)
n: say 4.736e+02 / 7.1820e+01
camelia niecza v24-109-g48a8de3: OUTPUT«6.5942634363686983␤»
nwc10 pmurias: MoarVM about 6.5 times faster than parrot at compiling the setting 10:53
10:56 chenryn left 11:15 thou joined
moritz with or without JIT? 11:18
nwc10 JIT isn't helping (yet) with the setting
moritz so without? 11:19
nwc10 yes, without
11:19 thou left 11:26 jnap left 11:28 jnap joined
pmurias hoelzro: ping 11:35
hoelzro pmurias: pong 11:40
morning #perl6
pmurias hoelzro: did you need to enable regex lib to compile QAST::Compiler? 11:45
hoelzro pmurias: yes
11:53 bjz joined 11:58 dmol joined 12:02 nbrown joined
pmurias hoelzro: ok, it's seem I could just have enabled it instead of trying to remove regex-lib dependencies from QAST::Compiler 12:05
12:06 nbrown left
timotimo hmm. apparently turning the panda-projects.json (that perl6-bench uses for the json benchmarks) into a pure-ascii file doesn't change performance one bit 12:23
though there are multibyte characters in the original file that probably caused our code-index-using methods to linear-search every time rather than directly skip 12:24
and even specifying :enc('ascii') on spurt doesn't seem to help
hoelzro timotimo: I tried a benchmark once on a JSON file that was " " x 4000 ~ "{}" 12:25
timotimo how well did that go?
zengargoyle i'm not so sure reddit has anything over usenet in its prime. it was much easier to find groups, follow threads, bash on the 'n' key and make killfiles than it is to muddle through reddit. :)
hoelzro well, it demonstrated that the parser wasn't the bottleneck =)
eiro an equivalent of the s/a/b/r in perl6 ? (the r modifier)
timotimo what does r do again? 12:26
hoelzro r returns the new string
zengargoyle plus you could just grep through /var/spool/news ...
grondilu eiro .subst: /a/, "b" I think
hoelzro rather than modifying the target in place
eiro timotimo, s/a/b/r is like s/a/b/; $_
grondilu, thx :)
timotimo ah
huf more like ($x = $_) =~ s/a/b/; $x 12:27
masak I don't see why we couldn't also have s:r///
eiro (didn't expect a method here
masak would be a nice side-port from Perl 5 ;)
masak goes ahead and specs :r
eiro masak, :r is :rachet in perl6
grondilu well, you can always s:P5:r///
masak eiro: oh, dang.
yes, so it is.
grondilu m: $_ = "foo"; say s:P5:r/foo/bar; say $_ 12:28
camelia rakudo-moar 11e193: OUTPUT«===SORRY!=== Error while compiling /tmp/5QgY2KeMKC␤Malformed replacement part; couldn't find final /␤at /tmp/5QgY2KeMKC:1␤------> $_ = "foo"; say s:P5:r/foo/bar; say $_⏏<EOL>␤ expecting any of:␤ po…»
grondilu m: $_ = "foo"; say s:P5:r/foo/bar/; say $_
camelia rakudo-moar 11e193: OUTPUT«bar␤bar␤»
grondilu oh that unexpectidly failed
eiro s:P5:r is boring to write but still more natural than $_.substr( for me 12:29
grondilu was expecting barnfoo
not substr, subst
masak eiro: hm. since :r is taken, I don't really know how to spec this.
eiro: someone needs to come up with a nice letter we can use :)
12:30 Ven joined
zengargoyle is :c for copy taken? 12:30
masak didn't we use to have :c for continue?
grondilu it ha sto be one letter, right?
moritz we still have that
eiro m: "the winner is " ~ 'a'..'z'.pick
camelia ( no output )
zengargoyle :v vivify
eiro m: say "the winner is " ~ 'a'..'z'.pick
camelia rakudo-moar 11e193: OUTPUT«"the winner is a".."z"␤»
masak grondilu: preferably one letter and then an expanded word.
eiro oops :)
masak eiro: precedence.
moritz precedence 12:31
moritz too slow
masak moritz: precedence.
eiro m: say "the winner is " ~ ('a'..'z'.pick)
camelia rakudo-moar 11e193: OUTPUT«the winner is a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
masak as in "comes first" :P
eiro arff ... forget
masak eiro: fail :P
everybody wins! \o/
eiro i'll try i my vi
moritz m: say "the winner is" ~ ('a'..'z').pick
camelia rakudo-moar 11e193: OUTPUT«the winner isk␤»
masak eiro: "I don't want to understand the problem, I just want to fix it!" 12:32
hoelzro k is for kopy!
masak hoelzro: :D
masak could go with :k
eiro oohhh! i see the precedence pb now! thanks!
:kopy :) i love the idea 12:33
masak :k as in :keep
eiro :s for send (as :r is taken)
:p for pass
zengargoyle :d for dup
masak eiro: :p is also taken. 12:34
eiro oh ... right
dup is a nice idea as it's not in memory
nwc10 what is the current return value from s/// in perl 6? 12:35
eiro easy to remember
nwc10, the result of the substitution (True or False)
masak nwc10: list of matches?
eiro Bool:D
zengargoyle $/ ?
masak eiro: only in bool context.
oh, in Perl 6.
m: say "foo" ~~ /foo/
camelia rakudo-moar 11e193: OUTPUT«「foo」␤␤»
masak m: $_ = "foo"; say s/foo/bar/
camelia rakudo-moar 11e193: OUTPUT«bar␤» 12:36
masak result string.
psch points at github.com/rakudo/rakudo/pull/295#...t-49851923
nwc10 in that, it's not clear that r is useful
masak nwc10: it is if you don't want to change $_
eiro so why is my code broken ? .oO( and did i make some noise for nothing )
nwc10 ah yes
psch to expand on that: spec has been updated to have s/// always return a Match object, the PR implements that
eiro dup seems to be perfect !
dalek ast/S26-WHY: ef3e966 | (Rob Hoelz)++ | S26-TODO:
More notes
12:37
timotimo btyler: wow, i didn't expect you'd actually do it :) 12:38
carlin ha, so "well voluntered" actually works every now and then 12:45
13:03 thou joined 13:08 thou left 13:21 cooper_ joined
pmurias how should I switch my repo nqp-js to the hoelzro++ version rebased on top of current nqp? 13:31
moritz pmurias: you mean, completely replace your current stuff? 13:33
pmurias yes
hoelzro rebased my current stuff on top of a current nqp and added some commits to make it work 13:34
moritz pmurias: and is his stuff in the main nqp repo? or in a fork?
pmurias it's in his repo on github, mine is in my repo 13:35
moritz pmurias: git remote add hoelzro [email@hidden.address]
pmurias: git fetch --all
pmurias: git reset --hard hoelzro/master; git push --force 13:36
pmurias: (assuming the branch is 'master' and the repo is 'nqp', not 'nqp-js' or some such)
dalek Heuristic branch merge: pushed 442 commits to nqp-js by pmurias 13:42
13:45 raiph joined
Ven hoelzro++ pmurias++ :) 13:45
13:50 jnap left
pmurias hmm do we care about supporting nqp::pow_I($num, $big) where $num != 1|0 and $big is a number so big that it doesn't fit in a double? 13:55
moritz we might 13:56
though it's a pretty simple simple mapping 13:57
+- Inf
(only -Inf if $big is odd and $num is negative)
pmurias is Inf a bignum?
moritz open question
pmurias in nqp 13:58
moritz we'd like our integers to be able to represent +-Inf
in NQP, +-Inf are always "Num" (aka double)
13:59 thou joined
pmurias $big <= 5970554685064519000 is the point things currently break on 32bit sytems in nqp 14:00
* nqp-js 14:01
btyler timotimo: well, I wanted to play with nativecall, and getting something more-or-less working went rather quickly
unfortunately there's a major race somewhere. some executions work great, others start spitting out undefined values once I index into the json a bit 14:02
moritz pmurias: I wouldn't worry about it until somebody submits a bug report :-)
psch pmurias: that breakage comes straight from bigint.js though
pmurias yes
Ven p6: say(999999999999999999999999999993425234523452345234523452345 / 100000000000000000000000000000000000000000000000000000)
camelia niecza v24-109-g48a8de3: OUTPUT«10000.000000000002␤» 14:03
..rakudo-{parrot,jvm,moar} 11e193: OUTPUT«10000␤»
psch i didn't figure out how libgmp does bigint in the exponent, or how bigint.js maps bigint in the exponent to libgmp though
Ven ruby gives me 9999.
hoelzro the branch is indeed nqp-js =/
pmurias: did you get it to work?
pmurias hoelzro: yes
hoelzro great! 14:04
pmurias now running 'make test'
Ven python also gives 9999
tadzik with or without print?
Ven print
pmurias psch: bigint.js converts the exponent first to a js number and then to a unsigned integer of some sort 14:05
psch: but I think I'll just handle 1 ** ... and 0 ** ... specially for now 14:06
hoelzro: it fails some tests but I'm looking into that 14:12
hoelzro ok, cool 14:26
timotimo btyler: do the json_array_get and object_get return a JSON or do they return a JSON *? 14:29
dalek kudo/nqp-dogfood: 397b4e4 | duff++ | tools/build/ (4 files):
convert gen-cat.pl to nqp and use it
14:30
PerlJam [Coke]_: Have a look at the nqp-dogfood branch. I haven't tested it thoroughly but it seems to work. :) 14:31
btyler timotimo: they all return a JSON *
timotimo btyler: you may need to have that as returns CArray[JSON] then 14:32
btyler json_dumps is the only method I bound that doesn't return json_t * in jansson land
timotimo and wrap that c-level sub with a sub that just returns the [0]
btyler ok. why's that? 14:33
timotimo i'm not 100% sure if it'll help
btyler (my C chops are weak, looking to learn)
timotimo well, in C a pointer to something and an array of something is "the same thing"
btyler right 14:34
timotimo but a pointer to something and a struct of something isn't
btyler ah, ok
timotimo i'm not sure if nativecall is able to turn "returns JSON" into "needs a pointer dereference" properly
on the other hand:
btyler I originally had JSON is repr CPointer, but I needed access to the type struct member
timotimo if you have class JSON is repr CPointer
right, but you can do that with nativecast :)
btyler because jansson implements typeof as a bunch of macros that operate on the struct
timotimo you'll have a class JSONInternal is repr('CStruct')
btyler and nativecall can't see macros (I think)
timotimo that's correct, macros disappear when we only have the .so file 14:35
btyler would the mismatch between struct/pointer explain 'only sometimes' missing data?
timotimo could be 14:36
a pointer would be a 64bit int, your CStruct would probably have the $!type aligned to 32 or 64 bit
and the refcount is probably 64 bit as well - you are on a 64bit machine, are you not?
btyler yeah
well, size_t, which nativecall doesn't have 14:37
14:37 treehug88 joined
btyler type is an enum member 14:37
timotimo jnthn: can you say something about that? if we have a class Foo is repr('CStruct'), do we need to annotate things that take Foo * in C as CArray[Foo]? or will nativecall magically infer "this needs to be a pointer" when passing and "this needs to be deref'd" when returning?
14:37 molaf joined
timotimo FROGGS would know about this, too -^ 14:38
btyler hmm, CArray[JSON] and index-zeroing sounds like a recipe for out of bounds reading 14:39
timotimo you think so?
btyler most of those methods return an int of some kind if they fail
excuse me, NULL 14:40
but again, C newb :)
timotimo a NULL will be represented as a CArray type object 14:41
so you can .defined it
m: say Any[0]
camelia rakudo-moar 11e193: OUTPUT«===SORRY!===␤Type Any cannot accept type arguments␤»
timotimo m: my $foo; say $foo[0];
btyler oh ok
camelia rakudo-moar 11e193: OUTPUT«(Any)␤»
timotimo my Bool @test; say @test[0];
m: my Bool @test; say @test[0];
camelia rakudo-moar 11e193: OUTPUT«(Bool)␤»
timotimo if everything works fine, it'll give you a type object of your JSON struct class 14:42
btyler oh, cool
well, having it be repr(CPointer) seems like a clearer indication of what's going on, so how do I use native cast to deref and access the struct members? 14:43
14:43 chenryn joined
btyler any good examples floating around github? 14:43
timotimo i have not yet tried NativeCast, but i assume it'd look something like my $as_struct = nativecast($the_thing, MyJSONStructClass); say $as_struct.type 14:44
nope
the signature is $target-type, $source
so switch the thing and the struct class
14:46 ribasushi joined
timotimo jnthn: the zavolaj TODO says "support callbacks"; can i remove that item from the list? how about "properly support sized types in structs/arrays", i don't know how much that entails 14:47
Woodi afternoon ppls :) 14:48
timotimo hey woodi, how are you today? :)
Woodi um, warm summer last few days :)
ppls started complaing on 2nd day 14:49
but I like it :)
timotimo :)
Woodi so, what's about R* lastly ? on probably was baked last week... 14:50
*one was...
timotimo avuserow is working on a R* release this month :)
Woodi any links ?
timotimo i think it will be ready this week, but you'd have to ask them personally
Woodi k, thanx
btw. that 800k patch was nice :) 14:51
timotimo definitely. good eye on that bug, i must say
Woodi btw2., lastly I was reading about grsecurity/Pax (a very small bit) and one of problems with that stuff is that JITted software do not work, need to be "marked" with special script... If we assume traditional *nixes are a bit old and new security stuff *should* be default then maybe JITs should be programmed with some awareness ? </handwaving> 14:55
timotimo that may be simple to do, but it might also be a policy thing whether or not to allow things like the moarvm jit 14:58
it can be enabled/disabled at configure time (and with an environment variable, but that's not worth much in this context) 14:59
15:00 raiph left
TimToady if you run into that situation, you just turn your jit into a normal compile-time optimizer, maybe with feedback from previous runs :) 15:00
Ven eh, I can't remember the name of the ruby tool that did that. 15:01
hoelzro Ven: did what? 15:04
Ven specialization based off previous program run
hoelzro oh, that's a new one to me... 15:05
Woodi TimToady: oo, yes, forbide all that TooLateCalculations and just save apprun profile :) something like tweaking SQL queries maybe ?
timotimo gcc can compile a profiling thingie into your application to aid a later compilation with branch prediction 15:06
15:06 Akagi201 joined
Woodi data is gathered runtime ? 15:07
timotimo yes
Woodi for some years I wish to have Perl6 C backend ;) 15:08
Ven you're wishing somebody a lot of pain
timotimo i read a good article on why a perl c backend would be useless
Ven link it then! :) 15:09
Woodi yes, pleas :)
timotimo www.perl.com/pub/2001/06/27/ctoperl.html 15:11
Woodi btw, just something hit me... there are cars with turbo which adds some horsepower above some rpm's... but that turbo cars have some user experienced "lag" just before turbo turns on... so there are twin turbo cars, they are much better... so maybe double JIT ? one turning on faster and second later ? :) 15:12
reading :)
Ven timotimo: ah, I wasn't thinking about speed. It's just nice to be able to compile something and distribute that.
Woodi: FWIW, some JS engines have around 3 or 4 "JITs" (or stage-optimizers) :P
timotimo Woodi: there's jits that will only mildly optimize something that's only mildly warm and then re-optimize with more "power" when it's considered hot 15:13
Woodi damn, patents probably already pending ? :)
TimToady Damn the patents, full speed ahead! 15:14
timotimo TimToady: unfortunately, "full speed ahead" is patented
as is "damn the patents"
also, you'll need to stop calling yourself "Larry Wall", there's a patent on that, too 15:15
TimToady what about the comma?
timotimo comma's fine, but not the colon.
TimToady hoelzro: on your question, I just meant that there's a newline like in normal pod where a paragraph might contain a newline; that's not intended to prevent normal paragraph reflow 15:17
hoelzro ah ha
ok, that sounds good to me!
Woodi ok, so reading article from link above and including that prepatented thingies, the only way to have good speed ups is to build custom software... 15:19
timotimo no, you can have jit compilers :)
Woodi can I have patent on "custom software" pls ? ;)
gene
..ral programmers can do "general programming" ;) 15:20
it's Apple patented square ? :)
[Coke]_ PerlJam++ # (nqp-dogfood) awesome! 15:21
dalek kudo-star-daily: fbfd206 | coke++ | log/ (14 files):
today (automated commit)
15:28
rl6-roast-data: b654aca | coke++ | / (5 files):
today (automated commit)
TimToady p6: say "{.perl}" given 1/2 15:29
[Coke] java: 20 failures; moar: clean; parrot: 1791
camelia rakudo-parrot 11e193, niecza v24-109-g48a8de3: OUTPUT«0.5␤»
..rakudo-{jvm,moar} 11e193: OUTPUT«Nil␤»
TimToady did anyone file this bug ^^
(found by grondilu++) 15:30
timotimo m: say $_ given 1
camelia rakudo-moar 11e193: OUTPUT«1␤»
timotimo m: say $_ given "hello"
camelia rakudo-moar 11e193: OUTPUT«hello␤»
timotimo m: say $_ given 1/2
camelia rakudo-moar 11e193: OUTPUT«0.5␤»
timotimo m: say "{$_}" given 1/2
camelia rakudo-moar 11e193: OUTPUT«␤»
timotimo m: say "{$_.perl}" given 1/2
camelia rakudo-moar 11e193: OUTPUT«Nil␤»
timotimo yeah, that's strange
TimToady m: say "{OUTER::<$_>.perl}" given 1/2 15:31
camelia rakudo-moar 11e193: OUTPUT«Nil␤»
timotimo m: say "$_.perl()" given 1/2
camelia rakudo-moar 11e193: OUTPUT«0.5␤»
15:32 raiph joined
timotimo the code we generate for that is quite terrible %) 15:32
TimToady m: given 1/2 { {.perl.say} } 15:34
camelia rakudo-moar 11e193: OUTPUT«0.5␤»
timotimo in the qast, we call the block that contains $_.perl with p6capturelex and refer to the $_ via getlexouter("$_")
no clue if that's correct or not
TimToady 私も… 15:36
[Coke] ... I plugged that into google translate, which was still set on translating into spanish; thankfully it was preschool spanish. :) 15:37
15:38 chenryn left
carlin ahau ano hoki 15:42
15:43 ventica joined 15:44 dmol left, Ven left
TimToady Maori, eh? 15:44
carlin Te Reo is part of the NZ school curriculum, but I barely remember any of it. Remember more of the German I learned for a year 15:52
15:54 slavik joined 15:56 chenryn joined 16:01 chenryn left 16:03 iarna joined
TimToady perhaps, instead of cluttering options space, we could just mixin a .result attribute to the Match returned by s/// 16:13
not sure what the performance hit would be... 16:14
but might be worth it for cleanliness
also, decouples the fetch from the s///, like this: when s/// -> $s { say $s.result } 16:18
or my $s = $foo ~~ s///; say $s.result; 16:19
feel free to bikeshed something shorter than .result 16:21
.got maybe
PerlJam What does .result return exactly?
(and where is the beginning of this discussion?) 16:22
TimToady .r if you want to hark to p5's s///r
PerlJam oh, so $foo didn't get modified in your example?
TimToady oh, good question 16:23
hmm
16:23 iarna is now known as iarna_
TimToady yeah, that's a problem 16:24
16:24 iarna_ is now known as iarna
TimToady goes to get more (obviously needed) coffee 16:24
16:25 iarna left
pmurias don't we have none destructive substitution with .subst? why do we need /r? 16:26
16:26 iarna joined
pmurias *non-destructive 16:26
PerlJam indeed. 16:27
TimToady well, .subst is kinda ugly on replacements using $0 etc. 16:28
ventica m: [*] ^7 16:30
camelia ( no output )
ventica m: [*] 1..7
camelia ( no output )
TimToady say
ventica derp
m: say [*] ^7
camelia rakudo-moar 11e193: OUTPUT«0␤»
ventica m: say [*] 1..7
camelia rakudo-moar 11e193: OUTPUT«5040␤»
ventica why?
TimToady 0 * 16:31
ventica ^7 is shorthand for 1..7 no?
PerlJam m: say ^7
camelia rakudo-moar 11e193: OUTPUT«0..^7␤»
ventica oh
m: say 0 [*] ^7
camelia rakudo-moar 11e193: OUTPUT«0␤»
ventica hrm
oh
haha
righ
ventica crawls back under rock
grondilu is surprise 0 [*] ^7 is valid syntax
PerlJam too 16:32
grondilu *d
btyler timotimo: I added the struct representation and access it via nativecast (so cool!) but sadly the race stuff is still there
grondilu std: 0 [*] ^5
TimToady m: say 1 [[[[[+]]]]] 1
camelia std 0f2049c: OUTPUT«Potential difficulties:␤ Useless use of [] around infix op at /tmp/kM82UNhlIz line 1:␤------> 0 ⏏[*] ^5␤ok 00:01 123m␤»
rakudo-moar 11e193: OUTPUT«2␤»
btyler the weirdest thing is that it races between accesses during the same program run
grondilu std: 0 * ^5 16:33
camelia std 0f2049c: OUTPUT«ok 00:01 123m␤»
grondilu m: say 0 * ^5
btyler ie my $foo = $json.get(0).get("tags").get(0); say $foo for 1 .. 15;
camelia rakudo-moar 11e193: OUTPUT«0␤»
btyler it's uninitialized a few times early on
then the data suddenly appears
grondilu m: say 0 * 1..2
camelia rakudo-moar 11e193: OUTPUT«0..2␤»
TimToady I don't know why you think that's so mysterious, scalar ^5 is just 5
grondilu oh
indeed
TimToady m: say + ^5
camelia rakudo-moar 11e193: OUTPUT«5␤»
TimToady m: $_ = 41; $_ [[[[[+]]]]]= 1; .say 16:34
camelia rakudo-moar 11e193: OUTPUT«42␤»
ventica O.o
TimToady S03:4945 16:35
synopsebot Link: perlcabal.org/syn/S03.html#line_4945
PerlJam ah 16:37
TimToady so by definition, infix + can be replaced by [+], producing another infix, and since that's an infix, can be replaced by [[+]]
note it's very carefully stated to be in that direction
[+] is not always an ordinary infix
a reduction, for instance, or in the &[+] construct
neither of those are infixes 16:38
timotimo btyler: did you add lots and lots of debug output? :)
TimToady but the [&foo] construct is an infix, so you can reduce with [[&foo]]
16:39 fhelmberger joined
TimToady m: say [[&atan2]] 1,1 16:39
camelia rakudo-moar 11e193: OUTPUT«0.785398163397448␤»
btyler timotimo: I haven't started adding any to jansson itself yet, that seems like the next step
timotimo ah, ok 16:40
TimToady m: say [[[[&atan2]]]] 1,1
camelia rakudo-moar 11e193: OUTPUT«0.785398163397448␤»
TimToady but not:
timotimo installs jansson
TimToady m: say [&atan2] 1,1
camelia rakudo-moar 11e193: OUTPUT«===SORRY!=== Error while compiling /tmp/wj1TXGrpeH␤Two terms in a row␤at /tmp/wj1TXGrpeH:1␤------> say [&atan2] ⏏1,1␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infi…»
TimToady m: say [&atan2].WHAT 16:41
camelia rakudo-moar 11e193: OUTPUT«(Array)␤»
16:41 virtualsue left
TimToady m: say [*].WHAT 16:41
camelia rakudo-moar 11e193: OUTPUT«(Int)␤»
16:43 AndChat-188244 joined 16:46 dmol joined
timotimo btyler: could you push your stuff so i can test it, too? 16:47
btyler timotimo: yep, just a minute ago
github.com/kanatohodets/p6-json-jansson
starting to printf-ify jansson 16:48
using the most recent jansson release tag (v2.6)
timotimo also, what's the flag you pass to json_loads?
btyler JSON_DECODE_ANY: parse plain values, not only JSON objects 16:49
was mostly for testing, could probably remove it now
timotimo OK
btyler jansson.readthedocs.org/en/2.6/apiref.html great docs 16:50
timotimo that outputs "quis" 15 times for me
btyler every time?
16:50 denis_boyun_ joined
btyler hmmm 16:50
I almost always get at least one "use of uninitialized value of type Str in string context ..." 16:51
usually >1
timotimo huh
yes, i get that every time, too :\
btyler well, at least it isn't a platform related issue :)
timotimo have to go afk for a bit
btyler ok, I'll keep poking
oh jeez, it's even crazier: I bumped up the count and saw "quis" followed by uninitialized followed by more quis 16:53
17:02 FROGGS joined, Rotwang joined
FROGGS timotimo: I think the answer is: NativeCall will know 17:06
17:06 fhelmberger left
timotimo FROGGS: it would be fantastic if you could help btyler out while i commute around; github.com/kanatohodets/p6-json-jansson 17:11
FROGGS btyler: I can just clone and will run into the said issue? 17:12
btyler FROGGS: yep 17:13
well, and install libjansson
github.com/akheron/jansson
timotimo yeah, perl6 examples/jansson.p6
dalek kudo/nom: 509b1a4 | duff++ | src/core/Temporal.pm:
RT #121990 DateTime/Date smartmatching
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121990
btyler oh, hmm, might have been missing a flag to json_dumps 17:14
splattered fprintfs all over jansson's innards
yep! I was missing the ENCODE_ANY flag to json_dumps 17:15
deeply weird that it ever succeeded
FROGGS ewww, do I need sphinx? 17:17
timotimo of course not 17:18
btyler I think that's just if you want to generate the docs yourself
here they are: jansson.readthedocs.org/en/2.6/apiref.html
anyways, I just pushed and it seems to be happy now
I don't understand why it ever allowed spitting out single values when that flag was off 17:19
oh! actually
I didn't even specify that flag
so it was uninitialized
timotimo yeah
17:19 AndChat-188244 left
btyler doh 17:19
timotimo you gave it a b0rked stack :)
(maybe)
btyler awesome
that makes sense
timotimo oh, it probably expected to have the argument passed via a register 17:20
in which case ... yeah ... :)
btyler well, timotimo, once I hook this up to a p6 data structure, it ought to be fast enough for whatever you had in mind
parses 'big.json' (about 10 megabytes) in under 2 seconds on my machine
timotimo neato
i hope our json::tiny will get at least somewhat close to that speed 17:21
btyler of course
jeez, NativeCall kind of blows my mind. hooking that up was so easy 17:22
timotimo yeah, nativecall's interface is pretty darn awesome 17:23
FROGGS as if it was properly designed :o) 17:24
ha carlosdelrey! we have awesome things!
btyler time to make bindings to *all* the libraries 17:25
timotimo %) 17:26
does nativecall already know about Buf?
17:33 vendethiel joined
dalek ast: d5bf9b7 | duff++ | S32-temporal/DateTime.t:
Add a couple of tests for RT 121990
17:35
avuserow btyler++ # JSON::Jansson 17:36
avuserow found nativecall really awesome for what it supported, but quickly ran into unsupported areas 17:37
btyler avuserow: not quite there yet in terms of usability (you just index into the json blob with .get(key)), but hopefully it will be soon
FROGGS timotimo: I don't think so... it knows about null terminated strings and CArrays of certain size... Buf needs a length, and that is the missing bit
avuserow btyler: sure, but you're getting started and trying out nativecall, which is worthwhile already IMO 17:39
17:44 [Sno] joined 17:45 Jimmy2 joined, Jimmy2 left 17:47 gfldex joined
eiro anyone used to nativecall can help? github.com/eiro/p6-lab/blob/master/girepo.p6 18:03
i commmented the source with the stderr and why i'm confused 18:04
(and yes: i want to implement a complete gtk binding)
FROGGS eiro: let's see 18:05
eiro: don't make it a method on a class 18:06
eiro just a sub ?
FROGGS yes
eiro ok. trying
FROGGS when you call a method on a class the class (or the class' instance) will be passed as the first argument, similar to perl 5 18:07
timotimo i'm glad jansson also offers an iterator thingie
FROGGS that's why you get that message that (GIRepository) was passed
btyler timotimo: yep, just got that going :)
PerlJam Well ... the method should work, he just shouldn't have passed an arg to the sub that's not expecting any.
18:08 raiph left
FROGGS btyler: somehow it can't find the libjansson.so even when I made a symlink to /usr/lib/libjansson.so 18:08
PerlJam eiro: my take ... you declared g_irepository_get_loaded_namespaces to take no parameters, yet you passed one when you called it. 18:09
FROGGS ohh
eiro FROGGS, that's why i used (self) as argument. it was logic for me that gobject_call became gobject.call
PerlJam Though the error message is slightly LTA
FROGGS eiro: PerlJam is right
I didn't read the source right
timotimo btyler: sweet! 18:10
eiro googling "LTA", please wait
btyler "less than awesome"
FROGGS less than awesome
when you get an error message that says something completely different that what you made wrong... like when internal informations are shows that have not much todo with your code
eiro would i look stupid if i admit i don't have a clue about the PerlJam's line meaning ? 18:11
PerlJam eiro: who cares?!? :)
btyler no worries, I spent a bunch of time similarly confused with NativeCall :)
just yesterday
eiro :)
FROGGS eiro: sub g_irepository_get_loaded_namespaces () takes no arguments, so don't pass self to it
eiro oohhh! right 18:12
PerlJam being confused by NativeCall is a rite of passage for those that would use it to great effect :)
eiro it works! damn
FROGGS nice :o)
eiro thank you so much guys! 18:13
FROGGS PerlJam: but to be fair it is easier to get confused with XS :o)
eiro right: i was so impressed by XS code i never had the courage to dive in it
btyler ^ same 18:14
eiro nativecall is so engaging i felt dumb not to try
PerlJam FROGGS: I dunno ... XS has much more documentation around it these days as compared with NativeCall.
18:14 Ven joined
FROGGS it is "just" a very mature C and macro mixup 18:14
eiro but now i have to read the XS code to understand what's the next steps of my program :) 18:15
FROGGS PerlJam: yes, but also you need like 400 pages to describe XS where you only need five to describe NativeCall
:o)
PerlJam true.
TimToady part of the XS problem is that it essentially reveals all the internals of P5 as the api
eiro it seems FROGGS is comparing perl and python
18:16 telex joined
FROGGS eiro: no, I don't know any python 18:16
I am talking about these things: perldoc.perl.org/perlguts.html#Assigning-Magic
eiro i was joking about the number of lines of codes :) 18:17
PerlJam FROGGS: I think he meant that, in a similar manner, it takes 500 pages to explain Perl and only 5 to explain Python :)
FROGGS ahh
well, I have to believe you guys :o) 18:18
eiro FROGGS, which one of us ? because we have 2 opposite perspective sightly
18:18 raiph joined
FROGGS TimToady: and rakudo's extops are one step into having XS again :P 18:18
eiro: I just believe everything about Python from now on *g* 18:19
eiro :)
FROGGS I just know Python from the RosettaCode examples.... and mostly these are a WAT to me 18:20
eiro WAT?
TimToady well, the pythonistas are obvlivious to the fact that their REPL is not a good thing to show off on RC
eiro: you need to see S99 for these things
PerlJam someone should teach one of the bots to give out definitions
eiro like the awesome talk about javascript and ruby awesomeness ? 18:21
TimToady perlcabal.org/syn/S99.html
but yeah, the awesome talk about WAT
eiro www.youtube.com/watch?v=Othc45WPBhA 18:22
i would like to be a so entertaining speaker!
TimToady www.destroyallsoftware.com/talks/wat <-- that one
eiro yep
FROGGS ohh, then I'd choose to be like rjbs :o)
eiro TimToady, thanks for the link: starting reading. 18:24
what RC is?
18:24 Alula_ joined
TimToady RosettaCode 18:24
FROGGS .org
eiro ooohhh ok
we need the #perlfr bot here: it helps a lot for defititions 18:25
TimToady though I see the glossary has Request Context fo rthat
eiro release candidate here
dalek ecs: 6f53541 | TimToady++ | S99-glossary.pod:
add RC === RosettaCode
18:28
TimToady ooh, that too
[Coke] jnthn: did you see I posted a one liner that shows at least part of the parrot breakage? 18:29
dalek ecs: 4634ae4 | TimToady++ | S99-glossary.pod:
RC = Release Candidate
18:30
18:31 MilkmanDan joined 18:32 cognominal joined 18:35 yogan joined 18:44 cognominal left 18:45 cognominal joined
japhb_ Are there any Perl 6 18:45
'ers that will be in the Dublin area mid-September? 18:46
FROGGS not me
japhb_ (I'll be there the week of Sept 15-19, and wondering if I should stay around for a meetup ...)
jnthn probably won't even be in Europe then
japhb_ Don't tell me you'll be in the United States .... 18:47
18:48 cooper- joined
jnthn No :) 18:48
japhb_ timotimo, FROGGS: You're lucky I happen to have seen a highlight here. You both said things in my direction recently, but since I don't backlog #perl6, I would have missed them (yoleaux FTW ... now if we just had it in #moarvm). 18:49
In any case ...
timotimo: Yes, we can change the work calculation for parse-json to incorporate the file length. For doing lots of different json files, I'd just do all of them and sum, as a first approximation. Otherwise ETOOMUCHDATA 18:50
And yes, a match-json (your parse-json-no-actions) test sounds like a good idea. Care to make it? :-) 18:51
The >>.foo versus .map: *.foo comparison sounds interesting 18:52
woolfy japhb: I know that Tim Bunce lives in county Limerick, which hardly is "the Dublin area".
dalek p: 2a9c45d | jnthn++ | src/ (2 files):
Avoid a closure per NFA evaluation.

We achieve this by a re-think of how we work with the NFA cache. Needs a patch to the Rakudo MOP also for its regexes/grammars to work with this change. For CORE.setting this saves a dozen GCs from the code objects produced alone.
18:52 virtualsue joined
japhb_ It would want my long-term idea of being able to overlay multiple plots (to compare different tests) 18:53
woolfy: Ah, interesting.
18:54 cooper_ left
woolfy japhb: lizmat and I will be just back from the Swiss Perl Workshop (5&6 Sept) and we might go to YAPC::brasil (19&20 Sept). We did not give going to Dublin area much thought yet. Any reason we should? 18:54
(Tim is of course not really a Perl 6-er) 18:55
dalek kudo/nom: c9ad800 | jnthn++ | src/Perl6/Metamodel/MethodContainer.nqp:
Support extended NFA cache API.

This supports Cursor optimizations recently made in NQP.
18:56
18:56 cooper_ joined
japhb_ woolfy: No, nothing in particular. Just if there was a hive of 6'ers there, I'd visit it. 18:56
And yeah, knew Tim was not a heavy 6er
eiro what is an enum for NativeCall ? 18:57
jnthn S17-supply/batch.t (I think) is insanely slow.
18:58 denis_boyun_ left
jnthn uniq.t too 18:58
woolfy japhb: lizmat and I are always in for a visit to Ireland, specifically county Clare and surroundings, so now I am disappointed that you don't give me a special reason...
PerlJam woolfy: to see japhb! Maybe in a pub. :)
japhb_ timotimo: Ah, reading on, I can see that you *did* create a new JSON parsing test, thank you. From your graph, it looks like it does more to improve rakudo-moar than nqp-moar, relatively speaking.
TimToady hmm, compiling Test.pm: Cannot find method 'cache_get'
18:59 rurban joined
japhb_ It'll be my first time in Ireland, actually. 18:59
jnthn Guess who doesn't ready commit messages :P
*read
18:59 cognome joined, cognominal__ joined, cognominal left
jnthn TimToady: Just git pull; the Rakudo patch the NQP one needed is in now too 18:59
19:00 cognominal joined
japhb_ FROGGS: Ah, yes, being able to have better control of the scaling than just linear or doubling seems useful. I've particular thought that it might be nice to handle n**2 and n**3 algorithm scaling sanely. 19:00
FROGGS +1 19:01
:o)
19:01 rurban left, rurban joined, Ven left
TimToady jnthn: wasn't clear from that at what point it applied inside rakudo 19:01
19:01 SevenWolf joined 19:02 Ven joined
TimToady should it be faster on compiing rakudo's CORE.setting? doesn't seem to be offhand 19:03
jnthn Here it was around 1.5s faster for me. 19:04
19:04 trick joined, SevenWolf left, trick is now known as Sevenwolf 19:05 virtualsue left
vendethiel m: say so (5 & 7).is-prime 19:11
camelia rakudo-moar 509b1a: OUTPUT«True␤»
19:12 laz3r1c0m joined
laz3r1c0m Hola, mis SaludOS 19:12
tenia una pregunta, estoy siguiendo un curso y me quedo estancado en las referencias
no entiendo del todo bien el concepto de las referencias 19:13
si una referencia hace mencion al lugar de memoria de otro valor, en que se diferencia de una variable, al fin de todo la referencia contiene el valor de memoria
de la otra variable
pero no entiendo el uso que se le da a la misma 19:14
FROGGS laz3r1c0m: I might be able to help if you wrote in english
19:14 cognominal left 19:15 cognominal joined
laz3r1c0m oh sorry 19:15
okay i will try it
FROGGS I could translate a bit using google translate
laz3r1c0m I was studing perl and i cant understand very well the references part
19:16 rurban left
FROGGS laz3r1c0m: is that Perl 5 you are talking about or Perl 6? 19:16
vendethiel (that's perl 5, not perl 6)
19:16 pecastro joined
FROGGS that matters a lot and this here is a Perl 6 specific channel 19:16
laz3r1c0m Look i think like this: " If a reference is a memory direction of a variable, why i should use a direction of memory instead of a direct value "
FROGGS laz3r1c0m: are you talking about Perl 5 or 6? 19:17
laz3r1c0m sorry my ignorance, i think
i still talking about perl 5
eiro any "use warnings qw( FATAL )" in perl6 ?
FROGGS for Perl 5 please go to irc.perl.org #perl-help
laz3r1c0m Thank you FROGGS! 19:18
FROGGS laz3r1c0m: sorry I can't help :/
vendethiel well, you're free to learn about Perl 6 in the process, too :)
eiro definitly :)
FROGGS eiro: m: use fatal; say "{Any}"; # dunno what is fatal with this pragma
laz3r1c0m No matter, thanks for give me the right side to ask : )
FROGGS err
m: use fatal; say "{Any}"
camelia rakudo-moar 509b1a: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/appNSbAmCe:1␤␤␤»
FROGGS m: use fatal; say "{Any}"; say "alive" 19:19
camelia rakudo-moar 509b1a: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/en5bm2oJ9a:1␤␤␤alive␤»
19:19 laz3r1c0m left
eiro exactly what i need! thanks 19:19
vendethiel oh.
m: try { say "{Any}" CATCH { default { say "got it" } }; say "alive" };
camelia rakudo-moar 509b1a: OUTPUT«===SORRY!=== Error while compiling /tmp/0RacuOxtuY␤Two terms in a row␤at /tmp/0RacuOxtuY:1␤------> try { say "{Any}" ⏏CATCH { default { say "got it" } }; say ␤ expecting any of:␤ postfix␤ …»
vendethiel m: try { say "{Any}"; CATCH { default { say "got it" } }; say "alive" } # try implies use fatal 19:20
camelia rakudo-moar 509b1a: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/rCF3Sfzsgi:1␤␤␤alive␤»
vendethiel uh?
FROGGS ?
hoelzro did anyone else see that R* "1.0" post on proggit?
vendethiel I thought `try` implied `use fatal`
eiro ok. i try with the debuger
19:22 Woodi left
FROGGS hoelzro: I did 19:23
19:23 ventica left
eiro and found the error: i don't know how to test/set a NULL repr('CStruct') 19:24
hoelzro FROGGS: I think it's someone trolling =/ 19:25
mainly because it's talking about 1.0 and it's pointing to a 4-year old post =(
FROGGS eiro: OpaquePointer.new should give you a NULL pointer, and then you can cast it to that struct
btyler hoelzro: carlosdelray is educated_foo's troll account, he's been particularly active lately
hoelzro ah ha
btyler see "rakudo jvm put out to pasture" in /r/perl
FROGGS eiro: though, casting *to* the struct should happily explode
btyler just silly stuff 19:26
FROGGS hoelzro: I know he's just trolling, but I can still reply with useful informations for other readers
hoelzro that's true
eiro FROGGS, i'll defer this problem by not handling errors for the moment :) i'm so impatient to have a gtk container loaded ... 19:27
FROGGS *g* 19:28
that's a good attitude
19:29 cognominal left 19:30 cognominal joined 19:32 Ven left 19:35 cognome left, cognome joined, dwarring joined 19:40 rurban joined
ChoHag What would I need to do (install and follow the development of (and anything else?)) to switch to building rakudo without the --gen-* flags? 19:41
And btw threading in moar seems to work despite the code I'm throwing at it. 19:42
hoelzro ChoHag: you'll need a VM (such as Parrot or Moar) and NQP
19:44 cognominal left 19:45 Sevenwolf left, cognominal joined 19:51 kurahaupo joined 19:54 rurban left 19:57 cooper_ left
cognominal__ does Perl 6 expose an abstraction similar to mktemp(3) or tmpfile(3)? 19:57
19:58 cooper_ joined
jnthn I think I recall IO::Spec in CORE having something along those lines 19:59
hoelzro there's tmpdir
19:59 cognominal left
hoelzro but interestingly enough, no mktemp =/ 20:00
20:00 cognominal joined
cognominal__ I see a $*TMPDIR in S16 20:00
20:01 nbrown joined, rurban joined
geekosaur mktemp(3) is considered insecure and obsolete these days 20:01
PerlJam cognominal__: github.com/perlpilot/p6-File-Temp/ 20:02
cognominal__ thx 20:03
PerlJam (panda is your friend too... panda install File::Temp :) 20:04
cognominal__ m: say $*TMPDIR 20:05
camelia rakudo-moar c9ad80: OUTPUT«IO::Path</tmp>␤»
20:05 nbrown left, treehug88 left
cognominal__ Perljam, yes, with moar, it is not unbearably slow anymore. 20:06
PerlJam indeed, moar++
cognominal__ moar++, jnthn++ # chromatic whines on reddit, but there is a time for doing architectural work and a time for fixing bugs. Anyway performancewise, jnthn's work is already paying off and I hope even more so in a few months. 20:10
vendethiel well, spending ten years on some project to see it "go sleeping" might be frustrating, uh. 20:11
the journey is often more interesting; though
cognominal__ jnthn was the prince who waked up the sleeping beauty :) 20:13
TimToady well, unresolved technical debt sometimes produces unresolvable cultural debt
20:17 cognominal left, cognominal joined
vendethiel it definitely does -- who in their right mind would maintain *that* ? 20:20
;-)
TimToady well, nobody in their right mind would maintain *this* either, but we'll leave that be :) 20:21
PerlJam chromatic's problem IMHO, is really one of synchronicity. He and Perl6 fell out of sync and from his perspective, it's all "our fault" (at least that's how it always seems when he comments about p6 these days)
TimToady well, I'm not interested in burning anyone's bridges for them, they can do that themownselves 20:23
20:24 pmurias joined
TimToady Damaged soldiers should not be considered enemy combatants. 20:24
PerlJam chromatic: If you're still watching us from afar, o/ *hug* :-) 20:25
pmurias he does have some valid points, but he is likely bitter from doing a lot of boring work for nothing 20:26
lizmat is catching up on backlog of ~ 8 days 20:27
cognominal__ well, my comment was probably inappropriate.
lizmat [Coke]: wrt to throws_like: are you implying that if any of the subtests is correct, the "todo" will be marked as passed ? (even if other subtests fail?) 20:28
20:29 iarna left
lizmat m: say "Life, the Universe and Everything".WHY # just checking 20:29
camelia rakudo-moar c9ad80: OUTPUT«42␤»
20:30 iarna joined
TimToady m: say "Life, the Universe, and Everything".WHY 20:30
camelia rakudo-moar c9ad80: OUTPUT«(Any)␤»
lizmat TimToady: would that be an English / US grammar distinction? 20:32
or is that comma needed always ?
TimToady no, that would be correct vs incorrect :)
20:32 cognominal left, cognominal joined
lue If you're are interested in clarity of written statements, the oxford comma is always correct :) 20:32
TimToady it's a subject of much debate, but I much prefer the form with the comma because it's less ambiguous, and that's where you put a pause when speaking
lue *you are 20:33
20:33 denis_boyun_ joined
TimToady so it's linguistically correct too 20:33
jnthn And sometimes it can change the meaning of things quite dramatically :D
lizmat in Dutch, having a comma before an "and" is considered incorrect
lue TimToady: same here. There's a song title that confused me for a while until I realized it was missing that final comma, for instance :)
lizmat that much I remember from Dutch class in high school, at least :-)
PerlJam idly wonders if that easter egg will make it to the changelog since it's clearly the subject of several commits ;)
TimToady well, maybe the Dutch teachers were also wrong :) 20:34
PerlJam
.oO( What do the Dutch know about English anyway? ;)
TimToady there've certainly been enough proscriptive/prescriptive English teachers
lue Dutch is just a strange mixture of English and German anyway :P
lizmat PerlJam: I mean in Dutch, a comma before an "en" (which is the Dutch equivalent of "and")
TimToady also is firmly in favor of logical quoting
the typesetters union notwithstanding 20:35
jnthn The thing that burned the Oxford comma rule into my brain was the "We invited the strippers, JFK and Stalin" one :) I'll leave those of you curious enough to search for the illustration that made it unforgettable. :P 20:36
lue TimToady: "I am saying a full sentence." he said. instead of "I am saying a full sentence," he said. ? I prefer not mucking with the punctuation myself (at least put the changes in square brackets, like when you change words in the text :P) 20:37
vendethiel Eh. In france, every teacher will tell you not to put accents on caps. They're all wrong :(
TimToady and the proof-texts for the opposite view tend to be sentence fragments
vendethiel
.oO( so much for our lil' keyboards )
lizmat www.verbicidemagazine.com/wp-conten...-Comma.jpg gives a good visual cue 20:38
lizmat has that now burned in her brain as well :-)
however, the title of the book was without comma: en.wikipedia.org/wiki/Life,_the_Uni...Everything 20:39
timotimo this may be a dumb question ... but how do i ask a socket if the other side has disconnected?
TimToady those were days of dark oppression in many ways
lue lizmat: Well, Adams did go to Cambridge... :) 20:40
timotimo there is no .eof for sockets at least ...
20:40 virtualsue joined
timotimo apparently that just means that .get will give me something undefined .. 20:41
20:41 denis_boyun_ left
TimToady We invited Fred, a bartender, and a clown. <-- usual sort of argument for leaving the comma out 20:41
but this is more properly resolved with parens, We invited Fred (a bartender) and a clown 20:42
We invited Fred (a bartender and a clown)
and leaving out the comman does not preclude the last interpretation in any case 20:43
tadzik like in that joke with 3 guys buried in the same grave
lue You could use em dashes too, if you have a strange aversion to parens. 20:44
dalek kudo/nom: 6663be6 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Oxford Commafication
vendethiel TimToady: cases: 1. 3 people 2. Fred is a bartender. 3. Fred is a group of two people. 4. Fred is only one talented guy
TimToady anyway, we use parens (and sometimes dashes) frequently in modern written English for appostives
vendethiel are there more ?
TimToady so there's no excuse for using commas when it's ambiguous
carlin m: say "Answer to the Ultimate Question of Life, the Universe, and Everything".WHAT 20:45
camelia rakudo-moar c9ad80: OUTPUT«(Str)␤»
vendethiel m: say 42.WHY
camelia rakudo-moar c9ad80: OUTPUT«(Any)␤»
20:46 Ven joined 20:47 cognominal left, cognominal joined
jnthn arrgh 20:48
lue would enjoy the error messages and warnings that would come out of a Slang::English or whatever :) "Ambiguous meaning in comma list without oxford comma; please insert an oxford comma, or separate appositives with parens or dashes, or..."
jnthn finds the bug that was sinking is sink improvemnts...
lizmat
.oO( is it talk like a pirate day already? )
timotimo turns out JSON::Tiny parses the documents i need to parse in 0.1 seconds and i have 3 seconds to calculate and formulate a response
jnthn: yay, fixing sink! 20:49
TimToady Sink me!
jnthn Well, it's not fixing it
lizmat
.oO( what where you sinking? )
20:50
TimToady or was the Scarlet Pimpernel saying "Sync me!"
jnthn It's dealing with the fact that every sinkable statement constructed 12+ QAST nodes which generated a bunch of instructions
20:50 molaf left
TimToady heh, only one instruction in P5 :) 20:50
jnthn And it's such an incredibly common thing that improving it has shaved me close to another second off setting compilation time. 20:51
TimToady: Well, here it's checking if it's concrete, and then if it's got a sink method 20:52
I'm guessing by one instruction you mean one Perl 5 op, rather than one CPU instruction? 20:53
TimToady sure, but all it does is record itself as the current statement, in case we need the line number 20:54
well, and call FREETMPS
which is the equivalent of sink in P5
20:54 ariden__ joined
TimToady at least, that's all it did the last time I looked at it 20:55
20:55 ariden__ is now known as shiroseki
TimToady which was only most of two decades ago :) 20:55
Ven starts fighting the regex war 20:56
jnthn Darn, a few new spectest fails.
[Coke] lizmat: you have subtests. one of the fails. the whole test fails. you mark the whole test TODO, but because one of the subtests passed, the whole test is marked TODO PASSED. yes.
lizmat that shouldn't happen, that's a bug
[Coke] do we have tests of how subtests should work? ;) 20:58
I am basing this off an attempt to fudge a file a few weeks ago.
...er, maybe a week ago, if it's when the wife was in hospital. (she's fine)
lizmat well, I read that earlier today, when backlogging 20:59
[Coke] I can probably come up with a test case if that'd help.
dalek p-js: 01781f3 | (Pawel Murias)++ | tools/build/ (2 files):
"make js-clean" actually does some cleanup
21:00
p-js: 5d0e94c | (Pawel Murias)++ | Configure.pl:
Enable --no-clean option in Configure.pl.
lizmat fwiw, I'm seeing parse times of settings go down below 38 seconds now, jnthn++
[Coke]: testing now myself, don't worry
[Coke] lizmat++ thanks!
21:02 cognominal left, cognominal joined 21:05 kivutar joined
lizmat [Coke]: cannot reproduce in a simple case: gist.github.com/lizmat/c12ccd3b9812f49188b1 21:06
21:08 kurahaupo_mobile joined
lizmat m: use Test; throws_like( { ... }, Exception } # seems the yadayadayada is not caught 21:09
camelia rakudo-moar c9ad80: OUTPUT«===SORRY!=== Error while compiling /tmp/A4u2iX2m7g␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/A4u2iX2m7g:1␤------> e Test; throws_like( { ... }, Exception ⏏} # seems the yadayaday…»
timotimo m: class Test { has Int ($.red, $.green) }; Test.new(:red(1), $green("hello")).say;
lizmat m: use Test; throws_like( { ... }, Exception ) # seems the yadayadayada is not caught
camelia rakudo-moar c9ad80: OUTPUT«===SORRY!=== Error while compiling /tmp/1JR2g40P8Y␤Variable '$green' is not declared␤at /tmp/1JR2g40P8Y:1␤------> en) }; Test.new(:red(1), $green("hello")⏏).say;␤ expecting any of:␤ postfix␤»
rakudo-moar c9ad80: OUTPUT« 1..2␤Unhandled exception: Stub code executed␤ at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12912 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE…»
timotimo m: class Test { has Int ($.red, $.green) }; Test.new(:red(1), :green("hello")).say;
camelia rakudo-moar c9ad80: OUTPUT«Type check failed in assignment to '$!green'; expected 'Int' but got 'Str'␤ in block at src/gen/m-CORE.setting:859␤ in method BUILDALL at src/gen/m-CORE.setting:842␤ in method bless at src/gen/m-CORE.setting:831␤ in method new at src/gen/m-COR…»
timotimo ah, cool
21:11 kurahaupo left
lizmat weirder: looks like the yadayadayada is executed *before* throws_like is called 21:13
hoelzro lizmat: how are you determining that? 21:14
lizmat stack trace with --ll-exception
hoelzro ah ha 21:16
21:16 Ven left 21:17 cognominal left, cognominal joined 21:18 danfinch joined, kurahaupo_mobile is now known as kurahaupo
lizmat hmmm... a "say" in throws_like *is* executed... 21:21
weird
hoelzro I'm wondering if this has something to do with the changes I made to lib/Test.pm, lizmat
lizmat the throws_like regression ? 21:22
or the {...} not being caught ?
hoelzro the latter
I mean, it could be both, or neither
21:23 cognominal left, cognominal joined 21:24 raiph left
dalek kudo/nom: 7cac3a1 | duff++ | docs/ChangeLog:
mention a couple of minor changes in ChangeLog
21:25
21:26 xylixy joined 21:28 xylixy left
lizmat I guess we *do* need tests for Test.pm 21:29
but where would they live?
not in roast, I would think?
as they have nothing to do with Perl 6 ?
m: use Test; throws_like( { die }, Exception ) 21:30
camelia rakudo-moar 6663be: OUTPUT« 1..2␤ ok 1 - code dies␤ ok 2 - right exception type (Exception)␤ok 1 - did we throws_like Exception?␤» 21:31
lizmat m: use Test; throws_like( { ... }, Exception )
camelia rakudo-moar 6663be: OUTPUT« 1..2␤Unhandled exception: Stub code executed␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12912 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE…»
lizmat r: use Test; throws_like( { ... }, Exception )
camelia rakudo-jvm 6663be: OUTPUT«(timeout)»
..rakudo-parrot 6663be: OUTPUT«use of uninitialized value of type Nil in numeric context in sub throws_like at lib/Test.pm:260␤␤ 1..2␤Stub code executed␤current instr.: 'throw' pc 430184 (src/gen/p-CORE.setting.pir:179137) (gen/parrot/CORE.setting:11365)␤called from Sub …»
..rakudo-moar 6663be: OUTPUT« 1..2␤Unhandled exception: Stub code executed␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12912 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE…»
hoelzro lizmat: is anything under lib/ tested? 21:32
lizmat don't think so
hoelzro =/
well, there goes our shot for precedence
PerlJam lizmat: they can live in rakudo/t somewhere. like t/rakudo/01-sanity
hoelzro maybe t/rakudo/libs or something 21:33
PerlJam that'll work too
lizmat perhaps.. but the spectest.data file only knows about files from t/spec downwards 21:34
PerlJam actually, looks like there are some tests for Test.pm in t/02-sanity/99-test-basic.t
lizmat ah, intriguiing
PerlJam er, 01-sanity
21:36 gfldex left
hoelzro that could prove helpful 21:38
21:38 cognominal left
hoelzro I'm not done with Test.pm, so I can try to make those tests better as I go along 21:38
21:38 cognominal joined
lizmat what are you doing to Test.pm (must miss some vital backlog still) 21:38
hoelzro lizmat: making it write to STDOUT/STDERR properly 21:39
lizmat ah, ok
hoelzro you know how Perl 5 will helpfully print diag() and failures to STDERR?
lizmat you were also thinking of expanding Test.pm
hoelzro that's one thing I did
lizmat hoelzro++
PerlJam hoelzro++ indeed.
hoelzro I also made sure that it doesn't write to STDOUT/STDERR directly, but to clones 21:40
so tests can mess with $*OUT and $*ERR without breaking tests
there are a few other things as well
oh!
Test.pm exits with the # of failures now
oh, and test failures report which file/line they happened on 21:41
PerlJam hoelzro: are you gonna make Test::Builder too? :)
hoelzro I was thinking about it
PerlJam I've thought about it at least twice, but never got beyond that. 21:42
hoelzro all of my recent Rakudo work has been due to frustrations while developing a module for Perl 6 =P
so we'll see how much steam I have left after S26 and test-betterer
lizmat please note that Test::Builder in Perl 5 is going through a refactor now, if I remember correctly from OSCON (or was it YAPC::NA?)
hoelzro I heard
I want to add test levels to Test.pm, but I'm not sure what a 6-y interface would look like 21:43
I'm also convinced that todo/skip can be nicer to work with, but I think that's for a different library
seeing as roast and other tests would probably have to be changed =/
PerlJam nicer how? 21:44
dalek p: cbb30f7 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Make a few things as not inlinable.
hoelzro well, the whole skip 'reason', $num_tests; + comments feels wonky to me
I feel like we can do better in Perl 6 21:45
I also want docs =) 21:46
21:46 virtualsue left
PerlJam SKIP blocks and subtests would be better. 21:49
hoelzro I guess there could be two skip impl's 21:50
skip(Str $reason, Int $count)
and skip(&block, Str :$reason) 21:51
PerlJam hoelzro: Is there a roadmap for your S26 work somewhere so that I can see if I can contribute? 21:53
hoelzro yes, there is! 21:54
github.com/perl6/roast/blob/S26-WHY/S26-TODO
21:54 virtualsue joined, shiroseki left
hoelzro let me know if you have any questions 21:55
PerlJam I'll look at it later tonight and ping you if I have questions :)
21:55 akaseki joined
hoelzro cool =) 21:55
btw, it slows down parsing pretty badly atm
but don't get discouraged =) 21:56
21:56 kivutar left 21:59 aoseki joined 22:00 akaseki left 22:03 nbrown joined 22:07 nbrown left
dalek blets: ea553e4 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
cleanup mostly at glossary section A
22:09
jnthn Grr
Well, I can't build Parrot NQP at the moment. :( 22:10
Bunch of errors like this:
stable.obj : error LNK2001: unresolved external symbol __imp_mem_sys_free
stable.obj : error LNK2001: unresolved external symbol __imp_mem_sys_allocate_zeroed
src\vm\parrot\pmc\nqp_group.dll : fatal error LNK1120: 48 unresolved externals
22:11 kivutar joined 22:16 akaseki joined, aoseki left 22:21 cognominal left 22:22 cognominal joined 22:23 virtualsue left
lizmat gets some sleep& 22:24
masak too
22:24 AndChat-188244 joined
masak 'night, #perl6 22:24
jnthn 'night masak, lizmat 22:25
22:26 cognominal left 22:28 pmurias left 22:31 Psyche^_ joined
dalek kudo/nom: a398910 | jnthn++ | src/ (4 files):
Better handling of sink.

On MoarVM, this leads to a smaller QAST trees and much better code generation. On JVM and Parrot, we get the first advantage, and we could improve their code-gen in the future too. Note the Parrot bit of this is untested due to being unable to build NQP Parrot on Win32 at present; the JVM patch worked right off, though, and there's very little reason fro the Parrot one not to. Testing welcome.
22:38
p: 66af960 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Align :!inlinable on Moar with JVM markings.
22:39
22:39 kivutar left
dalek p: f812606 | jnthn++ | tools/build/MOAR_REVISION:
Bump to latest MoarVM for improvements.
22:39
kudo/nom: ae2ffe8 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP revision for assorted improvements.
22:40
22:41 rurban left 22:45 rurban joined 22:58 raiph joined
TimToady starting a p-spectest; how clean should it be? 22:59
jnthn Well, [Coke]++ reported we have junction issues. I wanted to looka t it but I couldn't build an nqp-p, despite some digging. :( 23:01
(Was link error with the PMCs...) 23:02
TimToady p-parse went down about 5 seconds since last time I did it 23:03
23:03 ventica joined
TimToady 99 to 94 seconds, basically 23:04
23:05 chenryn joined
jnthn Nice :) 23:06
timotimo neato 23:09
23:21 kurahaupo left
timotimo the median of parse times is 0.29 seconds, which isn't terrible, but i wouldn't mind a factor of 10 improvement for parsing :) 23:22
23:24 chenryn left, dmol left
timotimo nativecall seems unhappy about nom/master/master at the moment :( 23:27
23:27 itz_ joined
TimToady p-spectest results: gist.github.com/anonymous/192725c26e0d4a3b11b2 23:32
not very pretty
[Coke] jnthn: couldn't build parrot, or couldn't build nqp-p ? 23:33
jnthn [Coke]: nqp-p 23:37
[Coke]: Specifically, a C link error on the dynpmcs
TimToady that's nom/master/master btw 23:38
[Coke] jnthn: were you using default versions or HEAD? 23:41
jnthn [Coke]: PARROT_REVISION; did --gen-parrot
[Coke] roger. testing on os x...
jnthn Yeah. It was about DLL import stuff so I fear it's Windows specific. 23:46
[Coke] bother. 23:47
maybe some symbols that used to be exported that weren't?
jnthn I guessed that and went to look 23:49
But PARROT_EXPORT or so was on them.
[Coke] ... weird. 23:50
installed parrot conflicting?
(sorry, just thinking out loud, basically)
jnthn Unlikely; the link line wasn't referecning an old thing, at least... 23:53
23:56 ventica left