unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
@ 2014-12-11 10:57 Yagnesh Raghava Yakkala
  2014-12-11 15:57 ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 27+ messages in thread
From: Yagnesh Raghava Yakkala @ 2014-12-11 10:57 UTC (permalink / raw)
  To: 19346


while reading news from gnus I get above error.

backtrace.

╭─────
│Debugger entered--Lisp error: (void-function gnutls-available-p)
│  gnutls-available-p()
│  url-http-parse-headers()
│  url-http-content-length-after-change-function(407 421 14)
│  url-http-wait-for-headers-change-function(1 434 433)
│  url-http-generic-filter(#<process www.gravatar.com<2>> "HTTP/1.1 404 Not Found\nAccept-Ranges: bytes\nCache-Control: max-age=300\nContent-Type: text/html; charset=utf-8\nDate: Thu, 11 Dec 2014 10:55:08 GMT\nExpires: Thu, 11 Dec 2014 11:00:08 GMT\nLast-Modified: Wed, 11 Jan 1984 08:00:00 GMT\nLink: <http://www.gravatar.com/avatar/7b7c160127dd6d0783dfe48a96f37009?d=404&r=g&s=32>; rel=\"canonical\"\nServer: nginx\nVia: 1.1 varnish\nX-Varnish: 1261949267\nContent-Length: 13\n\n404 Not Found")
│  recursive-edit()
│  debug(error (void-function gnutls-available-p))
│  gnutls-available-p()
│  url-http-parse-headers()
│  url-http-content-length-after-change-function(533 1712 1179)
│  url-http-wait-for-headers-change-function(1 1729 1728)
│  url-http-generic-filter(#<process www.gravatar.com<1>> "HTTP/1.1 200 OK\nAccept-Ranges: bytes\nAccess-Control-Allow-Origin: *\nCache-Control: max-age=300\nContent-Disposition: inline; filename=\"5e458afba3e27b9d04129cdacdd20ef9.jpeg\"\nContent-Type: image/jpeg\nDate: Thu, 11 Dec 2014 08:37:38 GMT\nExpires: Thu, 11 Dec 2014 08:42:38 GMT\nLast-Modified: Thu, 20 Mar 2014 08:26:37 GMT\nLink: <http://www.gravatar.com/avatar/5e458afba3e27b9d04129cdacdd20ef9?d=404&r=g&s=32>; rel=\"canonical\"\nServer: ECS (nrt/399C)\nSource-Age: 0\nVia: 1.1 varnish\nX-Cache: HIT\nX-Varnish: 4050689137\nContent-Length: 1178\n\n\377\330\377\340\x10JFIF\x01\0\x01\x01\0\377\376;CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90\n\377\333C\x03\x02\x02\x03\x03\x04\x03\x05\b\x05\x04\n\a\a\b\f\n\f\f\v\n\v\v\x0e\x10\x0e\x0e\v\v\x16\x11\x14\x15\f\x17\x16\x18\x14\x14\377\333C\x03\x04\x04	\x05	\r\v\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\377\300\x11\b  \x01\"\x02\x01\x11\377\304\x1f\0\x05\x01\x01\x01\0\0\0\0\x02\x04\x06\a\b	\n\v\377\304\265\0\x01\x03\x04\x05\x04\0\x01}\x02\0\x11\x12!1A\x13Qa\a\"q2\201\221\241\b#B\261\301R\321\360$3br\202	\n\x17\x19%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\203\204\205\206\207\210\211\212\222\223\224\225\226\227\230\231\232\242\243\244\245\246\247\250\251\252\262\263\264\265\266\267\270\271\272\302\303\304\305\306\307\310\311\312\322\323\324\325\326\327\330\331\332\341\342\343\344\345\346\347\350\351\352\361\362\363\364\365\366\367\370\371\372\377\304\x1f\0\x01\x01\x01\x01\x01\0\0\0\x02\x04\x06\a\b	\n\v\377\304\265\0\x01\x04\x03\a\x04\0\x02w\x01\x03\x04!1\x12AQ\aaq\"2\201\bB\221\241\261\301	#3R\360br\321\n$4\341%\361\x18\x1a&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\202\203\204\205\206\207\210\211\212\222\223\224\225\226\227\230\231\232\242\243\244\245\246\247\250\251\252\262\263\264\265\266\267\270\271\272\302\303\304\305\306\307\310\311\312\322\323\324\325\326\327\330\331\332\342\343\344\345\346\347\350\351\352\362\363\364\365\366\367\370\371\372\377\332\f\x01\x02\x03\0?\374\303\2167bH\361]\267\2074{;\255&d\270\267%\331Y\243\235\x7f\215\207\360\251\307_j\345 \264\236O\222(\244\222GlA\226?@:\327\333\337\262\x7f\302?YZ\350\372\217\211a\226\372\350\262\334C\v\224d\205\3166\226\2146\356\353\214\217CXV\255\x11\346g^\r,L\371S\262>F\323|?#\332\\\333]\351\262\305q\260\315	e(\304\3708\315P\321\227@\377\262k\355\317\332\227\3031x\236\326\347W\322,B\335Y\306dE\262\273D\240\347\370v\340\363\200\236\a\361\253\350W\372N\255=\216\253\305\205\364%\204\266\362|\256\207\256\346*p\330\205^7z>\305\3430\257;'t\372\224\274?\253K\240j\372~\247\b\314\266w	:\217]\254?J\375\370W\3617I\326\376h\x7f\331\372ii\304\221\231%8\\\242\v\200F	\300\257\225\276\3740\321\232\323\355J\272\336\2674\242+k3\276x\336\353\374LO\n\247\201\202H<W\323z\277\301m_\303\372\336\235y\243\335\x7ffH\221\"\x1f\262.VB\252y\201\207-\234\220\335\306>\203\233\x1fJ.\nr\350v\345Ue\n\216+fh|P\370\201y\303\313\275\337K\216[\353\231\fV\261\264\313\276\357';\a<g\246I\367\257\202\265mf\367\304>(\325u=E+\333\251\344\226X\2339\215\213}\336y\343\247>\225\367\247\212\276\313\240\370\x7fY\361N\277y&\257\252\244\n\220K1\341\v\272\241\332\2400\271\307\343\322\276Y\370\261\244\351Z\347\210\323V\323\256^\335Z+\352Q\247!nW*\355\350w\200\340\365-\232\323\207\366Q\346\266\254\214\307\355\347d\364G\377\331")
╰─────

Thanks.



In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5)
 of 2014-12-11 on sealion
Repository revision: 964f16e1686899b7796045b10ffdb3c9b97a8153
Windowing system distributor `The X.Org Foundation', version 11.0.11601901
System Description:	Debian GNU/Linux 8.0 (jessie)

Configured using:
 `configure --prefix=/home/yagnesh/local/emacs --enable-checking
 --without-compress-info 'CFLAGS=-g -O0''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBSELINUX
LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LC_COLLATE: en_US.UTF-8
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LANG: C
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Summary

Minor modes in effect:
  diff-auto-refine-mode: t
  display-time-mode: t
  erc-services-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  global-git-gutter-mode: t
  TeX-PDF-mode: t
  winner-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-auto-complete-mode: t
  ido-everywhere: t
  electric-pair-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t

Recent messages:
Warning: Opening nnimap server on localimap...failed: ; Server nnimap+localimap previously determined to be down; not retrying; Opening nnimap server on localimap...failed: ; Unable to open server nnimap+localimap due to: Buffer  *nnimap localhost nil  *nntpd** has no process
Opening nnimap server on hc...done
nnimap read 0k from mail.hcoop.net
Exiting summary buffer and applying spam rules
Expiring articles...done
Mark set
url-http-parse-headers: Symbol's function definition is void: gnutls-available-p [2 times]
Mark saved where search started [2 times]
url-http-parse-headers: Symbol's function definition is void: gnutls-available-p [9 times]
Read only text copied to kill ring

Load-path shadows:
/home/yagnesh/.emacs.d/el-get/org-mode/contrib/lisp/org-loaddefs hides /home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-loaddefs
/home/yagnesh/.emacs.d/el-get/magit/with-editor hides /home/yagnesh/.emacs.d/el-get/git-modes/with-editor
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-texinfo hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-texinfo
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-ocaml hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-ocaml
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-docview hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-docview
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-plot hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-plot
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-gnus hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-gnus
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-R hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-R
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-asymptote hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-asymptote
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-colview hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-colview
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-plantuml hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-plantuml
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-timer hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-timer
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-html hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-html
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-io hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-io
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-habit hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-habit
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-mhe hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-mhe
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-element hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-element
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-man hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-man
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-eval hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-eval
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-irc hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-irc
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-lob hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-lob
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-shen hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-shen
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-ditaa hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-ditaa
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-lisp hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-lisp
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-src hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-src
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-fortran hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-fortran
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-bibtex hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-bibtex
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-beamer hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-beamer
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-keys hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-keys
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-matlab hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-matlab
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-lilypond hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-lilypond
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-compat hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-compat
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-exp hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-exp
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-w3m hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-w3m
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-table hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-table
/home/yagnesh/.emacs.d/el-get/org-mode/contrib/lisp/org-loaddefs hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-loaddefs
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-maxima hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-maxima
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-info hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-info
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-org hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-org
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-inlinetask hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-inlinetask
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-publish hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-publish
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-indent hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-indent
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-faces hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-faces
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-odt hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-odt
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-feed hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-feed
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-python hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-python
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-md hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-md
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-java hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-java
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-org hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-org
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-C hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-C
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-core hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-core
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-table hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-table
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-awk hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-awk
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-pcomplete hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-pcomplete
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-footnote hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-footnote
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-picolisp hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-picolisp
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-ledger hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-ledger
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-ref hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-ref
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-icalendar hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-icalendar
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-list hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-list
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-gnuplot hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-gnuplot
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-ascii hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-ascii
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-octave hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-octave
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-haskell hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-haskell
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-js hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-js
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-id hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-id
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-entities hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-entities
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-version hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-version
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-agenda hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-agenda
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-bbdb hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-bbdb
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-sql hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-sql
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-eshell hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-eshell
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-makefile hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-makefile
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-sqlite hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-sqlite
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-datetree hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-datetree
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-ruby hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-ruby
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-protocol hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-protocol
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-macs hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-macs
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-scheme hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-scheme
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-scala hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-scala
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-rmail hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-rmail
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-latex hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-latex
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-clock hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-clock
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-clojure hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-clojure
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-mobile hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-mobile
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-attach hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-attach
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-macro hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-macro
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-tangle hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-tangle
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ox-latex hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ox-latex
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-comint hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-comint
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-mscgen hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-mscgen
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-ctags hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-ctags
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-capture hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-capture
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-screen hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-screen
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-calc hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-calc
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-css hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-css
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-emacs-lisp hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-emacs-lisp
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-archive hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-archive
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-dot hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-dot
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-install hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-install
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-crypt hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-crypt
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-perl hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-perl
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/ob-sass hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/ob-sass
/home/yagnesh/.emacs.d/el-get/org-mode/lisp/org-mouse hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/org/org-mouse
/home/yagnesh/.emacs.d/el-get/emms/lisp/tq hides /home/yagnesh/local/emacs/share/emacs/25.0.50/lisp/emacs-lisp/tq

Features:
(shadow vc-git diff-mode goto-addr autoinsert footnote emacsbug gnus-fun
mule-util misearch multi-isearch flow-fill debug url-http url-gw url-auth
smiley mm-archive gnus-bcklg qp gnus-async gnus-ml disp-table gnus-topic pop3
nndraft nnmh nnml utf-7 nnfolder epa-file epa epg network-stream nsm
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-cache spam spam-stat
gnus-uu yenc gnus-msg gnus-demon nntp gnus-cite nnir gnus-gravatar mail-extr
gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group
gnus-undo gravatar url-cache bbdb-mua bbdb-com bbdb bbdb-site timezone
bbdb-loaddefs starttls gnus-start gnus-cloud nnimap nnmail mail-source tls
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader gnus-win gnus gnus-ems nnheader notifications flymake flyspell
ispell highlight-parentheses elisp-slime-nav etags paredit flycheck rx subr-x
pcase dash jka-compr sh-script smie executable compile tango-dark-theme
emms-info-libtag emms-librefm-stream emms-librefm-scrobbler
emms-playlist-limit emms-volume emms-volume-amixer emms-i18n emms-history
emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue
emms-mode-line-icon emms-browser sort emms-playlist-sort emms-last-played
emms-player-xine emms-player-mpd tq emms-playing-time emms-lyrics emms-url
emms-streams emms-tag-editor emms-mark emms-mode-line emms-cache
emms-info-ogginfo emms-info-mp3info emms-info later-do emms-playlist-mode
emms-player-vlc emms-player-mplayer emms-player-simple emms-source-playlist
emms-source-file locate emms-setup emms emms-compat time server ps-print
ps-def lpr jabber-autoloads twittering-mode url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util url-parse
url-vars mailcap battery wc-mode erc-services erc-log erc-notify erc-imenu
erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete erc-track
erc-match erc-button erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat japanese-holidays org-indent ox-beamer ox-latex
ox-icalendar ox-html ox-ascii ox-publish ox org-element avl-tree org org-macro
org-footnote org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src
ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs cal-menu
calendar cal-loaddefs org-install monky bindat git-gutter tex-buf tex dbus xml
crm preview-latex tex-site auto-loads ncl-mode-load inf-ncl ncl-mode cus-edit
cus-start cus-load ncl-doc ncl-mode-keywords namelist-mode-load pylookup
generic geiser-load geiser find-func hl-sexp thingatpt dired-aux dired-x
dired-details windmove winner tramp-cache tramp-sh tramp tramp-compat
tramp-loaddefs trampver shell pcomplete comint ansi-color ring format-spec
recentf tree-widget wid-edit imenu goto-last-change saveplace edict
edict-japanese edict-english edict-morphology edict-edit dui-registry dui
dictem yasnippet derived auto-complete-config auto-complete easy-mmode popup
smex ido diminish elec-pair paren smtpmail auth-source eieio eieio-core
gnus-util password-cache sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils edmacro kmacro door-gnus cl-macs backup-each-save
.loaddefs pydoc-info byte-opt advice info-look info el-get el-get-autoloading
el-get-list-packages el-get-dependencies el-get-build el-get-status pp
el-get-methods el-get-fossil el-get-svn el-get-pacman el-get-github-zip
el-get-github-tar el-get-http-zip el-get-http-tar el-get-hg el-get-go
el-get-git-svn el-get-fink el-get-emacswiki el-get-http el-get-notify
help-mode easymenu el-get-emacsmirror el-get-github el-get-git el-get-elpa
package epg-config el-get-darcs el-get-cvs el-get-bzr el-get-brew
el-get-builtin el-get-apt-get el-get-recipes el-get-byte-compile el-get-custom
el-get-core autoload help-fns lisp-mnt bytecomp byte-compile cl-extra cconv cl
gv cl-loaddefs cl-lib dired time-date tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese case-table
epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 723313 196841)
 (symbols 48 62171 196)
 (miscs 40 1187 2096)
 (strings 32 204265 121576)
 (string-bytes 1 5941851)
 (vectors 16 60595)
 (vector-slots 8 1722069 286743)
 (floats 8 1117 1823)
 (intervals 56 3136 371)
 (buffers 976 67)
 (heap 1024 80611 16194))

