Top Banner
Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode Jagiellonian University, Cracow, Poland
40

Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Mar 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation

Michał „phoe” Herda#lisp-pl @ Freenode

Jagiellonian University, Cracow, Poland

Page 2: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Previously on

European Lisp Symposium 2016

Page 3: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Yet Another Rant About The State Of

Common Lisp Documentation

Michał „phoe” Herda

Page 4: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Presenting the

European Lisp Symposium 2017

Exclusive:

Page 5: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Yet Another Rant About The State Of

Common Lisp Documentation, Part 2

Michał „phoe” Herda

Page 6: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 7: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 8: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 9: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 10: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 11: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 12: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

http://www.lispworks.com/documentation/HyperSpec/...

http://www.sbcl.org/manual/...

http://ccl.clozure.com/manual/...

http://www.clisp.org/...

http://bauhh.dyndns.org:8000/clim-spec/...

http://bauhh.de/clxman/...

http://metamodular.com/CLOS-MOP/...

50+(?) more websites with library-specific docs

Page 13: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 14: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 15: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 16: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 17: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 18: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 19: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 20: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Fin, Part 2(...except it’s not)

Page 21: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 22: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 23: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

A Possible Solution To The State Of

Common Lisp Documentation, Part 2

Michał „phoe” Herda

Page 24: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 25: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 26: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 27: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 28: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode
Page 29: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Parsing dpANS with RegEx

Page 30: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Parsing HTML (context-free grammar) with RegEx (regular grammar):

Page 31: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Parsing TeX (context-sensitive grammar) with RegEx (regular grammar):

Page 32: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Parsing a known subset of TeX used in dpANSwith RegEx (regular grammar):

(with proper care)

Page 33: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

What’s done so far?● Done

● All Dictionaries (e.g. MAPCAR, ADJOIN, …)

● Glossary

● Not done / TODO

● Concepts (e.g. 2.2 Reader Algorithm)

● Linking (esp. glossary entries)

Page 34: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

What’s done so far?● Done

● All Dictionaries (e.g. MAPCAR, ADJOIN, …)

● Glossary

● Not done / TODO

● Concepts (e.g. 2.2 Reader Algorithm)

● Linking (esp. glossary entries)

● Review

● Diffs to the original dpANS

● Once it’s finished, SHIP IT!

Page 35: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

What am I aiming for?

Editable Complete Downloadable Mirrorable/Clonable Versioned Modular Updatable Portable Unified Community-based

Page 36: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

„Burning out”

ELS ‘16 ...I think ELS is coming WORK ELS ‘17

Burnout ↑...or is it?

Laziness ↑...or is it?

Page 37: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Thoughts

● A translator, or an editor?

● A scribe, or a programmer?

● dpANS as humanistic material

● If I am a „new” editor of the specification, then who is the „new” X3J13?

Page 38: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Summing it up:● Parse the dpANS specification

● Edit it where necessary

● Make it further parsable

● Give it to the community

● Let the community turn it into X

– Emacs-readable version

– Web version

– Printable version

– S-expression version

– Community wiki

– Repository for documents from the whole CL universe

– Common Lisp the Language 3

Page 39: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

Live demo/manifesto:

http://phoe.tymoon.eu/clus/

Thanks to Shinmera for the hosting!

Page 40: Common Lisp UltraSpec – A Project For Modern Common Lisp ... · Common Lisp UltraSpec – A Project For Modern Common Lisp Documentation Michał „phoe” Herda #lisp-pl @ Freenode

The Actual End, Part 2(...except it’s not)

● because CLUS is not yet finished● because I will be looking for contributors● because it’s questions time

Thanks for listening!