summaryrefslogtreecommitdiffstats
path: root/site/cleopatra/literate-programming.org
diff options
context:
space:
mode:
Diffstat (limited to 'site/cleopatra/literate-programming.org')
-rw-r--r--site/cleopatra/literate-programming.org82
1 files changed, 0 insertions, 82 deletions
diff --git a/site/cleopatra/literate-programming.org b/site/cleopatra/literate-programming.org
deleted file mode 100644
index 63e0b02..0000000
--- a/site/cleopatra/literate-programming.org
+++ /dev/null
@@ -1,82 +0,0 @@
-#+TITLE: Literate Programming Projects
-
-#+SERIES: ../cleopatra.html
-#+SERIES_PREV: ./org.html
-#+SERIES_NEXT: ./theme.html
-
-Literate programming is an interesting exercice. It forces programmers
-to think about how to present their code for other people to
-understand it. It poses several significant challenges, in particular
-in terms of code refactoring. If a given piece of code is too much
-entangled with proses explaining it, rewriting it becomes cumbersome.
-
-That being said, literate programming is particularly well-suited for
-blog posts, since at the very least it provides the tool to enforce
-the code presented to readers is correct.
-
-#+BEGIN_EXPORT html
-<nav id="generate-toc"></nav>
-<div id="history">site/cleopatra/literate-programming.org</div>
-#+END_EXPORT
-
-* Tangling
-
-We use Emacs and ~org-mode~ to tangle the literate programming
-projects present in the ~posts/~ directory of this website. This is
-done with the following emacs lisp script.
-
-#+BEGIN_SRC emacs-lisp :tangle export-lp.el
-;; opinionated configuration provided by cleopatra
-(cleopatra:configure)
-
-;; allow the execution of shell block code
-(org-babel-do-load-languages
- 'org-babel-load-languages
- '((shell . t)))
-
-;; scan the posts/ directory and tangled it into lp/
-(setq org-publish-project-alist
- '(("lp"
- :base-directory "site/posts"
- :publishing-directory "lp"
- :recursive t
- :publishing-function cleopatra:tangle-publish)))
-
-(org-publish-all)
-#+END_SRC
-
-Tangling literate programming is done in the =prebuild= phase of
-*~cleopatra~*.
-
-#+BEGIN_SRC makefile :tangle literate-programming.mk
-literate-programming-prebuild :
- @cleopatra echo "Tangling" "literate programming project"
- @cleopatra exec -- cleopatra-run-elisp export-lp.el \
- >> build.log 2>&1
-
-ARTIFACTS += lp/ site/posts/deps.svg
-#+END_SRC
-
-* Building
-
-In the =build= phase, we actually try to compile the tangled projects.
-As of now, there is only one literate program: [[../posts/CoqffiEcho.org][the Echo server
-implemented in Coq]] which demonstrates how ~coqffi~ can be used to
-implement realistic software projects.
-
-#+BEGIN_SRC makefile :tangle literate-programming.mk
-COQFFI_ARCHIVE := site/files/coqffi-tutorial.tar.gz
-
-coqffi-tutorial-build : literate-programming-prebuild _opam/init
- @cleopatra echo "Building" "coqffi tutorial"
- @cd lp/coqffi-tutorial; dune build --display quiet
- @cleopatra echo "Archiving" "coqffi tutorial"
- @rm -f ${COQFFI_ARCHIVE}
- @tar --exclude="_build" -C lp/ -czvf ${COQFFI_ARCHIVE} coqffi-tutorial \
- 2>&1 >> build.log
-
-site/posts/CoqffiEcho.html : coqffi-tutorial-build
-literate-programming-build : coqffi-tutorial-build
-
-ARTIFACTS += ${COQFFI_ARCHIVE}
-#+END_SRC