|
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 19 March 2016. |
|||
|
02:49
FROGGS__ joined
07:50
domidumont joined
07:55
domidumont joined
|
|||
| nine | ugexe: a Supply is an asynchronous interface. This may in itself be a worthwhile thing to have, but I'm reluctant to introduce asynchronicity as a side-effect of just wanting a generalized interface. | 09:10 | |
| Seems like right now the only common interface to IO::Handle and IO::Socket is IO which doesn't mandate any methods. It's a shame that there's no common role for the methods sockets and handles share. | 09:15 | ||
|
13:53
domidumont joined
15:09
cognominal joined
|
|||
| ugexe | seems like there should be role interfaces to make up IO::Handle (IO::Reader, IO::Writer?) so you only need to mock/implement the parts of the interface that part provides | 17:21 | |
| Easy enough to work around it with something like this gist.github.com/ugexe/fb1b470fc07650400c98, but thats just like cutting off someones hand so you can get past a biometric lock requirement | 17:26 | ||
| i could IO::Handle-ify IO::Socket (or ::INET) if I knew the idea made sense. but i think that might involve making IO::Handle a role itself (or at least implement a new role enforcing only the needed behavior here) | 17:29 | ||
| IO::Streamable seemed cool though. a (presumably) pluggable backend, then `IO::File.uri($url)` would return an IO::Streamable object (like IO::Handle but the resource may not exist yet) | 17:42 | ||
| anyway i should have something ready for some scrutiny by the end of this week. somehow i've spent over 50 hours in just trying different interface structures/conventions... | 17:50 | ||
| i also have a hunch there might be a problem with provides that are like `"XXX::Foo" : "lib/XXX/Foo.pm6", "XXX::FooBar", : "lib/XXX/FooBar.pm6"`. it looks like this would produce 2 different precomp files | 17:55 | ||
| er, libXXXFooBar.pm6 -> lib/XXX/Foo.pm6 (i.e. different module name, same file) | 17:56 | ||
| this partly ties into some META6 changes im doing where the <pm>[0]<file> stuff is not added in the provides. instead every file installed gets put into `files` (including provides), and every file in `files` can have a hash value with the neccesary meta data (<time> <cver> etc) | 17:58 | ||
| with the purpose of `files` containing every file that ends up installed as `$original-relative-path => $mangled-relative-path | { $mangled-relative-path => { <meta data> }`, and the rest of the meta data such that the original before-build-time manifest can be constructed against `files` | 18:00 | ||
| (its not expected this lookup will be used internally, but i also plan on writing a way to swap in an alternative to `files` that could use short-id files to mimick this) | 18:01 | ||
| via a Distribution::Installed, that gives you a Distribution interface to an already installed Distribution. so Distribution can roundtrip from installed back to Distribution, and thus other CURs can target Distribution as an intermediary | 18:03 | ||
|
19:50
cognominal joined
|
|||
| [Coke] | "make realclean" needs to kill .precomp directories. | 23:43 | |
| [Coke] wonders why he had a lib:. directory in his build dir. | 23:45 | ||