cono | ok, looks like I finally got idea of GC_DEBUG, set MVM_GC_DEBUG_LOG_FLAGS to 3. And not it prints debug!!! | 07:53 | |
but this program: perl6 -e 'my $thread = Thread.new(code => { say "Hello" }); $thread.run; $thread.finish' | 07:54 | ||
gives me segfault :( | |||
as I understood it tries to print debug info about frame $*CTX_MAIN or something like this, and it doesn't have REPR->id | 07:55 | ||
actually obj->st gives 0x0 | |||
But dont understand what this STables means :( | 07:56 | ||
nine | cono: the STable is somewhat like the class | 08:04 | |
lizmat | ugexe++ # ugexe.com/perl-toolchain-summit-201...and-perl6/ | 08:07 | |
hmmm.. it looks like my last Mix changes triped up some mix tests | 08:10 | ||
*tripped | 08:11 | ||
will look at them later today | |||
jnthn | morning o/ | ||
lizmat | jnthn o/ | ||
4 tests failing, 4 TODO's now passing | 08:12 | ||
TODO's were marked "submix behavior still under discussion" about 2 years ago | |||
jnthn | That balances out, at least... :P | ||
lizmat | yeah :-) could be worse | 08:13 | |
jnthn was woken up by construction noise... | 08:15 | ||
lizmat | it *is* the last commit that causes this regression, but that should only apply to Mix (<=) Bag and Bag (<=) Mix behaviour | ||
and the tests are only about Mix (<=) Mix, weird | 08:16 | ||
jnthn | At first I thought the pub was dismantling its summer terrace and thought "noooo...." A glance outside suggested not. Next guess was that they were finally fixing the pavement. But no, just scaffolding going up on a building 1 down from mine... | ||
m: say Mix ~~ Bag | |||
camelia | False | ||
nine | When cleaning, I found 4 adaptors for european power plugs to british sockets. So that's how often I've been to LPW... | 08:21 | |
Man I suck at packing for travel :) | |||
Geth | roast: b57be1c07a | (Elizabeth Mattijsen)++ | S03-operators/set.t Remove tests for (<=) and friends (<=) and friends are now more thoroughly tested in S03-operators/subset.t |
08:31 | |
lizmat | afk for a few hours& | 08:32 | |
cono | nine: does that mean that frames shouldn't have STables ? | 08:39 | |
jnthn | Frames may or may not have an STable | 08:40 | |
They're born without in the call stack region, but if needed are promoted onto the heap | |||
(for example in the event of closure or a continuation control) | |||
cono | so stack frame of the closure can reborn to class? | 08:41 | |
can => should | |||
jnthn | Yes, there's a promote_to_heap or so function in frame.c that does this | 08:43 | |
Effectively, the rule is that callstack -> heap references are fine but heap -> callstack ones are not | |||
cono | collect.c:286 then wrong, we shouldn't print REPR(item)->ID | 08:44 | |
if (item->flags & (MVM_CF_NURSERY_SEEN | MVM_CF_HAS_OBJECT_ID)) { as this is not an object | |||
jnthn | Ah | ||
Yeah, I pretty much never use GCDEBUG_LOG with MVM_GC_DEBUG_COLLECT | 08:45 | ||
And I doubt anyone else much does | |||
Any more at least | |||
Since it produces just incredibly much output | 08:46 | ||
cono | how do you usually investigate spoil of the gen2root ? or any other memory area? | ||
as I'm getting: $3 = {forwarder = 0x110dbc0, sc = {sc_idx = 17882048, idx = 0}, st = 0x110dbc0} | |||
jnthn | Typically by switching on stuff in src/gc/debug.h | ||
cono | which is incredibly high index | ||
jnthn | It's a union though | 08:47 | |
So the sc_idx part may not be relevant | |||
cono | if MVMCollectable of what type its not relevant? | 08:48 | |
jnthn | It's not about type, it's about lifetime | 08:49 | |
cono | as (gdb) print new_addr->flags -> $1 = 0 | ||
jnthn | forwarder is set by the GC after moving an object | ||
st is only used after death | 08:50 | ||
And is used to chain types that need collecting into a linked list | |||
If forwarder is still set in the object that was copied, then it's possible that an outdated reference was seen at some point | 08:51 | ||
Geth | rakudo/refactor-handle-encoding: 2f2930ab91 | (Jonathan Worthington)++ | src/core/Rakudo/Internals/VMBackedDecoder.pm Fill out more of VMBackedDecoder. |
||
rakudo/refactor-handle-encoding: 303b7eb526 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Switch getc to use streaming decoder. |
|||
rakudo/refactor-handle-encoding: 5786587972 | (Jonathan Worthington)++ | src/core/IO/Handle.pm In char mode, make read go via. streaming decoder. To facilitate mixed char/binary mode I/O (with the usual caveats that one must be aware of things like normalization buffering, which isn't anything new). In binary mode, we fast-path it directly to the binary I/O, which is an optimization over what happens in MoarVM today. |
|||
jnthn | But an object can't be all of dead, moved, or the new copy, so we can use a union for those 3 things and make every object smaller | 08:52 | |
s/object/collectable/ is probably more precise | 08:53 | ||
Geth | rakudo/refactor-handle-encoding: b9297918c3 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Make binary slurp-rest go via. read. |
08:54 | |
cono | but in roots.c:294 we are not checking anything about dead this collectable or not, and trying to mark_collectable, which tries to get sc_idx | ||
or if collectable -> collected, we actually shoulnd't have it in gen2roots ? | 08:55 | ||
jnthn | Yes, it appears something is in gen2roots that should not be | 08:56 | |
There's a function in debug.c that can take an address an tell you if it's in any thread's fromspace | |||
If you catch the crash under GDB then it's usually possilbe to call it wiht the address you see in forwarder | 08:57 | ||
If it's found, that would strongly suggest that you're looking at an object that was already moved, but then somehow accessed at its own address | |||
That most often happens as a result of a missing use of MVMROOT | |||
cono | forwarder or current object? | 09:01 | |
jnthn | I'd expect it to find either of them, but finding forwarder to point to a valid memory address would be a good indicator | 09:02 | |
cono | (gdb) call MVM_gc_debug_find_region(tc, new_addr->sc_forward_u) or ->forwarder prints nothing to me :( | 09:03 | |
jnthn | What about calling it just on new_addr? | 09:04 | |
cono | that what I did first :) | ||
zero | |||
jnthn | Also, if you p *(new_addr->forwarder) | ||
cono | there is no forwarder | ||
only via union: sc_forward_u | 09:06 | ||
and all of them prints me nothing | |||
jnthn | Hmmm | 09:07 | |
cono | wait a moment, it should print to me atleast line "Not found" but i don't see even this | ||
ah, its in different console | 09:08 | ||
yeah, I see Not found for all 3 | |||
anyway, thanks for help. Will continue to dig into this :) | 09:11 | ||
jnthn | Thanks for digging :) | ||
jnthn is knee deep in I/O refactoring | |||
Geth | rakudo/refactor-handle-encoding: 938a6141b4 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Re-implement change of IO::Handle encoding. Allowing a type object to be passed to indicate "no encoding", and making an argument of 'bin' translate into that. The most common use for this is a switch of encoding prior to doing any I/O, but when passing it at `open` time is not an option. For all ... (11 more lines) |
09:51 | |
jnthn | Aww, I hoped that would fix up the issue that busted precomp when I switched over .get | 10:07 | |
oh wait | |||
I didn't actually use it | |||
Yay, it worked once I added the "switch to binary mode" :) | 10:12 | ||
Zoffix | Did Laurent release the source for their book for free? I'm looking at this "protip", but there's not a word about it in the repo itself: irclog.perlgeek.de/perl6/2017-05-10#i_14561091 | 10:15 | |
Also, it got finished already, right? I see it's listed here as "in work": perl6.org/resources/ | 10:16 | ||
moritz: also yours is still listed as "Perl 6 by Example"; needs an update? perl6.org/resources/ | 10:17 | ||
Geth | rakudo/refactor-handle-encoding: ad3de5d70b | (Jonathan Worthington)++ | src/core/CompUnit/Loader.pm Switch to binary mode before passing precomp to VM We have used char mode I/O to .get various things from the start of the file. This means some bytes will be hanging around in the decode stream. Switch the handle to binary mode, which will seek the file handle to the right place. |
10:20 | |
rakudo/refactor-handle-encoding: c63c103879 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Switch IO::Handle.get over to using the decoder. |
|||
nine | jnthn: ah, looks like a very easy fix then :) | 10:25 | |
jnthn | nine: Well, it was after I re-did IO::Handle.encoding :) | ||
I just realized that it does more work in there than it needs to also, so fixing that too | 10:26 | ||
Geth | rakudo/refactor-handle-encoding: 606e452bad | (Jonathan Worthington)++ | src/core/IO/Handle.pm Update IO::Handle.eof to check decoder. |
10:36 | |
rakudo/refactor-handle-encoding: 31195bd1eb | (Jonathan Worthington)++ | 2 files It helps if all the code agrees on a method name. |
|||
Zoffix | jnthn: when do you estimate that branch would be merge-ready? | 10:39 | |
jnthn | If we're lucky, tomorrow | 10:40 | |
But still got quite a few spectest failures | |||
But I didn't yet fix up all the methods :) | |||
And some seem to be because I hand back an extra empty string at EOF | 10:41 | ||
Which upsets some number of tests | |||
Zoffix | Great. | 10:42 | |
jnthn | Hmm | ||
Apart from not in a simple test csae | |||
huh, there's an empty line at the *start* of some output?! | 10:46 | ||
more fun stuff, it seems .lines is doing it but that's one of the methods I didn't yet re-work | 10:48 | ||
Guess it's time | |||
[Tux] | This is Rakudo version 2017.05-84-g5ebf307af built on MoarVM version 2017.05-24-gd86a35b6 | 10:49 | |
csv-ip5xs 2.644 | |||
test 13.648 | |||
test-t 4.418 - 4.322 | |||
csv-parser 13.190 | |||
jnthn | Actually, it's lunch time. :-) Will work on .lines after | 10:50 | |
bbiab | |||
lizmat | Files=1196, Tests=59338, 209 wallclock secs (12.84 usr 5.10 sys + 1256.53 cusr 119.29 csys = 1393.76 CPU) | ||
lizmat is starting to think the failing mix tests have been passing for the wrong reason in the past | 10:52 | ||
yup, tests are all faulty: | 11:08 | ||
m: dd mix(a => 2.2); # does NOT give you a mix with "a" with a weight of 2.2 | 11:09 | ||
camelia | Unexpected named argument 'a' passed in block <unit> at <tmp> line 1 |
||
lizmat | m: dd mix("a" => 2.2); # does NOT give you a mix with "a" with a weight of 2.2 | ||
camelia | (:a(2.2)=>1).Mix | ||
lizmat | it gives you a Mix with a Pair with weight 1 | ||
Geth | roast: 09d2f87c13 | (Elizabeth Mattijsen)++ | S03-operators/mix.t Fix Mix creation, and remove now passing TODO's |
11:14 | |
roast: f0b918071e | (Elizabeth Mattijsen)++ | S03-operators/mix.t Remove tests for (<=) and friends They are now covered more thoroughly in subset.t |
11:17 | ||
Zoffix | (re Laurent's book): yup: github.com/LaurentRosenfeld/thinkp...-303986422 | 11:45 | |
Geth | rakudo/nom: 428324d155 | (Elizabeth Mattijsen)++ | t/spectest.data Add thorough testing of (<) and friends |
12:05 | |
lizmat | afk& | 12:06 | |
CptnObvious | .tell lizmat mentioning it, just in case. Do not remove any files from t/spectest.data, since the same list is used by 6.c-errata test run (at least for now). | 12:07 | |
yoleaux | CptnObvious: I'll pass your message to lizmat. | ||
Zoffix | .... which reminds me of another thing I was meaning to do months back... make per-lang-ver t/spectest.data :\ | 12:08 | |
Geth | roast/newer-cat-handle: 7022dc846d | (Zoffix Znet)++ | S32-io/io-cathandle.t de-public @.handles attr |
12:26 | |
rakudo/newer-cat-handle: ac39c9a07e | (Zoffix Znet)++ | src/core/IO/CatHandle.pm Use nqp array to keep CatHandle's handles in |
12:31 | ||
rakudo/newer-cat-handle: dc76252159 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm Remove cathandle overengineering |
12:32 | ||
Zoffix | lulzwut... "Binary files a/S32-io/io-cathandle.t and b/S32-io/io-cathandle.t differ" | 12:35 | |
I think I broke git :) | |||
Geth | roast/newer-cat-handle: 8c22156d9c | (Zoffix Znet)++ | S32-io/io-cathandle.t Make test file pass by default use `plan 0` for yet untested stuff |
12:36 | |
Zoffix | and github :S "Binary file not shown. " | ||
... and `file` command. wtf | |||
Geth | rakudo/refactor-handle-encoding: 03fd91f991 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Update .lines and .nl-in to use decoder. |
12:37 | |
jnthn | Zoffix: You can put something in .gitattributes to insist to git that it's a binary file | ||
Zoffix | Well, I didn't put anything, so I guess it's not it | 12:38 | |
jnthn | uh, that it's a *text* file | 12:40 | |
To override its default gues | |||
*guess | |||
Zoffix | Ah. | ||
jnthn | My module Data::TextOrBinary borrows the git algo fwiw :) | ||
So may give an idea what's going on | |||
Wow, not a single spectest for method readchars | 12:41 | ||
I guess it's convered indirectly by IO::Handle.words | 12:42 | ||
Zoffix | A bunch of stuff (was) entirely untested. Last week I wrote the first ever tests for &prompt | 12:44 | |
jnthn | :) | ||
Zoffix++ | |||
Your extra tests will almost certainly reduce the change that I inadvertantly break something | |||
Geth | rakudo/refactor-handle-encoding: bc8d93736e | (Jonathan Worthington)++ | src/core/IO/Handle.pm Fix up .tell to respect decoder's buffer. |
12:45 | |
jnthn | *chance, even :) | 12:46 | |
Yay, down to just one use of a char-mode nqp::op in IO::Handle, which is coincidentally the last #?if jvm in the file too | 12:50 | ||
Zoffix | Speaking of readchars; it's busted on JVM; perhaps this refactor fixes the issue: rt.perl.org/Ticket/Display.html?id...et-history | 12:51 | |
j: "/tmp/Foo.pm6".IO.spurt: "ā„"; "/tmp/Foo.pm6".IO.open.readchars(1).say | |||
camelia | ļæ½ | ||
jnthn | Yeah, there's a workaround there that will bust anything not in BMP | 12:52 | |
Hopefully I'll fix us that | |||
Zoffix | \o/ | ||
lol... just got a notification from an issue I created in 2015. It starts with "Just some of my feedback for what I found confusing on the tutorial; I'm totally new to Perl 6:" :) github.com/adambard/learnxinyminut...ssues/1390 | 13:09 | ||
Time flies. | |||
ZofBot: swat them! | |||
ZofBot | Zoffix, name(), "\n", & | ||
Zoffix | m: my $f = "/tmp/foo{rand}".IO; $f.spurt("a\nb\nc"); with $f.open -> $cat { my @res; @res.push($_) while ($_ = $cat.get) !~~ Nil; dd @res } | 13:18 | |
Zoffix wonders why that hangs | |||
camelia | (timeout) | ||
jnthn | 'cus .get returns the Str type object, not Nil? | ||
Zoffix | Should return Nil | ||
jnthn | Really? | ||
Zoffix | m: my $f = "/tmp/foo{rand}".IO; $f.spurt("a\nb\nc"); with $f.open -> $cat { dd ( $cat.get xx 20 ) } | ||
camelia | ("a", "b", "c", Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq | ||
Zoffix | Ah | 13:19 | |
m: my $f = "/tmp/foo{rand}".IO; $f.spurt("a\nb\nc"); with $f.open -> $cat { my @res; @res.push($_) while ($_ is default(Nil) = $cat.get) !~~ Nil; dd @res } | 13:20 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3 $cat { my @res; @res.push($_) while ($_7ā5 is default(Nil) = $cat.get) !~~ Nil; dd expecting any of: infix infix stopper ā¦ |
||
Zoffix | well, by the time it gets to Nil check, it's an Any already :) | ||
jnthn | ("a", "b", "c", Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str).Seq | ||
In my local branch | |||
I guess we'll see if there's a spectest for this :P | |||
Zoffix | :} | ||
Geth | rakudo/refactor-handle-encoding: 3b649f4dcb | (Jonathan Worthington)++ | src/core/IO/Handle.pm Clean up now streaming decoder used in most places |
13:21 | |
rakudo/refactor-handle-encoding: cca3ef3c80 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Switch readchars to use the streaming decoder. |
|||
jnthn | Think I'm about at the "hunt busted tests" point with this branch | 13:22 | |
Maybe should rebase it on nom | 13:23 | ||
Zoffix | I'm at "Bogus statemen" stage with mine :P | ||
jnthn | 'cus some of them are from missing changes | ||
Zoffix | hm, looks like the binary stuff and this "bogus statement" is due to scp'ing a file off sshfs'ed partition :S if I copy/paste it into target off my editor, it works fine | 13:26 | |
Geth | rakudo/refactor-handle-encoding: 17 commits pushed by (Jonathan Worthington)++ review: github.com/rakudo/rakudo/compare/c...d4948aee3e |
13:27 | |
jnthn | So, 12 test files that have some kind of regression | 13:30 | |
Zoffix | nope... scping from box itself still has the issue :S Atom says encoding is utf8.. I'm at a loss :/ | ||
jnthn | Odd | 13:31 | |
jnthn never used sshfs | 13:32 | ||
Geth | rakudo/refactor-handle-encoding: d19f780376 | (Jonathan Worthington)++ | src/core/IO/Handle.pm .get should give Nil, not Str, at eof. |
13:34 | |
rakudo/refactor-handle-encoding: 582c39dfbf | (Jonathan Worthington)++ | src/core/IO/Handle.pm Don't treat empty file as having one empty line. |
|||
jnthn | That gets me down to 8 test files needing attention | ||
Zoffix | looks like bad copy has a bunch of crap at the end: (hex diff): github.com/zoffixznet/debug/commit...ed0e5e3698 | 13:35 | |
Zoffix sticks to copy-pasting from atom to pico for now | 13:36 | ||
jnthn | argh | 13:46 | |
Geth | rakudo/newer-cat-handle: 7c63f6a4c4 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm Die if CatHandle.new was given nothing to cathandle |
||
rakudo/newer-cat-handle: 4ad8b1792a | (Zoffix Znet)++ | src/core/IO/CatHandle.pm [io grant] Implement IO::CatHandle.get |
|||
jnthn | no wonder stuff ended up pretty broken for slurp when I removed the old encoding stuff | ||
Geth | roast/newer-cat-handle: 9833012763 | (Zoffix Znet)++ | S32-io/io-cathandle.t [io grant] Test IO::CatHandle.get |
||
jnthn | IO::Path.slurp is poking in to the IO::Handle guts and using nqp::readcharsfh | 13:47 | |
Zoffix | oh crap. I forgot about that one | ||
:) when we were talking about nothing poking into guts of IO::Handle | |||
jnthn | There is a sensible optimization to do here, if we know we're slurping up the whole file | 13:48 | |
In that we don't have to set up a streaming decoder, we can just do it all at once | |||
Zoffix & | 13:53 | ||
Geth | rakudo/refactor-handle-encoding: 173c33d20a | (Jonathan Worthington)++ | src/core/IO/Path.pm Update IO::Path.slurp for IO::Handle changes. This still tries to do some amount of fast-pathing by avoidng the cost of the setup of a streaming decoder by opening in binary mode (or at least, we'll do so once MoarVM's file handle support switches to be binary only), and doing the decode in a single swoop. More may be possible; in the meantime, this gets things working again. |
14:02 | |
jnthn | Down to 5 test files that need a looing at | ||
*looking | |||
OK, 3 failures are tests I think want reconsidering | 14:10 | ||
4 others I need to look in to | |||
Zoffix | Geth: uptime | 14:36 | |
Geth | Zoffix, 1 week, 3 days, 23 hours, 46 minutes, and 30 seconds | ||
Zoffix | \o/ looking good :) | 14:37 | |
jnthn | Grr, tracked down one of the problems | 14:47 | |
Inconsistent API is inconsistent | |||
Zoffix | But is it consistently inconsistent? >:} | 14:52 | |
jnthn | No, it was mostly reasnonably designed | ||
Fixed it in MoarVM to do what I thought it was doing | |||
Hurrah, that strikes argfiles from my list | 14:53 | ||
Zoffix | m: dd "\n\x[308]c".comb | 15:05 | |
camelia | ("\n", "\x[308]", "c").Seq | ||
Zoffix | m: with '/tmp/foo70'.IO { .spurt: "\n\x[308]c"; with .open { dd [ .getc xx 20 ] } } | 15:06 | |
camelia | ["\n", "\x[308]", "c", Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any] | ||
jnthn | m: say uniname 308 | ||
camelia | LATIN CAPITAL LETTER J WITH CIRCUMFLEX | ||
jnthn | m: say uniname 0x308 | ||
camelia | COMBINING DIAERESIS | ||
jnthn | Thought it was a combiner you were trying out :) | ||
Zoffix | weird. getting "\n\x[308]c" as a return from .getc in cathandle :S | 15:07 | |
jnthn | You can't put a combiner onto a control char | ||
fwiw | |||
:) | |||
Zoffix | Yeah :) | ||
jnthn | Cool, I have 3 passing todos | ||
1 test I agree I should fix | 15:08 | ||
And 3 that I think want discussion | |||
Zoffix: Do you think we should continue with having .encoding return 'bin' when the handle is in binary mode? | 15:10 | ||
Zoffix | jnthn: as opposed to returning Str type object instead? | 15:12 | |
jnthn | Yeah | ||
I mean, it's not a "real" encoding | |||
Zoffix | Yeah, type object sounds good. | ||
jnthn | OK. | ||
What about an unopened handle? | 15:13 | ||
That also now returns Str | |||
Zoffix | Yeah, also good. | ||
jnthn | I wonder if Nil would be more consistent... | ||
Zoffix | m: with '/tmp/foo70'.IO { .spurt: "\x[308]aā„b\x[308]ā„cā„"; with .open { dd ( .getc xx 10 ) } } | 15:14 | |
camelia | ("\x[308]", "a", "ā„", "bĢā„cā„", Nil, Nil, Nil, Nil, Nil, Nil).Seq | ||
Zoffix | That's a bug innit?Ā The last item has two hearts and c and b with combiner | ||
jnthn | Looks odd | 15:15 | |
Zoffix | m: with '/tmp/foo70'.IO { .spurt: "bā„cā„"; with .open { dd ( .getc xx 10 ) } } | 15:17 | |
camelia | ("b", "ā„cā„", Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq | ||
Zoffix | m: with '/tmp/foo70'.IO { .spurt: "aā„c"; with .open { dd ( .getc xx 10 ) } } | ||
camelia | ("a", "ā„c", Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq | ||
Zoffix | m: with '/tmp/foo70'.IO { .spurt: "aā„cd"; with .open { dd ( .getc xx 10 ) } } | ||
camelia | ("a", "ā„", "cd", Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq | ||
jnthn | Heh, its survived the refactor | 15:18 | |
Zoffix | aww | ||
jnthn | I get I can guess what it is too | ||
Zoffix | What? | ||
jnthn | Something to do with the normalization buffer, which hangs on to a char | 15:19 | |
Or more | |||
So getc tries to grab a char, then if it can't looks if there's anything more in the file, sees not, then does a "get all" operation on the buffer, figuring that there's only one more char to force out | 15:20 | ||
m: with '/tmp/foo70'.IO { .spurt: "acd"; with .open { dd ( .getc xx 10 ) } } | |||
camelia | ("a", "c", "d", Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq | ||
jnthn | m: say uniname 'ā„' | ||
camelia | BLACK HEART SUIT | ||
Geth | rakudo/refactor-handle-encoding: 0210297cbf | (Jonathan Worthington)++ | src/core/IO/Handle.pm Correct a typo. |
15:22 | |
rakudo/refactor-handle-encoding: 0f6cce7f78 | (Jonathan Worthington)++ | src/core/IO/Handle.pm .getc should return Nil, not Str, at the end. |
|||
rakudo/refactor-handle-encoding: 280c34f27b | (Jonathan Worthington)++ | src/core/IO/Handle.pm Fix bug in .encoding switching. |
|||
jnthn | At least I've been careful enough to preserve bugs :P | 15:23 | |
Zoffix | :) | 15:24 | |
jnthn | m: say Str // 0 || 42 | 15:26 | |
camelia | 42 | ||
jnthn | m: say 1 // 0 || 42 | ||
camelia | 1 | ||
jnthn | m: say 1 // 2 || 42 | ||
camelia | 1 | ||
jnthn | m: say Str // 2 || 42 | ||
camelia | 2 | ||
Zoffix | Filed as rt.perl.org/Ticket/Display.html?id=131365 | ||
jnthn | Alright | ||
Think I've hunted down the last regression, then it's just bin/:bin to consider | 15:27 | ||
Plus syncing up a MoarVM patch with the JVM impl | |||
And I likely need to switch on newline translation | |||
So Windows will be happy | 15:28 | ||
Zoffix | hoh | ||
j: with '/tmp/foo70'.IO { .spurt: "aā„cd"; with .open { dd ( .getc xx 10 ) } } | |||
camelia | ("a", "ā„", "c", "d", Nil, "\0", "\0", "\0", "\0", "\0").Seq | ||
Zoffix | \0s after the first Nil | 15:29 | |
jnthn | That one may well be fixed by my work | ||
Geth | rakudo/newer-cat-handle: 3b668b6804 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm [io grant] Implement IO::CatHandle.getc |
15:31 | |
roast/newer-cat-handle: 2f65a72df5 | (Zoffix Znet)++ | S32-io/io-cathandle.t [io grant] Test IO::CatHandle.getc 1 TODOed test due to IO::Handle.getc bug: rt.perl.org/Ticket/Display.html?id=131365 |
15:32 | ||
jnthn | Zoffix: I guess we'll also drop :enc<bin>? | 15:38 | |
Zoffix | jnthn: yeah | ||
Geth | roast: 45ce2fa4b1 | (Jonathan Worthington)++ | S32-io/open.t Eliminate test doing open with :enc and :bin. |
15:57 | |
roast: e6bf69bb91 | (Jonathan Worthington)++ | S32-io/open.t Re-work tests for :bin and .encoding. Todo'd one of them that will fail until the I/O encoding refactors branch is merged. |
|||
rakudo/refactor-handle-encoding: 2e12cea2da | (Jonathan Worthington)++ | src/core/IO/Handle.pm Don't be so eager to avoid trying to read. Removing these checks is probably a speed-up anyway, but we also rely on them issuing a read to generate errors when we try to read from a handled opened for write. |
15:59 | ||
rakudo/refactor-handle-encoding: caacd25515 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Allow :bin to be set at construction time. And use it as a default to `open`, just like we do for things like `:enc`, `:nl-in`, etc. |
|||
rakudo/refactor-handle-encoding: 3a396b48a1 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Need a fresh decoder after a seek. |
|||
rakudo/refactor-handle-encoding: 51c73ba066 | (Jonathan Worthington)++ | src/core/IO/Handle.pm Use Nil to signal no encoding (thus :bin mode). |
16:00 | ||
Zoffix | m: gist.github.com/zoffixznet/269379a...94dd05187e | 16:01 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> P6opaque: missing attribute protocol in compose of B2 at <tmp>:2 |
||
Zoffix | m: class Foo does Blob {} | 16:02 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> P6opaque: missing attribute protocol in compose of Foo at <tmp>:1 |
||
Zoffix | Filed as rt.perl.org/Ticket/Display.html?id=131366 | 16:03 | |
jnthn | m: class Foo does Blob is repr('VMArray') {} | ||
camelia | ( no output ) | ||
jnthn | Probably needs that | ||
Zoffix | Ahhh | 16:04 | |
jnthn: so should I just close the ticket? | |||
Hmm... "NEW version is 220.63x faster" | 16:06 | ||
But is it 220x wronger... | |||
jnthn | Zoffix: Hm, we may be able to try and figure out that it needs the different REPR | 16:07 | |
I forget exactly how that part works | |||
Zoffix | "NEW version is 3141.78x faster" | 16:08 | |
haha :D | 16:09 | ||
jnthn | o.O | ||
Wow | |||
Yay. All passing spectests, plus todo passes also | |||
Zoffix | "NEW version is 51497.76x faster"... k looks like O(n) changed. /me plugs that change in and strestests | 16:10 | |
jnthn | So, remaining with my branch is (1) try it on Windows and probably fix up missing translate-nl stuff, and (2) patch up JVM the way I did Moar and then see what's busted | 16:11 | |
Zoffix | Cool | ||
Geth | nqp: ab01023b30 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION Bump MOAR_REVISION for decoder API fix. |
16:14 | |
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...86a35b6... No newline at end of file 4c522faf03 | (Jonathan Worthington)++ | t/moar/05-decoder.t |
|||
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...86a35b6... No newline at end of file 34b728e541 | (Jonathan Worthington)++ | 2 files |
|||
jnthn | haha | ||
Zoffix | heh | 16:18 | |
jnthn | It somehow went missing in the previous bump, my commit added it back | ||
jnthn | Righty, home time | 16:21 | |
heh, well, except I noticed the JVM spectest I set off before heading there spat out No subtests run for every single test | 16:29 | ||
And then did it for make test too | |||
But running under prove it seems make test looks...better | 16:31 | ||
*sigh* but 99-test-basic.t seems to hang | 16:32 | ||
While precompiling Test.pm | 16:33 | ||
Guess that's what I'll be looking at in the morning, then... | |||
bbl | |||
Geth | rakudo/nom: 7ecb59dcd5 | (Samantha McVey)++ | src/core/Str.pm 8% speed increase for .starts-with() Str method We can apply the same simplification and speed up other methods for Str as well, as there are many which use nqp::getattr which uses more CPU time than not. |
16:45 | |
Zoffix | m: my $b = Blob.new: 1..1000; .signature.say for $b.^lookup("splice").candidates | 16:46 | |
camelia | ( no output ) | ||
Zoffix | dafuq? the method is there but there are no candidates? | ||
m: dd Any.^lookup("splice") | 16:48 | ||
camelia | Method+{<anon|56674624>} splice = method splice (Mu $: | is raw) { #`(Method+{<anon|56674624>}|48479896) ... } | ||
Zoffix | Ah. It's not a multi | ||
Is that it? | |||
m: Blob.new.splice: 42 | |||
camelia | Use of uninitialized value of type Any in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1 Cannot resolve caller splice(Blob, Int); none of these signaturesā¦ |
||
Zoffix | ^ cause that error is LTA. It says "none of these signatures match:" and ends | 16:49 | |
Filed as rt.perl.org/Ticket/Display.html?id=131367 | 16:52 | ||
dammit... my amazing speedup changes fail spectest because it doesn't return a blob of the right type | 16:54 | ||
which amusingly is mostly caught by my new IO tests and not buf tests :P | 16:56 | ||
ah -str- tests bufs, ok | 16:58 | ||
ZofBot: you're on Buf robot, I tell you! | |||
ZofBot | Zoffix, I was looking at the pi bug we discussed the other day, changing snprintf from "%.15g" to "%.16g" makes one test fail in t/spec/integration/advent2013-day15.t | ||
Zoffix | ZofBot: great work. Carry on! | ||
ZofBot | Zoffix, I think I just don't understand the use case where it would ever matter if the thread changes... | ||
Zoffix | (these responses would be impressive if I didn't remember conversations they came from :P) | 16:59 | |
nebuchadnezzar: ???? works with Perl 6. It's just not a valid identifier. You need to make it one. | 17:00 | ||
m: my \term:<????> = 42; say ???? + ???? | |||
camelia | 84 | ||
Zoffix hits a snag | 17:03 | ||
Or, I guess not. It's just IO::CatHandle can be made from a mix of Cools and IO::Handles. And some of those handles might be opened in char mode, but others in binary mode. | 17:05 | ||
Maybe I need a new attribute: if it's set, then for already-opened handles, set chomp/nl-in/encoding to that of the cathandles attributes; if it's not set, then leave the handles alone | 17:10 | ||
I'm gonna go with: always set them when switching to already opened handle; otherwise there'll be all sorts of crashes when, say, trying to $cat.slurp with a mix of handles opened in bin/char modes | 17:12 | ||
Zoffix gives it a rest and will wait for jnthn++'s merge to see how the encoding is signaled now. | 17:13 | ||
.tell jnthn BTW what do you think of making IO::Handle.encoding consistent with other attributes? You can change $fh.chomp/.nl-in/.nl-out by assigning to them, while $fh.encoding takes an arg instead. I kinda left it alone, but if we're doing all these refactors that touch encoding, maybe we should nail that consistency too? | 18:43 | ||
yoleaux | Zoffix: I'll pass your message to jnthn. | ||
Zoffix | Hehe. A ticket asks to consider 6 year olds reading the error message :D I like that it doesn't sound crazy :) | 19:33 | |
.oO( make a Perl 6 distro targeted for kids... ) |
|||
ugexe | my $last = @arr.poop; | 19:34 | |
Zoffix | :) | 19:35 | |
geekosaur | well, really that ticket is yet another 'perl 5 programmer trap detection considered harmful' | ||
oh wait, no, I'm confusing tickets | |||
Zoffix | Yeah :) | ||
geekosaur | it's the octal one that's 'p5 considered harmful' | ||
Zoffix | I'm talking about the octal one. | 19:36 | |
But most langs use 0n for octals, so it's not P5 only :) | |||
And the other one about the dot: while `"42".ā¤abs` works, `42.ā¤abs` doesn't. | 19:37 | ||
AlexDaniel | Zoffix: well, you have to use spaces around your infix ops | 19:39 | |
that's not the only case where it doesn't work | |||
Zoffix | m: sub infix:<ā„> { $^a ~ $^b }; say "look ma"ā„"no spaces" | 19:41 | |
camelia | look mano spaces | ||
Zoffix | m: sub infix:<.> { $^a ~ $^b }; say "look ma"."no spaces" | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'. at <tmp>:1 ------> 3{ $^a ~ $^b }; say "look ma"."no spaces"7ā5<EOL> |
||
Zoffix | m: sub infix:<.> { $^a ~ $^b }; say "look ma".ā¤"no spaces" | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of . to concatenate strings; in Perl 6 please use ~ at <tmp>:2 ------> 3 infix:<.> { $^a ~ $^b }; say "look ma".7ā5<EOL> |
||
Zoffix | heh | ||
AlexDaniel: how's this: gist.github.com/zoffixznet/e0d7417...96ce9e9476 | 19:43 | ||
AlexDaniel | Zoffix: looks better | 19:44 | |
but why isn't it a compile-time error? | 19:45 | ||
like, SORRY! Leading 0 is not allowed | |||
Zoffix | AlexDaniel: it's a compile time warning | 19:46 | |
AlexDaniel | yes, why warning? | ||
so that you can silence it and continue? | |||
Zoffix | I'm guessing "Because Perl 5". Same as why the hell is Int == 0 | ||
m: say Int == 0 | 19:47 | ||
camelia | Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int'. Did you forget a '.new'? in block <unit> at <tmp> line 1 |
||
Zoffix | Which amusingly you can't evaluate with half the ops | ||
AlexDaniel bangs his head against the wall | |||
Zoffix | ehh... the message change is blocked by a dumb test | ||
Zoffix needs to relocate | |||
AlexDaniel | Zoffix: but yes, the text is better | 19:48 | |
Zoffix | AlexDaniel: though now that you pointed out that it's an error and not a warning, perhaps the "Not allowed" part is wrong? | 19:56 | |
Iirc, I added that part last time I improved that message | |||
m: 05 | 19:57 | ||
camelia | Potential difficulties: Leading 0 does not indicate octal in Perl 6. Please use 0o5 if you mean that. at <tmp>:1 ------> 03057ā5<EOL> WARNINGS for <tmp>: Useless use of constant integer 5 in sink context (line 1) |
||
Zoffix | yeah | ||
AlexDaniel | well, it can say that leading zeros do nothing | ||
Zoffix | s/'Leading zero is not allowed.'/'Leading zero has no meaning'/ | 19:58 | |
Gonna do that when I get to a computer | |||
perlpilot idly wonders if the octal message should mention quoting in case they meant '05' | 20:12 | ||
Geth | roast: 2705ff130b | (Zoffix Znet)++ | S15-literals/numbers.t Make 067 warning check less exact The test is not part of 6.c-errata, and perhaps this sort of tests that test exact textual content of error/warning messages should be excluded from errata. |
21:13 | |
roast: 243964211f | (Zoffix Znet)++ | S19-command-line/repl.t Move octal warning REPL test to rakudo/t The test is not part of 6.c-errata, and perhaps this sort of tests that test exact textual content of error/warning messages should be excluded from errata. |
|||
rakudo/nom: 666350af93 | (Zoffix Znet)++ | t/02-rakudo/repl.t Move octal REPL warning test from roast to rakudo test suite Moved from github.com/perl6/roast/commit/243964211f Marked as TODO because the available REPL testing function doesn't appear to test STDERR. The entire test file should be reworked with better testing routines. Marking the two tests as TODO until then. |
21:14 | ||
rakudo/nom: b6694bd0b3 | (Zoffix Znet)++ | src/core/Exception.pm Improve octal-leading-zero warning - Remove wording about leading zero not allowed, since we only warn and don't throw, so obviously it is allowed. - Do not assume the user definitely meant to write an octal; Fixes RT#131361: rt.perl.org/Ticket/Display.html?id=131361 - Add suggestion for if the user meant to write a string; perlpilot++ |
21:16 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131361 | ||
Zoffix | Hah. Samba vuln... I guess I'm finally going to be updating my ancient Linux frankenbuntu box :P thehackernews.com/2017/05/samba-rce-exploit.html | 21:26 | |
.tell jnthn perhaps we shouldn't add $.bin to IO::Handle and simply have $.encoding.defined.not to mean binary mode? For example, if I have a handle made with `my $fh = IO::Handle.new: :path<foo>, :$bin`, then `$fh.open: :enc<ascii>` might die complaining about both enc and bin, and I need to write it as `$fh.open: :enc<ascii> :!bin` | 21:49 | ||
yoleaux | Zoffix: I'll pass your message to jnthn. | ||
jnthn | I added it so there was a way to specify binary mode when doing the IO::Handle.new(...) approach | 21:53 | |
yoleaux | 21:49Z <Zoffix> jnthn: perhaps we shouldn't add $.bin to IO::Handle and simply have $.encoding.defined.not to mean binary mode? For example, if I have a handle made with `my $fh = IO::Handle.new: :path<foo>, :$bin`, then `$fh.open: :enc<ascii>` might die complaining about both enc and bin, and I need to write it as `$fh.open: :enc<ascii> :!bin` | ||
jnthn | The introspection aspect of it was a side-effect of that. | 21:54 | |
I think if you construct it with :bin and then open with a :enc then you deserve the exception yet get. | |||
Zoffix | Ah, right. OK | ||
jnthn | It probably suggests confusion of some kind anyway | ||
I added it 'cus we had a test that I couldn't express any more (it did .new with :enc<bin>) | 21:55 | ||
The other option woulda been to toss the test | |||
But it felt a bit odd that you could .new with enc, nl-in, nl-out, and friends but then not bin. | 21:56 | ||
Zoffix | Yeah, I didn't think about the case where you wanted to .new in bin | ||
ugexe | does reworking Proc to use Proc::Async have any new ramifications regarding IO from a proc spawned in a thread (..lol?) | 22:10 | |
timotimo | hm. is it the case that until now starting a synchronous Proc would not spawn an event loop thread? | 22:14 | |
ugexe | i have no idea! | 22:15 | |
jnthn | At present, if you make a Proc on one thread, but then try to read the .out or .err on another thread you'll have problems | 22:17 | |
My intention was to address that | |||
Geth | rakudo/newer-cat-handle: 25b664a2d6 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm [io grant] Implement IO::CatHandle.words |
22:18 | |
roast/newer-cat-handle: a4a7eaabd7 | (Zoffix Znet)++ | S32-io/io-cathandle.t [io grant] Test IO::CatHandle.words |
|||
ugexe | yeah, i just assumed there would be some sort of downside as well | 22:20 | |
Geth | roast/newer-cat-handle: 33048a4c28 | (Zoffix Znet)++ | S32-io/io-cathandle.t Don't spec IO::CatHandle.slurp-rest |
22:21 | |
rakudo/newer-cat-handle: 2eb8a25f18 | (Zoffix Znet)++ | t/02-rakudo/07-io-cathandle.t Test .slurp-rest throws X::Obsolete.. |
|||
Zoffix is & for the day | 22:22 | ||
timotimo | Zoffix: this is a very nitty pick, but the exception about leading 0 won't tell you that a number is invalid octal if it has different digits that mean 8 or 9 | ||
(i don't have any on hand, and i'm not sure if anybody would ever actually run in this in The Real Worldā¢) | |||
ugexe | *currently* if i spawn a process that itself spawns processes i seem to hit open 3 problem deadlocks a lot | 22:23 | |
Zoffix doesn't get what you mean, timotimo | |||
What different digits that mean 8 or 9? | |||
timotimo | u: nine | ||
unicodable6 | timotimo, U+0039 DIGIT NINE [Nd] (9) | ||
timotimo, U+00AA FEMININE ORDINAL INDICATOR [Lo] (ĀŖ) | |||
Zoffix | Ah, right | ||
unicodable6 | timotimo, 143 characters in total: gist.github.com/0a8824930c49660296...c0bc19abb8 | ||
timotimo | m: say 0oļ¼ | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> 'ļ¼' is not a valid number at <tmp>:1 ------> 3say 0oļ¼7ā5<EOL> |
||
timotimo | wait what :Ī“ | 22:24 | |
m: say 0o9 | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> '9' is not a valid number at <tmp>:1 ------> 3say 0o97ā5<EOL> |
||
timotimo | that's not a cool error message | ||
Zoffix | heh | ||
m: say 0ąÆ | |||
camelia | Potential difficulties: Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0oąÆ'. If you meant to create a string, please add quotation marks. at <tmp>:1 ------> 3say 0ąÆ7ā5<EOL> 9 |
||
Zoffix | I've no idea how to improve hat. | ||
Othat than something crazy like .combing and +'' each char :D | 22:25 | ||
Zoffix & | |||
timotimo | we are able to regexmatch on unicode properties and such, and we can also use unival here | 22:26 | |
m: say unival($_) for "789ąÆ" | |||
camelia | 7 | ||
timotimo | m: say unival($_) for "789ąÆ".comb | ||
camelia | 7 8 9 9 |
||
timotimo | and the "is not a valid number" one should at least include the base if it isn't base10 (or maybe always) | 22:27 | |
jnthn | ugexe: Yeah...well, if we do it in terms of Proc::Async then we can the natural way would be for it to shove input as it arrives into a channel | 22:28 | |
ugexe: And the sync reads pull from that | |||
ugexe: That means we don't deadlock, though of course we pay in memory. | |||
But at some point we'll need to cross the general issue of supplies and back-pressure | 22:29 | ||
So I don't mind kicking that issue down the road some | |||
ugexe | i thought Supply already had stuff for that | 22:30 | |
jnthn | yes and no | ||
I mean, there's natural back-pressure if you are the source, because you are paying the cost of the processing | 22:31 | ||
But data arriving on the event loop schedules its handler on the thread pool | |||
And the input queue to the pool is unbounded | |||
There's things like throttle, but those are largely about throwing data away | 22:32 | ||
We don't yet have a way to push back on the event loop | |||
ugexe | yeah thats what I was thinking of. I thought you could just vent-at some other Supply, but then where does it end I guess | 22:33 | |
jnthn | Well, yes :) | ||
In general, though, I'm not fond of the synchronous Proc API. I mean, for run/shell/qx it's fine, but once it's more complex I'd much rather deal in Proc::Async's API | 22:34 | ||
But we have it, and need to support it | 22:35 | ||
timotimo | ugexe: it makes me mildly uncomfortable that the urls in the blog post about the cpan testers reporter will result in "report not found" :( | ||
ugexe | timotimo: well tell them to stand up their new api already :P | ||
jnthn | I'd just rather supporting it didn't mean two separate proc spawning impls to support in MoarVM | ||
Which is what we've got today | 22:36 | ||
timotimo | oh, we can submit but it won't reach the front-end yet if it's p6? | ||
ugexe | jnthn: yes agree. i've done the fake-async with Proc to get some things working on jvm before | ||
this probably also fixes the :merge issues | |||
jnthn | Oh, 'cus no Proc::Async on JVM... | ||
That'll be nice to have fixed :) | 22:37 | ||
ugexe | timotimo: yeah it submits. but not even perl 5 reports that are submitted to it (if that has happened yet) would show up | ||
they do get stored though because a UUID is returned and I saw them look one up on the db | |||
jnthn | Sleep time here; will get some more work on the file handle stuff in tomorrow :) | 22:38 | |
timotimo | oh, i didn't know it doesn't work for p5 either | ||
exciting times for our ecosystem | 22:39 | ||
ugexe | jnthn: definitely, probably fix precomp deadlocks too | ||
timotimo: yeah their new api is generic - its for any kind of test report | |||
timotimo | uh oh, do i sense a tiny bit of second system syndrome? ;) | 22:40 | |
ugexe | a perl6 report was the first report to it though | ||
timotimo | cool! | ||
how long before PTS did this get started? | |||
ugexe | you can still report to p6c testers if you install Net::HTTP and use `--p6c-testers` | ||
timotimo | once we can retire p6c-testers, p6c will have so much less cpu load ;) | ||
ugexe | the new api? not sure | ||
i believe they discussed it on the flight there | 22:41 | ||
timotimo | and the staging compunit repo is also quite exciting | 22:43 | |
ugexe | there is also build.pm replacement stuff that got worked out but its not done yet | 22:46 | |
timotimo | that's such a hairy topic | 22:47 | |
definitely nice to have | |||
but damn, i wouldn't dare touch something like that | |||
ugexe | design.perl6.org/S22.html#Dependency_hints | 22:48 | |
timotimo | oh, is this old speculations already? | 22:49 | |
ugexe | we try to abuse `by-$SOME-DYNAMIC-VAR.method` as filters | ||
that was added at PTS | |||
timotimo | ah | ||
ugexe | version 1 of meta6 spec | 22:50 | |
timotimo | how do you handle when multiple overlapping values? | ||
i.e. "if it's windows, do this, except if it's windows and the version is 3.11" | 22:51 | ||
ugexe | there is no dyn var to get the os version? | ||
timotimo | well, windows may be a bad example | ||
"oh yeah if the kernel version's 4.9.23, use this workaround library" | 22:52 | ||
ugexe | m: say $*DISTRO.version | ||
camelia | v42.2 | ||
timotimo | that's opensuse afaik | ||
ugexe | so they'd put by-distro.version => whatever | ||
you can have multiples, but first match wins i believe | 22:53 | ||
timotimo | OK | ||
does that mean you can nest 'em? | |||
ugexe | yeah i believe you can nest as many levels as you need | 22:54 | |
timotimo | that's kind of cool. also terrible things will be done with this | 22:55 | |
it'll be annoying that you can't reference things across branches | 22:56 | ||
i have no idea if it'd ever appear in practice, but you might have lots of repetition | 22:57 | ||
Geth | rakudo/nom: ec51e73fcd | (Zoffix Znet)++ | 2 files Detect non-ASCII digits > 7 octal warning; timotimo++ |
||
timotimo | cool, Zoffix++ | 22:59 | |
oh yes, an "emulates" function | 23:00 | ||
ugexe | people should not be writing build.pm stuffs often enough for that to be a serious problem | ||
timotimo | why don't we have a "phpbb" key for the "support" section? ;) ;) | 23:01 | |
ugexe | or we could come up with a way to do json spec and ref | ||
timotimo | i find it really weird to have "phone" in there, but i realize i'm living in a very narrow world with regards to that | 23:02 | |
ugexe | (with potential cost indication) | ||
timotimo | yup | ||
the section "support" lists a few things as "possible keys are", but lacks "license" which is introduced as another possibility in the next section | 23:03 | ||
also, no mention of "or" and "and" in the spdx license string | |||
i'm amazed JSON::Fast is used as an example ;) | 23:04 | ||
i don't understand the second paragraph under "bin" | 23:06 | ||
for the :from adverb | 23:07 | ||
it seems to be about :from<bin> as well as the bin/ folder in a distribution | |||
but it doesn't point out that it switched topics in between the paragraphs | |||
it should be possible to put data: urls for dlls and such in the depends section :D :D :D | 23:08 | ||
i'll go to be dnow | 23:09 | ||
have a good one! | |||
ugexe | :from<bin> and :from<lib> just hint where to look for the dependency... its referring to system stuff | 23:14 | |
e.g. `is wget bin available?` or `is gtk library available?` | 23:15 |