»ö« 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:07 pmurias left 00:08 andreoss left 00:16 KCL_ joined
masak ooh, I had missed that the space between `-e` and the script string is no longer necessary when invoking `perl6`. neat. 00:26
(whoever implemented that)++
`perl6 -pe '.=indent(4)'` just got one character shorter :) 00:27
Ven masak: :D oooh just learn 'bout indent 00:29
s/^/ / might work though :P
masak yeah, but it doesn't beat .=indent(4) in terms of readability :) 00:30
.indent has a fun history to it -- it was implemented in the setting because we needed it *anyway* for heredocs.
that's a nice form of dogfooding.
also, it took ages to spec it right.
(it's harder than you'd think.)
.indent(*) is lovely, too. 00:32
perhaps the best use of * in the entire language ;)
00:41 kjs_ left
Ven oh? 00:43
masak m: say " one\n two\n three".indent(*) 00:44
camelia rakudo-moar 80b912: OUTPUT«one␤ two␤ three␤»
masak \o/
Ven ...one more indent each line? 00:45
masak here "whatever" means "remove just enough, but no more".
00:45 jack_rabbit joined
Ven oh, it removed the "base" indent basically? 00:45
psch m: say " one\n two\n three".indent(*+1) 00:46
camelia rakudo-moar 80b912: OUTPUT«Cannot call 'indent'; none of these signatures match:␤:(Str: Any $steps where { ... }, *%_)␤:(Str: Any $steps where { ... }, *%_)␤:(Str: Any $steps where { ... }, *%_)␤:(Str: Whatever $steps, *%_)␤ in block <unit> at /tmp/DD4jHrA2Nq:1␤␤»
masak Ven: yeah.
psch aww
masak m: say " one\n two\n three".indent(*).indent(1) 00:47
camelia rakudo-moar 80b912: OUTPUT« one␤ two␤ three␤»
masak psch: yours could be made to work, I guess.
psch: I never even imagined a use case for that one.
Ven masak: that's the first use case I thought of ;-)
masak what, removing the base indent, except one space? 00:48
anyway, feel free to add support for WhateverCode. shouldn't be that hard.
psch i don't really see an actually sensible use case either, tbh 00:49
i was mainly curious
masak what does it mean when panda gives me `Missing or wrong version of dependency 'src/gen/m-CORE.setting'` ?
psch i came across that a bit back as well, and i'm not sure what causes it. fixing it is with make realclean and rebuilding iirc 00:50
rakudo that is, not panda
i'd blindly guess src/gen/ is out of sync with what's in blib 00:51
TimToady I think 'make clean' is sufficient
masak tries
ingy git clean -dxf
TimToady but might need a reconfig
masak did that too :) 00:52
TimToady . config.status
00:52 telex left
TimToady and the config will essentially also do a make clean 00:52
masak still the error message from panda :/ 00:53
TimToady with the reconfig? 00:54
masak I re-ran Configure.pl, yes.
00:54 telex joined
masak now I'm trying it with `. config.status` 00:54
TimToady well, that'll do the same thing you just did
did you give it a prefix?
masak no, I never do that.
I always run from the default install folder. 00:55
TimToady is not particularly panda savvy 00:56
masak I have a /usr/local/bin/perl6 which is supposed to do the same as the one in rakudo's install folder.
right now for me, the two executables md5sum to the same thing. 00:57
TimToady maybe try ingy's git thingie
masak does
TimToady which may be largely equivalent to blowing away install and other created dirs 00:59
masak *nod* 01:00
TimToady well, install/bin
there's git stuff in other dirs
01:00 dayangkun joined
TimToady at which point git reset --hard becomes your friend, if you deleted those things :) 01:01
masak ooh, ingy++'s advice helped.
01:01 dayangkun left
masak TimToady: well, `git clean` and `git reset` are orthogonal, as `clean` only touches un-added stuff. 01:02
masak 's got panda! o/
TimToady Panda ko Panda ga Panda!
01:07 Mso150_w_j left 01:09 Mso150 joined
masak 'night, #perl6 01:14
Ven 'night! 01:22
ingy masak: git clean -dxn # show's what *would* be removed. I have both aliased to gcf and gcn 01:46
01:58 colomon left
raydiak re my earlier question about putting apps in the ecosystem...I don't actually see the aforementioned App:: namespace, panda and farabi appear to have no prefix 02:00
02:01 colomon joined 02:03 yeahnoob joined
raydiak I can kick it off with App::Pray, just confirming that's the direction we want to go 02:03
02:05 raiph left
hobbs well it has some traction in p5, and it seems like a decent idea. 02:05
raydiak has my vote too, so I'll just go with that for now 02:10
02:12 psch left 02:13 chenryn joined 02:19 KCL joined 02:21 KCL_ left 02:23 rurban left, rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:27 colomon left 03:15 Mso150 left
dalek osystem: 60942aa | raydiak++ | META.list:
Add App::Pray to the ecosystem

