Cabal (software)
Encyclopedia
The Haskell
Cabal is the Common Architecture for Building Applications
and Libraries; it aids in the packaging and distribution of software packages
. It is contained in the Haskell Platform
.
and build process; thus, it is possible to develop tools to upload Cabal packages to the CPAN
-like community repository of software, Hackage, or even allow for automated downloading, compilation, and installation of desired packages from Hackage (through the cabal-install tool).
Haskell (programming language)
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...
Cabal is the Common Architecture for Building Applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
and Libraries; it aids in the packaging and distribution of software packages
Software package (installation)
In package management systems, which are commonly used with Linux-based operating systems, a package is a specific piece of software which the system can install and uninstall....
. It is contained in the Haskell Platform
Haskell Platform
The Haskell Platform is a collection of software-packages, tools and libraries, which is to create a common platform for using and developing applications in Haskell. With the Haskell Platform, Haskell follows the same principle as Python: "Batteries included"...
.
Cabalizing
A process of making a library written in the Haskell programming language conformant to the requirements of the Cabal library infrastructure provided that the library was initially developed without taking those requirements into consideration, or prior to the introduction of Cabal to the Haskell community.Use
Cabal packages provide a standard set of metadataMetadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...
and build process; thus, it is possible to develop tools to upload Cabal packages to the CPAN
CPAN
CPAN, the Comprehensive Perl Archive Network, is an archive of nearly 100,000 modules of software written in Perl, as well as documentation for it. It has a presence on the World Wide Web at and is mirrored worldwide at more than 200 locations...
-like community repository of software, Hackage, or even allow for automated downloading, compilation, and installation of desired packages from Hackage (through the cabal-install tool).
External links
- Cabal
- "The Haskell Cabal: A Common Architecture for Building Applications and Tools" -(the original proposal and specification, by Isaac Jones, Simon Peyton JonesSimon Peyton JonesSimon Peyton Jones is a British computer scientist who researches the implementation and applications of functional programming languages, particularly lazy functional languages...
, Simon Marlow, Malcolm Wallace, and Ross Patterson; a version was submitted to the Haskell Workshop, 2005) - Cabal talk -(slides)