[[!meta title="Org as an executable format"]] [[!meta copyright="Copyright © 2021 Tom Gillespie"]] [[!inline pages="internal(2021/info/exec-nav)" raw="yes"]] # Org as an executable format Tom Gillespie [[!inline pages="internal(2021/info/exec-schedule)" raw="yes"]] Org mode is known for its flexibility, power, and staggeringly diverse number of workflows, users, and use cases. This talk explores just how far we can push the boundaries of the sane and sensible with regard to Org workflows. In particular it will discuss shebang blocks, and elvs: two parts of a complete system for creating executable Org files. Org syntax does not support shebang lines. However, it turns out that Org syntax enables something even better — shebang blocks. Org is also (supposedly) not an executable file format. However, by combining a shebang block with a Org babel source block, and eval local variables (elvs) Org becomes a multi-language executable format. In this talk we introduce shebang blocks and elvs as a two part system that transforms Org files into executable documents that can run on any recent version of Emacs. These ideas are implemented in and , and orgstrap.el is available as a package on MELPA and can be installed via M-x install-package orgstrap. The talk will open with a demo of how to create an executable Org file using the orgstrap machinery. We then discuss security considerations, and show example use cases. Finally the talk will cover the details and development of the portable shebang block for Org mode that works on a wide variety of systems and shells, and on the development of a formal specification and a reference implementation for using Org source blocks to transform Org files from plain text documents with a bit of markup into self describing computational documents, or interactive applications. # Discussion IRC nick: tgbugs - what prompted you to create orgstrap? - Tom Gillespie: - yeah, usually this kind of stuff starts out as a minor annoyance - is there a way to choose which blocks are going to be executed? - What are some practical specific use cases that you had in mind? - Tom Gillespie: - Tom Gillespie: - i'll for sure incorporate it in my company and research, so both corporate and academic environments will benefit from your work. i already use Org for documenting a lot of stuff so its just a natural next step - I have experimented with dblocks in an org-mode buffer to do the equivalent of javascript in a browser. Does that make sense? From IRC: - This is supercool !! - That is absolutely wild - is the hash not just security theater? - tgbugs: you need it to enable non-theater workflows - anyone who could write the org-file could update the hash as well, no? - I don't understand why he needs to talk about powershell, more than the other shell. :( - tgbugs: very late response, but the reason I talked about powershell more than the others is because it is the most different and required some explainiation, I also was :/ about that - that sounds that is a good reason to not include it xD . you can add fish in the talk and it will be bettter. # Outline - 5-10 minutes: A demo of adding the orgstrap block and elvs, adding a shebang block, and then running an org file. [[!inline pages="internal(2021/captions/exec)" raw="yes"]] [[!inline pages="internal(2021/info/exec-nav)" raw="yes"]]