Sets a precedent for the App:: namespace
03:15
03:16 Mso150 joined 03:36 jack13 joined 03:37 jack13 left 03:38 noganex_ joined 03:41 noganex left 03:47 Ven left 03:55 colomon joined 04:06 yeahnoob left 04:10 adu joined 04:24 yeahnoob joined 04:39 chenryn left 04:45 Sir_Ragnarok joined 05:06 chenryn joined
raydiak so projects.json has updated twice since I added App::Pray to META.list, but it's still not there...nor is it in errors.json; modules.perl6.org picked it up just fine though 05:16
adu projects.json? is that on the modules site? 05:29
05:30 yeahnoob left 05:33 yeahnoob joined 05:43 Mso150 left 05:45 Mso150 joined, sirdancealot left, yeahnoob left 05:51 jack_rabbit left 05:58 yeahnoob joined 06:00 sirdancealot joined 06:06 kaare__ joined 06:14 chenryn left 06:17 chenryn joined
raydiak adu: ecosystem-api.p6c.org/projects.json is where panda gets its info from (among other things, I'm sure) 06:32
adu ok 06:34
is C::Parser there yet? 06:35
raydiak uh, actually...no...???... 06:36
adu why not 06:37
raydiak it's supposed to update once an hour, but obviously something is wrong
we moved a bunch of stuff to a big beefy new server recently, mayhaps something to do with that
.tell moritz projects.json doesn't seem to have been finding new additions to the ecosystem since some time between December 7 and 27, even 007 isn't there yet 06:41
yoleaux raydiak: I'll pass your message to moritz.
06:51 [particle] left
dalek osystem: 724a0f1 | moritz++ | server/ (18 files):
Generate JSON files statically

also generate an errors.json file with error messages per URL
07:10
osystem: ee73bd1 | moritz++ | server/ (18 files):
Merge branch 'static'
moritz .tell raydiak the server was stuck on branch 'static', my fault 07:11
yoleaux 06:41Z <raydiak> moritz: projects.json doesn't seem to have been finding new additions to the ecosystem since some time between December 7 and 27, even 007 isn't there yet
moritz: I'll pass your message to raydiak.
raydiak thank you moritz++ :) 07:12
yoleaux 07:11Z <moritz> raydiak: the server was stuck on branch 'static', my fault
raydiak adu: you should be able to "panda update" then "panda install C::Parser" now, if you wanted to try it out 07:16
adu yey
masak morning, #perl6 07:22
raydiak and the fastest raytracing test today is actually on parrot...but only because it fails all the intersection checks for some reason, and gives an empty image
g'morning masak
adu morning masak 07:40
07:56 xfix joined
moritz morning masak, adu, * 07:59
moritz guesses it's not morning for raydiak++ 08:00
adu moritz: It's 3am for me
I should be sleeping
moritz so, morning :-)
08:08 konsolebox joined
raydiak oh it's a bit after midnight now, but sure doesn't *feel* like what I would call "morning" 08:21
08:24 darutoko joined
JimmyZ .tell japhb Did you want add README in both nqp and perl6? about benchmark repo 08:26
yoleaux JimmyZ: I'll pass your message to japhb.
08:33 jluis joined 08:38 Akagi201 joined
adu is there a way to pretty print $x.perl? 08:47
08:49 Mso150 left
raydiak there's also .gist which may or may not be suitable depending on what you want 08:51
afk
back for bit before bed 09:02
09:05 anaeem1 joined
adu raydiak: hey 09:12
09:13 anaeem1 left
adu raydiak: pastie.org/pastes/9812095/text 09:14
09:14 rurban joined 09:17 anaeem1_ joined 09:18 molaf_ joined 09:21 molaf left
raydiak oh, looking 09:22
adu :)
it's working
raydiak oh nice, I see 09:23
adu++ :)
adu :D
raydiak that gcc tip in the README should help out a lot too, I meant to ask you if it does preprocessor stuff 09:26
adu nope, but gcc does preprocessor stuff 09:28
raydiak: www.researchgate.net/publication/39...82f723.pdf 09:31
I was thinking of using something like this for the preprocessor
09:31 virtualsue joined
raydiak bit much for me to grok atm, but glad you're thinking about it :) 09:34
btw I don't think "fgrep -v '#'" is what you want so much as "grep -v '^#'" 09:36
adu You're right 09:37
I fixed the readme
raydiak cool 09:39
JimmyZ uses ack-grep instead of grep 09:55
raydiak "extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));" does not parse 09:57
adu: also I assume it's because you're working on stuff in there, but a bunch of your tests are failing 09:58
adu raydiak: __attribute__ is unimplemented
pjablons stupid question (as mine tend to be): what's the preferred container for a simple binary string? buf8?
raydiak ah...I have no idea what it is, just that it's in zmq.h
adu raydiak: __attribute__ is a GNU extension to C 09:59
raydiak oh one of the other grammars you mention not existing yet in the readme
JimmyZ pjablons: Blob?
pjablons JimmyZ: Blob is immutable. from what I understand, if you're actually going to be fiddling with it, buf* is the mutable version 10:00
adu raydiak: I'm trying to design C::Parser to accept language tokens (c99, c11, gnu99, gnu11, etc. just like GCC calls them)
10:01 mr-foobar joined
moritz afk, travel& 10:01
pjablons what's the difference between buf8, buf32, etc? 10:02
10:02 konsolebox left
JimmyZ pjablons: design.perl6.org/S02.html#The_Buf_Type 10:02
JimmyZ decomutes
10:04 virtualsue left
pjablons looks like buf1 is what i'm looking for 10:04
raydiak okay I'm fading fast...\o #perl6 10:15
10:21 virtualsue joined 10:25 H2O1 joined 10:26 H2O1 left 10:37 konsolebox joined 10:56 jluis left
lizmat m: sub a(|c) { |c } # Variable ??? 11:13
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/8w1NZZOTH1␤Variable '&prefix:<|>' is not declared␤at /tmp/8w1NZZOTH1:1␤------> sub a(|c) { ⏏|c } # Variable ???␤»
11:19 kjs_ joined 11:21 Akagi201 left
dalek line-Perl5/create_used_packages: 2f4d4e4 | (Stefan Seifert)++ | / (2 files):
Create a Perl 6 package for use'd Perl 5 modules.

