From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lars Magne Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: Asynchronous DNS Date: Sun, 24 Jan 2016 14:53:33 +0100 Message-ID: References: <56A3F3CF.7000204@cs.ucla.edu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1453643677 10345 80.91.229.3 (24 Jan 2016 13:54:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 24 Jan 2016 13:54:37 +0000 (UTC) Cc: emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 24 14:54:23 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 1aNL7V-0000jz-NH for ged-emacs-devel@m.gmane.org; Sun, 24 Jan 2016 14:54:21 +0100 Original-Received: from localhost ([::1]:60552 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNL7U-0001W0-QJ for ged-emacs-devel@m.gmane.org; Sun, 24 Jan 2016 08:54:20 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36188) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNL7G-0001Vg-Bv for emacs-devel@gnu.org; Sun, 24 Jan 2016 08:54:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aNL7D-0008Nu-5X for emacs-devel@gnu.org; Sun, 24 Jan 2016 08:54:06 -0500 Original-Received: from hermes.netfonds.no ([80.91.224.195]:39070) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNL7C-0008Na-Uf for emacs-devel@gnu.org; Sun, 24 Jan 2016 08:54:03 -0500 Original-Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=stories) by hermes.netfonds.no with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aNL6j-0002O3-Hn; Sun, 24 Jan 2016 14:53:33 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAADFBMVEWRdqF1WH1RM1JkRmon GwKsAAACOUlEQVQokR2OTWsTURiFz2CGrIQUG7qwMSv3FupCRZxgQnQRyNA7DbWNWbnouEgXCf2c zq8ILoriRrA3NgXxg2ZIR3SrIJrJtW1idkpuaArSNm3S6XjTd/dwznl4EZuuqiw3YdlHcxq8ZXf+ 3E21vaOUBnO163ke83h3voGE6ZbLfVbs2J0KQlf3qe2x/vkmX8fl8IlneSmXFfQB1FnbYh47zDp4 uEiY5cYbmXxpHaGpXO3AjZ+aLt+CYQQm3bS/YridMywaATVNvpyahvcLU4mkEiQxd94xD3EnAcgk vvJYyy6gvzMc8eflGU0JLyBzqqnySiQUU4aA6eUZVSNyVEsGgHCmGiE+yRdUBaTvaxNJCCAC7gbz EwqEURObW8S8gODQmA/LWka9SKR7SSzdbP6M+gBJGqliyfT+ESIpckQUema79i0Xqcu+G3Po7Zff CiBCAXCdft7JxYgkJNDTXnxvSE1KCBLMhsKpnVHJkRRRm05z5o5HiKyMRLFrbnenchCb4VHwRu9P PydHJd+VB6B1/Xir5TyPQUqiZ/CS1U43Yop/FP2WTi3etO1PY+KdVunjNl+rGDO3v6Pn/mW/23v2 eeL6a/A3eVbLZra60bmv4OuvWFObrDDn2gZ4cfOHM36psFYNroDT4rH9BIvNo0BUJEVanlX8lvOU gA6uWHtnFvQ6REDLWbbx6FmnCjoAXtjf/cBPoFPKS/zFS9FVhI3qq9naYNlCj9KDcKY7gEOUi/S9 PDI5gLP/wL4nBFKjFWkAAAAASUVORK5CYII= In-Reply-To: <56A3F3CF.7000204@cs.ucla.edu> (Paul Eggert's message of "Sat, 23 Jan 2016 13:42:39 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) X-MailScanner-ID: 1aNL6j-0002O3-Hn MailScanner-NULL-Check: 1454248413.77154@NgSWdwb3TWI8LlZ8+PGJwg X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.224.195 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:198692 Archived-At: Paul Eggert writes: > Lars Magne Ingebrigtsen wrote: >> 2) Use one of the newer async C resolver libraries. This would not be >> available on all platforms, and would be Yet Another Dependency which >> I'm sure everybody would rather that we avoid. > > Nevertheless, this sounds like the most promising approach. Why > reinvent the wheel? Platforms lacking the library will be no worse off > than they are now. > > Do you consider GNU adns to be one of the "newer" libraries? If not, > what problems do you see with GNU adns? I haven't looked closely at any of the asynchronous C libraries, because I assumed that it was off the table. But if it's fine to add another (optional) C library to the Emacs build, then I'm up for investigating further and taking a stab at implementing it. The most well-distributed C-level libraries for async DNS seem to be adns, c-ares and firedns, at least on Linux systems. adns has no documentation, but has a very well-commented C header file, and looks, at first blush, to provide a sane interface. firedns looks pretty abandoned. c-ares seems sane and has documentation: https://github.com/c-ares/c-ares udns seems even better: http://www.corpit.ru/mjt/udns.html Unfortunately, it doesn't look like it's available on Debian, for instance, which limits its practicality. I have no experience with either of these libraries in practice... Anybody have any input here? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no