Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-toolchain, 2016-03-20

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

All times shown according to UTC.

Time Nick Message
02:49 FROGGS__ joined #perl6-toolchain
07:50 domidumont joined #perl6-toolchain
07:55 domidumont joined #perl6-toolchain
09:10 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:15 nine 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.
13:53 domidumont joined #perl6-toolchain
15:09 cognominal joined #perl6-toolchain
17:21 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:26 ugexe Easy enough to work around it with something like this https://gist.github.com/ugexe/fb1b470fc07650400c98, but thats just like cutting off someones hand so you can get past a biometric lock requirement
17:29 ugexe 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:42 ugexe 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:50 ugexe 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:55 ugexe 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:56 ugexe er, libXXXFooBar.pm6 -> lib/XXX/Foo.pm6 (i.e. different module name, same file)
17:58 ugexe 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)
18:00 ugexe 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:01 ugexe (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:03 ugexe 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
19:50 cognominal joined #perl6-toolchain
23:43 [Coke] "make realclean" needs to kill .precomp directories.
23:45 * [Coke] wonders why he had a lib:. directory in his build dir.

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