|
ABSTRACT
Some Lisp programs such as Emacs, but also the Linux kernel (when fully modularised) are mostly dynamic; i.e., apart from a small static core, the significant functionality is dynamically loaded. In this paper, we explore fully dynamic applications in Haskell where the static core is minimal and code is hot swappable. We demonstrate the feasibility of this architecture by two applications: Yi, an extensible editor, and Lambdabot, a plugin-based IRC robot. Benefits of the approach include hot swappable code and sophisticated application configuration and extension via embedded DSLs. We illustrate both benefits in detail at the example of a novel embedded DSL for editor interfaces.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Internet Relay Chat (IRC) help archive. http://www.irchelp.org/, 2005.
|
| |
2
|
J. Armstrong. Erlang - a Survey of the Language and its Industrial Applications. In INAP'96 - The 9th Exhibitions and Symposium on Industrial Applications of Prolog, pages 16--18, 1996.
|
 |
3
|
|
| |
4
|
A. Baumann, G. Heiser, J. Appavoo, D. D. Silva, O. Krieger, R. W. Wisniewski, and J. Kerr. Providing dynamic update in an operating system. In Proceedings of the 2005 USENIX Technical Conference, pages 279--291. USENIX Association, 2005.
|
| |
5
|
A. Baumann, J. Kerr, J. Appavoo, D. Da Silva, O. Krieger, and R. W. Wisniewski. Module hot-swapping for dynamic update and reconfiguration in K42. In Proceedings of the 6th Linux.Conf.Au, Canberra, Australia, Apr. 2005. To appear.
|
| |
6
|
G. Bierman, M. Hicks, P. Sewell, and G. Stoyle. Formalizing dynamic software updating. In Proceedings of the Second International Workshop on Unanticipated Software Evolution (USE), April 2003.
|
| |
7
|
A. Bolour. Notes on the Eclipse plug-in architecture. http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin architecture.html, 2003.
|
| |
8
|
Bram Moolenaar. The Vim Editor. http://www.vim.org/.
|
| |
9
|
|
 |
10
|
|
| |
11
|
B. Hausman. Turbo Erlang: Approaching the speed of C. In E. Tick and G. Succi, editors, Implementations of Logic Programming Systems, pages 119--135. Kluwer, Dordrecht, 1994.
|
| |
12
|
|
 |
13
|
|
| |
14
|
|
| |
15
|
Hugh Mahon. The Editor 'ee'. http://mahon.cwx.net/.
|
| |
16
|
R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. The evolution of an extension language: A history of Lua. In M. A. Musicante and E. H. Hausler, editors, V Simposio Brasileiro de Linguagens de Programaciao, pages B-14-B-28, Curitiba, May 2001.
|
| |
17
|
|
 |
18
|
Erik Johansson , Mikael Pettersson , Konstantinos Sagonas, A high performance Erlang system, Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming, p.32-43, September 20-23, 2000, Montreal, Quebec, Canada
[doi> 10.1145/351268.351273]
|
| |
19
|
M. P. Jones and S. Peyton Jones. Lightweight extensible records for Haskell. In Proceedings of the 1999 Haskell Workshop. Published in Technical Report UU-CS-1999-28, Department of Computer Science, University of Utrecht, Sept. 1999.
|
 |
20
|
Simon Peyton Jones , Alastair Reid , Fergus Henderson , Tony Hoare , Simon Marlow, A semantics for imprecise exceptions, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.25-36, May 01-04, 1999, Atlanta, Georgia, United States
|
| |
21
|
R. Lämmel and S. Peyton Jones. Scrap your boilerplate with class: extensible generic functions. Draft, submitted to ICFP 2005. http://www.cwi.nl/ralf/syb3/, Apr. 2005.
|
 |
22
|
|
| |
23
|
Nano Core Development Team. GNU Nano Text Editor. http://www.nano-editor.org/.
|
 |
24
|
André Pang , Don Stewart , Sean Seefried , Manuel M. T. Chakravarty, Plugging Haskell in, Proceedings of the 2004 ACM SIGPLAN workshop on Haskell, September 22-22, 2004, Snowbird, Utah, USA
[doi> 10.1145/1017472.1017478]
|
| |
25
|
J. Seward, S. Marlow, A. Gill, S. Finne, and S. P. Jones. Architecture of the Haskell Execution Platform (HEP). http://www.haskell.org/ghc/docs/papers/, 1999.
|
| |
26
|
C. A. N. Soules, J. Appavoo, K. Hui, R. W. Wisniewski, D. D. Silva, G. R. Ganger, O. Krieger, M. Stumm, M. Auslander, M. Ostrowski, B. Rosenburg, and J. Xenidis. System support for online reconfiguration. In Proc. of the Usenix Technical Conference, 2003.
|
 |
27
|
|
| |
28
|
Sven Verdoolaege and Keith Bostic. The Berkeley Vi Editor. http://www.bostic.com/vi/.
|
| |
29
|
|
 |
30
|
|
CITED BY 2
|
|
Andrew Baumann , Jonathan Appavoo , Robert W. Wisniewski , Dilma Da Silva , Orran Krieger , Gernot Heiser, Reboots are for hardware: challenges and solutions to updating an operating system on the fly, 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference, p.1-14, June 17-22, 2007, Santa Clara, CA
|
|
|
|