Code Monkey home page Code Monkey logo

cl-community-spec's Introduction

Common Lisp CommunitySpec

This project aims to provide an alternative to the Common Lisp HyperSpec. Due to its license, the HyperSpec cannot be modified in any way, so this project is using a rendition of the ANSI Common Lisp specification draft, which is available in .info or .tex format on various locations.

A more or less recent live version of the repository can be found at cl-community-spec.github.io

For the syntax highlighting, orthecreedence/highlight-lisp is used.

PRs welcome!

Note for contributing

The initial HTML pages have been generated using texi2any on the specifiction's .texi files. In the following, convert.py and other Python scripts you can find in the repository have been used to improve/cleanup that generated HTML. Now the output is at a point where it IMO makes more sense to just do the changes directly on the HTML instead of going through the conversion scripts, so if you want to contribute, I suggest just making your changes on the files in pages/.

One thing though: please run backlinks.py after you made any changes that alter the title of a page or any links in the page, as that script generates the Backlinks section on each page. The generated HTML is kind of messy, but please be careful with auto-formatting tools. A lot of the HTML is preformatted, and not all of the preformatted text sits inside <pre></pre> tags yet.

cl-community-spec's People

Contributors

fonol avatar olnw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cl-community-spec's Issues

Glossary HTML IDs

I think definitions in the glossary should have HTML IDs, so that they can be hyperlinked from other entries in CLCS. That's what the HyperSpec does, and it's quite useful.

html_in/Glossary.html has anchors that use the name attribute:

<a name="index-absolute"></a>

But they're not present in html_out/Glossary.html. Also, the name attribute for the <a> tag is deprecated in HTML5.

I think the correct way to do it is like this, using the id attribute instead:

<dt id="absolute"><b>absolute</b></dt>
<dd><p><i>adj.</i>
  1. (of a <i>time</i>)
     representing a specific point in time.
  2. (of a <i>pathname</i>)
     representing a specific position in a directory hierarchy.
  See <i>relative</i>.
</p>
</dd>

Lambda List Tweaks

On the page for destructuring lambda lists (https://cl-community-spec.github.io/pages/Destructuring-Lambda-Lists.html), it explicitly says "except for &environment", but then lists "envvar ::= [&environment var]", the envvar is not reference anywhere on the page including by lambda-list. It should be removed. It is covered on the macro lambda list page (https://cl-community-spec.github.io/pages/Macro-Lambda-Lists.html).

The specialized lambda list page (https://cl-community-spec.github.io/pages/Specialized-Lambda-Lists.html) has the opposite issue. There is a specializer mentioned, but it does not appear in the grammar. There is also an extra set of parenthesis around specializer. The grammar is properly defined on the defmethod page (https://cl-community-spec.github.io/pages/defmethod.html) and should appear the same here. &allow-other-keys is strangely in bold on that page though. There is also something a little funny going on with the &key, but I'm not sure how to describe it.

Support viewing of spec on a mobile device

Thank you for the great amount of work put into the new specification site.

Would it be possible to add support for viewing the spec on mobile devices?

I read a lot of content on my mobile phone (especially during prolonged illness).

Unfortunately it's very hard to navigate and scale content on a mobile phone (Google Pixel 2 XL) - see example screenshot

Screenshot_20221211-100558.png

Thank you

How did you convert tex to texi?

Thanks for the great work!

I'm curious about one question. Usually, turning texi files into other format is much easier, as that's one goal of texi. The original dpANS3 document however was written in tex with lots of obscure tex macros. How did you turn those into texi files?

Can you please provide the .tex files?

Hi,

Can you please provide the .tex files you used to produce the html? I imagine you had to make modifications to the .tex files for them to be converted to html.

I would like to use them as a starting point, to then add all the changes by hand of the last dpANS3R draft. Per your comment:

There are still some issues. One of them is that I started out using not the latest version of the draft, so that X3J13 changes were not included.

Thanks!

unless

Unless I am mistaken this sentence describing unless:
"Otherwise, if the test-form yields false, the forms are not evaluated, and the unless form returns nil"
Should read
"Otherwise, if the test-form yields true, the forms are not evaluated, and the unless form returns nil"

The Hyperspec has the same error though.

index mapping symbols to html

Hi,

Is there an index mapping symbol to html locations, so that we can implement an emacs mode to match the hyperspec one that can be called to describe a symbol?

ANSI Standard Errata

CLiki lists many errors in the ANSI standard, and some of them are quite glaring. For instance, SETQ is described as a "special form" rather than "special operator". Is it outside the scope of this project to amend these errors?

https://www.cliki.net/ANSI%20Clarifications%20and%20Errata

The readme states:

The content is left unchanged at this stage*, the only work right now goes into the presentation.

Which seems to imply a possibility of this being addressed.

Use original source files

The .info files are an output from the original documentation build. I might be wrong, but the original source files which created the .info files still look to be available: http://ftp.gnu.org/pub/gnu/gcl/old/gcl-info+texi.tgz

There are a lot of errors and warnings when building but it still (just about) builds:

wget http://ftp.gnu.org/pub/gnu/gcl/old/gcl-info+texi.tgz
tar -xzf gcl-info+texi.tgz
cd gcl-info
texi2any --html --error-limit=999999999 --force gcl.texi
xdg-open gcl/index.html

As a suggestion, it might be feasible to just update and fix the original texi files to work with current version of texinfo. From there you could export directly to HTML or to an intermediary format to pass to a different tool.

Page not found: Array Dimensions

macroexpand-1 incorrect arrow placing

Hi! Looks like the arrow is incorrectly placed for macroexpand-1 at macroexpand page, it should be

  • macroexpand-1 form &optional env ⇒ expansion, expanded-p, instead of currently present
  • macroexpand-1 ⇒ form &optional env expansion, expanded-p

P.S. Thanks for the awesome project!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.