Allows: BEGIN $p5.use('Data::Dumper'); my $dumper = Data::Dumper.new(perl5 => $p5, [{a => 1}]); say $dumper.Dump;
11:22
osystem: 231a5c9 | FROGGS++ | META.list:
add IDNA::Punycode
11:22 chenryn left 11:23 denis_boyun_ joined
masak [D 11:25
FROGGS__ O.o 11:26
11:46 rindolf joined
masak huh. I'd never had a chair walk across my keyboard before. odd. 11:50
11:52 denis_boyun_ left, denis_boyun joined 12:05 adu left
dalek line-Perl5: 546bd09 | (Stefan Seifert)++ | / (2 files):
Create a Perl 6 package for use'd Perl 5 modules.

Allows: BEGIN $p5.use('Data::Dumper'); my $dumper = Data::Dumper.new(perl5 => $p5, [{a => 1}]); say $dumper.Dump;
12:06
masak my dream/vision for this year's YAPC::EU -- provided I make it -- is to revisit November, to re-create it with modern Perl 6 tech. 12:11
ideally that'd just be a super-simple LEGO-like putting together of a few modules, and done. 12:12
nine m: BEGIN GLOBAL::<Test> = class { }; Test.new;
camelia rakudo-moar 80b912: OUTPUT«===SORRY!===␤Object of type <anon> in QAST::WVal, but not in SC␤»
masak if I start thinking about it now, I can probably provide the modules that we don't have yet.
or improve the ones we do have, but that could be better.
nine masak: sounds like a great idea! It's a shame that all the Perl 6 related websites run on other languages... 12:13
masak _sri: you're my go-to websockets guy, hence this question: if websockets are the future, is the idea of a "Save" or "Update" button (for blog posts or wiki pages or the like) totally passé? should it be all saved, all the time? 12:14
nine: we can do wonders on the web front if we just put out mind to it. we do have the speed now. and the stability. and it'll just get better.
nine masak: when preparing my Inline::Perl5 talk I thought "it's cool that we can use Catalyst in Perl 6 now, but also much of Catalyst could be simplified greatly if it were written in Perl 6" 12:15
Traits and signatures really is all you need for decent dispatch and you get them for free in Perl 6. 12:16
masak ooh 12:21
I would love to brainstorm such ideas in some form somewhere.
throw out some PoC mini-Catalyst code that implemented a wiki in Almost No Code At All. 12:22
sjn masak: where's November located these days, btw? 12:23
nine Absolutely! Catalyst actually is already a shrinking target. They move more and more code to PSGI middlewares where it can be reused easily in other frameworks. I would suggest actually using Perl 5's PSGI as base and concentrating on the high level API. Because that's where Perl 6's strengths can really show. 12:26
That way one instantly gains all the deployment options like starman, FastCGI, and so on. Working Cookie and session handling and other interesting middlewares. 12:28
Timbus sixplack 12:33
12:33 Akagi201 joined, rindolf left
masak sjn: still at github.com/viklund/november 12:35
sjn: probably deeply bitrotted by now.
_sri masak: no, both are valid designs 12:37
pjablons is buf1 not a thing?
_sri nine: actually, the catalyst code has only been growing
masak _sri: are there known forces determining when one is preferable over the other?
12:38 anaeem1_ left
_sri masak: matter of taste 12:38
masak _sri: I really like Gmail's (and other products') preference of undoing over confirming actions. I wonder if it's a known thing.
a well-known design pattern, I mean.
_sri you don't even need websockets, all that can be done with ajax too 12:39
websockets would just be an optimization 12:40
12:41 Akagi201 left 12:42 Akagi201 joined
arnsholt pjablons: The number is the bitwidth of the items, so I don't think we've thought much about buf1 yet, no 12:42
masak _sri: ok. I distinctly remember you proselytize them here on channel a year or so ago, though. :)
pjablons arnsholt: Out of pure curiosity, is there much of a backend difference between buf1 and buf8? 12:44
arnsholt A bit, probably, since the byte is generally the smallest convenient unit in C 12:45
For a bit-array, you'll have to do a bit more work to extract the values you want (just a few more bitops though)
_sri masak: "the future" is http2, which is a terrible protocol 12:46
pjablons So at the moment, if I want a reasonably pure binary string, I should just suck it up and use a buf8? 12:47
_sri (ietf last call for http2 ends in like a week)
12:54 dj_goku_ joined, dj_goku left, dj_goku_ left, dj_goku_ joined 12:59 xfix left, kjs_ left
nine _sri: in what areas is the Catalyst codebase growing? 13:02
masak _sri: :/
_sri: I don't know enough about http2 to be saddened by that, except perhaps indirectly. 13:03
but I have seen enough improving and self-correcting standards lately (especially the ES6 and ES7 ones) to have a glimmer of hope.
13:10 denis_boyun left 13:13 gfldex joined
nine I'm now creating a Perl 6 class for every imported Perl 5 module. These classes inherit from Inline::Perl5::Perl5Package. Perl5Package's methods need a reference to the Inline::Perl5 object. I would like to store these in the created classes. How would I do that? 13:14
Create a role to store this reference and have $class.^does(Perl5PackageWrapper); $class.perl5 = self;? 13:16
13:16 sirdancealot left 13:22 pmurias joined
nine Should probably be $class does Perl5PackageWrapper but that gives me a "Cannot use 'does' operator with a type object." 13:24
13:30 xfix joined
masak _sri: is there a canonical websockets application demo somewhere, that people use to inform themselves about how to use websockets (and create APIs for them) in practice? 13:30
13:31 telex left, xfix left 13:32 telex joined 13:43 yeahnoob|2 joined 13:44 green_ joined
_sri masak: no 13:48
green_ is it possible to get perl6 compiler on freebsd10? 13:49
13:54 Rounin joined
green_ How I can specify CC in Configure.pl instead of clang? 13:59
14:00 kjs_ joined, Ven joined
bartolin green_: I'm running daily builds of Moar, Parrot and JVM on FreeBSD 10. 14:00
14:01 Ven left
nwc10 green_: --cc= 14:01
you might also need --ld=
masak _sri: is it so intuitive to use websockets that no demonstration is necessary? or is there just a keenly felt lack of good examples?
bartolin green_: only for Parrot I have to pass --parrot-option="--link=c++"
masak this was a weird one: rt.perl.org/Ticket/Display.html?id=123541
I wouldn't mind if someone could try and reproduce it. 14:02
nwc10 green_: you might want to look at Configure.pl --help
bartolin green_: (those answers where only about your first question.)
lizmat masak: have you tried dropping the "our" from the sub def? 14:03
nine masak: for a cute little websockets using application have a look at net.muddasheep.com/nodecity/ 14:05
masak: websockets code in net.muddasheep.com/nodecity/scripts.js
_sri masak: it's so easy we have a full example on the frontpage mojolicio.us 14:07
masak lizmat: yes. doing so makes the unexpected behavior ("undeclared x") persist. 14:09
nine, _sri: thank you both. 14:10
lizmat ok. OOC, what was the reason you used "our" in the first place ?
masak lizmat: I... I think I usually use `our` on subs I export.
lizmat: it gives the user the choice between x() and M::x() 14:11
lizmat fwiw, I think using M::x() is really bad
masak matter of taste, methinks.
_sri masak: thing is, you could do most of this stuff for many many years with ajax and long polling, but now with websockets it has become super simple
lizmat especially in the future where we have multiple versions of the same module loaded
masak I've heard people argue for using M::x() everywhere for clarity.
lizmat I think that's P5 think 14:12
masak lizmat: I don't see why multiple versions would have anything to do with the M::x() notation.
lizmat: regardless of how you call the sub, it comes from some version of the module, no?
lizmat not necessarily: I would think that the M:: in your call is the shortname of the module 14:13
masak _sri: you sound like you're not arguing for it being the "next big thing" the way you were. or did I interpret you wrongly back then?
_sri: the message I heard from you back then was basically that this would transform the web as we know it.
lizmat use Foo:name<M>; M::x # x comes from Fii
Foo
_sri masak: dunno, websockets are just the new normal now
masak not for me; apparently I haven't kept up ;)
nine Websockets are clearly the best solution for server push applications. But not all applications are of that kind. 14:14
masak _sri: is there a sense in which REST and websockets are (a) at odds, and it requires careful design to do both well together, or (b) mutually empowering, and there are hidden advantages to be reaped?
_sri masak: just yesterday i've stumbled over this page where stackoverflow mentions that they handle 260k concurrent websockets stackexchange.com/performance 14:15
nine Oh I hate this "Object of type Data::Dumper in QAST::WVal, but not in SC" error!
_sri masak: no, REST and websockets are different tools for different jobs 14:16
they work perfectly fine together
some purists don't like websockets, but that doesn't really matter 14:17
masak: there's also webrtc now, which is yet another tool for another job 14:18
14:19 KCL_ joined
_sri and spdy, which is a special case because the server can push content directly into the browser cache (same thing http2 will do) 14:19
the web is very diverse these days 14:20
14:22 KCL left 14:24 xfix joined 14:26 yeahnoob|2 left
dalek kudo/nom: 1983f42 | lizmat++ | src/core/Exception.pm:
Make binding errors simpler and sturdier
14:27
14:28 Ven joined 14:33 araujo left 14:35 araujo joined, risou_awy is now known as risou 14:36 ajr joined, ajr is now known as Guest64533, Guest64533 is now known as ajr_ 14:38 konsolebox left
nine Can someone explain to me where this "Object of type Test::More in QAST::WVal, but not in SC" message is coming from? This behavior doesn't make any sense at all. 14:38
14:39 yeahnoob|2 joined
lizmat in P6 there is no Test::More, so I assume it's coming from P5 somehow ? 14:39
nine In this case Test::More is a class I create at runtime using this code: gist.github.com/niner/565aa3cfb26897c27d63
If I move the %perl5_for_imported_packages{$module} := self; line to the end of the sub I get the error even sooner which does not make any sense. 14:40
lizmat have you tried with --optimize=off ? 14:42
nine lizmat: does not change anything 14:43
lizmat :-( bin ich ja überfragt :-(
14:45 zakharyas joined
green_ bartolin, can you please share how you run Configure.pl script? I experienced an error on linking libmoar.so. it seems I'm doing something wrong 14:46
14:48 raiph joined
FROGGS__ nine: that error means that an object is put in a world-val (WVal) probably in Perl6::Actions, but it was not added to the serialization context 14:48
seems to be a bug in Perl6::Actions
nine: did you golf it down yet? 14:49
nine FROGGS__: at it
14:49 xinming left 14:52 Ven left
nine It's difficult since the error appears/disappears with changes to seemingly unrelated code. 14:54
FROGGS__ :/ 14:55
14:56 xinming joined
nine It doesn't exactly help that I have no idea when I need := or when a plain normal = would suffice. 14:57
m: my $class = Metamodel::ClassHOW.new_type(name => 'Test'); $class.HOW.compose($class); 14:59
camelia rakudo-moar 80b912: OUTPUT«(signal SEGV)»
nine m: my $class := Metamodel::ClassHOW.new_type(name => 'Test'); $class.HOW.compose($class); 15:00
camelia ( no output )
15:08 konsolebox joined
bartolin green_: my scripts for the daily builds are here github.com/usev6/perl6-roast-data/...master/bin 15:08
green_: for Moar I'm only doing "perl Configure.pl --gen-moar --gen-nqp --backends=moar", basically 15:09
green_ bartolin, ok, thank you!
nine Replacing the whole metamodel code with an EVAL "class GLOBAL::$module is Perl5Package \{ \}"; seems to get rid of the whole problem. 15:11
lizmat nine: seems like a good temp solution
15:11 Ven joined
nine Now I only need to find out how to add a fallback for class methods. Perl5Package.^add_fallback(...) doesn't seem to do it. 15:12
bartolin green_: btw, I have installed gcc with 'pkg install gcc'
15:13 Mso150 joined
lizmat nine: FALLBACK works now 15:15
15:17 rindolf joined
nine lizmat: great :) 15:17
FROGGS__ m: say $*DISTRO.name 15:19
camelia rakudo-moar 80b912: OUTPUT«opensuse␤»
FROGGS__ m: say $*DISTRO 15:20
camelia rakudo-moar 80b912: OUTPUT«opensuse (13.2.Harlequin)␤»
FROGGS__ m: say $*KERNEL
camelia rakudo-moar 80b912: OUTPUT«linux (1.SMP.Wed.Dec.17.18.0.44.UTC.2014.762.f.27.a)␤»
FROGGS__ m: say $*KERNEL.name
camelia rakudo-moar 80b912: OUTPUT«linux␤»
FROGGS__ hmmm
does that say 'windows' on windows?
and... what does that say on osx? that seems to have changed recently
15:21 yeahnoob left
lizmat $ 6 'say $*DISTRO.name' 15:21
macosx
FROGGS__ thanks :o)
lizmat $ 6 'say $*DISTRO'
macosx (10.10.1)
$ 6 'say $*KERNEL'
darwin (14.0.0)
FROGGS__ okay, that makes sense 15:22
lizmat $ 6 'say $*KERNEL.name'
darwin
15:22 kjs_ left
FROGGS__ the good thing about cpandatesters is that it records dumps of $*VM, $*DISTRO, $*KERNAL and $*PERL... so I can fix the reports 15:23
lizmat :-) 15:25
dalek line-Perl5: 555fb84 | (Stefan Seifert)++ | / (2 files):
Support calling package functions as class methods of imported Perl 5 packages.