-- 
ఎందరో మహానుభావులు అందరికి వందనములు.
YYR





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 10:57 bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p Yagnesh Raghava Yakkala
@ 2014-12-11 15:57 ` Lars Magne Ingebrigtsen
  2014-12-11 16:08   ` Ted Zlatanov
  0 siblings, 1 reply; 27+ messages in thread
From: Lars Magne Ingebrigtsen @ 2014-12-11 15:57 UTC (permalink / raw)
  To: Yagnesh Raghava Yakkala; +Cc: 19346

Yagnesh Raghava Yakkala <hi@yagnesh.org> writes:

> while reading news from gnus I get above error.
>
> backtrace.
>
> ╭─────
> │Debugger entered--Lisp error: (void-function gnutls-available-p)
> │  gnutls-available-p()
> │  url-http-parse-headers()

I've now pushed a fix for this.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 15:57 ` Lars Magne Ingebrigtsen
@ 2014-12-11 16:08   ` Ted Zlatanov
  2014-12-11 16:16     ` Lars Magne Ingebrigtsen
  2014-12-11 18:00     ` Eli Zaretskii
  0 siblings, 2 replies; 27+ messages in thread
From: Ted Zlatanov @ 2014-12-11 16:08 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: Yagnesh Raghava Yakkala, 19346

On Thu, 11 Dec 2014 16:57:58 +0100 Lars Magne Ingebrigtsen <larsi@gnus.org> wrote: 

LMI> Yagnesh Raghava Yakkala <hi@yagnesh.org> writes:
>> while reading news from gnus I get above error.
>> 
>> backtrace.
>> 
>> ╭─────
>> │Debugger entered--Lisp error: (void-function gnutls-available-p)
>> │  gnutls-available-p()
>> │  url-http-parse-headers()

LMI> I've now pushed a fix for this.

Your fix uses `fboundp'. Should we make `gnutls-available-p' always
defined to return nil, to simplify this in the future?

