Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec
Set by moderator on 12 January 2016.
00:22 llfourn joined 01:23 llfourn joined 02:22 llfourn joined 02:48 ilbot3 joined
moderator Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec
03:23 llfourn joined 04:24 llfourn joined 05:09 llfourn joined
nine sjn: pong 07:37
08:08 FROGGS joined 09:27 leont joined 11:44 FROGGS joined 14:14 domidumont joined 14:57 domidumont joined
nine What do toolchain people think about moving Test.pm from the CORE distribution out into the ecosystem? Rakudo could still come with a Test.pm for its make test and make spectest, but no longer install it by default. 15:48
moritz -1
tony-o nine++
moritz I use Test.pm in every single one of my projects, and I'd hate to install a dependency 15:49
users can still distribute their Test::More, Test::Less, Test::Fancy, Test::Whatever, just like in p5
nine With it being an ecosystem module, it would be much easier to upgrade or to require a specific version. There's nothing that actually requires us to bind Test's version to the Perl 6 version.
tony-o i think it's more common now than when p5 came about
nine lizmat has to revert an otherwise harmless fix to Test.pm because it breaks a spec test for unknown reason. 15:50
tony-o actually, i guess, i'm with moritz - most languages don't have a supercedes mechanism
moritz can we make it dual-lived at least?
[Coke] we could try to fix the breakage, btw.
moritz installed with core, but overridable from panda
[Coke] (dual lived) aaaaaigh
that won't address nine's concern, and will add complexity. -1 15:51
nine Of course we will try to fix this, but the principle remains. Having Test in the ecosystem would allow for quicker turnarounds with for example added features. Waiting for a year for a language release to be able to use a new test function sucks.
tony-o i like the idea of removing it from core. 15:52
nine Especially since people who know Perl 5's test frameworks think Test.pm is severly outdated architecture wise
tony-o i can see mortiz's point and right now it makes sense to leave it in core or every module will fail testing, currently and all METAs will need updated 15:53
[Coke] also it changes what 6.c means. we'd need a 6.c.1 or so
tony-o `green` behaves more like node's mocha
which is friendlier for async things 15:55
nine [Coke]: we may still get away with removing it even from 6.c by having panda and zef add it automatically to a module's test-depends until all META files have been updated
moritz nine: I do test modules without panda
nine But we may as well remove it in 6.d
moritz: but installing one ecosystem module once per Perl 6 installation doesn't sound that bad, does it? 15:56
[Coke] there are Test tests in 6.c; I think we're on the hook to include it for now
nine moritz: keep in mind that we no longer loose installed modules on rakudo upgrades
sjn nine: are you going to the easter hack thing in Salzburg?
nine sjn: have never heard about that?
PerlJam nine: we wouldn't remove it in 6.d would we? We'd deprecate it and remove in 6.e. right?
tony-o PerlJam++
sjn nine: Easterhegg 2016 - www.easterhegg.eu/category/easterhegg-2016/ 15:57
[Coke] or dep in 6.c.1 and remove in 6.c.2
moritz nine: does panda still work after a rakudo upgrade? 15:58
nine moritz: yes it does
moritz nine: then maybe it's no as dire as I imagined it :-) 15:59
nine moritz: only the first startup after a rakudo upgrade is a little slow
PerlJam [Coke]: or that (though, I'm not clear on the timing of these point releases. If they happen too quickly, then I'm against using them for a deprecation cycle) 16:00
nine PerlJam: I'm not sure if it would warrant a deprecation cycle (we're talking about a year or more there!), as it's really just a "panda install Test". And our installers may even do that automatically.
PerlJam nine: I dunno. I worry a bit about setting precedent here. Would we do the same thing if it were IO::Socket::Async or one of the other core modules? 16:03
[Coke] PerlJam: you mean like the one that we're already trying to remove in nom? 16:04
PerlJam [Coke]: Are you referring to IO::Argfiles? 16:05
[Coke] I don't remember which one it was.
nine IO::Socket::Async is no module but part of the setting and a part of the language that's tested by the spec test suite. We've been shipping a Test.pm as convenience. It's not integrated at all with the rest and is really the odd man standing out. 16:07
lizmat Pod::To::HTML ?
sorry, Pod::To::Text ?
PerlJam nine: I guess if there are no tests in roast/6.c that test Test.pm6, then removing it should be harmless. 16:09
(and I probably should have put scare quotes around harmless too) 16:10
flussence um, don't 100% of the tests in roast also test Test.pm6 by definition, since they use its API? 16:11
ugexe i prefer having a basic tap emitter in core. i dont like the idea that it makes it harder to just test/install something without having a module installer
PerlJam flussence: I'd call that more of a side-effect.
nine > 80 ecosystem modules have already a test-depends: [ "Test" ] 16:12
ugexe that doesnt mean anything if its built in though
if i just want to clone someones project and install it now it means i have to also install Test.pm somehow or have a module installer installed 16:13
PerlJam ugexe: How would you install someone's project without a module installer? 16:14
nine I don't see how after going through all of rakudo's installation, getting one extra file from somewhere would be such a large barrier.
ugexe PerlJam: you can do it with a 1 liner using CompUnit::Repository
nine Rakudo is the compiler. Rakudo* is the usefull distribution with compiler + modules 16:15
PerlJam ugexe: and it'll auto-run any tests?
ugexe: and you can't tell it not to?
ugexe no, someone doing that would certainly run their own prove command manually as well 16:16
nine PerlJam: the one liner will install. It won't run tests or check dependencies.
ugexe right, but to write any testable module you would then *have* to have a dependency 16:17
maybe im in the minority but im not a fan of huge fragile dependency chains 16:19
nine Why should they be fragile?
ugexe they shouldnt but generally are
nine In Perl 6? We support and encourage people to depend on exact versions. 16:20
Aaand if that support is NYI it will probably come soon ;) 16:21
ugexe yes in perl6, and i also mean at the moment (in the future im sure this gets better as well)
PerlJam nine: I'm conflicted. I'm sympathetic to your argument, but I also think Test.pm6 should just Be There. We're going to use some test module anyway (and encourage others to do so); one should be included as part of any Rakudo installation. It's one of the things I really like about how we do things now. 16:28
Same goes for NativeCall btw. That one opens up huge possibility and should be part of any Rakudo install. Would you rather add that as a dependency to Inline::Perl5 or just rely on it being there? 16:33
autarch nine: big ++ on getting Test.pm6 out of core 16:35
PerlJam autarch: why?
autarch I'm really hoping that I can get this test stream stuff done soonish and have that be the basis for all future test modules
PerlJam: because if people use a module not based on this test stream code I'm working on then it'll make everyone's life harder down the road 16:36
PerlJam Hmm.
ugexe but it makes everyones lifes harder no matter what 16:38
you either make it harder for end users or you make it harder for people who write tests but plan on porting it to your stream format 16:40
nine PerlJam: I wouldn't mind a dependency in Inline::Perl5 at all and indeed, NativeCall has been an ecosystem module initially. It only got moved to core because most of its implementation is actually in the VM, so it's really tighly coupled to the compiler. The opposite of Test.
PerlJam: and Inline::Perl5 already has dependencies. No reason to avoid others. 16:41
ugexe: autarch's plan is to provide a Test module that has the same interface but uses the stream module for it's underlying implementation. So no pain for test writers. 16:42
tony-o that changes module installers method of installs
ugexe he just said it would be harder
tony-o test-depends: ["Test"] <- if test isn't available or installable, do you install the module or fail ?
i'm curious more about down stream
ugexe and this all seems like the type of thing supercedes/augments/emulates of s22 16:43
is meant to address
tony-o i brought that up earlier
PerlJam autarch: If we replace the exising Test.pm6 with one based on your test stream stuff, then it'll only make things harder for those people using a compiler that uses the existing Test.pm6 (which will be an ever-shrinking set) 16:45
nine tony-o: the test-depends question is independent of this dicussion. Inline::Perl5 for example has a test-depends: ["Test", "File::Temp"] as one of the tests uses File::Temp. 16:46
autarch is in a $work meeting, will catch up and respond when done
tony-o nine: i know it's separate, i'm curious what the thoughts are on that.
PerlJam autarch: but ... you've got me thinking about Test::* and interoperability and I think you've tipped the balance for me in favor of removing Test.pm6. 16:47
tony-o thank you for pointing out that it's separate
nine tony-o: I guess it should either ask the user or treat it as --notests
"it" being a missing test dependency
The "supersedes" angle is interesting. I wonder how using that feature would play out in real life. 16:48
[Coke] Note that we have S24-testing/ tests, but those seem to just be explicit versions of the implicit testing. I don't think they're actually testing TAP output or anything like that. 17:11
... crap, except 3-output.t, which is an explicit test for things like "does the output match "not ok" 17:12
so yes, we rely on TAP in 6.c
autarch PerlJam: I don't think it should be removed so much as removed from the docs and marked as "only use this internally for testing other core stuff" 17:15
nine Maybe this really would be a good test case for all the speculation about auths and supersedes and what not? A first step could be to just publish an updated Test module under different auth in the ecosystem and have some dists require that.
autarch nine: I could rename my stuff from Test::Stream to just Test if we think that's a good idea 17:16
nine autarch: my suggestion was not removing it entirely from Rakudo but no longer installing it by default.
autarch nine: right, that makes sense
nine
.oO(Test:auth<autarch>)
autarch I mean once my test stream is _done, reviewed, and documented_ I could rename it and we could put it into the ecosystem 17:17
with a "use Test" layer that works more or less exactly how the current one does, which I've already started writing as Test::Predicates in the repo
my repo, that is
17:40 leont joined
nine ugexe: Failed to copy '/home/nine/.zef/store/Inline-Perl5.git/resources/libraries/p5helper' to '/home/nine/rakudo/install/share/perl6/site/resources/42895AB4F020BCF13D71DFC98C445CD8CD3B4206.': Failed to copy file: no such file or directory 17:48
ugexe: with zef commit 499d47bda621c0bdd0e7b15f218d9e8f19fda247 17:51
18:02 Kassandry joined
ugexe strange, it works for me. i've been using install Inline::Perl5 after each commit to test too 19:56
nine I thought you'd have done that. Especially since you mentioned Inline::Perl5 in the commit message. 20:00
ugexe i wonder if it could have something to do with `$*VM.platform-library-name($0.Str.IO)` turning a basename only into an IO (which involves some $*CWD stuff) 20:05
nine same on my desktop 20:06
ugexe m: say $*VM.platform-library-name($*CWD.relative.IO) 20:40
camelia rakudo-moar 007f02: OUTPUT«"/home/camelia/lib..so".IO␤»
ugexe m: say $*VM.platform-library-name($*CWD)
camelia rakudo-moar 007f02: OUTPUT«/home/libcamelia.so␤»
ugexe other than the path differenence one returns a string and one returns an IO 20:41
lizmat ugexe: this won't be fixed before 6.d, I'm afraid 20:42
nine What's the difference to what panda's doing? The code looks quite similar ;) 20:45
ugexe passes in the absolute path instead of giving `.IO` a chance to get the $*CWD incorrect 20:47
well, what i want the path absolutified with (which might not be $*CWD) 20:48
21:07 hankache joined
ugexe travis-ci is able to install Inline::Perl5 with zef as well 22:01
travis-ci.org/ugexe/zef/jobs/10220...1771-L1774 22:02
22:26 leont joined