Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyperspec glossary #288

Closed
xiongtx opened this issue Dec 29, 2015 · 6 comments
Closed

Hyperspec glossary #288

xiongtx opened this issue Dec 29, 2015 · 6 comments

Comments

@xiongtx
Copy link
Contributor

xiongtx commented Dec 29, 2015

In hyperspec.el, there's a comment noting that the glossary functionality is not used. What is the current plan regarding this functionality, if any exists? Has it been superseded by something else, or is it just waiting for a pull request to make it functional?

@luismbo
Copy link
Member

luismbo commented Dec 29, 2015

I'm not aware of any such plan. What's your idea?

@xiongtx
Copy link
Contributor Author

xiongtx commented Dec 29, 2015

Well, it would probably not be difficult to create a list of glossary terms and corresponding page anchors such that we can have a command like common-lisp-hyperspec-glossary-term that allows you to enter a glossary term and takes you to the corresponding Hyperspec section. Would that be useful?

I ask about usefulness because unlike with looking up symbols, it doesn't make much sense to have a "thing-at-point" version of the command. So the hypothetical use case is that you know a glossary term and want to look it up in the Hyperspec; you'd have to know (nearly) exactly what it is to find it in the first place, unless you are using an incremental completion framework like Helm, in which case you can narrow things down (which works quite well, as I've tested).

Just for some "cultural" context, is the Lispworks Hyperspec the documentation source for Common Lisp? It seems like it, given how old hyperspec.el is. If I understand correctly, the ANSI standard needs to be purchased, and the Hyperspec is non-free. I also recall that the non-free culture around Common Lisp was a major factor that drove RMS to start the FSF long, long ago.

Is that why there isn't an Info version of CL documentation that can be accessed within Emacs, instead of having to launch browser windows? CLiki mentions dpans2texi; there's also Info documentation for GCL that is quite extensive but does not seems to be equivalent to the standard.

@luismbo
Copy link
Member

luismbo commented Dec 29, 2015

It might be useful, yes, particularly if it can do some sort of completion or fuzzy matching as you mentioned. The l1sp.org redirection service includes glossary items too, http://l1sp.org/cl/glossary/binding, FWIW.

Lispworks's seems to be the canonical copy of the Hyperspec; it's what l1sp.org points to. (It's mirrored at clhs.lisp.se. Not sure how Lispworks feels about that.) I sometimes use this one at work: http://franz.com/support/documentation/current/ansicl/ansicl.htm.

GCL's one, which I thought was generated with dpans2texi, is pretty neat but it has some issues with nodes that contain more than one Lisp definition IIRC. I'd love to have an info version that addresses those issues and that shipped with SLIME!

@xiongtx
Copy link
Contributor Author

xiongtx commented Dec 30, 2015

I've noticed that for the IssueX functionality (which also seems to be unused), there's a variable common-lisp-hyperspec-issuex-table that has the following docstring:

The HyperSpec IssueX table file. If you copy the HyperSpec to your local system, set this variable to the location of the Issue cross-references table which is usually "Map_IssX.txt" or "Issue-Cross-Refs.text".

Is there any document such as "Map_IssX.txt" for glossary terms? Should we use it if there is one?

Right now I'm doing the following to get all the glossary terms:

  1. Get a list of glossary pages.
  2. Download pages to temp files.
  3. Scan the pages for glossary terms and page anchors to generate a list of
    term-anchor pairs that can be put into a hash table.
  4. Hard-code the list of pairs in the source code to add entries to the
    glossary term hash table.
  5. Comment out code for steps 1-3 because they're no longer necessary
    once we've got all the pairs we need.

xiongtx added a commit to xiongtx/slime that referenced this issue Dec 30, 2015
@xiongtx
Copy link
Contributor Author

xiongtx commented Feb 10, 2016

@luismbo Any updates on the pull request? I've been using it locally for a while, and find it quite useful.

@luismbo luismbo closed this as completed in 7e31b7e Mar 3, 2016
@luismbo
Copy link
Member

luismbo commented Mar 3, 2016

Thanks! I've added a binding to C-c C-d g.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants