[#58149] [ruby-trunk - Feature #9076][Open] New one-argument block syntax: &. — "asterite (Ary Borenszweig)" <ary@...>

23 messages 2013/11/04

[#58176] [ruby-trunk - Bug #9082][Open] popen3 hangs when stderr gets lots of output — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

15 messages 2013/11/05

[#58207] [ruby-trunk - Bug #9089][Open] rb_fix2uint no longer raises a RangeError when given negative values — "NoKarma (Arthur Schreiber)" <schreiber.arthur@...>

9 messages 2013/11/06

[#58243] [ruby-trunk - Feature #9098][Open] Indent heredoc against the left margin by default when "indented closing identifier" is turned on. — "sikachu (Prem Sichanugrist)" <s@...>

24 messages 2013/11/09

[#58306] [ruby-trunk - Bug #9106][Open] 'gem install' doesn't copy .so files of ext libs — "tagomoris (Satoshi TAGOMORI)" <tagomoris@...>

15 messages 2013/11/13

[#58324] [ruby-trunk - Feature #9108][Open] Hash sub-selections — "wardrop (Tom Wardrop)" <tom@...>

28 messages 2013/11/14

[#58342] [ruby-trunk - Feature #9112][Open] Make module lookup more dynamic (Including modules into a module after it has already been included) — "PragTob (Tobias Pfeiffer)" <pragtob@...>

16 messages 2013/11/14

[#58350] [ruby-trunk - Feature #9113][Open] Ship Ruby for Linux with jemalloc out-of-the-box — "sam.saffron (Sam Saffron)" <sam.saffron@...>

59 messages 2013/11/15

[#58374] [ruby-trunk - Bug #9115][Open] Logger traps all exceptions; breaks Timeout — "cphoenix (Chris Phoenix)" <cphoenix@...>

10 messages 2013/11/16

[#58375] [ruby-trunk - Feature #9116][Open] String#rsplit missing — "artagnon (Ramkumar Ramachandra)" <artagnon@...>

12 messages 2013/11/16

[#58396] [ruby-trunk - Bug #9121][Open] [PATCH] Remove rbtree implementation of SortedSet due to performance regression — "xshay (Xavier Shay)" <contact@...>

15 messages 2013/11/18

[#58404] [ruby-trunk - Feature #9123][Open] Make Numeric#nonzero? behavior consistent with Numeric#zero? — "sferik (Erik Michaels-Ober)" <sferik@...>

40 messages 2013/11/18

[#58411] [ruby-trunk - Bug #9124][Open] TestSocket errors in test-all on Arch 64-bit — "jonforums (Jon Forums)" <redmine@...>

14 messages 2013/11/18

[#58438] [ruby-trunk - Bug #9129][Open] Regression in support for IPv6 literals in URIs with Net::HTTP — "kallistec (Daniel DeLeo)" <dan@...>

11 messages 2013/11/19

[#58545] [ruby-trunk - Feature #9145][Open] Queue#pop(true) return nil if empty instead of raising ThreadError — "jsc (Justin Collins)" <redmine@...>

9 messages 2013/11/24

[#58653] [ruby-trunk - Bug #9170][Open] Math.sqrt returns different types when mathn is included; breaks various gems - this bug can be reproduced in Ruby 1.8 as well — "kranzky (Jason Hutchens)" <JasonHutchens@...>

7 messages 2013/11/28

[ruby-core:58539] Re: [ruby-trunk - Bug #9144][Open] ptys on AIX version 4 through 7

From: Perry Smith <pedzsan@...>
Date: 2013-11-23 20:59:27 UTC
List: ruby-core #58539
Doing more research, the existing ruby code is 99% there.

I got it to work by changing line 248 of ext/pty/pty.c from:

#if defined(I_PUSH) && !defined(__linux__)

to

#if defined(I_PUSH) && !defined(__linux__) && !defined(_AIX)

AIX has autopush which is really what the second half of the && should =
be testing.

Perry

On Nov 23, 2013, at 1:14 PM, pedz (Perry Smith) <pedz@easesoftware.com> =
wrote:

>=20
> Issue #9144 has been reported by pedz (Perry Smith).
>=20
> ----------------------------------------
> Bug #9144: ptys on AIX version 4 through 7
> https://bugs.ruby-lang.org/issues/9144
>=20
> Author: pedz (Perry Smith)
> Status: Open
> Priority: Normal
> Assignee:=20
> Category:=20
> Target version:=20
> ruby -v: ruby 2.0.0p247 (2013-06-27 revision 41674) =
[powerpc-aix6.1.0.0]
> Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
>=20
>=20
> The best way to open a pty on AIX version 4 through 7 is using what =
they call "AT&T" mode.  The steps are to first open "/dev/ptc" which =
opens the master side.  Then to a ttyname on the file descriptor and =
open the string that is returned to open the slave side.
>=20
> cat q.c
> #include <stdio.h>
> #include <fcntl.h>
>=20
> int main(int argc, char *argv[])
> {
>  int master =3D open("/dev/ptc", O_RDWR);
>  char *slave_name =3D ttyname(master);
>  int slave =3D open(slave_name, O_RDWR);
>  int n;
>  char buf[128];
>=20
>  printf("slave name is %s\n", slave_name);
>  printf("master fd is %d, slave fd is %d\n", master, slave);
>  write(master, "blah\n", 5);
>  n =3D read(slave, buf, sizeof(buf));
>  printf("n =3D %d\n", n);
>  printf("%*.*s", n, n, buf);
>  write(slave, "foodog\n", 7);
>  n =3D read(master, buf, sizeof(buf));
>  printf("n =3D %d\n", n);
>  printf("%*.*s", n, n, buf);
>  return 0;
> }
>=20
> make q
> cc     q.c   -o q
>=20
> ./q
> slave name is /dev/pts/9
> master fd is 3, slave fd is 5
> n =3D 5
> blah
> n =3D 14
> blah
> foodog
>=20
> (Note that ECHO is set on the tty which is why we see 'blah' when the =
slave is read.)
>=20
> You can also use what the ruby code calls BSD 4.2 ptys.  On my build =
that I did as simply as possible, I'm not sure which code I got but it =
is not working.  I have several versions of Ruby and all fail with =
"can't get Master/Slave device (RuntimeError)"  While "BSD" mode is =
supported and works, the "AT&T" mode is much nicer.
>=20
> For AIX version 3, there was a similar approach but instead of =
/dev/ptc, the master was called /dev/ptm. =20
>=20
> The _IBMESA code in ext/pty/pty.c (which mentions AIX) I don't =
recognize those names.
>=20
> There is no need to push any streams modules, etc.  Everything is =
autopushed.  You might want to add in a grantpt but I'm still not clear =
when and if that is needed.
>=20
>=20
>=20
> --=20
> http://bugs.ruby-lang.org/

Attachments (1)

signature.asc (495 Bytes, application/pgp-signature)

In This Thread