Allows for: BEGIN $p5.use('Test::More'); Test::More.ok(1);
Replaced the code creating the Perl 6 class by a simple EVAL to get around
  "Object of type Foo in QAST::WVal, but not in SC" errors.
15:26
Ven nine++
15:28 psch joined
psch hi #perl6 \o 15:28
dalek kudo/newio: 1983f42 | lizmat++ | src/core/Exception.pm:
Make binding errors simpler and sturdier
15:29
kudo/newio: 16053a8 | lizmat++ | src/core/Exception.pm:
Merge branch 'nom' into newio
kudo/newio: b8eafe5 | lizmat++ | src/core/IO/Locally.pm:
IO::Locally is not just for existing paths
kudo/newio: 2aa5471 | lizmat++ | src/core/IO/Handle.pm:
IO::Handle now also consumes IO::Locally
nine That's not yet perfect however. There's no distinction yet between P5 package functions and package methods. So for a real package method call one has to pass the package name as first parameter: Catalyst::ScriptRunner.run('Catalyst::ScriptRunner', 'XStats', 'Server');
15:30 kjs_ joined
nine Is there a way to have a fallback for fully qualified method names like Catalyst::ScriptRunner::run? 15:30
FROGGS__ that's a sub, and I think there is no fallback 15:31
I mean, you can check if the symbol is null...
m: say &Catalyst::ScriptRunner::run
camelia rakudo-moar 80b912: OUTPUT«(Any)␤»
FROGGS__ but that's it
dalek kudo/newio: 81ef49b | lizmat++ | src/core/IO/Handle.pm:
an IO::Handle is not a dir and is a file
15:32
lizmat afk for a bit& 15:33
15:34 yeahnoob|2 left 15:38 green_ left 15:39 dj_goku_ left
dalek ast: a543b07 | usev6++ | S32-hash/pairs.t:
Add tests for RT #117935
15:39
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117935
line-Perl5: 3910120 | (Stefan Seifert)++ | / (2 files):
Support use Foo:from<perl5>; to load Perl 5 modules in Perl 6

Register a module loader for "perl5" on loading Inline::Perl5.
Allows for: use Inline::Perl5; use Test::More:from<perl5>; Test::More.ok(1);
15:56
nine Please have a look at this commit ^^^ and tell me if that is a somewhat sane way to do this. 15:57
FROGGS__ I guess it is sane 15:59
psch i'm wondering if we'd rather have :from<Perl5>, seeing as we're deprecating :from<java> for :from<Java>
but that's the module authors decision i guess
FROGGS__ psch: true 16:00
psch aside from that i agree with FROGGS__
FROGGS__ I was under the impression that :from<Perl5> was taken by v5, but that's not true as you don't load v5 too
as long*
psch oh, i didn't consider that 16:01
i suppose with more of S22 either of v5 and Inline::Perl5 can offer use :from<Perl5> 16:02
Ven nine: seems sane *and* amazing.
nine Well one could argue that lower case "perl" is the name of the Perl 5 binary. Since Inline::Perl5 uses the accompanying shared library, a lower case "perl5" can be seen as a hint to Inline::Perl5. But that's just me trying to add meaning to an arbitrary decision :)
FROGGS__ we already can do that, you just cannot use both at the same time
nine: yes, but :from is meant to be about a language... but I understand that hint :o) 16:03
nine I can change it to "Perl5" right away if that's the new way to follow.
FROGGS__ +1 from me fwiw 16:04
Ven I think we have ":from<Java>" as the correct form, so +1 for Perl5 16:05
psch Ven: we don't have it yet, it's in my PR though
so +1 from me as well :)
Ven psch: sorry, sorry ;-)
16:05 dj_goku joined
FROGGS__ I thought it was applied already 16:05
psch FROGGS__: no, only the NQP branch has been merged afaik 16:06
github.com/rakudo/rakudo/pull/344 still open :)
dalek line-Perl5: 3c10ff3 | (Stefan Seifert)++ | / (2 files):
Register Inline::Perl5 as "Perl5" module loader instead of "perl5"

