Abstract
While sometimes dismissed as an operating systems issue, or even a matter of systems administration, module management is deeply linked to programming language design. The main issues are how to instruct the build and runtime environments to find modules and handle their dependencies; how to package modules into redistributable units; how to manage interaction of code written in different languages; and how to map modules to files. These issues are either handled by the language itself or delegated to external tools. Language-specific package managers have risen as a solution to these problems, as they can perform module management portably and in a manner suited to the overall design of the language. This paper presents LuaRocks, a package manager for Lua modules. LuaRocks adopts a declarative approach for specifications using Lua itself as a description language and features an extensible build system that copes with the heterogeneity of the Lua ecosystem.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Adler, J.: R in a Nutshell, pp. 37–47. O’Reilly Media (October 2012) ISBN 144931208X
Apache Software Foundation. Apache Maven Project, https://maven.apache.org/
Bailey, E.: Maximum RPM, p. 450. Sams (August 1997) ISBN 0672311054
Balbaert, I.: The Way To Go: A Thorough Introduction to the Go Programming Language, pp. 203–223. iUniverse (March 2012) ISBN 1469769166
Barzilay, E., Orlovsky, D.: Foreign Interface for PLT Scheme. In: Fifth Workshop on Scheme and Functional Programming, Snowbird Utah, USA (September 22, 2004)
Beane, Z.: Quicklisp, http://www.quicklisp.org/
Berube, D.: Practical Ruby Gems. Apress (April 2007) ISBN 1590598113
Christiansen, T., Foy, B.D., Wall, L., Orwant, J.: Programming Perl, 4th edn., pp. 629–644. O’Reilly Media, ISBN 0596004923
CocoaPods, http://www.cocoapods.org
Corcoran, L.: MoonRocks, http://rocks.moonscript.org/
Gift, N., Jones, J.: Python for Unix and Linux System Administration, pp. 279–283. O’Reilly Media (August 2008) ISBN 0596515820
Hagelberg, P., et al.: Leiningen, http://leiningen.org/
Hatcher, E., Loughran, S.: Java Development with Ant, p. 672. Manning Publications (August 2002) ISBN 1930110588
Heller, T., et al.: Python CTypes, http://docs.python.org/3/library/ctypes.html
Ierusalimschy, R., Figueiredo, L.H., Celes, W.: The evolution of Lua. In: History of Programming Languages III, San Diego, USA (June 2007)
ISO/IEC 23271:2012. Information Technology — Common Language Infrastructure (CLI)
Jones, I., Peyton Jones, S., Marlow, S., Wallace, M., Patterson, R.: The Haskell Cabal: A Common Architecture for Building Applications and Tools. In: Haskell Workshop (2005)
Kepler Project. LuaJava — A script tool for Java, http://keplerproject.org/luajava/
Krafft, M.: The Debian System: Concepts and Techniques, p. 608. No Starch Press (September 2005) ISBN 1593270690
Lehey, G.: The Complete FreeBSD: Documentation from the Source, 4th edn., pp. 167–180. O’Reilly Media (April 2003) ISBN 0596005164
Muhammad, H., Ierusalimschy, R.: C APIs in extension and extensible languages. Journal of Universal Computer Science 13(6)
Mascarenhas, F.: Alien — Pure Lua extensions, http://mascarenhas.github.com/alien/
Microsoft, MSDN Library, Side-by-side Assemblies (Windows) (August 2010), http://msdn.microsoft.com/en-us/library/aa376307.aspx
Osterhout, J.: Scripting: Higher Level Programming for the 21st Century. IEEE Computer 31(3), 23–30 (1998)
Outercurve Foundation. NuGet Gallery, https://nuget.org/
Packagist, http://www.packagist.org
PLaneT Package Repository, http://planet.racket-lang.org/
Powers, S.: Learning Node, pp. 63–79. O’Reilly Media (October 2012) ISBN 1449323073
Python Package Index, https://pypi.python.org/pypi
Ruby Version Manager, https://rvm.io/
Snoyman, M.: Solving Cabal Hell, http://www.yesodweb.com/blog/2012/11/solving-cabal-hell
Sonatype Inc. The Central Repository, https://search.maven.org
Spinellis, D.: Package Management Systems. IEEE Software 29(2), 84–86 (2012), doi:10.1109/MS.2012.38
Worthmuller, S.: No End to DLL Hell! Dr. Dobb’s Journal (September 2010), http://www.drdobbs.com/windows/no-end-to-dll-hell/227300037
Ziadć, T.: Chronology of Packaging, http://ziade.org/2012/11/17/chronology-of-packaging/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Muhammad, H., Mascarenhas, F., Ierusalimschy, R. (2013). LuaRocks - A Declarative and Extensible Package Management System for Lua. In: Du Bois, A.R., Trinder, P. (eds) Programming Languages. SBLP 2013. Lecture Notes in Computer Science, vol 8129. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40922-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-40922-6_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-40921-9
Online ISBN: 978-3-642-40922-6
eBook Packages: Computer ScienceComputer Science (R0)