Ted





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 16:08   ` Ted Zlatanov
@ 2014-12-11 16:16     ` Lars Magne Ingebrigtsen
  2014-12-11 18:00     ` Eli Zaretskii
  1 sibling, 0 replies; 27+ messages in thread
From: Lars Magne Ingebrigtsen @ 2014-12-11 16:16 UTC (permalink / raw)
  To: 19346

Ted Zlatanov <tzz@lifelogs.com> writes:

> Your fix uses `fboundp'. Should we make `gnutls-available-p' always
> defined to return nil, to simplify this in the future?

Yes, that's how I thought it worked.

I dimly recall this being discussed before, but I don't remember the
outcome.

I think we discussed making a lot of these `*-available-p' functions so
that we would have a standard way to check whether the capability can be
used, and `featurep' can't be used since (under Windows) Emacs may be
compiled with support for it, but the libraries may not be available
run-time.

Perhaps Eli remembers what the conclusion was?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 16:08   ` Ted Zlatanov
  2014-12-11 16:16     ` Lars Magne Ingebrigtsen
@ 2014-12-11 18:00     ` Eli Zaretskii
  2014-12-11 19:16       ` Stefan Monnier
  2014-12-11 19:48       ` Ted Zlatanov
  1 sibling, 2 replies; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-11 18:00 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: hi, 19346, larsi

> Date: Thu, 11 Dec 2014 11:08:45 -0500
> Cc: Yagnesh Raghava Yakkala <hi@yagnesh.org>, 19346@debbugs.gnu.org
> 
> >> │Debugger entered--Lisp error: (void-function gnutls-available-p)
> >> │  gnutls-available-p()
> >> │  url-http-parse-headers()
> 
> LMI> I've now pushed a fix for this.
> 
> Your fix uses `fboundp'. Should we make `gnutls-available-p' always
> defined to return nil, to simplify this in the future?

