MasterDuke | timotimo: notice anything obvious in the diff? | 00:58 | |
timotimo | i didn't notice the diff appeared :S | 01:07 | |
sorry | |||
and now i'm in game | |||
i can't see a problem in the diff :\ | 01:09 | ||
does it still give trouble when you just bindattr_i instead of bindattr_u? | 01:10 | ||
i.e.: how far does it get? | |||
MasterDuke | hm, let me see | ||
exact same error and backtrace | 01:14 | ||
timotimo | oh | 01:22 | |
there's more than one buildplan interpreter, isn't there? | |||
01:26
evalable6 joined
|
|||
MasterDuke | oh, yeah, copied my # 99 stuff down to the second one | 01:26 | |
timotimo | ah | ||
hmm. | |||
MasterDuke | building now | ||
timotimo | but wait, it's crashing inside create_BUILDPLAN | 01:27 | |
not in the interpreter | |||
hm, could $_ refer to something else inside the if $typespec? | 01:28 | ||
quite unlikely | |||
01:28
mst joined
|
|||
MasterDuke | now dies the way it used to (pre any change i made) | 01:36 | |
wait, doesn't die, just gives a negative number | 01:37 | ||
m: class :: { has uint64 $.foo; }.new( foo => 9223372036854775808 ).foo.say | |||
camelia | Cannot unbox 64 bit wide bigint into native integer in block <unit> at <tmp> line 1 |
||
timotimo | well, i did tell you to turn bindattr_u into bindattr_i :) | 01:38 | |
MasterDuke | now i get -9223372036854775808 | ||
i changed it back | |||
i may need to start from a blank slate with my moar changes | 01:39 | ||
but that'll probably be an experiment for tomorrow, tonight is video game or iron fist | |||
samcv | iron fist is good | 01:40 | |
MasterDuke | about half-way through so far, ep 6 or 7 | ||
01:48
ilbot3 joined
|
|||
samcv | i watched it all. really good | 02:04 | |
time to rubber duck debug this code here. argh | |||
and least i've solved the performance problem. but sometimes it's traversing the strings improperly and it's hard to keep track of in your mind. when you have so many variables and possible ways of traversing the string | 02:05 | ||
02:43
vendethiel joined
04:10
vendethiel- joined
|
|||
samcv | MasterDuke, how does this sound for a function MVM_string_equal_at_ignore_case_INTERNAL_loop | 04:13 | |
it's just an internal loop that ends up getting inlined so i can share the code between eqatic and indexic and also helps the indexic code from getting... way too messy | |||
just ditched what i had done so far and just factored that code out to its own function, so now everything seems good | 04:14 | ||
04:42
vendethiel joined
|
|||
Geth | MoarVM: samcv++ created pull request #565: Refactor eqatic and indexic and make Perl 6 :i regex 1.8x faster |
04:52 | |
samcv | there we go :) done | 04:53 | |
05:04
vendethiel- joined
05:18
domidumont joined
05:25
domidumont joined
06:14
brrt joined
06:49
domidumont joined
07:16
brrt joined
07:17
vendethiel joined
|
|||
Geth | MoarVM: 16fc44089f | (Samantha McVey)++ | 2 files UTF-8 Provide a better error when failing to encode surrogates Check the general category is "Cs" (Control, Surrogates) and if so show a more useful error message. |
07:47 | |
MoarVM: e18b4ce78a | (Samantha McVey)++ | 3 files Share the exception code between both utf8 and utf8-c8 Have a new function MVM_exception_throw_utf8 so code does not have to be repeated between utf8.c and utf8_c8.c implementations. In addition add a seperate exception message if the codepoint that is attempted to be encoded is > 0x10FFFF which is the legal limit for UTF8 |
|||
MoarVM: 79526619f5 | (Samantha McVey)++ | 3 files Merge pull request #563 from samcv/surrogate UTF-8 Provide a better error when failing to encode surrogates or out of bounds characters |
|||
07:50
zakharyas joined
07:53
geekosaur joined
|
|||
brrt | \o | 07:56 | |
samcv | o/ brrt | 08:20 | |
brrt | how do you like hacking moarvm :-) | 08:24 | |
samcv | it is fun :) | 08:25 | |
brrt | even though it's mostly in C? C has a bad reputation these days | 08:26 | |
samcv | C was the first language I learned | ||
so it is all good :) | 08:27 | ||
brrt | oh really? | ||
samcv | yea | ||
brrt | well, for me, C was the first 'real' language, after BASIC | ||
samcv | i think i programmed on the calculators at school in high school but i can't remember anything at all about it | ||
other than that it was really a horrible language | 08:28 | ||
brrt | from a programmers perspective, i agree | ||
from a learners perspective, i disagree | |||
it does very few things, and that makes it pretty easy to learn | 08:29 | ||
samcv | yeah i guess so lol | ||
i think i took a C class in highschool sometime. then didn't think much of it until later. have been in IT since i was 16 (summers). went to college studies chemistry, did not graduate, but afterwords went back into IT doing linux stuff and started programming (again?) | 08:30 | ||
idk i've used linux forever and knew bash scripts but never considered that 'programming' | |||
so i guess that was my first language I actually learned. and used for more than a few weeks seriously | 08:31 | ||
i guess i never considered it programming because i was just 'making some task work' or i thought about it as just achieving the goal maybe | 08:32 | ||
lizmat | hmmm... I'm not sure I understand what 84a730f does | 08:33 | |
samcv | but then started learning C seriously, did stuff with pointers, processing a BMP file with C and resizing it with no non stadard libraries, and did some linked tree pointers and just kept learning i guess | ||
uh it makes a test pass in roast | |||
lizmat | it was my impression that overflow / underflow on natives were *not* supposed to throw ? | ||
samcv | with int overflow | ||
let me see the roast tests | 08:34 | ||
yeah it tests that they throw EVAL "my $type \$var = {$maxval+1}" | 08:35 | ||
not sure what it should do, but there's tests in roast to that effect | 08:36 | ||
lizmat | that there are tests there, doesn't mean they're correct :-) | 08:37 | |
samcv | or maybe it was this github.com/perl6/roast/blob/master...uint.t#L26 | ||
hard to tell it doesn't tell me line numbers ;( | 08:38 | ||
setting int64 to more than 9223372036854775807 throws and setting int64 to less than -9223372036854775808 throws | |||
^ those are the two tests that now pass | |||
lizmat | I wonder what jnthn thinks of this | 08:39 | |
lizmat has to be afk for a few hours again | |||
brrt | C is one of those language that makes it pretty easy to make fatal mistakes in, and yet, you never blame the language, but only yourself, cheerful that you've learned yet another thing | ||
samcv | lizmat, see github.com/MoarVM/MoarVM/pull/557 | 08:40 | |
for his comments | |||
oh looks like it fixes "Unboxing bigint to native has a problem with detecting "overflow to negative" boundary" | 08:41 | ||
brrt is surprised by how nice an interface it is | 08:42 | ||
samcv | oh this seems the reason github.com/MoarVM/MoarVM/pull/557/...15db83c3ad | ||
this commit description seems to describe it. i haven't checked out the commit itself. but seems it handles it for negative how it did for positive overflow or something? | 08:43 | ||
08:46
mtj_ joined
08:48
mtj_ joined
08:57
domidumont joined
09:07
JimmyZ joined
09:18
domidumont1 joined
10:16
geekosaur joined
10:17
ilmari[m] joined
10:53
vendethiel joined
11:00
japhb joined
11:39
brrt left,
brrt joined
|
|||
dogbert17 | jnthn: sry if I'm being a nuisance :) did the second gist reveal anything worthy of further pursuit? gist.github.com/dogbert17/3eb15ea5...1d4966f7b2 | 12:45 | |
13:03
vendethiel- joined
13:24
woolfy joined
15:08
brrt joined
|
|||
jnthn | dogbert17: Sorry, bit of a busy week here | 15:12 | |
dogbert17: Yes, that gist looks interesting | |||
brrt | okay, so i'm pondering something (while writing a blog post) | 15:59 | |
suppose I have: | |||
(if (foo) (bar) (call ā¦)) - the value of (bar) and the result value of (call) are nicely allocated to the same register | |||
however, in linear code order that looks like: | 16:00 | ||
test foo; ifz goto alt; %result = compure-bar; goto end; alt: %result = call ā¦; end; | 16:01 | ||
dogbert17 | jnthn: thx, then I'll ask AlexDaniel to add it to the RT | ||
brrt | from the perspecitve of the register allocator, the live range of %result is live in arround the call | 16:02 | |
but in the block that does the call, it is a): garbage and b): should not overwrite the result of the call | 16:06 | ||
i can get away with that because the result of the call (in %rax) is not allocatable | |||
so as long as i insert the copy from %rax to whatever result register we want to use *after* any restores (garbage or not) i'm good | 16:07 | ||
16:13
brrt joined
|
|||
brrt | i can haz blag | 16:14 | |
brrt-to-the-future.blogspot.com/201...stone.html | |||
decommute & | 16:15 | ||
TimToady | samcv: some might consider it slightly more awesome if those encoding errors put out U+hex numbers instead of decimal, since a lot of us autorecognize certain ranges based on the hex values | 16:37 | |
well, maybe 0x would be better than U+ there, since by definition they aren't valid unicode :) | 16:42 | ||
but I do think most of the unicodey community would consider the hex "name" more normative than the decimal... | 16:43 | ||
and it doesn't seem like the sort of situation where an intentionally obscure "guru meditation number" is warranted. :) | 16:48 | ||
you can tell how slow my brain is working today, since it took me ten minutes to say that... :) | |||
timotimo | a good guru meditates for many minutes before saying a single thing | 16:49 | |
16:50
domidumont joined
|
|||
TimToady | thing | 16:58 | |
timotimo | i wonder why i don't read anything about xchg instructions in that blog post by brrt | 17:13 | |
brrt, in the second-to-last paragraph, i'd probably call it "from 'old' to 'young' objects" instead | 17:18 | ||
17:55
woolfy left
|
|||
[Coke] hurms github.com/xoreaxeaxeax/movfuscator for brrt | 18:29 | ||
18:51
vendethiel joined
|
|||
timotimo | i wonder why we don't have a submodule for libatomic_ops | 19:17 | |
jnthn | Well, after the chaos of last time we switched something to a submodule, then the reason we aren't going to have one is I don't want to subject our downstream users to that again. :P | 19:18 | |
timotimo | yeah | ||
we could, however, grab latest code from upstream? | |||
jnthn | We could do that, yes | 19:19 | |
timotimo | do we want to properly import history from the libatomic_ops repo? there's not really a need to, i don't think | ||
maybe that way i can get the flood of warnings to stop when i compile moar | |||
samcv | good * | 19:20 | |
timotimo | yo samcv | ||
samcv | TimToady, some of the errors do have hex. i will make even the generic ones use hex as well though | 19:21 | |
timotimo | gist.github.com/timo/d528aaa26562c...fc6dfa06c4 - this isn't b0rked, right? i didn't mess up precedence or something? | 19:23 | |
perhaps a set of parenthesis can be removed here | |||
19:24
AlexDaniel joined
|
|||
samcv | TimToady, i think `decimal (hex)` sounds like a good convention, because everywhere else when you print something out it gives you decimal. so showing decimal first makes sense. but also the hex for that info is very good too | 19:26 | |
jnthn | timotimo: Not sure we need to do that, no | 19:29 | |
timotimo | the history from libaa_tomi_cops? | 19:30 | |
AlexDaniel | dogbert17: I wonder, why can't you add it yourself? :) | ||
yoleaux2 | 16:03Z <dogbert17> AlexDaniel: if possible could you add gist.github.com/dogbert17/3eb15ea5...1d4966f7b2 to RT #131003 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131003 | ||
19:47
brrt joined
|
|||
Geth | MoarVM: 36360063b8 | (Timo Paulssen)++ | src/math/bigintops.c fix for compilers that don't have sizeof(void *) i saw this explode on an appveyor build somewhere |
20:01 | |
samcv | jnthn, did you look at my PR for the case insensitive string search? | 20:02 | |
jnthn | samcv: Yeah, but I'm so tired I couldn't think clearly enough to review it today :( | 20:03 | |
Will look tomorrow, when I'm rested | 20:04 | ||
timotimo | oh, we don't have an appveyor set up for moarvm? | 20:07 | |
src/strings/nfg.h:84:11: note: expected āMVMGrapheme32 ** {aka int **}ā but argument is of type āconst MVMCodepoint ** {aka const int **}ā | 20:10 | ||
MVMuint32 MVM_nfg_get_case_change(MVMThreadContext *tc, MVMGrapheme32 codepoint, MVMint32 case_, MVMGrapheme32 **result); | |||
is this something we have changed recently? | |||
samcv | yeah timotimo i have it fixed in my patch | 20:16 | |
the PR | |||
so don't touch that. my PR fixes that warning | |||
timotimo | OK! | 20:17 | |
src/strings/normalize.c:492:25: warning: '&&' within '||' | 20:20 | ||
(twice) | |||
do you fix that, too? :) | |||
20:21
mst joined
|
|||
TimToady hates on compilers that force superstitious parens... | 20:22 | ||
timotimo | :) | ||
TimToady | everyone should just to pronounce it right, and then it's obvious: "This 'n That OOOOOORRRR the Other Thing" | 20:25 | |
*just learn | |||
TimToady should just to type right... | 20:26 | ||
timotimo | "to be OOOOOOORRRRRRRRR not to be" | 20:27 | |
TimToady | .oO(that is the kvetching) |
20:28 | |
samcv | lol timotimo | ||
did not fix that | |||
which compilier is this? | |||
timotimo | clang | 20:29 | |
you see it on travis where there's apples | |||
samcv | let me do clang | ||
i think i usually do clang | |||
don't see that for clang. will look at TVS | 20:30 | ||
timotimo | anyway, i should be able to build GTK::Simple on appveyor now | 20:31 | |
i find it a little annoying that travis-ci builds all start with 2 minutes of downloading strawberry perl | 20:32 | ||
why don't they have like a caching proxy in there or something? | |||
samcv | you mean appveyor? | 20:33 | |
or travis. or both | |||
timotimo | appveyor | 20:35 | |
sorry | |||
AlexDaniel wonders how to pronounce (ā¦ and ā¦ || ā¦ and ā¦) and whether it should include swear words | 20:54 | ||
samcv | heh AlexDaniel | 20:57 | |
21:07
zakharyas joined
|
|||
Geth | MoarVM: 285b62a0fa | (Samantha McVey)++ | src/strings/utf8.c Use both hex and decimal for UTF8 encoding error messages As suggested by @TimToady |
21:21 | |
samcv checks the precedence rules for C | 21:22 | ||
Geth | MoarVM: 7de16be02b | (Samantha McVey)++ | 4 files Add parentheses various places to suppress compiler warnings |
21:34 | |
samcv | just to double check before blindly trusting what the compiler tells me :P | ||
Geth | MoarVM: 782dedc229 | (Samantha McVey)++ | .travis.yml Add uname -a to Travis CI script so it can show up in build logs |
21:46 | |
samcv | timotimo, how to get frame.c to print out messages | 21:51 | |
going to fix all of our compile errors | |||
but i need to know how to test the fprintf's there | 21:52 | ||
something called dlog | |||
ok well i tested on another file. seems it worked. kk. still curious, but not as important anymore i guess | 21:58 | ||
Geth | MoarVM: 634a6434ae | (Samantha McVey)++ | .travis.yml Try and get Travis working again. Somehow `uname -a` failed |
22:05 | |
timotimo | i don't know what you mean by that! | ||
oh | |||
samcv | odd. i get uname āa | ||
uname: extra operand `āa' | |||
timotimo | the dlog is the dynamic variable cache log | 22:06 | |
samcv | something in frame.c with fprintf's. i tested the same format in another file using PRIu64 and made sure it worked | ||
ah ok timotimo | |||
cause sometimes i've messed up the PRI things and it'll just show up as a string | |||
uname: extra operand `ā-help' | 22:07 | ||
Try `uname --help' for more information. | |||
:O | |||
travis sucks | 22:08 | ||
geekosaur | `ā- | ||
those look different here | |||
samcv | --help | ||
i put the ` in myself sorry | |||
travisci line says: - uname ā-help | |||
geekosaur | u: ā | ||
unicodable6 | geekosaur, U+2013 EN DASH [Pd] (ā) | ||
samcv | wow. i must have hit compose key on accident | 22:09 | |
geekosaur | the ` was a paste-o | ||
this font distinguishes hyphen, en dash, and em dash pretty well :) | |||
timotimo | maybe travis fakes out uname? | ||
Geth | MoarVM: f9b5a67950 | (Samantha McVey)++ | .travis.yml Really fix travis. Accidentally had an n-dash where a normal dash should be |
22:10 | |
samcv | on closer look i could see it in my code editor | ||
āāāā | |||
i have n-dash, M-dash, minus sign, and horizontal bar all on compose | |||
22:11
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Try and get Travis working again. Somehow `uname -a` failed' | 22:11 | |
travis-ci.org/MoarVM/MoarVM/builds/216127363 github.com/MoarVM/MoarVM/compare/7...4a6434ae27 | |||
22:11
travis-ci left
|
|||
samcv | ok everything should be fine now on latest push | 22:12 | |
MasterDuke | did anybody here see that post in the Perl 6 facebook group about MoarVM and an FPGA? | 22:18 | |
Geth | MoarVM: samcv++ created pull request #567: Use PRIu64 in fprintf's to fix compiler warning RE incorrect types |
22:20 | |
MasterDuke | "I know nothing about the MoarVM instruction set (yet), but I own an Altera Cyclone IV FPGA and a decent amount of curiosity. How plausible would it be to use Verilog / VHDL to make a Moar physical machine? Would I need to write a gcc target for Moar, or is that a separate issue? If I did make a Moar physical machine (and bearing in mind the Cyclone IV is limited to 200MHz), would that spur anyone else to develop a Moar target fo | ||
samcv | is that... possible? | ||
MasterDuke | beats me | 22:21 | |
geekosaur | extension opcodes would be ... interestinhg | 22:23 | |
have to use the ancient MacOS method of hooking the invalid opcode trap | 22:24 | ||
timotimo | MasterDuke: cut off after "develop a Moar target for" | 22:25 | |
samcv | not sure if that %lui is a typo or intentional | 22:29 | |
github.com/MoarVM/MoarVM/blob/mast...oar.c#L237 | |||
see this line | |||
%lui renders as: 99i for example if the variable given were 99 | 22:30 | ||
22:31
travis-ci joined
|
|||
travis-ci | MoarVM build passed. Samantha McVey 'Really fix travis. Accidentally had an n-dash where a normal dash should be' | 22:31 | |
travis-ci.org/MoarVM/MoarVM/builds/216128776 github.com/MoarVM/MoarVM/compare/6...b5a67950d4 | |||
22:31
travis-ci left
|
|||
geekosaur thinks typo, or thinko (someone thought u was a modifier) | 22:34 | ||
samcv | yeah that's what i think | 22:35 | |
samcv has made that mistake before | |||
i don't see anything similar anywhere else so i think typo | 22:36 | ||
timotimo | i wonder if the analysis tools all handle that extra u properly :D | ||
or maybe "the analysis tools" are just one-liners with grep and awk? :P | |||
samcv | see this warning travis-ci.org/MoarVM/MoarVM/jobs/216131896#L542 | 22:40 | |
i think (void *) casts magically to any other pointer type yes? | 22:41 | ||
also here travis-ci.org/MoarVM/MoarVM/jobs/216131896#L518 | 22:42 | ||
err duh. it's char * because literally it's 8 bits wide. heh. there might be some things that are char * that i'm not sure if the _actually_ point to something 8 bits wide though | |||
like the first link, though i haven't detangled that mess there | 22:43 | ||
geekosaur | (void *) *can* be cast to other types. and on any architecture we care about, the comparison will work without a cast | ||
but for proper portability you want the cast | 22:44 | ||
samcv | yeah | 22:45 | |
timotimo | we might want to cast these to intptr_t | 22:46 | |
samcv | trying this out and it's really nice actually. github.com/so-fancy/diff-so-fancy trying it out with git log -p and quite nice colors | 22:47 | |
i.imgur.com/Slvcwgt.png | |||
AlexDaniel | samcv: yet another cool thing that is not in debian reposā¦ where do you find this stuff? :) | 22:51 | |
I've been using colordiff for sligthly better than shitty diffs | |||
timotimo | i always diff stuff with "git diff --no-index" | ||
but i've been too lazy to set that up as an alias | 22:52 | ||
samcv | idk | ||
this is really nice though :3 | 22:53 | ||
brb more tea. and wait for travis | |||
timotimo | uargh, this "booth talk" has the background noise louder than the speaker | 22:56 | |
samcv | what is "booth talk" | 23:07 | |
timotimo | you know GDC, the game developer's conference? | 23:08 | |
MasterDuke | timotimo: huh, i see it all. but the rest was just: "... gcc?" - Paul Bennett | ||
timotimo | yes, of course you see it all :) | 23:09 | |
your irc client doesn't display what others get sent | |||
it just displays what you send | 23:10 | ||
the server is the one that gets to decide how much to keep | |||
MasterDuke | ah | ||
it doesn't let me put in unlimited text, but i guess its (the web client) limit is more than yours. oh, and the weblogs have one char less than you | 23:12 | ||
timotimo | hah | 23:13 | |
i'm not sure if the server will tell the client during the initial connection process what the limit per line is | 23:14 | ||
geekosaur | it does, but it's harder than that | ||
timotimo | samcv: basically you have a big hall where lots of companies have their little booths, and a booth talk is when they hold a little presentation directly at their booth | ||
geekosaur | you get a maximum message size. that is modified by the protocol overhead in a message | ||
which will include your nick, the target channel, the command, etc. | 23:15 | ||
timotimo | samcv: and in this case the presenter totally had a mic next to their mouth, but for some reason a different mic was used | ||
geekosaur | (and if the server doesn;t tell you, the max message size is 512 bytes per the RFC) | ||
MasterDuke | timotimo, geekosaur: think it's possible to make a MoarPM? | 23:23 | |
timotimo | Moar Perl Mongers? | 23:25 | |
samcv | Moar Private Messaging? Moar PM. what time is it Moar PM, as opposed to Moar AM | 23:26 | |
23:27
stmuk joined
|
|||
MasterDuke | MoarPhysicalMachine | 23:28 | |
timotimo | Moar Prime Minister | 23:30 | |
geekosaur | I don't know details of moarvm bytecode well enough. but in theory you could do it, aside from extension opcodes possibly being problematic | 23:31 | |
timotimo | of course if you wanted to have rakudo on MoarPM, the extops rakudo uses would become part of MoarPM | 23:32 | |
but the opcodes are kind of polymorphic | |||
so a bindpos_i could be handled a couple of different ways | |||
geekosaur | whether it's worth the effort is another question. the more high level structures it directly supports (e.g. hashes, strings with grapheme support, ...), the harder a hardware impl would be | 23:33 | |
timotimo | and our opcodes also directly have much more complicated stuff in 'em, like our hash objects for example | ||
geekosaur | anything can be done with a 2-level (microcode) implementation. again, whether it's worth doing is another question | 23:36 | |
MasterDuke | well, i can't really imagine he meant it for any practical purpose | ||
geekosaur | and on an FPGA it could end up being no faster than the current one | ||
MasterDuke | changing topics, does the change i mention in the last comment of github.com/MoarVM/MoarVM/issues/561 make sense? | 23:39 | |
timotimo | i'd actually put in both checks | 23:40 | |
i.e. first check if introspection is non-null, then check if is_tty is non-null | |||
and only then try to execute it | |||
geekosaur | ^ | ||
MasterDuke | yeah, definitely would do that if the the check for is_tty is correct | 23:41 | |
timotimo | it's a check for "does this kind of handle even know how to is_tty", right? | 23:42 | |
geekosaur | looks like it, yes | 23:44 | |
./src/io/syncpipe.c:static const MVMIOIntrospection introspection = { NULL, mvm_fileno }; | |||
*boom* | 23:45 | ||
although arguably that should be a function that always returns false | |||
timotimo | hm | 23:46 | |
MasterDuke | MVM_io_is_tty always return false? | 23:49 | |
geekosaur | "syncpipe.c" | ||
it's specific to pipes, which are always not ttys | |||
(at least on unix... but $DEITY help you on Windows, since mintty uses a windows named pipe as its tty abstraction) | |||
(msys2/cygwin isatty() is a scary beast, it has to look up the OS name of the handle to see if it's a cygwin/msys2 tty emulation pipe) | 23:51 | ||
MasterDuke | wait, i'm still not following, MVM_io_is_tty is in src/io/io.c. syncfile.c and syncstream.c have an is_tty in their introspection | ||
geekosaur | I can't tell where it gets set by a quick grep, sigh | 23:55 | |
MVM_io_is_tty just calls the introspection is_tty function, looks like | 23:56 | ||
but it does it wrapped in a mutex | 23:57 | ||
so you have things reversed, MVM_io_is_tty is not the low level implementation, it's the high level interface for when you're not already holding a mutex like you are in the guts of the file operations | 23:58 | ||
MasterDuke | right, that's pretty much how i read things | 23:59 | |
geekosaur | I am saying the introspection is_tty function for pipes shouldn't be NULL, it should be a function that always returns false | ||
so you don't have to deal with this special case |