Title case seems to be the preferred way according to IRC discussion at 2015-01-04 16:00 UTC
psch iirc moritz++ said there's no new spectest failures, but i guess he didn't finish re-spectesting before bedtime yesterday 16:07
FROGGS__ psch: there is no spectest regression I guess?
ahh
16:07 anaeem1_ joined, [TuxCM] left
FROGGS__ psch: what's that about? github.com/peschwa/rakudo/commit/4...117d40f81b 16:08
16:08 [TuxCM] joined
psch FROGGS__: currently running perl6-jdb-server doesn't break on enter, suspend=y enables break on enter 16:08
16:08 dj_goku left
FROGGS__ break on enter? 16:08
psch FROGGS__: i figured if one is running the jdb server one wants to set break points before it goes executing everything
FROGGS__ ahh 16:09
dalek kudo/nom: 97599f7 | peschwa++ | tools/build/create-jvm-runner.pl:
Reference the users classpath in the JVM runner.
rakudo/nom: 40076a8 | peschwa++ | tools/build/create-jvm-runner.pl:
rakudo/nom: Always suspend with perl6-jdb-server.
16:09 dalek left
psch FROGGS__: mostly i got tired of editing perl6-jdb-server after each make && make install ;) 16:09
16:09 dalek joined, ChanServ sets mode: +v dalek 16:10 Ven left
FROGGS__ psch: but that does not mean that it stops when it is meant to run the spectests, right? 16:10
psch FROGGS__: no, spectests run via perl6-eval-sever
16:10 dj_goku joined
FROGGS__ ahh, I see 16:10
psch perl6-jdb-server is really mostly for debugging the jvm backend, i can't imagine any other use case 16:11
nine Where exactly is "use" documented? 16:24
Or as a more concrete question: When I use Test::More:from<Perl5>, what is the syntax for passing the import list like tests => 1? 16:25
16:28 kjs_ left
FROGGS__ S11 should talk about that 16:32
16:32 denis_boyun_ joined
nine It talks about that but not enough. Or I just don't understand it. 16:33
lizmat S11 is still slushy 16:34
OTOH, some of this could be considered implementation detail
nine I have a patch that implements it as "use Test::More:from<Perl5>:import<tests 1>;" but I have no idea if that's how Perl 6 should look like. 16:35
psch isn't it just "use Foo <bar>;"? 16:36
nine psch: how do you combine that with :from<Perl5>?
psch use Foo:from<Perl5> <bar>;
FROGGS__ m: use Test:from<Perl5> "foo" => 1
camelia rakudo-moar 80b912: OUTPUT«===SORRY!===␤Error while importing from 'Test': no such tag 'foo'␤»
FROGGS__ I'd misuse that syntax
probably
psch nine: that's how i'd combine it. the space makes introduces parameters to &EXPORT of the use'd module 16:37
s/makes//
while :from<> alters the behavior of use itself
FROGGS__ m: use Foo:from<Perl5> <bar 1> # should complain about &EXPORT
camelia rakudo-moar 80b912: OUTPUT«===SORRY!===␤Do not know how to load code from Perl5␤»
FROGGS__ ahh, it complains about that first :o)
16:38 denis_boyun_ left
nine Leaving the question of where I have to implement this EXPORT sub. It's not Perl5Package. 16:43
lizmat in the compunit, but outside the package, I seem to recall :-) 16:45
16:47 zakharyas left
nine lizmat: err....I would interpret this as in the file but not inside the class { ... }. But where do I put it for a class that's EVAL'ed? 16:47
lizmat before the class statement: the string is the compunit there
I mean, -use file- is basically BEGIN EVAL slurp 'file' 16:48
nine Doesn't seem to get called either 16:51
lizmat :-(
nine EVAL "method EXPORT(*@args) \{ warn 'EXPORT'; \%perl5_for_imported_packages\{self.perl.Str\}.invoke(self.perl.Str, 'import', @args.list); \} class GLOBAL::$module is Perl5Package \{ \}"; 16:52
lizmat notives nine has not read her last advent blog post yet 16:54
m: say qq:!c/foo { 42 }/ # so you don't need to escape all {}
camelia rakudo-moar 80b912: OUTPUT«foo { 42 }␤»
bartolin lizmat: yesterday I asked you about an issue with hashes and adverbs. in the meantime I found the relevant piece in S02 -- the current implementation is just right. i updated my gist accordingly: gist.github.com/usev6/3c5d27e558160c152358 16:55
lizmat ah, ok :-)
nine: other than that, I have nothing to add :-(
bartolin lizmat++ ## current implementation for hash adverbs 16:56
lizmat nine: also, qq:!c:!h/.../ to not interpolate hashes 16:57
16:57 denis_boyun_ joined
nine lizmat: you cought me. Thanks for the hint! 16:58
17:03 rurban left
dalek kudo/newio: 516a4a4 | lizmat++ | src/core/IO (2 files):
Add rx and wx file tests
17:06
17:09 Mso150 left 17:10 Mso150 joined
bartolin lizmat: since you mentioned it yesterday: it seems that using simple ternaries instead of infix:<|> in the code which checks for the precence of adverbs for subscriptions makes the operations a bit faster. (see my last comment in gist.github.com/usev6/3c5d27e558160c152358) do you think it would make sense to change that code? 17:10
lizmat benchmark it, I would say :-) 17:12
timotimo bartolin: using a | gives you a junction
so that may be a bad idea, performance-wise 17:13
lizmat yeah, I was thinking that as well yesterday
I guess when I wrote that code, I wasn't aware of that yet
bartolin: if you're interested in speeding up, you might want to try replacing | with || :-)
bartolin lizmat: ok, I'll micro-benchmark a bit further. (for 5000 lookups the ternaries are about 30 percent faster than the current version) 17:16
timotimo huh, only 30% faster?
lizmat I'll take 30% any time :-) 17:17
bartolin m: my %h; %h<a>=1; for ^5000 {%h<a>:p}; END { say now - BEGIN now }
camelia rakudo-moar 80b912: OUTPUT«4.0228318␤»
bartolin that was my simple benchmark. (locally it is 3.5 -> 2.5 seconds) 17:18
timotimo but it's pretty weird that the performance impact of building the junction is lower
dalek ecs/newio: ce469ea | lizmat++ | S16-io.pod:
Some more on IO::Locally
psch $ ./perl6-j -e'{b => 1, a => 1, c => -1}.Mix.roll(100).elems.say'
53
bartolin timotimo: the junctions (current implementation) are slower
psch that's pretty wrong, isn't it..?
lizmat bartolin: I never intended to be junctions, so please fix :-) 17:19
bartolin lizmat: will do, but it will take some time ;-)
timotimo of course they are slower, but i'd expect a much bigger impact
17:20 kjs_ joined
bartolin timotimo: sorry, misunderstood. 17:20
timotimo: but in my simple benchmar other operations are involved and the 30 % are the overall improvement 17:21
psch m: say { a => -10, b => 1, c => 2 }.Mix.roll 17:24
camelia rakudo-moar 80b912: OUTPUT«Nil␤»
psch that's not right either, isn't it?
s/isn't/is/
lizmat m: say ( a => -10, b => 1, c => 2 ).Mix.roll 17:25
camelia rakudo-moar 80b912: OUTPUT«Nil␤»
lizmat m: say ( a => -10, b => 1, c => 2 ).Mix.perl
camelia rakudo-moar 80b912: OUTPUT«("a"=>-10,"b"=>1,"c"=>2).Mix␤»
psch lizmat: i think it's Mix.roll, line Mixy.pm:51 doesn't abs() or skip negative values
i'm not sure how Mixy.roll should behave though 17:26
but having a negative $seen means nothing gets returned
lizmat well, it should ignore any values < 10
<0
m: say ( a => -1, b => 1, c => 2 ).Mix.perl
camelia rakudo-moar 80b912: OUTPUT«("a"=>-1,"b"=>1,"c"=>2).Mix␤»
lizmat m: say ( a => -1, b => 1, c => 2 ).Mix.roll
camelia rakudo-moar 80b912: OUTPUT«c␤»
psch fwiw, this fails spectesting on jvm, but doesn't on moar
m: say {b => 1, a => -100000000000, c => 100000000000}.Mix.roll # is the test 17:27
camelia rakudo-moar 80b912: OUTPUT«Nil␤»
psch err
m: say {b => 1, a => 100000000000, c => -100000000000}.Mix.roll # this one
camelia rakudo-moar 80b912: OUTPUT«a␤»
lizmat m: say ( a => -10, b => 1, c => 2 ).Mix.values
camelia rakudo-moar 80b912: OUTPUT«-10 1 2␤»
psch i'm thinking jvm doesn't preserve hash order but mvm does? 17:28
'cause it reliably fails when the big negative value is further in the front on mvm
lizmat is looking at it 17:29
psch: found it 17:31
hash order is indeed the reason why it (sometimes) works on the JVM
psch i haven't seen it work on jvm in 3 or so spectests runs in the last 2 days, but that's explicitly the test above (this one: {b => 1, a => -100000000000, c => 100000000000}.Mix.roll) 17:32
as in, the test in spectest fails reliably on jvm and passes on moar 17:33
17:33 raiph left
nine That's funny. When I ::($module).WHO<EXPORT> = sub EXPORT(*@args) I get this error: "Error while importing from 'Test::More': no EXPORT sub, but you provided positional argument in the 'use' statement" 17:38
sergot hi o/
nine So it's only complaining about a missing EXPORT sub when I actually add one
lizmat so it sees that you added it, but then can't find it when it wants to act on it 17:40
nine Ok, usually EXPORT seems to be a Perl6::Metamodel::PackageHOW.new 17:41
So when I set it to a sub, it probably tries to call ::($module).WHO<EXPORT>.EXPORT(...)
psch lizmat: if i'm understanding S32:Containers/MixHash/Bag right it should just skip over Pairs with .value < 0? 17:44
synopsebot Link: perlcabal.org/syn/S32.html#Containers
psch S32/Containers:Bag/roll actually i guess 17:45
synopsebot Link: perlcabal.org/syn/S32/Containers.html#Bag
psch although roll doesn't have a link...
dalek kudo/nom: ded7746 | lizmat++ | src/core/Mixy.pm:
Fix problem Mix.roll spotted by psch++
17:50
lizmat feels wrong to iterate twice, but that didn't work for some reason
need to go now, probably the rest of the day& 17:51
17:51 [TuxCM] left 17:54 rurban joined, konsolebox left 17:55 denis_boyun_ left 18:01 Ven joined
dalek line-Perl5: 652c83c | (Stefan Seifert)++ | / (2 files):
Support import lists when loading P5 modules via use Foo:from<Perl5>

