MasterDuke | ok, so i (think i) pretty much have line directives implemented in nqp | 01:11 | |
in HLL::Compiler.lineof | 01:12 | ||
however, to make it more general solution, the line number in the directives in m-CORE.setting should be -1 instead of 1 (since there's the directive itself plus a blank line added) | 01:13 | ||
would anybody mind if i were to change that? | 01:14 | ||
hmm, it doesn't like -1, but 0 and removing the blank line works fine | 01:44 | ||
lizmat | then please do remove the blank line: it was just added for clarity when perusing the generated setting | 06:42 | |
MasterDuke: with your patch, much of that won't be needed anymore :-) | |||
Files=1153, Tests=53736, 21 | |||
Files=1153, Tests=53736, 210 wallclock secs (12.55 usr 3.90 sys + 1284.05 cusr 122.70 csys = 1423.20 CPU) | |||
commute to T-Dose: t-dose.org | 07:24 | ||
RabidGravy | boom! | 09:16 | |
psch | good news! r-j still builds fine on hack | 09:48 | |
yoleaux2 | 7 Nov 2016 20:25Z <viki> psch: I disabled JVM reporting again on Travis. It frequently gives OutOfMemoryError; dunno if it's just Travis? RT: rt.perl.org/Ticket/Display.html?id=130043 | ||
psch | except that's actually bad news because it means travis is either ignoring some of our -Xm* settings or doing something else that's weird | ||
lizmat waves from T-Dose | 09:49 | ||
psch | hey lizmat o/ | ||
lizmat | psch \o | 09:50 | |
DrForr | o/ | 10:03 | |
[TuxCM] | This is Rakudo version 2016.10-263-gfc6d4f3 built on MoarVM version 2016.10-44-g4c9fd00 | 10:27 | |
csv-ip5xs 2.964 | |||
test 13.807 | |||
test-t 6.335 | |||
csv-parser 15.094 | |||
bartolin | r: say (42, 43, 44).antipairs.perl | 10:42 | |
camelia | rakudo-jvm 8d357a, rakudo-moar fc6d4f: OUTPUT«(42 => 0, 43 => 1, 44 => 2).Seq» | ||
bartolin | ^^ gives '(42 => 2, 43 => 2, 44 => 2).Seq' on recent r-j | ||
timotimo | oh, there must be a decont missing somewhere | ||
bartolin | seems to happen after c5c600112561 | ||
hmm, maybe I'll have time to look at it later this weekend | 10:44 | ||
psch | i wonder how much we have to stuff on top of NC to make it work for objective c... | 10:45 | |
seeing as i'm working in a mac shop now we clearly need obj-c interop :P | |||
bartolin | oh hai psch o/ | 10:46 | |
psch | hey bartolin o/ | ||
but yeah, the antipairs thingy could be a missing decont in the Pair.new call | 10:47 | ||
...i think, maybe | 10:48 | ||
huh, there's an aweful lot of "This is Rakudo version * built on JVM implementing Perl 6.c." output during spectest o.o | 10:50 | ||
like, probably something around 30 or 40 times by now | |||
nine | Wow, what makes csv-ip5xs that much faster? | 11:42 | |
timotimo | there was one change about nativecall, but that was just making sure it's not racy when setting up its return type | 11:43 | |
so it shouldn't actually be any faster | |||
nine | Maybe something improved startup or module loading time? | 11:44 | |
timotimo | perhaps | ||
but 0.1s? | |||
or 0.2s? that's massive for a startup improvement | |||
is someone looking into the antipairs bug? or are we getting an RT for it? | 11:46 | ||
lizmat | please RT it, will look at it then | ||
and if someone could write tests for it :-) | |||
star: say (42, 43, 44).antipairs.perl | 11:50 | ||
camelia | star-m 2016.04: OUTPUT«(42 => 0, 43 => 1, 44 => 2).Seq» | ||
timotimo | only on -j | ||
the -j commit camelia's on is 3 weeks old | 11:51 | ||
dalek | kudo/nom: 7d711ee | lizmat++ | src/core/ (3 files): Restore @a[Enum] behaviour Apparently this got broken a while ago, and not noticed in tests. |
11:53 | |
nine | camelia's jvm compilation fails with: java.lang.RuntimeException: Missing or wrong version of dependency 'gen/jvm/stage2/QRegex.nqp' | 11:56 | |
I guess removing /home/camelia/rakudo-j-inst-2/* will help | 11:57 | ||
Well, can't hurt anyway :) | |||
bartolin | timotimo, lizmat I'm testing a fix for the antipairs bug (adding a nqp::decont as timotimo++ suggested) | 12:02 | |
timotimo | cool | ||
lizmat | $key being a native, decont is not going to bring much I'm afraid | ||
lizmat is also testing a patch | 12:03 | ||
bartolin | the above code works as expected after adding a nqp::decont | ||
lizmat | but compiling the JVM takes sooooo long | ||
it does? | |||
bartolin | lizmat++ -- feel free to add your patch :-) | ||
lizmat | that must be a side-effect of the decont() | 12:04 | |
bartolin | yeah, I'm not sure why that decont() helps ... | ||
lizmat | at least another 3 mins before I can test my patch :- | 12:05 | |
( | |||
bartolin: $ ./perl6-j -e 'say (42, 43, 44).antipairs.perl' | 12:11 | ||
(42 => 0, 43 => 1, 44 => 2).Seq | |||
dalek | kudo/nom: dd7b055 | lizmat++ | src/core/Rakudo/Internals.pm: Fix <a b c>.antipairs breakage on JVM bartolin++ for spotting and providing alternate patch |
12:12 | |
lizmat | bartolin: my patch was shorter :-) | 12:13 | |
bartolin | ohh! lizmat++ :-) | 12:16 | |
dogbert17 | lizmat: my shaped array benchmark now runs in 97 secs, used to be 377 in september | 12:20 | |
bartolin | lizmat: btw, I don't understand the purpose of fb0c648447. after that commit executing 'make' doesn't rebuild r-j if I made a change to one of the moved source files. Is that intended? | 12:23 | |
lizmat: you added @jvm_core_source@ but in Configure.pl we only have moar_core_source github.com/rakudo/rakudo/blob/dd7b...re.pl#L161 | 12:24 | ||
lizmat | bartolin: no that's not intended | 12:32 | |
I was just bitten by that as well | 12:33 | ||
I thought it would make it easier to add files and *not* have to reconfigure to be able to build :-) | |||
jnthn | lizmat: Any chance of tests for 7d711ee so it doesn't get busted again? :) | 12:34 | |
lizmat | bartolin: would it be as simple as adding jvm_core_sources ? | ||
jnthn: well, yes, I would hope so | 12:35 | ||
bartolin | lizmat: yeah, I think so (tested that the other day) | ||
jnthn | lizmat: If you aren't planning to write you, maybe file a roast issue so it's not forgotten? | ||
lizmat | bartolin: ok, will test that | 12:36 | |
jnthn: I'll write some tests :-) | |||
jnthn | lizmat++ | ||
bartolin | lizmat: I didn't yet look whether that influences the Moar backend, though | 12:37 | |
lizmat | (configuring/building JVM, check again in 10 mins or so) | ||
dalek | ast: ca9e50d | lizmat++ | S06-signature/shape.t: Add test for using an Enum as an array shape |
12:50 | |
lizmat | Hmm... build failed | 12:51 | |
(on JVM) | |||
java.lang.OutOfMemoryError: PermGen space | 13:05 | ||
grrr | |||
psch | o.o | 13:06 | |
so we're breaking the jvm GC by now..? | |||
lizmat | Java HotSpot(TM) 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated | ||
psch | stackoverflow.com/questions/88235/ looks like that error is GC related | 13:07 | |
lizmat | kill -9 works | ||
dogbert17 | stupid question, how can it say Permgen space, aren't you running jdk 8? | 13:15 | |
lizmat | $ javac -version | 13:17 | |
javac 1.7.0_45 | |||
whatever I got on my OS X box from Oracle | 13:18 | ||
dogbert17 | gah, I think the Permgen problem was solved, once and for all with JDK 8 | ||
lizmat | nuking install, configuring with original file now | 13:19 | |
MasterDuke | so my line directive code breaks a bunch of tests. i think some of the tests can probably be changed to reflect the new code (e.g., they were checking for a hardcoded string that's slightly different now) | 13:20 | |
dogbert17 | lizmat: docs.oracle.com/javase/8/docs/tech...c_jdk.html | ||
MasterDuke | however, some are trickier and are broken because Backtrace.is-setting() is just '$!file.ends-with("CORE.setting")', but now the $!file is something like 'src/core/Int.pm' | 13:21 | |
what's a better way to do that is-setting() check? | 13:23 | ||
lizmat | MasterDuke: ah, wow, eh yes good question :-) | 13:24 | |
contains('src/core') ? | |||
MasterDuke: I think ^^ will be sufficient for now | 13:25 | ||
MasterDuke | hmm, right, because the 'src/Perl6' stuff shows up differently before my change anyway | 13:26 | |
lizmat | yup | ||
nine | So people should not develop their modules in a src/core directory? | ||
MasterDuke | nine: FWIW, there is already an error message somewhere if you try to compile a file ending in '.setting' | 13:27 | |
btw, in pure nqp land, how much faster are the nqp::<op> counterparts to things like <, [], etc.? | 13:29 | ||
nine | I would assume not faster at all? | 13:32 | |
MasterDuke | so would HLL::Compiler be in that pure nqp land? because much of it uses ::atpos_i and such, which i find a bit harder to read | 13:34 | |
btw, this is the current output with my changes and .contains('src/core') in is-setting(). gist.github.com/MasterDuke17/d48a9...c2ba705e9d | 13:35 | ||
i added what the output looks like before my changes. somehow i'm also dropping the 'gen/moar/...' filenames | 13:38 | ||
changing topics completely, is there any sort of rule/precedent for blocking people for a while because they keep timing out and rejoining and creating lots of join messages (speaking of pyrimidine here)? it is only a relatively minor annoyance, should i just ignore it? | 14:00 | ||
psch | i've been meaning to figure something out wrt filtering in my client for some time but haven't yet, at all | 14:05 | |
like, having dalek collapsed but expandable would be cool, but dunno if irssi can even do that :P | 14:06 | ||
and yeah, collapsing a lot of join/timeout would be nice too | |||
or maybe even just remove it | |||
MasterDuke | the logs on irclog.perlgeek.de do collapse bunches of quit/join, but i'm using the freenode.net webchat and it doesn't | 14:07 | |
oh hey, but it does have an option to hide them completely! let me see how i like that | 14:09 | ||
bartolin | r: say \(42, [1, 2]).antipairs.perl # another antipairs bug with r-j | 14:34 | |
camelia | rakudo-moar dd7b05: OUTPUT«(42 => 0, ([1, 2]) => 1).Seq» | ||
..rakudo-jvm dd7b05: OUTPUT«(42 => 1, ([1, 2]) => 1).Seq» | |||
bartolin | (shortened from S02-types/capture.t) | 14:35 | |
lizmat | bartolin: sonit still isn't fixed | 14:39 | |
bartolin | the other one is fixed (there were tests in S09-typed-arrays/native-int.t that pass again, now) | 14:40 | |
lizmat | hmmm... weird. they should be the same bug and fix | 14:41 | |
bartolin | but this one seems to be unrelated (seems to be introduced a bit later) | ||
bartolin eyes Rakudo::Internals::ShapeLeafIterator | 14:42 | ||
lizmat | antipairs isn't using that, is it ? | 14:43 | |
java.lang.InternalError: collect=Lambda(a0:L,a1:L,a2:I,a3:L,a4:L,a5:L)=>{ | 14:44 | ||
t6:L=ValueConversions.array(a4:L,a5:L); | |||
t7:V=MethodHandle(String,int,ThreadContext,Object[])void(a1:L,a2:I,a3:L,t6:L);t7:V} | |||
sigh | |||
bartolin | lizmat: you're probably right. I haven't really looked at it. (maybe will do so later) | 14:45 | |
lizmat | well, I can't seem to build the JVM backend anymore :-( | 14:46 | |
psch | that method handle looks like invokeDirect or somesuch, actually | 14:47 | |
or maybe one of the indy methods | 14:48 | ||
MasterDuke | lizmat: btw, ./perl6-m -e 'EVAL "\n#line 20 foo.bar\n;die q|baz|";' locally gives me: baz in block <unit> at foo.bar line 21 | 14:52 | |
lizmat | MasterdDuke: the way it works in Perl 5, is that you specify the number of the *next* line | 14:54 | |
so I sorta expected to see "line 20" at the end there | |||
bartolin | lizmat: duplicating your earlier fix to the other Pair.new (in pull-one in IterateAntiPairFromIterator) gives the right result | ||
lizmat | aaaahhhh yes, good catch! | ||
bartolin: I'll commit | 14:55 | ||
bartolin doesn't understand why r-j needs that, actually | 14:56 | ||
dalek | kudo/nom: 76b0618 | lizmat++ | src/core/Rakudo/Internals.pm: Oops, forgot to do the pull-one case as well. Spotted by bartolin++ again! |
||
lizmat | bartolin: probably because it binds in the Pair.new rather than assignes | 14:57 | |
*assigns | |||
bartolin | aha. lizmat++ | 14:58 | |
nine | j: say $*PERL.compiler.version | 15:17 | |
camelia | rakudo-jvm dd7b05: OUTPUT«v2016.10.265.gdd.7.b.055» | ||
nine | m: say $*PERL.compiler.version | 15:18 | |
camelia | rakudo-moar 76b061: OUTPUT«v2016.10.266.g.76.b.0618» | ||
lizmat goes back to looking at fixing "make" wrt changed source-files | 15:21 | ||
on the JVM, that is | 15:22 | ||
nine | j: say $*PERL.compiler.version | 15:31 | |
camelia | rakudo-jvm 76b061: OUTPUT«v2016.10.266.g.76.b.0618» | ||
nine | seems to be back on track | ||
bartolin | \o/ | ||
r: say \(42, [1, 2]).antipairs.perl | 15:32 | ||
camelia | rakudo-{moar,jvm} 76b061: OUTPUT«(42 => 0, ([1, 2]) => 1).Seq» | ||
lizmat | yeah, building for the JVM takes a bit longer | ||
bartolin: looks good, right ? | |||
bartolin | nine: does it automatically rebuild r-j now? | ||
lizmat: yeah, it does | |||
MasterDuke | i would love for all the builds to get a lot faster. maybe i should profile the rakudo build again (i don't remember what the last profile showed) | 15:34 | |
lizmat | MasterDuke: which profiler ? | ||
MasterDuke | the built in one | ||
lizmat | bartolin: and now it fails to build again :-( | 15:36 | |
dalek | kudo/nom: aa86b9e | lizmat++ | Configure.pl: Hopefully fix development on JVM backend |
||
lizmat | bartolin: couldn't test this ^^^ can you? | 15:37 | |
MasterDuke | i couldn't use either profile-viewing tool (even after recompiling Qt to enable higher file size limits for its JSON parsing), but i think i could manually pull some relevant info out | ||
bartolin | :-/ I had not problems with my nightly builds recently. but I'm using JDK 1.8 and if I understood correctly the problem is related to JDK < 1.8 | ||
lizmat | MasterDuke: that would be excellent | ||
bartolin | lizmat: yes, will do it later (have to go now) | 15:38 | |
nine | bartolin: I cleaned both checkouts and installation dirs. Should rebuild automatically now | 16:01 | |
MasterDuke | --profile-compile with --target=parse resulted in a 830mb json file, now to try and make some sense of it | 16:22 | |
lizmat | T-Dose shutting down for today& | 16:33 | |
stmuk_ | gist.github.com/stmuk/27a299bcb6ae...6cab843663 | 17:07 | |
anyone seen anything like that panda bootstrap error on windows? | 17:08 | ||
nine | The mixture of / and \ in paths doesn't look healthy. But may be ok. | 17:14 | |
stmuk_ | I think I had that before with successful builds | 17:16 | |
hmm my last windows issue was fixed in moar so I'll bump it a bit more | 17:24 | ||
timotimo | i'm glad moar was able to fix your windows issue :) | 17:25 | |
stmuk_ | I don't even *like* windows! | 17:26 | |
MasterDuke | hmm, seems a little fishy that the largest exclusive time in my profile is only 89828 | 21:22 | |
has anyone else worked with profiles (not using the html or Qt viewers)? | 21:24 | ||
pyrimidine | MasterDuke: apologies for the IRC issues, my wireless at work (which logs this) is flipping out. I'm running off ethernet only now, should fix things | 21:52 | |
MasterDuke | pyrimidine: no worries, it inspired me to find the setting to hide all leave/join, which i didn't know existed, so i call it a win | 21:54 | |
pyrimidine | MasterDuke: yes, those are quite nice | 21:56 | |
MasterDuke | on another topic, how would i specify that something is optionally quoted in the NQP grammar? | 22:12 | |
moritz | '"' <thing> '"' | <thing> | 22:15 | |
MasterDuke | the part of the Perl 5 regex that find the filename in a line directive is: (?:\s("?)([^"]+)\g2), but i would like to support all the quotes | ||
timotimo | ALL THE QUOTES | ||
moritz | MasterDuke: <quote> | <identifier> # or something | 22:16 | |
MasterDuke | i feel like there's some way to make sure the quotes are matching. i.e., if you use a fancy quote that looks different on either side, make sure it the corresponding one on the other | ||
moritz | MasterDuke: you can reuse the existing rules that parse quoted strings | 22:17 | |
though <quote> includes regexes | |||
MasterDuke | i see a bunch of token quote:sym<apos>, token quote:sym<hapos>, token quote:sym<sdblq>, etc in rakudo's Grammar | 22:20 | |
maybe i'll select out the ones that are normal punctuation, i.e., not qq, etc. | 22:22 | ||
hm, seems like nqp doesn't seem to support anything outside the usual two characters for its normal quoting. not sure i need to add support for fancy quotes just for line directives | 22:38 | ||
another regex/grammar question. is there a way to match the negation of a capture? | 22:50 | ||
m: if "a12a3a" ~~ /(<[ab]>) (<-[$0]>+) $0/ { say $/ } | 22:51 | ||
camelia | rakudo-moar aa86b9: OUTPUT«「a12a3a」 0 => 「a」 1 => 「12a3」» | ||
MasterDuke | where i want $1 to be 「12」 | ||
TimToady | m: if "a12a3a" ~~ /(<[ab]>) ([<!before $0>.]+?) $0/ { say $/ } | 23:44 | |
camelia | rakudo-moar aa86b9: OUTPUT«「a12a」 0 => 「a」 1 => 「12」» | ||
TimToady | you can't interpolate into character classes | 23:46 | |
timotimo | what is our nicest http request library btw? HTTP::UserAgent? | 23:53 |