Yes.  Otherwise, the function doesn't make sense, IMO.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 18:00     ` Eli Zaretskii
@ 2014-12-11 19:16       ` Stefan Monnier
  2014-12-11 19:48       ` Ted Zlatanov
  1 sibling, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2014-12-11 19:16 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, Ted Zlatanov, larsi

>> >> │Debugger entered--Lisp error: (void-function gnutls-available-p)
>> >> │  gnutls-available-p()
>> >> │  url-http-parse-headers()
>> 
LMI> I've now pushed a fix for this.
>> 
>> Your fix uses `fboundp'. Should we make `gnutls-available-p' always
>> defined to return nil, to simplify this in the future?

> Yes.  Otherwise, the function doesn't make sense, IMO.

Thinking of it from the point of view of dynamically loaded C modules,
(gnutls-available-p) is basically equivalent to something like
(require 'libgnutls nil t).


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 18:00     ` Eli Zaretskii
  2014-12-11 19:16       ` Stefan Monnier
@ 2014-12-11 19:48       ` Ted Zlatanov
  2014-12-11 21:03         ` Eli Zaretskii
  1 sibling, 1 reply; 27+ messages in thread
From: Ted Zlatanov @ 2014-12-11 19:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

On Thu, 11 Dec 2014 20:00:13 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

>> Date: Thu, 11 Dec 2014 11:08:45 -0500
>> Cc: Yagnesh Raghava Yakkala <hi@yagnesh.org>, 19346@debbugs.gnu.org
>> 
>> >> │Debugger entered--Lisp error: (void-function gnutls-available-p)
>> >> │  gnutls-available-p()
>> >> │  url-http-parse-headers()
>> 
LMI> I've now pushed a fix for this.
>> 
>> Your fix uses `fboundp'. Should we make `gnutls-available-p' always
>> defined to return nil, to simplify this in the future?

EZ> Yes.  Otherwise, the function doesn't make sense, IMO.

OK.  Where should we put this and how does it get overridden when you
load the GnuTLS library?  As Stefan mentioned we'll need this for
dynamic modules as well, so a generic solution would be greatly
appreciated, if you have something in mind.

Ted





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 19:48       ` Ted Zlatanov
@ 2014-12-11 21:03         ` Eli Zaretskii
  2014-12-11 22:58           ` Ted Zlatanov
  2014-12-12  0:02           ` Stefan Monnier
  0 siblings, 2 replies; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-11 21:03 UTC (permalink / raw)
  To: Ted Zlatanov; +Cc: hi, 19346, larsi

> From: Ted Zlatanov <tzz@lifelogs.com>
> Cc: hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Thu, 11 Dec 2014 14:48:07 -0500
> 
> >> Your fix uses `fboundp'. Should we make `gnutls-available-p' always
> >> defined to return nil, to simplify this in the future?
> 
> EZ> Yes.  Otherwise, the function doesn't make sense, IMO.
> 
> OK.  Where should we put this

In gnutls.c, of course.

> and how does it get overridden when you load the GnuTLS library?

It doesn't.  It just changes the value it returns.

> As Stefan mentioned we'll need this for dynamic modules as well, so
> a generic solution would be greatly appreciated, if you have
> something in mind.

The generic solution is for the code that links to each module to
provide the function, and for the module to provide the value.

This is all part of the "protocol" between Emacs and the modules,
which includes a header file, an import library, and a bunch of
interfaces each module needs to implement.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 21:03         ` Eli Zaretskii
@ 2014-12-11 22:58           ` Ted Zlatanov
  2014-12-12  0:02           ` Stefan Monnier
  1 sibling, 0 replies; 27+ messages in thread
From: Ted Zlatanov @ 2014-12-11 22:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

On Thu, 11 Dec 2014 23:03:57 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

EZ> In gnutls.c, of course.

All right, fixed in emacs-24 and can be merged forward to master:

commit 301a4014a72964a8ec0078055c273d045d94fe42
Author: Ted Zlatanov <tzz@lifelogs.com>
Date:   Thu Dec 11 17:55:36 2014 -0500

    Always define `gnutls-available-p' even if GnuTLS is not available.
    
    Fixes: debbugs:19346
    
    * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
    clarity.  Let the availability check return Qnil when the GnuTLS
    integration is not available, instead of erroring out.
    
    * gnutls.h: Always declare syms_of_gnutls.
    
    * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.

Lars, you can revert your patch if you want, after this is merged in.

EZ> The generic solution is for the code that links to each module to
EZ> provide the function, and for the module to provide the value.

EZ> This is all part of the "protocol" between Emacs and the modules,
EZ> which includes a header file, an import library, and a bunch of
EZ> interfaces each module needs to implement.

OK. I'll keep this in mind for when we get to that point.  It makes a
lot of sense.

Thanks
Ted





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-11 21:03         ` Eli Zaretskii
  2014-12-11 22:58           ` Ted Zlatanov
@ 2014-12-12  0:02           ` Stefan Monnier
  2014-12-12  0:21             ` Ted Zlatanov
  2014-12-12  7:49             ` Eli Zaretskii
  1 sibling, 2 replies; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12  0:02 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, Ted Zlatanov, larsi

>> As Stefan mentioned we'll need this for dynamic modules as well, so
>> a generic solution would be greatly appreciated, if you have
>> something in mind.

I'm not sure I made myself clear.
AFAICT for dynamically-loaded modules we won't need any such
foo-available-p function, instead we'll use (require '<modulename> nil t).
After all, any such foo-available-p won't be fboundp before loading the
module, so it would necessarily suffer from the problem we're facing
with gnutls-available-p.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  0:02           ` Stefan Monnier
@ 2014-12-12  0:21             ` Ted Zlatanov
  2014-12-12  1:33               ` Stefan Monnier
  2014-12-12  7:49             ` Eli Zaretskii
  1 sibling, 1 reply; 27+ messages in thread
From: Ted Zlatanov @ 2014-12-12  0:21 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

On Thu, 11 Dec 2014 19:02:04 -0500 Stefan Monnier <monnier@iro.umontreal.ca> wrote: 

>>> As Stefan mentioned we'll need this for dynamic modules as well, so
>>> a generic solution would be greatly appreciated, if you have
>>> something in mind.

SM> I'm not sure I made myself clear.
SM> AFAICT for dynamically-loaded modules we won't need any such
SM> foo-available-p function, instead we'll use (require '<modulename> nil t).
SM> After all, any such foo-available-p won't be fboundp before loading the
SM> module, so it would necessarily suffer from the problem we're facing
SM> with gnutls-available-p.

Right, I'm saying `(require '<modulename> nil t)' should define
`modulename-available-p' automatically for dynamic modules, based on
whether the module was loaded successfully. It shouldn't be manually
managed by the module author like the GnuTLS integration (unless they
explicitly override it).

Ted





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  0:21             ` Ted Zlatanov
@ 2014-12-12  1:33               ` Stefan Monnier
  2014-12-12  7:58                 ` Eli Zaretskii
  2014-12-12 13:19                 ` Ted Zlatanov
  0 siblings, 2 replies; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12  1:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

> Right, I'm saying `(require '<modulename> nil t)' should define
> `modulename-available-p' automatically for dynamic modules, based on

And what I'm saying is that (require '<modulename> nil t)
*is* the replacement for (<modulename>-available-p).
There is no need for any manual management.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  0:02           ` Stefan Monnier
  2014-12-12  0:21             ` Ted Zlatanov
@ 2014-12-12  7:49             ` Eli Zaretskii
  2014-12-12 14:42               ` Stefan Monnier
  1 sibling, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-12  7:49 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, tzz, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Ted Zlatanov <tzz@lifelogs.com>,  hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Thu, 11 Dec 2014 19:02:04 -0500
> 
> AFAICT for dynamically-loaded modules we won't need any such
> foo-available-p function, instead we'll use (require '<modulename> nil t).

You just described one possible implementation of foo-available-p.

And AFAIU we still need to implement something in 'require' for this,
because currently it cannot load modules, only Lisp files.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  1:33               ` Stefan Monnier
@ 2014-12-12  7:58                 ` Eli Zaretskii
  2014-12-12 14:40                   ` Stefan Monnier
  2014-12-12 13:19                 ` Ted Zlatanov
  1 sibling, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-12  7:58 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Thu, 11 Dec 2014 20:33:22 -0500
> 
> And what I'm saying is that (require '<modulename> nil t)
> *is* the replacement for (<modulename>-available-p).

Does that mean a module can ever provide only one monolith feature?

If not, then how would a Lisp program ask about one such 'feature'
provided by a 'module'?





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  1:33               ` Stefan Monnier
  2014-12-12  7:58                 ` Eli Zaretskii
@ 2014-12-12 13:19                 ` Ted Zlatanov
  2014-12-12 14:47                   ` Stefan Monnier
  1 sibling, 1 reply; 27+ messages in thread
From: Ted Zlatanov @ 2014-12-12 13:19 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

On Thu, 11 Dec 2014 20:33:22 -0500 Stefan Monnier <monnier@iro.umontreal.ca> wrote: 

>> Right, I'm saying `(require '<modulename> nil t)' should define
>> `modulename-available-p' automatically for dynamic modules, based on

SM> And what I'm saying is that (require '<modulename> nil t)
SM> *is* the replacement for (<modulename>-available-p).
SM> There is no need for any manual management.

I really think they are different things. One loads the module, the
other indicates the module's functionality is available.

I agree there is no need for manual management :)  The module loader
should do it automatically.

Ted





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  7:58                 ` Eli Zaretskii
@ 2014-12-12 14:40                   ` Stefan Monnier
  2014-12-12 14:54                     ` Eli Zaretskii
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12 14:40 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

> Does that mean a module can ever provide only one monolith feature?

That's how Elisp modules work, and it hasn't been a serious problem so
far, has it?

> If not, then how would a Lisp program ask about one such 'feature'
> provided by a 'module'?

Just like Elisp modules?


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12  7:49             ` Eli Zaretskii
@ 2014-12-12 14:42               ` Stefan Monnier
  2014-12-12 14:55                 ` Eli Zaretskii
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12 14:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, tzz, larsi

> And AFAIU we still need to implement something in 'require' for this,
> because currently it cannot load modules, only Lisp files.

IIUC the dynamic-modules branch does extend `load' to handle those
C modules (but not those C modules we currently have in Emacs, such as
libgnutls, etc...).


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 13:19                 ` Ted Zlatanov
@ 2014-12-12 14:47                   ` Stefan Monnier
  0 siblings, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12 14:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

SM> And what I'm saying is that (require '<modulename> nil t)
SM> *is* the replacement for (<modulename>-available-p).
SM> There is no need for any manual management.
> I really think they are different things.  One loads the module, the
> other indicates the module's functionality is available.

Check again: gnutls-available-p *does* load the module (if available).

It's very unusual to test whether something is available and yet not
make use of it when it is, which is why those two concepts are usually
conflated, which makes things simpler.  If you really need to check
without loading, you should be able to use `locate-library'.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 14:40                   ` Stefan Monnier
@ 2014-12-12 14:54                     ` Eli Zaretskii
  2014-12-12 16:39                       ` Stefan Monnier
  0 siblings, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-12 14:54 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Fri, 12 Dec 2014 09:40:44 -0500
> 
> > Does that mean a module can ever provide only one monolith feature?
> 
> That's how Elisp modules work, and it hasn't been a serious problem so
> far, has it?

ELisp modules are much simpler than dynamic modules written in some
compiled language.  Look at GnuTLS: it can be compiled with umpteen
different optional features.  If we now force each module to provide
just one feature, you'd need lots of different 'gnutls-FOO' symbols,
for all the combinations of the options.  That doesn't sound very
elegant to me, especially since the savings are just one API which
could have solved the same problem more cleanly.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 14:42               ` Stefan Monnier
@ 2014-12-12 14:55                 ` Eli Zaretskii
  2014-12-12 16:33                   ` Stefan Monnier
  0 siblings, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-12 14:55 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, tzz, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: tzz@lifelogs.com,  hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Fri, 12 Dec 2014 09:42:44 -0500
> 
> > And AFAIU we still need to implement something in 'require' for this,
> > because currently it cannot load modules, only Lisp files.
> 
> IIUC the dynamic-modules branch does extend `load' to handle those
> C modules

We were talking about 'require', not 'load'.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 14:55                 ` Eli Zaretskii
@ 2014-12-12 16:33                   ` Stefan Monnier
  0 siblings, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12 16:33 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, tzz, larsi

>> IIUC the dynamic-modules branch does extend `load' to handle those
>> C modules
> We were talking about 'require', not 'load'.

AFAIK extending `load' is all it takes to make `require' work as well.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 14:54                     ` Eli Zaretskii
@ 2014-12-12 16:39                       ` Stefan Monnier
  2014-12-12 19:04                         ` Eli Zaretskii
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12 16:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

> ELisp modules are much simpler than dynamic modules written in some
> compiled language.  Look at GnuTLS: it can be compiled with umpteen
> different optional features.  If we now force each module to provide
> just one feature, you'd need lots of different 'gnutls-FOO' symbols,
> for all the combinations of the options.  That doesn't sound very
> elegant to me, especially since the savings are just one API which
> could have solved the same problem more cleanly.

I have no idea what you're talking about, really.  And I suspect you're
misunderstanding what I said.  I have not proposed any changes, I'm just
describing how the dynamic-module branch handles this
particular problem.
And no, you won't have "lots of different <modulename>-FOO symbols",
since `require' only works when you pass it <modulename>, not
<modulename>-FOO.  If the library needs to advertise more precisely the
exact set of features it happens to provide, then this will probably
have to be done in an ad-hoc manner (tho maybe the `subfeature' arg of
`featurep' could be used for this: it's the kind of thing it was meant
for, although in practice it seems it's never used).


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 16:39                       ` Stefan Monnier
@ 2014-12-12 19:04                         ` Eli Zaretskii
  2014-12-12 21:56                           ` Stefan Monnier
  0 siblings, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-12 19:04 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Fri, 12 Dec 2014 11:39:29 -0500
> 
> I have no idea what you're talking about, really.

Then I'm surprised you are arguing.

> If the library needs to advertise more precisely the exact set of
> features it happens to provide, then this will probably have to be
> done in an ad-hoc manner (tho maybe the `subfeature' arg of
> `featurep' could be used for this: it's the kind of thing it was
> meant for, although in practice it seems it's never used).

Yes, libraries will need to advertise more than one feature.  And no,
doing that ad-hoc is not the best solution.  Nothing prevents us from
designing a better one, since we don't yet have any history to be
compatible to.  I don't see why we would need to give up and stop
short of designing a more flexible solution before the ad-hockery
dictates its solution.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 19:04                         ` Eli Zaretskii
@ 2014-12-12 21:56                           ` Stefan Monnier
  2014-12-13  7:43                             ` Eli Zaretskii
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2014-12-12 21:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

> Yes, libraries will need to advertise more than one feature.

Maybe.  Quite likely they can DEFUN or not DEFUN depending on the
presence of those features, so the client packages will simply use
fboundp checks, as they do when checking the features of an
Elisp library.
Again, nothing specific about the fact that they're implemented in C.

> And no, doing that ad-hoc is not the best solution.  Nothing prevents
> us from designing a better one, since we don't yet have any history to
> be compatible to.  I don't see why we would need to give up and stop
> short of designing a more flexible solution before the ad-hockery
> dictates its solution.

Supposedly we have that designed already, it's called `subfeatures'.
We never use it, tho.  So probably the design sucks.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-12 21:56                           ` Stefan Monnier
@ 2014-12-13  7:43                             ` Eli Zaretskii
  2014-12-13 14:21                               ` Stefan Monnier
  0 siblings, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-13  7:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Fri, 12 Dec 2014 16:56:50 -0500
> 
> > Yes, libraries will need to advertise more than one feature.
> 
> Maybe.  Quite likely they can DEFUN or not DEFUN depending on the
> presence of those features, so the client packages will simply use
> fboundp checks, as they do when checking the features of an
> Elisp library.

How harder would it be if 'foo-available-p', or 'require', or 'load',
or whatever we call it, would return a list of the features supported
by the module?





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-13  7:43                             ` Eli Zaretskii
@ 2014-12-13 14:21                               ` Stefan Monnier
  2014-12-13 15:20                                 ` Eli Zaretskii
  0 siblings, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2014-12-13 14:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: hi, 19346, larsi

> How harder would it be if 'foo-available-p', or 'require', or 'load',
> or whatever we call it, would return a list of the features supported
> by the module?

It'll be `require' because that's what it already is.
We can't really change what `require' returns.
And even if we could, it would suffer from the usual problem that we
don't know which subfeatures will be important to know.
Hence fboundp,


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p
  2014-12-13 14:21                               ` Stefan Monnier
@ 2014-12-13 15:20                                 ` Eli Zaretskii
  0 siblings, 0 replies; 27+ messages in thread
From: Eli Zaretskii @ 2014-12-13 15:20 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: hi, 19346, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: hi@yagnesh.org,  19346@debbugs.gnu.org,  larsi@gnus.org
> Date: Sat, 13 Dec 2014 09:21:28 -0500
> 
> > How harder would it be if 'foo-available-p', or 'require', or 'load',
> > or whatever we call it, would return a list of the features supported
> > by the module?
> 
> It'll be `require' because that's what it already is.
> We can't really change what `require' returns.

Why can't we?  It's a generalization of what it currently returns, so
I see no problem with that.  Mind you: using 'require' for modules is
something not supported currently, so the return value will be
different only for these new use cases.

> And even if we could, it would suffer from the usual problem that we
> don't know which subfeatures will be important to know.

All of the available ones, of course.

> Hence fboundp,

Yuck!





^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2014-12-13 15:20 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-11 10:57 bug#19346: 25.0.50; url-http-parse-headers: Symbol's function definition is void: gnutls-available-p Yagnesh Raghava Yakkala
2014-12-11 15:57 ` Lars Magne Ingebrigtsen
2014-12-11 16:08   ` Ted Zlatanov
2014-12-11 16:16     ` Lars Magne Ingebrigtsen
2014-12-11 18:00     ` Eli Zaretskii
2014-12-11 19:16       ` Stefan Monnier
2014-12-11 19:48       ` Ted Zlatanov
2014-12-11 21:03         ` Eli Zaretskii
2014-12-11 22:58           ` Ted Zlatanov
2014-12-12  0:02           ` Stefan Monnier
2014-12-12  0:21             ` Ted Zlatanov
2014-12-12  1:33               ` Stefan Monnier
2014-12-12  7:58                 ` Eli Zaretskii
2014-12-12 14:40                   ` Stefan Monnier
2014-12-12 14:54                     ` Eli Zaretskii
2014-12-12 16:39                       ` Stefan Monnier
2014-12-12 19:04                         ` Eli Zaretskii
2014-12-12 21:56                           ` Stefan Monnier
2014-12-13  7:43                             ` Eli Zaretskii
2014-12-13 14:21                               ` Stefan Monnier
2014-12-13 15:20                                 ` Eli Zaretskii
2014-12-12 13:19                 ` Ted Zlatanov
2014-12-12 14:47                   ` Stefan Monnier
2014-12-12  7:49             ` Eli Zaretskii
2014-12-12 14:42               ` Stefan Monnier
2014-12-12 14:55                 ` Eli Zaretskii
2014-12-12 16:33                   ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).