Allows for: use Test::More:from<Perl5> <tests 1>;
18:02
nine .tell lizmat I got it! One has to set an EXPORT object (like Metamodel::PackageHOW) _and_ an &EXPORT sub in WHO. 18:03
yoleaux nine: I'll pass your message to lizmat.
Ven nine: what does <tests 1> mean? 18:05
18:08 [Tux] joined 18:10 khisanth_ is now known as Khisanth
mst Ven: it plans tests 18:20
like 'use Test::More tests => 1;' in perl5
Ven oh. oke
mst of course, IME that's a terrible idea
I don't even want to think about how much of my life I've wasted resolving merge conflicts in test plans 18:21
tadzik then again, it can be used for much nicer things too 18:24
import lists, that is
18:24 Mouq joined
mst well, sure, I just dislike that the example is a footgun 18:26
nine: oi :P 18:27
18:27 ajr_ left
nine Well you can't please everyone :) But if know another P5 core module that is as useful for demonstrating such features, I'll use it. 18:29
18:30 vladtz joined
vladtz hi all 18:30
rakudo: 'class Q {}; Q.new;' 18:32
camelia ( no output )
vladtz rakudo: class Q {}; Q.new;
camelia rakudo-{parrot,moar} 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Couldn't find terminator .␤at /tmp/tmpfile:1␤------> class Q {}; Q.new;⏏<EOL>␤»
vladtz Yes I know Q (and little brother q) is quoting, but this way any name starting with Q can't be used ?? 18:34
Ven uh-oh
psch m: class class { }; class.new # related bug, RT #67784 18:35
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=67784
Ven seems like it...?!
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/XS0QJpUk7r␤Unable to parse class definition␤at /tmp/XS0QJpUk7r:1␤------> class class { }; class⏏.new # related bug, RT #67784␤ expecting any of:␤ generic rol…»
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=67784
FROGGS__ I guess it tries to find another '.' as the ending delimiter
m: class Q {}; Q.new; .
camelia ( no output )
FROGGS__ see
std: class Q {}; Q.new; .
camelia std f9b7f55: OUTPUT«ok 00:00 136m␤»
FROGGS__ std: class Q {}; Q.new;
camelia std f9b7f55: OUTPUT«===SORRY!===␤Couldn't find terminator . at /tmp/AVUJUC_nQk line 1 (EOF):␤------> class Q {}; Q.new;⏏<EOL>␤Parse failed␤FAILED 00:00 136m␤»
FROGGS__ and since STD agrees, I don't consider it a bug
Ven seems pretty limitating tho.... 18:36
std: class Qwerty {}; Qwerty.new
camelia std f9b7f55: OUTPUT«ok 00:00 136m␤»
Ven rakudo: class Qwerty {}; Qwerty.new
camelia ( no output )
Ven ... what?
psch for consistency i'd say Q and q should be allowed as class names, if class should be allowed
std: class class {}; class.new
camelia std f9b7f55: OUTPUT«ok 00:00 136m␤» 18:37
Ven psch: you can't, really
m: class Qds{}; Qdds.new
FROGGS__ same goes for s and tr me thinks, but yeah, the keywords for quoting constructs are special here
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/ji2zAR7duP␤Undeclared name:␤ Qdds used at line 1. Did you mean 'Qds'?␤␤»
Ven psch: it's ambiguous, sadly
psch Ven: right, the difference is that . could be a delim
Ven yes.
FROGGS__ m: class Q {}; ::('Q').new; 18:38
camelia ( no output )
FROGGS__ m: class Q {}; say ::('Q').new;
camelia rakudo-moar 80b912: OUTPUT«Q.new()␤»
psch std: class tr {}; tr.new 18:40
camelia std f9b7f55: OUTPUT«===SORRY!===␤Couldn't find terminator . at /tmp/CrtAUSQWrE line 1 (EOF):␤------> class tr {}; tr.new⏏<EOL>␤Parse failed␤FAILED 00:00 136m␤»
psch std: class tr {}; my tr $x .= new 18:41
camelia std f9b7f55: OUTPUT«ok 00:00 137m␤»
psch well, that helps
indirect lookup is more generally applicable though i guess 18:42
Ven well, here, it can't be a quoting construct. same reason as why `class tr` parses, I'll guess 18:44
vladtz m: class Q {}; my Q $q6 .=new;
camelia ( no output )
psch std: class tr{} 18:45
camelia std f9b7f55: OUTPUT«ok 00:00 135m␤»
psch m: class tr{}
camelia ( no output )
vladtz Well, one might not consider it a bug, but I would call it a major usability issue... 18:48
FROGGS__ perl -E 'sub s { 42 }; say s' 18:50
Substitution pattern not terminated at -e line 1.
vladtz: it is the same in Perl 5...
18:51 Mouq left
psch i suppose if there is a usability issue it's that only a select few keywords are forbidden 18:52
but they're all quoting constructors, aren't they
well, it's not even that they're forbidden
FROGGS__ it is just that they are parsed like quoting constructs 18:53
m: sub if { 42 }; say if 42 18:54
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/r11s7GwFDn␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/r11s7GwFDn:1␤------> sub if { 42 }; say ⏏i…»
FROGGS__ that's the same problems
m: sub if { 42 }; say if(42)
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/BXx9KP7F65␤Calling 'if' will never work with argument types (int)␤ Expected: :()␤at /tmp/BXx9KP7F65:1␤------> sub if { 42 }; say ⏏if(42)␤»
FROGGS__ err
m: sub if($x) { $x }; say if(42)
camelia rakudo-moar 80b912: OUTPUT«42␤»
FROGGS__ and there are solutions...
vladtz It is not just Q, but also Qx! 18:55
FROGGS__ here one can also say that this would be a bug... but the parser will parse a bare 'if' like the keyword
vladtz m: class Qa {}; my $q6 = Qa.new;
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/KN9jiXofHt␤Couldn't find terminator .␤at /tmp/KN9jiXofHt:1␤------> class Qa {}; my $q6 = Qa.new;⏏<EOL>␤»
vladtz The fine line here is quote vs. keyword.
FROGGS__ we probably can check for an existing 'Qa' type, in case the thing afterwards could be an op 18:56
but I'd to get TimToady's opinion on that first
18:57 colomon left
vladtz Yes, a change like that is not to be embarked upon lightly. 18:57
Thanks for the help, at least I understand the problem I ran in to. 18:58
19:00 Mso150 left
psch FROGGS__: doesn't that break LTM if we check if the string after the . is a type? 19:02
cause we have to parse it, look if it's an op and if not go back and parse the part before the . as type 19:03
s/as type/as quoteop/
19:04 rurban left
FROGGS__ | <quote_mod> » <![(]> { $qm := $<quote_mod>.Str } <quibble(%*LANG<Q>, $qm)> 19:05
that code block also terminates LTM
psch oh, okay
dalek p: 64a0711 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (2 files):
Correctly block in closefh_i.

Previously we didn't wait for pipes, which among other things broke panda bootstrap. Calling waitFor() instead of exitValue() prevents the JVM from dying and properly blocks until the client process has exited.
19:11
psch raydiak++ for reporting that one
FROGGS__ ohh nice 19:14
pmurias nine: use Test::More:from<Perl5> <tests 1> is an example of a thing that will cause problems with precompilation 19:15
19:16 rhr joined 19:22 Ven left 19:25 kaare__ left, kaare__ joined
nine pmurias: I remembered that when I finally got it working. I'll have a look at how I could do the same with require. 19:27
psch (flapping supply tests)-- 19:28
aside from those jvm spectest is clean now, lizmat++ 19:29
nine pmurias: Or... I could serialize the state as a list of loaded modules with their import parameters and just replay them on unserialization? 19:30
pmurias: would such a thing be possible? 19:31
19:31 raiph joined 19:35 kjs_ left 19:37 ggoebel111111117 left
jnthn Dear message bot, how easy will my evening be? 19:37
yoleaux 2 Jan 2015 16:48Z <lizmat> jnthn: is it correct that we cannot serialize any Lock objects
2 Jan 2015 16:49Z <lizmat> jnthn: if not, is that an omission? or is that something we Just Cannot Do™
2 Jan 2015 22:27Z <lizmat> jnthn: perl6 --ll-exception -e 'CompUnit.new("t/spec/packages/Example/A.pm").precomp' fails with 'Missing serialize REPR function for REPR ReentrantMutex' on Moar
2 Jan 2015 22:27Z <lizmat> jnthn: I would expected it to fail with Could not find Example::C in any of: .... Any ideas?
3 Jan 2015 03:19Z <japhb> jnthn: There's a hang on nqp-m (but not nqp-j) on the threading test I just added to NQP. See github.com/perl6/nqp/commit/96752368eb .
jnthn Aww shucks.
.tell lizmat while we can't serialize the lock state (held or not), serializing lock instances makes sense to me, I think. 19:38
yoleaux jnthn: I'll pass your message to lizmat.
psch also a total 5 TODOs pass on jvm, 4 of which are unicode 6.1 related, the last one is in S22-package-format/local.t, the last test 19:39
o/ jnthn 19:40
masak \o jnthn 19:41
jnthn o/ all
japhb G'day, all! 19:42
yoleaux 08:26Z <JimmyZ> japhb: Did you want add README in both nqp and perl6? about benchmark repo
psch o/ japhb 19:43
19:45 Ven joined
japhb JimmyZ: No need to duplicate, just in the perl6/ subdir is fine; just mention where it is in the nqp/ scripts as well. 19:45
19:45 Rounin left 19:46 risou is now known as risou_awy
jnthn japhb: Time when I can concentrate enough to make good use of the parallel test/benchmark stuff you're doing is on the horizon, probably around a week and a bit away. Thanks for plugging on with it. :) 19:51
pmurias nine: not sure there is a soultion that will just work correctly all the time 19:52
19:53 kjs_ joined
timotimo i'm pretty annoyed by the libuv thread/loop problem we've hit 19:53
even though i don't fully understand the repercussions
japhb jnthn: Oh cool, that helps me prioritize. 19:54
timotimo except it sounds like our I/O (synchronous as well as asynchronous) is going to have a big performance problem :\
19:55 rindolf left
japhb timotimo: Why's that? 19:55
pmurias nine: perlcc which has the same problem as we do fails to handle this 19:56
jnthn timotimo: Unless we pick an awful solution, I don't think there's a real performance risk. Additionally, I'm quite happy that there's a whole bunch of options that will work out with changes behind the abstraction layer. 19:57
timotimo oh, OK
that saves my optimism a tiny bit
psch ah, the passing unicode todos are because i'm running openjdk8 with -source 1.7 instead of openjdk7 19:59
20:00 colomon joined
jnthn timotimo: Also note that the problem hoelzro++ uncovered is entirely with sync I/O; our async stuff is free of these issues by the design it already has. 20:00
timotimo ooooh, ok
that definitely makes it a bit better
20:01 [particle] joined 20:05 darutoko left 20:15 Mouq joined
Mouq psch++ # Java work \o/ 20:19
nine pmurias: is there a way to prevent precompilation of a module?
FROGGS__ nine: no 20:20
nine: though, what you've proposed earlier sounds pretty sane to me
dalek kudo/nom: 2520958 | timotimo++ | src/core/Block.pm:
junctions are expensive (though this isn't hot code)
20:24
jnthn .tell lizmat 7e95c05 in MoarVM should fix your reentrantmutex serialization woes. 20:28
yoleaux jnthn: I'll pass your message to lizmat.
FROGGS__ jnthn: that might also unbreak v5 \o/ 20:30
jnthn \o/
arnsholt jnthn: 6model questions: is there a particular reason boolification is set via the boolspec, but stringification and numification happen via magical methods (Str and Num, IIRC)? 20:34
*question
moritz would guess performance
FROGGS__ me too
so you can put the knowledge somewhere that you don't have to call .Bool 20:35
jnthn arnsholt: There's a .Bool too which is the coercy method
20:35 raiph left
jnthn It's both performance but also a circularity saw, iirc. 20:35
arnsholt Right, the boolspec cuts the circularity for bools. For Snake stringification and numification working the same way would actually be cleaner =) 20:37
jnthn Note that unboxing to native int/num/str is also a low-level thing.
arnsholt Ah, right. That might be what I *actually* want, yeah 20:38
jnthn Well, maybe the best way - at least from a MoarVM perspective - is to emit code that checks if the thing already is a PyString, calls the coercion method if not, and then gets the native thing. 20:39
And then hope that spesh kills the type check and branch in hot paths.
(Which it is capable of.)
arnsholt Hmm. Sounds plausible, I think 20:41
20:43 denis_boyun_ joined 20:44 green_ joined, green_ left 20:46 ggoebel111111117 joined 20:54 kjs_ left 20:57 raiph joined 21:04 b2gills left
dalek ast: 1014935 | usev6++ | S06-signature/optional.t:
Add tests for RT #79288
21:10
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=79288
21:10 vladtz left
FROGGS__ jnthn++ # it helped v5 indeed 21:11
nine: you perhaps can strip these EVAls that made the ReentrantMutex thingy go away
21:12 adu joined
jnthn FROGGS__: yay :) 21:13
adu hi all
FROGGS__ hi adu 21:14
adu so I got 6 tests to pass yesterday
jnthn
.oO( but then I eated them )
FROGGS__ pass? pass to whom? 21:15
jnthn wonders which tests :)
adu FROGGS__: github.com/andydude/p6-c-parser/tree/master/t
my C::Parser
FROGGS__ ahh
jnthn ooh :) 21:16
adu one of these days, it's going to be able to parse all dialects of C! bwahaha
FROGGS__ *g*
I think I have to test that parser 21:17
japhb jnthn: www.youtube.com/watch?v=_K5a4XSy0G4 (... but I ate it)
adu FROGGS__: I only separated it out into its own package/module about a week ago, so beware 21:18
jnthn japhb: :D
21:19 b2gills joined
jnthn Time for some rest. Maybe tomorrow I'll find time to do some other unbusting patch :) 21:19
o/
FROGGS__ gnight jnthn
japhb Good night! 21:20
adu FROGGS__: I would use it without the AST actions if I were you
FROGGS__ okay, will keep that in mind
21:21 anaeem1__ joined 21:24 anaeem1_ left
Mouq TimToady: I'm looking to help with NFA/DFA work; trying to read through NFA.nqp now... is there specific work that needs/oughts to be done? 21:33
TimToady: I understand that we want transformation into DFA when possible, but I also understand that's a pretty difficult project 21:35
TimToady: I saw mentioned in the logs something about something that would generate a graph of the NFA. Would that be useful? Especially with all the debugging code that's had to be put into the NFA class.. 21:36
21:38 kjs_ joined 21:43 xfix left
moritz Mouq: well, one problem is that DFAs tend to be quite big 21:45
21:45 kurahaupo joined
moritz Mouq: sorear tried that for niecza, iirc, with mixed success 21:45
FROGGS__ moritz: btw, I am making progress with the static pages of testers.perl6.org 21:47
moritz FROGGS__++ ! 21:48
21:48 abraxxa joined
FROGGS__ moritz: though... in case the apache is listening on port 80, how do we put the via post received reports into the database? 21:49
arnsholt I think worst-case the DFA is exponentially larger than the NFA
So you've got to choose which bits you want to make deterministic 21:50
moritz FROGGS__: well, options exist. CGI, FastCGI, reverse proxies, mod_$thing
Mouq moritz: Yeah, it's one of those speed/memory trade-offs. It also can't track things as well as an NFA can, AFAIU 21:51
21:51 FROGGS[tab] joined
psch g'night, #perl6 \o 21:53
21:53 psch left
FROGGS__ moritz: k, I'll think about it 21:54
moritz Mouq: I wonder if it would make sense to apply the NFA-to-DFA transformation only to subsets of the NFA, and only where it doesn't explode the state space
timotimo FROGGS__: i always connect my web apps to the 'net via mod_proxy
nine FROGGS__: the EVAL was for "Object of type Foo in QAST::WVal, but not in SC" errors. The ReentrantMutex thingz went away by liz reverting her commit.
moritz but I guess that's not well researched yet 21:55
Mouq moritz: Yeah, and there seem to be many TimToady++ musings on the topic scattered through the logs, but I didn't see a strong direction 21:57
22:03 kaare__ left 22:09 FROGGS__ left 22:12 telex left 22:14 telex joined
moritz sleep& 22:18
Mouq g'night moritz!
22:24 virtualsue left
dalek p: e17879d | (Geoffrey Broadwell)++ | t/concurrency/03-semaphore.t:
Third concurrency test file, including basic single- and multi-threaded semaphore tests. Works fine on both nqp-m and nqp-j.
22:28
22:28 virtualsue joined
raydiak oh nice psch++ fixed that jvm problem 22:28
timotimo japhb++ # doing very important work 22:29
and with that i'm off to sleep
japhb Thanks. :-)
Have a good night!
raydiak night timo o/
22:31 mr-foobar left
raydiak unfortunately now the make step for rakudo dies very early on for me 22:31
src/vm/jvm/runtime/org/perl6/rakudo/RakudoJavaInterop.java:361: error: MethodContext() has protected access in MethodContext
timotimo may need to perl Configure.pl again?
raydiak blew the whole dir out of rakudobrew already, same result
timotimo OK 22:32
raydiak (and same error for line 477, s/Method/Class/, if anyone is looking at it) 22:34
22:34 Mouq left 22:42 Mouq joined 22:56 FROGGS joined 23:00 kjs_ left 23:06 FROGGS left 23:07 danaj joined 23:11 araujo left 23:12 araujo joined 23:16 araujo left 23:18 FROGGS joined 23:27 risou_awy is now known as risou, abraxxa left
masak 'night, #perl6 23:39
23:41 denis_boyun_ left 23:43 denis_boyun joined, abraxxa joined 23:49 denis_boyun left 23:50 Mouq left, virtualsue left 23:59 fwilson joined