Is someone working on issues:
http://code.google.com/p/pharo/issues/detail?id=1031 http://code.google.com/p/pharo/issues/detail?id=961 http://code.google.com/p/pharo/issues/detail?id=794 Without them fixed the in-image network doesn't work. CPU: intel CPU arch: x86 OS: Debian GNU/Linux i386 OS arch: 32 bits works: YES CPU: intel CPU arch: x86_64 OS: Debian GNU/Linux amd64 OS arch: 64 bits works: NO CPU: amd CPU arch: x86_64 OS: Debian GNU/Linux i386 OS arch: 32 bits works: YES CPU: amd CPU arch: x86_64 OS: Debian GNU/Linux amd64 OS arch: 64 bits works: NO In short it doesn't work on a 64 bit OS. I tried to see the source code for the squeak vm because it is the primitives that are failing but I got confused and gave up. The interesting part that I found was this: static char localHostName[MAXHOSTNAMELEN]; static u_long localHostAddress; /* GROSS IPv4 ASSUMPTION! */ assigned in: /* start a new network session */ sqInt sqNetworkInit(sqInt resolverSemaIndex) { if (0 != thisNetSession) return 0; /* already initialised */ gethostname(localHostName, MAXHOSTNAMELEN); localHostAddress= nameToAddr(localHostName); thisNetSession= clock() + time(0); if (0 == thisNetSession) thisNetSession= 1; /* 0 => uninitialised */ resolverSema= resolverSemaIndex; return 0; } by means of: static int nameToAddr(char *hostName) { struct hostent *he; lastError= 0; /* ditto */ if ((he= gethostbyname(hostName))) return ntohl(*(long *)(he->h_addr_list[0])); lastError= h_errno; /* and one more ditto */ return 0; } there it appears to call a system function (gethostbyname) and to convert the result struct first entry on array h_addr_list. Well the point is, this is for someone with more experience with the socket plugin in squeak. So, it is someone trying to fix this? Are there any news here? It is a structural problem, because before this I could connect to the network in my 64 bit OS on my x86_64 architecture without the ia32libs on debian. For these test I installed the ia32libs package of debian in order load and start the closure vm. Maybe Jose Luis Redrejo has a hint about how to build the vm in order to having a full networking vm/image. Or someone more involved with the internals of the vm. -- Miguel Cobá http://miguel.leugim.com.mx _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
El dom, 23-08-2009 a las 18:40 -0500, Miguel Enrique Cobá Martinez
escribió: > Is someone working on issues: > > http://code.google.com/p/pharo/issues/detail?id=1031 > http://code.google.com/p/pharo/issues/detail?id=961 > http://code.google.com/p/pharo/issues/detail?id=794 > > Without them fixed the in-image network doesn't work. > > CPU: intel > CPU arch: x86 > OS: Debian GNU/Linux i386 > OS arch: 32 bits > works: YES > > CPU: intel > CPU arch: x86_64 > OS: Debian GNU/Linux amd64 > OS arch: 64 bits > works: NO > > CPU: amd > CPU arch: x86_64 > OS: Debian GNU/Linux i386 > OS arch: 32 bits > works: YES > > CPU: amd > CPU arch: x86_64 > OS: Debian GNU/Linux amd64 > OS arch: 64 bits > works: NO > > In short it doesn't work on a 64 bit OS. > > I tried to see the source code for the squeak vm because it is the > primitives that are failing but I got confused and gave up. > > The interesting part that I found was this: > > static char localHostName[MAXHOSTNAMELEN]; > static u_long localHostAddress; /* GROSS IPv4 ASSUMPTION! */ > > assigned in: > > /* start a new network session */ > > sqInt sqNetworkInit(sqInt resolverSemaIndex) > { > if (0 != thisNetSession) > return 0; /* already initialised */ > gethostname(localHostName, MAXHOSTNAMELEN); > localHostAddress= nameToAddr(localHostName); > thisNetSession= clock() + time(0); > if (0 == thisNetSession) > thisNetSession= 1; /* 0 => uninitialised */ > resolverSema= resolverSemaIndex; > return 0; > } > > by means of: > > static int nameToAddr(char *hostName) > { > struct hostent *he; > > lastError= 0; /* ditto */ > if ((he= gethostbyname(hostName))) > return ntohl(*(long *)(he->h_addr_list[0])); > lastError= h_errno; /* and one more ditto */ > return 0; > } > > there it appears to call a system function (gethostbyname) > and to convert the result struct first entry on array h_addr_list. > > Well the point is, this is for someone with more experience with the > socket plugin in squeak. > > So, it is someone trying to fix this? Are there any news here? > It is a structural problem, because before this I could connect to the network in > my 64 bit OS on my x86_64 architecture without the ia32libs on debian. For these test > I installed the ia32libs package of debian in order load and start the closure vm. > > Maybe Jose Luis Redrejo has a hint about how to build the vm in order to having > a full networking vm/image. > > Or someone more involved with the internals of the vm. > I forgot to mention, this happens with the pharo recommended vm on: pharo-vm-0.15.2d-linux.zip but also with the squeak closure vm on: Squeak-3.10-6.i686-pc-linux-gnu.tar.gz that gives the following messages (the last one is the important) on trying to open a repository with monticello on my 64 bit OS. miguel@laptop:~/Squeak-3.10-6/i686-pc-linux-gnu/usr/local/lib/squeak/3.10-6$ ./squeak /home/miguel/azteca/magma.image ioLoadModule(./UUIDPlugin): libuuid.so.1: cannot open shared object file: No such file or directory ioLoadModule(UUIDPlugin): UUIDPlugin: cannot open shared object file: No such file or directory getaddrinfo: Name or service not known -- Miguel Cobá http://miguel.leugim.com.mx _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Miguel Cobá
El dom, 23-08-2009 a las 18:40 -0500, Miguel Enrique Cobá Martinez
escribió: > Is someone working on issues: > > http://code.google.com/p/pharo/issues/detail?id=1031 > http://code.google.com/p/pharo/issues/detail?id=961 > http://code.google.com/p/pharo/issues/detail?id=794 > > Without them fixed the in-image network doesn't work. > > CPU: intel > CPU arch: x86 > OS: Debian GNU/Linux i386 > OS arch: 32 bits > works: YES > > CPU: intel > CPU arch: x86_64 > OS: Debian GNU/Linux amd64 > OS arch: 64 bits > works: NO > > CPU: amd > CPU arch: x86_64 > OS: Debian GNU/Linux i386 > OS arch: 32 bits > works: YES > > CPU: amd > CPU arch: x86_64 > OS: Debian GNU/Linux amd64 > OS arch: 64 bits > works: NO > I forgot to say that the Debian version for all those test was Debian GNU/Linux 5.0 Lenny. Now, this morning I updated my Debian laptop to from Lenny amd64 to Squeeze amd64 (the testing version of Debian) and magically the problems are gone. I don't know what was the reason of the fix but this Squeeze version has the following packages: ia32-libs 20090808 libc6 2.9-23 libc6-i386 2.9-23 netbase 4.37 and the old Lenny amd64 had: ia32-libs 2.7 libc6 2.7-18 libc6-i386 2.7-18 netbase 4.34 I don't know the specific as I didn't take care to track which update was the one that fixed it as I was updating my entire system. Maybe someone with ubuntu amd64 (which is based on debian testing) can confirm that with those versions the network works on 64 bit OS. Anyway, for me it works, I don't know if this changes the status of the tickets mentioned. Cheers -- Miguel Cobá http://miguel.leugim.com.mx _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |