»ö« 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/8w1NZZOTH1Variable '&prefix:<|>' is not declaredat /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/tmpfileCouldn'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/XS0QJpUk7rUnable to parse class definitionat /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 failedFAILED 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/ji2zAR7duPUndeclared 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 failedFAILED 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/r11s7GwFDnUnsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argumentat /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/BXx9KP7F65Calling '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/KN9jiXofHtCouldn'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
|