Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-toolchain, 2016-01-15

| Channels | #perl6-toolchain index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
02:48 ilbot3 joined #perl6-toolchain
02:48 Topic for #perl6-toolchain is now Fire is step THREE! | https://github.com/perl6/toolchain-bikeshed | Channel logs: http://irclog.perlgeek.de/perl6-toolchain/today | useful prior art: https://metacpan.org/pod/CPAN::Meta::Spec
05:23 ugexe Where is the code for -I and -M at? -M cant find a module when using its identity while `use` can
07:10 domidumont joined #perl6-toolchain
07:17 domidumont joined #perl6-toolchain
07:56 nine -I is in src/core/CompUnit/RepositoryRegistry.pm setup_repositories. I don't think I've come across the code for -M
09:03 FROGGS joined #perl6-toolchain
09:41 leont joined #perl6-toolchain
12:09 FROGGS joined #perl6-toolchain
16:15 ugexe I found -M here: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/World.nqp#L386
16:15 ugexe do you think it would be as simple as moving it to here? https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/RepositoryRegistry.pm#L58
16:32 ugexe ah parse-*-specs is not for identity specs, nevermind
16:41 nine Looking at do_pragma_or_load_module I fear it's a bit more involved
16:42 nine Nevertheless it's something we should figure out soon. We need exactly the same parsing for dependencies in META files.
16:43 ugexe it looks like by passing the third argument "$longname" do_pragma_or_load_module uses the name as is, whereas without it it tries to parse the identity according to the Grammar. this would mean that the first argument needs to be a hash in the same hash structure as sym<use> generates (and removing the 3rd argument)
16:44 ugexe fwiw zef parses identity strings in dependencies
16:47 nine Looking at the code and trying to figure out a valid value that breaks the parser is kinda fun ;)
16:48 nine The hard part is not the parsing. It's the decision of what we're gonna allow. Because right now, you can put any valid Perl 6 expression into a :ver(* > 6) # which is a breaking example btw.
16:48 nine Though really a working one even if the syntax is valid
16:49 ugexe something i notice is File::Temp can produce a possible broken Distribution.id/Str with `:auth<Jonathan Scott Duff <duff@pobox.com>>`
16:49 ugexe due to falling back to the author field
16:50 nine m: use Test:ver({$_.parts[0] > 5});
16:50 camelia rakudo-moar 3259ba: ( no output )
16:50 nine That's one ;)
16:50 nine Oh, that's definitely a good real world example of a complex auth that will break any naive parser
16:50 nine Yet something we may want to allow
16:51 ugexe right, just needs ('') instead of <> when Distribution generates it as a Str
16:54 ugexe would code like $_.parts[0] be allowed in a depends though? Seems you would want to use hard coded values to represent most common rules (like how * and + will/do act)
16:55 nine If we ever want to be able to use pre-installed precomp files, we really need to avoid turing complete dependency specifications
16:56 nine We need to do this 100 % declaratively. And this is the hard part to figure out.
16:56 nine Perl6 doesn't do arbitrary restrictions very well :)
17:02 hankache joined #perl6-toolchain
17:15 domidumont joined #perl6-toolchain
17:38 tony-o does anyone know where `supercedes` is on the roadmap?
17:38 tony-o i'm writing some tests for Test.pm6
17:49 leont joined #perl6-toolchain
18:33 leont joined #perl6-toolchain
18:52 Kassandry joined #perl6-toolchain
19:00 hankache joined #perl6-toolchain
19:26 TimToady joined #perl6-toolchain
19:27 TimToady joined #perl6-toolchain
20:46 domidumont joined #perl6-toolchain

| Channels | #perl6-toolchain index | Today | | Search | Google Search | Plain-Text | summary