Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
07:48 sena_kun joined 12:30 MasterDuke left
patrickb Hi! I'd like to have support for PTYs in Rakudo (working on a Debugger frontend, and I'd like to hook up the debugged program to a PTY and have the debugger sit on the other end). 19:50
lizmat PTY ? 19:51
patrickb pseudo terminal
The thing you need so that the client process thinks it's STD handles are connected to TTY. 19:52
Should setting up such a thing be implemented in moar land and provide ops / an API to NQP / Rakudo or should there be a nqp::wrap-file-descriptor() that can create a sensible MVMOSHandle given a file descriptor? 19:54
(I fear the former is what's needed, because, how could moar possibly know which operations that handle should support?) 19:55
lizmat do you really need it at that level? or do you just need make Raku think it's a TTY ? 19:56
if the latter, perhaps you could get by by overriding IO::Handle.t ? 19:57
patrickb Fixing up Rakudo to flush set the STD handle buffer size to 0 in that case is a 90 % solution. But with the debugger I want to aim for "epic", so in the end I'd like to have a PTY sitting there. That's the solution that will not break down in edge cases, as the debugged rakudo is really connected to terminal. 19:58
But postponing this topic and turning to an area where progress is easier is certainly an option . :-) 20:00
jnthn patrickb: Nicest would have been if github.com/libuv/libuv/issues/2640 had advanced, but it seems it's not really moved since I looked at it years ago. 20:15
www.npmjs.com/package/node-pty might be something one could use as inspiration or outright port 20:17
patrickb Thanks for the ideas and infos! Quite a bees nest I poked into. 20:55
node-pty uses forkpty, that's a no-go for us. But I think I should be able to adapt this to use my $conn = IO::Socket::INET.new( :host<localhost>, 20:56
:port(3333) );
$conn.print: 'Hello, Raku';
say $conn.recv;
patrickb fail-pasted 20:57
node-pty uses forkpty, that's a no-go for us. But I think I should be able to adapt this to use posix_openpt, ptsname_r and grantpt. 20:58
22:28 sena_kun left 22:30 MasterDuke joined