Perl 6 - the future is here, just unevenly distributed

IRC log for #p6dev, 2016-05-08

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
02:59 skids joined #p6dev
07:35 dalek rakudo/nom: 67250d4 | ugexe++ | src/core/CompUnit/Repository/Installation.pm:
07:35 dalek rakudo/nom: CURI.files :$name is required
07:35 dalek rakudo/nom:
07:35 dalek rakudo/nom: perl6 -e '$*REPO.repo-chain[1].files("libssl.so").say'
07:35 dalek rakudo/nom:     Cannot unbox a type object
07:35 dalek rakudo/nom:       in block <unit> at -e line 1
07:35 dalek rakudo/nom:
07:35 dalek rakudo/nom: https://github.com/rakudo/rakudo/blob/e8fd55bbe6bcdcd10f5c4ca1888ef0ed42dd5f07/src/core/CompUnit/Repository/Installation.pm#L313
07:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/67250d4e5a
07:35 dalek rakudo/nom: cc8a9e4 | niner++ | src/core/CompUnit/Repository/Installation.pm:
07:35 dalek rakudo/nom: Merge pull request #762 from ugexe/patch-4
07:35 dalek rakudo/nom:
07:49 dalek roast: 1804479 | usev6++ | S32-exceptions/misc.t:
07:49 dalek roast: Add test for RT #127062
07:49 dalek roast: review: https://github.com/perl6/roast/commit/1804479bb2
07:49 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127062
08:35 RabidGravy joined #p6dev
09:34 Ven joined #p6dev
10:10 [Tux] This is Rakudo version 2016.04-125-gcc8a9e4 built on MoarVM version 2016.04-26-g1088538
10:10 [Tux] test            22.996
10:10 [Tux] test-t          13.787
10:10 [Tux] csv-parser      36.772
10:14 dalek rakudo/precomp-store-redesign: bed2621 | niner++ | src/core/CompUnit/Loader.pm:
10:14 dalek rakudo/precomp-store-redesign: Implement CompUnit::Loader.load-precompilation
10:14 dalek rakudo/precomp-store-redesign:
10:14 dalek rakudo/precomp-store-redesign: Needs an NQP bump
10:14 dalek rakudo/precomp-store-redesign: review: https://github.com/rakudo/rakudo/commit/bed2621fb7
10:14 dalek rakudo/precomp-store-redesign: 6c12141 | niner++ | src/core/CompUnit/PrecompilationRepository.pm:
10:14 dalek rakudo/precomp-store-redesign: Merge .deps and mbc files into a single precomp file
10:14 dalek rakudo/precomp-store-redesign:
10:14 dalek rakudo/precomp-store-redesign: This will allow for us to atomically replace both parts and thus get rid of
10:14 dalek rakudo/precomp-store-redesign: locking for simple reads.
10:14 dalek rakudo/precomp-store-redesign: review: https://github.com/rakudo/rakudo/commit/6c12141531
10:14 dalek rakudo/precomp-store-redesign: 78ed087 | niner++ | / (4 files):
10:21 dalek rakudo/nom: 2b74c90 | peschwa++ | .travis.yml:
10:21 dalek rakudo/nom: Make travis require a successful install before 'make test'.
10:21 dalek rakudo/nom:
10:21 dalek rakudo/nom: Otherwise failures caused by e.g. install-core-dist.pl don't get reported.
10:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2b74c90093
10:22 psch ...and as soon as i get r-j building successfully again that gets tossed from allow_failures
11:06 Ven joined #p6dev
11:11 nine_ psch: the correct solution for force re-installing a dist is not to impose any order on the provides hash but to remove the existing precompiled files before installing again, so it's no longer possible that precompiling a module will use a dependency that gets overwritten later.
11:13 nine_ Also nuking _never ever_ fixes problems. It only hides them again. We've been backwards compatible since 2015.12 and will remain being so. Only modules installed on a pre 2015.12 version may warrant a nuke.
11:17 psch nine_: so Installation.install(:force) should remove the already installed Distribution before actually installing?
11:19 psch that's probably a lot more sensible than all the things i tried up to now
11:19 RabidGravy I must admit I have nuked because of what appears to be the problem you describe with versioned dependencies
11:19 psch although i'm not sure it's really Installation that should take care of that
11:58 dalek roast: d2eb961 | usev6++ | / (2 files):
11:58 dalek roast: Add test for RT #127176
11:58 dalek roast: review: https://github.com/perl6/roast/commit/d2eb961cec
11:58 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127176
12:45 Ven joined #p6dev
13:10 RabidGravy m: say $*IN.path.r, $*OUT.path.w; # This is fixed by https://github.com/rakudo/rakudo/pull/763 if someone want to merge
13:10 camelia rakudo-moar 2b74c9: OUTPUT«FalseFalse␤»
13:53 psch well, adding 'self.uninstall($dist)' around CUR/Installation.pm:180 doesn't work vOv
14:01 psch it brings back the same "prefix on a null object" that i could only remove before by removing the path that includes the to-be-overinstalled precomp'd version of the Distribution
14:02 psch hm, or maybe just "keeps it around"
14:36 psch so the combination of RAKUDO_LOG_PRECOMP and RAKUDO_MODULE_DEBUG tells me that installation of NativeCall apparently works, but precompilation doesn't
14:51 Ven joined #p6dev
15:13 ugexe i dont think the current uninstall removes everything
15:14 ugexe you also have to give it a $dist that coincides with what is installed, not what you would pass to .install
15:15 psch ugexe: but the dist i want to install is exactly the one that's already installed, which is why i need :force in the first place
15:18 moritz what's the plan for from-json and to-json in the setting?
15:18 moritz I seem to recall that it's not supposed to be publicly available
15:18 moritz if so, should I move it to Rakudo::Internals?
15:19 jnthn moritz: Yes, please. I somehow thought that'd happened already...
15:23 RabidGravy anyone fancy merging https://github.com/rakudo/rakudo/pull/763 ? Fixes $*IN.path.r etc
15:24 ugexe psch: CURI mangles the distribution META6.json
15:24 ugexe so its no longer the same once you install it
15:24 psch ugexe: i'm not reading any META6.json
15:24 ugexe uninstall uses it
15:25 ugexe provides specifically gets mangled on install
15:26 ugexe a gist of it is you need to get the dist object from .resolve and uninstall that
15:27 moritz jnthn: ok, I'll try to prepare a patch
15:28 ugexe this is how zef is able to uninstall
15:29 ugexe this can be solved with the distribution PRs as well
15:32 psch ugexe: okay, i'll note that down.  although i just realized i'm actually blocked by a different problem still...
15:33 moritz Stage parse      : P6opaque: must compose before allocating
15:33 ugexe zef
15:33 ugexe oops
15:33 psch namely still "Cannot call method prefix on a null object", which i don't really understand either vOv
15:34 ugexe where is it pointing to with --ll-exception?
15:36 psch i've chased it around a bit, and it does go away when i remove the repo from $*REPO.repo-chain that has a path-spec that matches $path, in PrecompilationRepository around line 178
15:36 psch i don't have --ll-exception handy right now, just tossed all the misguided uninstall debug code... :)
15:37 psch i'll get that in about 10 minutes though, 'cause nqp-j build and all...
15:38 timotimo ugh
15:38 timotimo so slow :<
15:40 ugexe psch: i havent been following, but what repo are you removing? one of the built in nom ones? or a new one?
15:41 psch ugexe: i'm trying to run install-core-dist.pl during make install on r-j
15:42 ugexe ah, so i should be able to reproduce it with make install on r-j?
15:43 psch yeah, should
15:43 psch the relocatable-precomp branch broke that afaict, although bisect pointed me at a commit that can't have been it... vOv
15:50 psch ugexe: i suppose that means i don't need to gist the --ll-exception output? :)
16:01 ugexe psch: maybe not... but `make install` seems like it might be frozen for me
16:02 ugexe ok make install finished without any errors...
16:02 psch ...wha
16:02 hankache joined #p6dev
16:03 ugexe https://gist.github.com/ugexe/fa61ecac4239fd7b8267d02b339a338f
16:03 psch https://travis-ci.org/rakudo/rakudo/jobs/128619329#L411 that's the latest travis build
16:03 psch is that the tag 2016.04?
16:03 ugexe yeah
16:04 hankache joined #p6dev
16:04 psch yeah, that worked
16:04 psch relocatable-precomp was merged earlier this week
16:04 psch you're some 110 or so commits before the breakage :)
16:04 psch m: say 1
16:04 camelia rakudo-moar 2b74c9: OUTPUT«1␤»
16:04 ugexe seems like so long ago
16:05 psch m: say $*PERL.compiler
16:05 camelia rakudo-moar 2b74c9: OUTPUT«rakudo (2016.04.126.g.2.b.74.c.90)␤»
16:05 psch 126 patches behind
16:05 hankache_ joined #p6dev
16:05 psch oh, it was sunday last week actually
16:05 hankache joined #p6dev
16:06 ugexe ok lets try this again *laptop melts*
16:06 cognominal joined #p6dev
16:08 bartolin ugexe: here is the output with --ll-exception: https://gist.github.com/usev6/607c0f00e4e6341a2276b9592e29bcda#gistcomment-1772107
16:08 bartolin "This is Rakudo version 2016.04-123-g626b5a9 built on JVM"
16:13 ugexe psch: any hunches? looking at it it appears to do with CURI not properly passing `self` with CompUnit::RepositoryRegistry.name-for-repository(self)
16:14 psch ugexe: well, as mentioned, the only thing i could figure out is that the problem goes away when the repo with a path-spec matching $path gets removed from the repo-chain before installation
16:14 psch err, before precompilation
16:17 ugexe hmm, i thought there was an issue with using `my $xxx` in a class outside of a method
16:17 ugexe with jvm
16:17 ugexe see https://github.com/rakudo/rakudo/commit/f658d4c5b1232d6aa92b3e3f5566c3ee3863f4ab#diff-ae846fe0039f4440e56ed917fae565a9
16:20 nine_ psch: I actually don't think the relocateable-precomp branch broke anything. It's more like those precomp files have always been broken and only now we actually load them. The precomp files created on installation of a dist were not used before.
16:22 psch nine_: fair enough, i do admit i don't know what exactly is the cause for the breakage, i just have a rough idea when it started to appear :)
16:22 ugexe name-for-repository will return Nil if it doesnt find what it wants, and later the result of name-for-repository is used to call .prefix on without checking it
16:23 nine_ psch: of course it's entirely possible that I screwed up somewhere, too :)
16:26 ugexe id guess its secretly been broken for awhile as well
16:26 psch nine_: if anything it's more likely that nqp-j breakage like what the commit ugexe linked to above is to blame
16:26 psch that is, assuming it wasn't secretely broken
16:27 psch well, that's what i think at least :)
16:34 ugexe it could always have been secretly broken because of what caused that (possibly) similar breakage
16:34 dalek rakudo/nom: 86a2b4f | RabidGravy++ | src/core/IO/Special.pm:
16:34 dalek rakudo/nom: Fix the r/w file tests
16:34 dalek rakudo/nom:
16:34 dalek rakudo/nom: The code expected $!what to be '<IN>', '<OUT>' or '<ERR>' but
16:34 dalek rakudo/nom: the objects are initialised with '<STDIN>', '<STDOUT>' and '<STDERR>'
16:34 dalek rakudo/nom: in io_operators when the handles are setup. Thus the file tests
16:34 dalek rakudo/nom: which do a string comparison to $!what were incorrect.
16:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/86a2b4fba0
16:34 dalek rakudo/nom: 02d63fd | lizmat++ | src/core/IO/Special.pm:
16:34 dalek rakudo/nom: Merge pull request #763 from jonathanstowe/io-special
16:34 dalek rakudo/nom:
16:34 dalek rakudo/nom: Fix the r/w file tests
16:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02d63fd798
16:38 ugexe its weird that CU::RR has a `my $lock = Lock.new` but every method that uses $lock has a `state $lock = Lock.new`
16:39 nine_ Not weird...just a leftover I've overlooked
16:39 ugexe i thought it was a "one weird trick to make jvm work" type thing
16:40 nine_ All the locking stuff is from the previous implementation.
16:41 ugexe would you want the same lock to be available to each method though?
16:41 ugexe wouldnt^
16:43 nine_ Probably yes. I haven't spent a minute on thinking about multi threaded module loading.
16:44 nine_ I see making module loading thread safe as nice little bonus once the basics are all as they should be
16:45 RabidGravy joined #p6dev
16:49 dalek rakudo/nom: e84804c | lizmat++ | src/core/Junction.pm:
16:49 dalek rakudo/nom: Make Junction.ACCEPTS 4x, Junction Bool 20x faster
16:49 dalek rakudo/nom:
16:49 dalek rakudo/nom: The idea of using a scopeless STATEMENT_LIST is fine, but not if you're
16:49 dalek rakudo/nom: starting a new scope for each iteration of the map.  On top of that, a
16:49 dalek rakudo/nom: map needs to handle Slip's, and that only to be able to potentially
16:49 dalek rakudo/nom: return from that scope.  This patch reforms the maps to a postfix
16:49 dalek rakudo/nom: while with a conditional return in it.  So no new scope for each
16:49 dalek rakudo/nom: iteration.  On top of that, if not returning on the way, we just set
16:50 dalek rakudo/nom: the final value, rather than returning that: so no explicit return
16:50 dalek rakudo/nom: in that case either.
16:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e84804c262
16:54 timotimo holy wow.
16:55 tadzik that's quite awesome
16:55 tadzik lizmat++
16:55 hankache lizmagic++
17:04 dalek rakudo/nom: 3f9f60e | moritz++ | / (8 files):
17:04 dalek rakudo/nom: move {from,to}-json to Rakudo::Internals::JSON
17:04 dalek rakudo/nom:
17:04 dalek rakudo/nom: ... and add deprecations for the old locations.
17:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f9f60e279
17:04 moritz this seemingly small commit took me way too long and too many tries to get it right
17:07 dalek roast: 8c348b2 | moritz++ | S02-types/WHICH.t:
17:07 dalek roast: remove JSONPrettyActions
17:07 dalek roast: review: https://github.com/perl6/roast/commit/8c348b2977
17:09 moritz shit, seems like I broke curli-install.t
17:09 moritz testing a patch now
17:13 dalek rakudo/nom: 2ba21b9 | moritz++ | src/core/ (2 files):
17:13 dalek rakudo/nom: Fix installation
17:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2ba21b9296
17:15 ugexe removing the `is required` from CUR::Locally gets `Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Pod.nqp'
17:15 ugexe during install-core-dist.pl. Im not sure if thats further along or not
17:16 psch ugexe: on a clean build or on a rebuild?
17:17 ugexe clean. on a rebuild it ran out of memory during jast
17:17 psch 'cause Pod.nqp is one of those that likes to fail if the target prefix already has an r-j install there..
17:17 psch oh, curious
17:18 ugexe i have some `note` debugging statements that may have affected that, but i gotta run. maybe try just s/is required// in CUR::Locally
17:18 tomboy65 i think he went off
17:19 tomboy65 pardon, wrong channel
17:22 bartolin by the way, a simple 'use Test' really taku
17:22 bartolin oops
17:22 bartolin by the way, a simple 'use Test' really takes much longer on rakudo-j after the merge: https://gist.github.com/usev6/607c0f00e4e6341a2276b9592e29bcda#gistcomment-1772137
17:24 psch o.o
17:25 bartolin aha, setting RAKUDO_MODULE_DEBUG=1 shows that Test.pm is precompiled every time it's used.
17:26 bartolin it did work before (precompiled module was loaded)
17:29 * bartolin added the output with RAKUDO_MODULE_DEBUG=1 to the gist
17:44 cognominal joined #p6dev
17:58 bartolin nine_: do you have any pointer how to debug, why the precompiled Test.pm is not used here (with rakudo-j): https://gist.github.com/usev6/607c0f00e4e6341a2276b9592e29bcda#gistcomment-1772158
19:12 nine_ bartolin: is it possible that Strings on the JVM are not null safe?
19:12 nine_ I'm using \0 as separator
19:15 nine_ bartolin: would also help to have a look at /usr/home/christian/perl6/tmp/rakudo_1/lib/.precomp/5D6AFAC14232683770BAF3B18E5F160560397209.1.462617444339E9/CD/CD7CA147D04D07DEDFB4B697B464E644541AD23A.deps
19:15 nine_ It should have a 40 character id on the first line and then some lines with id, source path and DependencySpecification separated by \0
20:01 bartolin nine_: thanks, I'll take a look (but probably tomorrow)
21:21 dalek rakudo/nom: 283b859 | lizmat++ | src/core/Junction.pm:
21:21 dalek rakudo/nom: Make Junction.gist|perl|sink up to 9x faster
21:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/283b8597b5
21:29 dalek rakudo/precomp-store-redesign: d17fe96 | niner++ | src/core/CompUnit/Precompilation (3 files):
21:29 dalek rakudo/precomp-store-redesign: Split off repo-id from precomp files
21:29 dalek rakudo/precomp-store-redesign:
21:29 dalek rakudo/precomp-store-redesign: The repo-id is the identity of $*REPO (representing its contents and the whole
21:29 dalek rakudo/precomp-store-redesign: repo chain) at the time when a precomp file's dependencies were last resolved.
21:29 dalek rakudo/precomp-store-redesign: As long as the repo-id is the same, we can just load the dependencies by their
21:29 dalek rakudo/precomp-store-redesign: ids and do not have to resolve them from their DependencySpecifications.
21:29 dalek rakudo/precomp-store-redesign:
21:29 dalek rakudo/precomp-store-redesign: When the repo-id is different, we need to re-resolve and check if the
21:29 dalek rakudo/precomp-store-redesign: dependencies still resolve to the same precomp files. If they do, we can still
21:29 dalek rakudo/precomp-store-redesign: use them and now store the updated repo-id in a precomp store. In other words:
21:29 dalek rakudo/precomp-store-redesign: the repo-id is volatile information compared to the byte code and the
21:56 bartolin nine_, psch: I think I found the cause for one of the precomp issues on rakudo-j: the FIRST phaser in https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/PrecompilationRepository.pm#L87 does not work for rakudo-j. because of that rakudo-j did not load a freshly precompiled Module.
21:57 bartolin m: for 1 { FIRST { next }; say "should not be here" } # prints "should not be here" on rakudo-j
21:57 camelia rakudo-moar 283b85: ( no output )
21:57 timotimo damn
21:57 bartolin I guess, that's behind my stresstest runs taking 10 hours :-/
21:58 timotimo ;(
22:07 bartolin he, I already put it in RT last november: RT #126701 :-)
22:07 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=126701
22:57 ugexe joined #p6dev
23:28 tomboy64 joined #p6dev

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary