1 the Standard Haskell Infrastructure [Infrastructure.Tex 2011-11-17]

Total Page:16

File Type:pdf, Size:1020Kb

1 the Standard Haskell Infrastructure [Infrastructure.Tex 2011-11-17] infrastructure.tex 2011-11-17 haskell doc September 6, 2012 1 1 The standard Haskell infrastructure [infrastructure.tex 2011-11-17] Announcement Forword I shouldn’t say, that the Haskell Cabal is a mess. Maybe, it is a Haskell amateurs write Haskell modules, Haskell professionals good design and the cabal command is already a powerful and write packages. versatile tool. But its documentation is still a mess: all the good Modules are part of the Haskell language in the narrower sense Haskell books out there either don’t deal with packages at all, of a well–defined syntax and pretty well–explained semantics. or they sketch typical examples without explaining a lot. And Packages are defined by a standard beyond, namely the Ca- the Cabal User Guide itself is rather an overwhelming reference bal, the Common Architecture for Building Applications and Li- than a tutorial. braries. I should understand the matter to write this text. But I wrote In the sequel, we try to shed some light on the standard Haskell it, because I don’t. And nothing out there fills the void, so far. infrastructure. So please, don’t be polite, but criticize. Especially, if you find it (1) The Haskell Platform is the common ground for all Haskellers useful. and we give a summarizing overview of its ingredients. (2) Cabal *** CONTINUE HERE *** libraries.tex 2009-02-14, 2011-10-27 haskell doc September 6, 2012 2 The Standard Haskell Environment Each of the mentioned applications comes with a built–in man- ual, which shows when you add --help to the commands name. The Haskell Platform 3 1 The comprehensive GHC Users’s Guide is available online , but In 2009, the Haskell Platform was introduced as the default also comes as part of the Haskell Platform. “comprehensive, robust developmnet environment for program- ming in Haskell”. If you consider working with Haskell, this is imperative. It is available for all main stream operating systems Different units of Haskell and really easy to install. It is important to understand the following concepts, which all It includes refer to units of Haskell code or software. (1) (1) The standard Haskell machine: namely the Glasgow Haskell Modules Compiler or GHC. A module is a well–formed unit of Haskell source code, with By “Haskell machine” we mean an interpreter or compiler, and an own name (say Example) and stored in a separate file of the in fact, GHC comes with both. same name (i.e. Example.hs or Example.lhs). This concept is In the past, there was a tendency to clearly distinguish the part of the Haskell language and its general form is Haskell language (at that time, the standard was Haskell 98) from the Haskell machines. There exist about a dozen dif- module Example {- optional list/tuple of exports -} where ferent implementations.2 But most of them don’t implement {- imported modules -} the complete current standard of Haskell 2010 and the with {- data type and function definitions -} the introduction of the Haskell Platform, the emphasis is com- pletely turned and GHC has become the standard. The definitions of given modules can be made available in new (2) A couple of developer tools, in particular: module (with say “import Example”), or it can be loaded into ( ) Cabal, an acronym for Common Architecture for Building a Haskell interpreter (like ghci or hugs, by calling the :load Applications and Libraries. In particular, it comes with Example) command. the cabal executable, which is the new universal tool to (2) Libraries work with packages: downloading and installing new pack- A library is a collection of interconnected modules. Often, ages (from HackageDB), but also creating, modifying and there is a kind of principal module in a library, which imports documenting packages can be done with this command. Un- the other modules and exports the (most important) defini- derstanding all that is the main issue of our text below. tions again. And then the functionality of the whole library ( ) Haddock, a document generator, can be loaded or imported by just loading this principal mod- and a couple of other tools for parsing, profiling, debugging ule. In fact, there is often no clear distinction between the and statistics, which are beyond our text here. terms “library” and “module” in the documentations. (3) Applications/Programs/Executables (3) Documentation. An application, also known as program or executable, refers to a Haskell unit that can be run as a standalone command GHC — the Glasgow Haskell Compiler from the command line of the operating system. The Glasgow Haskell Compiler is the default Haskell implemen- In terms of Haskell, this is an action or function of type IO (), tation and is part of the Haskell platform. In fact, the title always called main, embedded into a module called Main and “compiler” is an understatement, because it can compile as well compiled into an executable program of an arbitrary name, as interpret Haskell code (with subtle mixtures of both). say halloworld. This can then be run by calling halloworld Its two most important applications are: from the shell or command line (possibly with additional ar- guments). (1) ghc the compiler, which converts source code into fast pro- (4) Package grams. A package is a collection of modules, applications and related (2) ghci the interpreter, but the “i” can also be read as “in- files like documents etc. The package concept is not part of teractive”. It opens the REPL (Read-Eval-Print Loop) envi- the Haskell language in the narrower sense of Haskell 2010, ronment, where your input is immediately evaluated. That is but is part of a wider standard called Cabal, the Common what one thing that make developing in functional languages Architecture for Building Applications and Libraries4. so fast and comfortable. As a Haskell amateur, you write and use Haskell modules or If you installed the Haskell platform on Windows, you will also libraries and compile them into applications. To explore and have exploit the power and beauty of functional programming in gen- eral and Haskell in particular, you can live a long and happy (2)(a) WinGHCi , a nice and supportive GUI version of the ghci, that more than compensates for the poor standard command life without getting in touch with the package concept. But as a terminal in Windows. serious Haskell programmer, if you want to share your code with others, you write Cabal packages and you need to understand Two other available and useful applications are: some new standards. (3) ghc-pkg is a powerful package management tool for the GHC, that comes with a whole range of subcommands for all sorts of tasks. With the new emphasis on the Cabal standard for Haskell package management independent of Haskell im- plementations (see below), you will normally rather call the cabal command, instead, which often runs ghc-pkg behind the scenes. (4) runghc allows to run a Haskell program without compiling it first. This may occasionally be convenient for your own pro- gram development. This command, too, has an implementation–independent couterpart called runhaskell , and that comes with the Haskell Platform, as well. But in fact, it is just an alias for runghc. 1 http://hackage.haskell.org/platform/ 2 See http://haskell.org/haskellwiki/implementations for an overview of the current Haskell machines 3 The latest version of the GHC Users’s Guide is available at http://www.haskell.org/ghc/docs/latest/html/users guide/ 4 http://haskell.org/cabal/ libraries.tex 2009-02-14, 2011-10-27 haskell doc September 6, 2012 3 \newpage in its menu to pop up the Platform documentation.) Cabal and the Haskell Platform distinguish two main places for The Haskell Hierarchical Libraries the whole installation: 5 There is a standard hierarchy of important libraries: global refers to the system–wide part of the implementation. 6 (1) The Standard Prelude is the core of the whole Haskell On Windows, this is a directory like C:\Programs\Haskell language in the sense that it defines all primitive types and Platform. GNU/Linux uses various directories, depending on functions. All these are summarized in the Prelude 7 mod- the distribution. ule/library. When you start a Haskell interpreter like ghci, user denotes the local and user–specific parts. On GNU/Linux, the Prelude comprises the set of data structures and functions this is always the .cabal directory at /home/myself/.cabal which are available. On Windows, this is the cabal directory at something 8 like C:\Documents and Settings\myself\User data\cabal (In (2) The Haskell 2010 language report is the official definition of Haskell in the narrower sense as the syntax and semantics of a GHCi session you can query this directory by calling System.Directory.getAppUserDataDirectory "cabal" a formal language and the least set of features common to all ). real Haskell implementations. Haskell 2010 is the successor of The Haskell Platform itself is most likely installed globally. But 9 the Haskell 98 Language. if you install additional packages from Hackage (see below) with 10 Next to the Prelude, it includes a couple of other libraries the cabal command, then this is only done for the current user for important data structures (Array, Bits, Char, Complex, Int, by default, although it can easily be done globally as well (by Ix, List, Maybe, Ratio, Numeric), system and control libraries adding the --global flag). (Monad, System) and interfaces with other programming lanu- ages (Foreigh), C in particular. The setup of the whole layout is summarized in the config file 11 (3) The Base library contains additional tools that are es- that resides in the .cabal directory (or cabal on Windows).
Recommended publications
  • The Types, Roles, and Practices of Documentation in Data Analytics Open Source Software Libraries
    Computer Supported Cooperative Work (CSCW) https://doi.org/10.1007/s10606-018-9333-1 © The Author(s) 2018 The Types, Roles, and Practices of Documentation in Data Analytics Open Source Software Libraries A Collaborative Ethnography of Documentation Work R. Stuart Geiger1 , Nelle Varoquaux1,2 , Charlotte Mazel-Cabasse1 & Chris Holdgraf1,3 1Berkeley Institute for Data Science, University of California, Berkeley, 190 Doe Library, Berkeley, CA, 94730, USA (E-mail: [email protected]); 2Department of Statistics, Berkeley Institute for Data Science, University of California, Berkeley, Berkeley, CA, USA; 3Berkeley Institute for Data Science, Helen Wills Neuroscience Institute, University of California, Berkeley, Berkeley, CA, USA Abstract. Computational research and data analytics increasingly relies on complex ecosystems of open source software (OSS) “libraries” – curated collections of reusable code that programmers import to perform a specific task. Software documentation for these libraries is crucial in helping programmers/analysts know what libraries are available and how to use them. Yet documentation for open source software libraries is widely considered low-quality. This article is a collaboration between CSCW researchers and contributors to data analytics OSS libraries, based on ethnographic fieldwork and qualitative interviews. We examine several issues around the formats, practices, and challenges around documentation in these largely volunteer-based projects. There are many dif- ferent kinds and formats of documentation that exist around such libraries, which play a variety of educational, promotional, and organizational roles. The work behind documentation is similarly multifaceted, including writing, reviewing, maintaining, and organizing documentation. Different aspects of documentation work require contributors to have different sets of skills and overcome various social and technical barriers.
    [Show full text]
  • The Snap Framework: a Web Toolkit for Haskell
    The Functional Web The Snap Framework A Web Toolkit for Haskell Gregory Collins • Google Switzerland Doug Beardsley • Karamaan Group askell is an advanced functional pro- the same inputs, always produce the same out- gramming language. The product of more put. This property means that you almost always H than 20 years of research, it enables rapid decompose a Haskell program into smaller con- development of robust, concise, and fast soft- stituent parts that you can test independently. ware. Haskell supports integration with other Haskell’s ecosystem also includes many power- languages and has loads of built-in concurrency, ful testing and code-coverage tools. parallelism primitives, and rich libraries. With Haskell also comes out of the box with a set its state-of-the-art testing tools and an active of easy-to-use primitives for parallel and con- community, Haskell makes it easier to produce current programming and for performance pro- flexible, maintainable, high-quality software. filing and tuning. Applications built with GHC The most popular Haskell implementation is enjoy solid multicore performance and can han- the Glasgow Haskell Compiler (GHC), a high- dle hundreds of thousands of concurrent net- performance optimizing native-code compiler. work connections. We’ve been delighted to find Here, we look at Snap, a Web-development that Haskell really shines for Web programming. framework for Haskell. Snap combines many other Web-development environments’ best fea- What’s Snap? tures: writing Web code in an expressive high- Snap offers programmers a simple, expressive level language, a rapid development cycle, fast Web programming interface at roughly the same performance for native code, and easy deploy- level of abstraction as Java servlets.
    [Show full text]
  • What I Wish I Knew When Learning Haskell
    What I Wish I Knew When Learning Haskell Stephen Diehl 2 Version This is the fifth major draft of this document since 2009. All versions of this text are freely available onmywebsite: 1. HTML Version ­ http://dev.stephendiehl.com/hask/index.html 2. PDF Version ­ http://dev.stephendiehl.com/hask/tutorial.pdf 3. EPUB Version ­ http://dev.stephendiehl.com/hask/tutorial.epub 4. Kindle Version ­ http://dev.stephendiehl.com/hask/tutorial.mobi Pull requests are always accepted for fixes and additional content. The only way this document will stayupto date and accurate through the kindness of readers like you and community patches and pull requests on Github. https://github.com/sdiehl/wiwinwlh Publish Date: March 3, 2020 Git Commit: 77482103ff953a8f189a050c4271919846a56612 Author This text is authored by Stephen Diehl. 1. Web: www.stephendiehl.com 2. Twitter: https://twitter.com/smdiehl 3. Github: https://github.com/sdiehl Special thanks to Erik Aker for copyediting assistance. Copyright © 2009­2020 Stephen Diehl This code included in the text is dedicated to the public domain. You can copy, modify, distribute and perform thecode, even for commercial purposes, all without asking permission. You may distribute this text in its full form freely, but may not reauthor or sublicense this work. Any reproductions of major portions of the text must include attribution. The software is provided ”as is”, without warranty of any kind, express or implied, including But not limitedtothe warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authorsor copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, Arising from, out of or in connection with the software or the use or other dealings in the software.
    [Show full text]
  • Not All Patterns, but Enough
    Not All Patterns, But Enough Neil Mitchell, Colin Runciman York University Catch An Example • Is the following code safe?* risers :: Ord α→[α] → [[α]] risers [] = [] risers [x] = [[x]] risers (x:y:etc) = if x ≤ y then (x:s) : ss else [x] : (s : ss) where s:ss = risers (y : etc) > risers “Haskell” = [“Has”,“k”,“ell”] * Only people who haven’t seen this example in the paper! Using Catch > catch risers.hs Incomplete pattern on line 6 Program is safe • Catch is the associated implementation • Catch has proven the program is safe • Without any annotations The Pattern-Matching problem • Will a program crash when run? • May call error directly: error “doh!” • May call error indirectly: head [] • Partial pattern match: case False of True → 1 • GHC can warn on partial patterns • Catch conservatively checks a program will not crash at runtime • Even in the presence of partial patterns How Catch works First convert Haskell to first-order Core, using Yhc and Firstify Checker Exact Operates on first-order (ignoring laziness) Core language 3 constraint operators Constraint Language Conservative Describes a (possibly infinite) set of values Can replace constraint language Checker Terms • A constraint describes a set of values • x is a (:)-constructed value • A precondition is a constraint on arguments • In head x, x must be (:)-constructed • An entailment is a constraint on arguments to ensure a constraint on the result • If x is (:)-constructed, null x is False Checker Types • Opaque constraint type • data Constraint = … • Does an expression satisfy
    [Show full text]
  • State of the Platform Haskell Implementors Workshop - 2012 Stats
    Mark Lentczner, Google State of the Platform Haskell Implementors Workshop - 2012 Stats Number of packages — 47 (21 ghc + 26 hp) Lines of Code — 302k (167k ghc + 135k hp) Releases — 9 (May 2009 ~ present) Distributions — 11+ (Mac, Windows, Linuxes) Stats — June ~ August 2012 Downloads — 20,957 (228/day) 68% Windows 21% Mac OS X 8% Source ?? Linux Mentions of "platform" on #haskell — 983 People Build Maintainers Committee Joachim Breitner — Debian Duncan Coutts Mikhail Glushenkov — Windows Iavor Diatchki Mark Lentczner — OS X Isaac Dupree Andres Löh — NixOS Thomas Schilling Gabor Pali — FreeBSD Johan Tibell Jens Petersen — Fedora Adam Wick Release Team And the many contributors on Mark Lentczner — Chief Meanie haskell-platform@ Duncan Coutts libraries@ Don Stewart Content Packages — Haskell Platform 2012.2.0.0 ghc 7.4.1 time 1.4 random 1.0.1.1 array 0.4.0.0 unix 2.5.1.0 regex-base 0.93.2 base 4.5.0.0 Win32 2.2.2.0 regex-compat 0.95.1 bytestring 0.9.2.1 regex-posix 0.95.1 Cabal 1.14.0 stm 2.3 containers 0.4.2.1 syb 0.3.6.1 deepseq 1.3.0.0 cgi 3001.1.7.4 text 0.11.2.0 directory 1.1.0.2 fgl 5.4.2.4 transformers 0.3.0.0 extensible-exceptions GLUT 2.1.2.1 xhtml 3000.2.1 0.1.1.4 haskell-src 1.0.1.5 zlib 0.5.3.3 filepath 1.3.0.0 html 1.0.1.2 haskell2010 1.1.0.1 HTTP 4000.2.3 haskell98 2.0.0.1 HUnit 1.2.4.2 hpc 0.5.1.1 mtl 2.1.1 cabal-install 0.14.0 old-locale 1.0.0.4 network 2.3.0.13 alex 3.0.1 old-time 1.1.0.0 OpenGL 2.2.3.1 happy 1.18.9 pretty 1.1.1.0 parallel 3.2.0.2 process 1.1.0.1 parsec 3.1.2 template-haskell 2.7.0.0 QuickCheck 2.4.2 Standard
    [Show full text]
  • Notes on Functional Programming with Haskell
    Notes on Functional Programming with Haskell H. Conrad Cunningham [email protected] Multiparadigm Software Architecture Group Department of Computer and Information Science University of Mississippi 201 Weir Hall University, Mississippi 38677 USA Fall Semester 2014 Copyright c 1994, 1995, 1997, 2003, 2007, 2010, 2014 by H. Conrad Cunningham Permission to copy and use this document for educational or research purposes of a non-commercial nature is hereby granted provided that this copyright notice is retained on all copies. All other rights are reserved by the author. H. Conrad Cunningham, D.Sc. Professor and Chair Department of Computer and Information Science University of Mississippi 201 Weir Hall University, Mississippi 38677 USA [email protected] PREFACE TO 1995 EDITION I wrote this set of lecture notes for use in the course Functional Programming (CSCI 555) that I teach in the Department of Computer and Information Science at the Uni- versity of Mississippi. The course is open to advanced undergraduates and beginning graduate students. The first version of these notes were written as a part of my preparation for the fall semester 1993 offering of the course. This version reflects some restructuring and revision done for the fall 1994 offering of the course|or after completion of the class. For these classes, I used the following resources: Textbook { Richard Bird and Philip Wadler. Introduction to Functional Program- ming, Prentice Hall International, 1988 [2]. These notes more or less cover the material from chapters 1 through 6 plus selected material from chapters 7 through 9. Software { Gofer interpreter version 2.30 (2.28 in 1993) written by Mark P.
    [Show full text]
  • Haddock User Guide I
    Haddock User Guide i Haddock User Guide Haddock User Guide ii Copyright © 2004 Simon Marlow Haddock User Guide iii COLLABORATORS TITLE : Haddock User Guide ACTION NAME DATE SIGNATURE WRITTEN BY Simon Marlow 2004-08-02 REVISION HISTORY NUMBER DATE DESCRIPTION NAME Haddock User Guide iv Contents 1 Introduction 1 1.1 Obtaining Haddock . .1 1.2 License . .2 1.3 Acknowledgements . .2 2 Invoking Haddock 3 2.1 Using literate or pre-processed source . .6 3 Documentation and Markup 7 3.1 Documenting a top-level declaration . .7 3.2 Documenting parts of a declaration . .8 3.2.1 Class methods . .8 3.2.2 Constructors and record fields . .8 3.2.3 Function arguments . .9 3.3 The module description . .9 3.4 Controlling the documentation structure . .9 3.4.1 Re-exporting an entire module . 10 3.4.2 Omitting the export list . 10 3.5 Named chunks of documentation . 11 3.6 Hyperlinking and re-exported entities . 11 3.7 Module Attributes . 12 3.8 Markup . 12 3.8.1 Paragraphs . 12 3.8.2 Special characters . 12 3.8.3 Character references . 13 3.8.4 Code Blocks . 13 3.8.5 Hyperlinked Identifiers . 13 3.8.6 Emphasis and Monospaced text . 13 3.8.7 Linking to modules . 14 3.8.8 Itemized and Enumerated lists . 14 3.8.9 Definition lists . 14 3.8.10 URLs . 14 3.8.11 Anchors . 14 Haddock User Guide v 4 Index 15 Abstract This document describes Haddock version 2.6.1, a Haskell documentation tool. Haddock User Guide 1 / 15 Chapter 1 Introduction This is Haddock, a tool for automatically generating documentation from annotated Haskell source code.
    [Show full text]
  • The Haskell Cabal
    The Haskell Cabal A Common Architecture for Building Applications and Tools Isaac Jones Simon Peyton Jones Simon Marlow Malcolm Wallace Ross Patterson The Haskell Library and Tools Infrastructure Project is an effort to provide a framework for developers to more effectively contribute their software to the Haskell community. This document specifies the Common Architecture for Building Applications and Tools(Cabal), which contributes to the goals of the Haskell Library and Tools Infrastructure Project. Specifically, the Cabal describes what a Haskell package is, how these packages interact with the language, and what Haskell implementations must to do to support packages. The Cabal also specifies some infrastructure (code) that makes it easy for tool authors to build and distribute conforming packages. The Cabal is only one contribution to the Library Infrastructure project. In particular, the Cabal says nothing about more global issues such as how authors decide where in the module name space their library should live; how users can find a package they want; how orphan packages find new owners; and so on. The Cabal has been discussed by the implementors of GHC, Nhc98, and Hugs, all of whom are prepared to implement it. The proposal is now open for wider debate. Please contribute by emailing <[email protected]>. 1 The Haskell Cabal 1. The Haskell Package System: goals The Haskell Package System (Cabal) has the following main goal: to specify a standard way in which a Haskell tool can be packaged, so that it is easy for consumers to use it, or re-package it, regardless of the Haskell implementation or installation platform.
    [Show full text]
  • Graphical User Interfaces in Haskell
    Graphical User Interfaces in Haskell By Gideon Sireling August 2011 Abstract Graphical user interfaces (GUIs) are critical to user friendliness, and are well supported by imperative, particularly object-oriented, programming languages. This report focuses on the development of GUIs with the purely functional language Haskell. We review prior efforts at supporting such interfaces with functional idioms, and investigate why these are rarely used in practice. We argue that there is no overarching solution, but rather, that each class of graphical application should be supported by a domain-specific abstraction. Finally, we present such an abstraction for data-processing applications; a framework for binding data to graphical interfaces. The framework does not attempt to replace existing graphical toolkits; rather, it adds a new layer of abstraction, with interfaces provided to Gtk2Hs and WxHaskell. Simple examples demonstrate how Haskell can be utilised to accomplish this task as easily as any imperative language. 1 Acknowledgement I would like to thank my supervisor, Mr Andy Symons, for the clear direction which he provided throughout this project. I would also like to thank the good folks who so freely donate their time and expertise to the Haskell Platform, EclipseFP, and all the community projects utilised in this work. Finally, I wish to express my deepest gratitude to my family, who tolerated all the time invested in this project with the utmost grace and patience. 2 Table of Contents Abstract ..............................................................................................................................................
    [Show full text]
  • Haskhol: a Haskell Hosted Domain Specific Language for Higher-Order
    HaskHOL: A Haskell Hosted Domain Specific Language for Higher-Order Logic Theorem Proving BY c 2011 Evan Christopher Austin Submitted to the graduate degree program in Electrical Engineering & Computer Science and the Graduate Faculty of the University of Kansas in partial fulfillment of the requirements for the degree of Master of Science. Chairperson Dr. Perry Alexander Dr. Andy Gill Dr. Arvin Agah Date Defended: July 26, 2011 The Thesis Committee for Evan Christopher Austin certifies that this is the approved version of the following thesis: HaskHOL: A Haskell Hosted Domain Specific Language for Higher-Order Logic Theorem Proving Chairperson Dr. Perry Alexander Date Approved: July 26, 2011 ii Abstract HaskHOL is an implementation of a HOL theorem proving capability in Haskell. Motivated by a need to integrate theorem proving capabilities into a Haskell-based tool suite, HaskHOL began as a simple port of HOL Light to Haskell. However, Haskell's laziness, immutable data, and monadic extensions both complicate an implementation and enable a new feature class. This thesis describes HaskHOL, its motivation and implementation. Its use to implement a primitive, interactive theorem prover is explored and its performance is evaluated using a collection of intuitionistically valid problems. iii Acknowledgements Dr. Perry Alexander has served as a constant inspiration, mentor, and friend since very early in my college career. His guidance and the myriad of opportunities he has afforded me have kindled a passion for formal methods research that I can honestly say I would not have had otherwise. Dr. Andy Gill was the first professor I had at KU who challenged me to go above and beyond what was required for a course.
    [Show full text]
  • Haskell Und Debian
    Haskell und Debian Joachim Breitner ∗ Karlsruher Institut für Technology [email protected] Abstract gleiche Weise direkt installiert werden: Ein einfaches apt-get install ghc Da die Programmiersprache Haskell immer beliebter wird genügt, und der Haskell-Compiler ist installiert. apt-get upgrade und in immer weiteren Kreisen eingesetzt wird, müssen sich Aktualisierungen laufen problemlos mit apt-get remove nun immer mehr Programmierer auch um die Besonderheiten und nicht benötigte Pakete können mit sau- der Installation von Haskell-Compilern und -Bibliotheken ber und vollständig entfernt werden. Wenn ein zu installie- kümmern. Dies zu vereinfachen und vereinheitlichen ist die rendes Paket ein anderes benötigt, wird dieses automatisch originäre Aufgabe von Distributionen wie Debian. Dieser mit installiert und auch im weiteren Betrieb werden diese Vortrag gibt einen Einblick in die Funktionsweise von Debian, Abhängigkeiten stets geprüft. Kryptographie schützt den An- insbesondere in Bezug auf Haskell-Pakete, erklärt was man wender dabei vor bösartig veränderten Paketen. als Anwender von Debian erwarten kann und was sich Darüber hinaus prüfen die Debian-Entwickler dass die Debian von den Haskell-Bibliotheken wünscht. Programme auch wirklich Freie Software sind. Man kann sich also darauf verlassen, dass man zu jedem Paket in Debian die Categories and Subject Descriptors K.6.3 [Management of Quellen bekommt, diese verändern darf und die Veränderun- Computing and Information Systems]: Software Management— gen auch weitergeben darf. Auch das geht mit einheitlichen Software process Befehlen (apt-get source und dpkg-buildpackage). Keywords linux distribution, package management, Debian Ich erinnere mich noch vage an die Zeit als ich unter Windows Software noch auf irgendwelchen Webseiten direkt heruntergeladen habe und mich durch immer verschiedene 1.
    [Show full text]
  • Haskell Communities and Activities Report
    Haskell Communities and Activities Report http://tinyurl.com/haskcar Twenty-Second Edition — May 2012 Janis Voigtländer (ed.) Andreas Abel Iain Alexander Heinrich Apfelmus Emil Axelsson Christiaan Baaij Doug Beardsley Jean-Philippe Bernardy Mario Blažević Gwern Branwen Joachim Breitner Björn Buckwalter Douglas Burke Carlos Camarão Erik de Castro Lopo Roman Cheplyaka Olaf Chitil Duncan Coutts Jason Dagit Nils Anders Danielsson Romain Demeyer James Deng Dominique Devriese Daniel Díaz Atze Dijkstra Facundo Dominguez Adam Drake Andy Georges Patai Gergely Jürgen Giesl Brett G. Giles Andy Gill George Giorgidze Torsten Grust Jurriaan Hage Bastiaan Heeren PÁLI Gábor János Guillaume Hoffmann Csaba Hruska Oleg Kiselyov Michal Konečný Eric Kow Ben Lippmeier Andres Löh Hans-Wolfgang Loidl Rita Loogen Ian Lynagh Christian Maeder José Pedro Magalhães Ketil Malde Antonio Mamani Alp Mestanogullari Simon Michael Arie Middelkoop Dino Morelli JP Moresmau Ben Moseley Takayuki Muranushi Jürgen Nicklisch-Franken Rishiyur Nikhil David M. Peixotto Jens Petersen Simon Peyton Jones Dan Popa David Sabel Uwe Schmidt Martijn Schrage Tom Schrijvers Andrew G. Seniuk Jeremy Shaw Christian Höner zu Siederdissen Michael Snoyman Jan Stolarek Martin Sulzmann Doaitse Swierstra Henning Thielemann Simon Thompson Sergei Trofimovich Marcos Viera Janis Voigtländer David Waern Daniel Wagner Greg Weber Kazu Yamamoto Edward Z. Yang Brent Yorgey Preface This is the 22nd edition of the Haskell Communities and Activities Report. As usual, fresh entries are formatted using a blue background, while updated entries have a header with a blue background. Entries for which I received a liveness ping, but which have seen no essential update for a while, have been replaced with online pointers to previous versions.
    [Show full text]