From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Moreton Newsgroups: gmane.emacs.devel Subject: Re: Asynchronous DNS Date: Sun, 31 Jan 2016 14:03:50 +0000 Message-ID: <86y4b5zvzt.fsf@gmail.com> References: <87si1gx6wz.fsf@gnus.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1454249069 4361 80.91.229.3 (31 Jan 2016 14:04:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 31 Jan 2016 14:04:29 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 31 15:04:21 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aPsby-0001p3-Ev for ged-emacs-devel@m.gmane.org; Sun, 31 Jan 2016 15:04:18 +0100 Original-Received: from localhost ([::1]:41786 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPsbx-00012B-JU for ged-emacs-devel@m.gmane.org; Sun, 31 Jan 2016 09:04:17 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53778) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPsbk-000125-Ta for emacs-devel@gnu.org; Sun, 31 Jan 2016 09:04:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aPsbf-0002Iw-UT for emacs-devel@gnu.org; Sun, 31 Jan 2016 09:04:04 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:60617) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPsbf-0002Ip-NH for emacs-devel@gnu.org; Sun, 31 Jan 2016 09:03:59 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1aPsbe-0001Bd-E3 for emacs-devel@gnu.org; Sun, 31 Jan 2016 15:03:58 +0100 Original-Received: from 82-69-64-228.dsl.in-addr.zen.co.uk ([82.69.64.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 31 Jan 2016 15:03:58 +0100 Original-Received: from andrewjmoreton by 82-69-64-228.dsl.in-addr.zen.co.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 31 Jan 2016 15:03:58 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 58 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 82-69-64-228.dsl.in-addr.zen.co.uk User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.90 (windows-nt) Cancel-Lock: sha1:PgXGUDChPaydZN9n3K8rxblzfxI= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:199077 Archived-At: On Sat 30 Jan 2016, Lars Ingebrigtsen wrote: > Async DNS has now been implemented in the feature/async-dns branch, and > I'm running that Emacs right now. And it works! I mean, eww no longer > gets those awkward pauses when resolving DNS names of image assets. > Whee! Or placebo! Whee! > > There's quite a bit of cleanup remaining, though, and I'm probably > leaking memory ... somewhere... And I'm not really happy with the way > I'm doing the polling, which required another process array in addition > to the chan_process table. Surely a better way must exist, but the > process isn't entered into the chan_process table until the socket has > been created, and we can't create the socket before we've done the name > resolution, because we don't know whether it's going to be an IPv4 > address or an IPv6 address. > > If anybody else wants to start fiddling with the stuff, be my guest. > :-) But I'm going to continue tinkering with it on the branch, and will > probably merge with the trunk in a few days. It would be nice if people > on non-Linux systems could check whether it builds at all on those > systems before I do the merge... This doesn't build on mingw64: ../../src/process.c: In function 'Fmake_network_process': ../../src/process.c:3589:21: error: 'AF_LOCAL' undeclared (first use in this function) if (family != AF_LOCAL) ^ ../../src/process.c:3589:21: note: each undeclared identifier is reported only once for each function it appears in ../../src/process.c:3755:19: warning: implicit declaration of function 'Ncons' [-Wimplicit-function-declaration] ip_addresses = Ncons (make_number (host_info_ptr->h_addr, ^ ../../src/process.c:3756:34: error: macro "make_number" passed 2 arguments, but takes just 1 host_info_ptr->h_length), ^ ../../src/process.c:3755:17: error: incompatible types when assigning to type 'Lisp_Object {aka struct }' from type 'int' ip_addresses = Ncons (make_number (host_info_ptr->h_addr, ^ ../../src/process.c:3767:17: error: incompatible types when assigning to type 'Lisp_Object {aka struct }' from type 'int' ip_addresses = Ncons (make_number (numeric_addr), Qnil); ^ ../../src/process.c: In function 'send_process': ../../src/process.c:5831:7: error: used struct type value where scalar is required if (p->gnutls_async_parameters) ^ Makefile:372: recipe for target 'process.o' failed The AF_LOCAL check looks like it should be guarded with HAVE_LOCAL_SOCKETS. The make_number() errors may be from configured with checking enabled. "config.status --config" for this build shows: '--prefix=c:/emacs' '--build=x86_64-w64-mingw32' '--without-dbus' '--enable-checking' '--enable-check-lisp-object-type' '--with-gif' '--with-jpeg' '--with-png' '--with-tiff' '--with-xpm' '--with-gnutls' '--with-rsvg' '--with-xml2' '--without-imagemagick' '--with-modules' 'CFLAGS= -g3 -O0' 'build_alias=x86_64-w64-mingw32'