[Pkg-haskell-commits] darcs: helium: Redo helium packaging, now based on Cabal. Requires some new dependencies.
Joachim Breitner
mail at joachim-breitner.de
Fri Oct 24 07:54:04 UTC 2014
Fri Oct 24 07:53:26 UTC 2014 Joachim Breitner <mail at joachim-breitner.de>
* Redo helium packaging, now based on Cabal. Requires some new dependencies.
R ./patches/01_fhs-and-destdir
R ./patches/02_typed-punning
R ./patches/03_add-readline-support
R ./patches/05_fixes-for-64bit
R ./patches/06_no-strip
R ./patches/10_autoconf
R ./patches/20_fix-as-needed-linking
R ./patches/fixes-for-ghc
R ./patches/ghc-7.4-compat
R ./patches/parsec3-compat
R ./patches/replace-config.sub
R ./patches/series
R ./patches/use-sinclude
R ./patches/
R ./clean
R ./helium.docs
A ./helium.haskell-binaries
R ./scripts/helium
R ./scripts/lvmrun
R ./scripts/texthint
R ./scripts/
M ./changelog +7
M ./control -13 +18
M ./copyright -86 +28
M ./helium.haskell-binaries +3
M ./rules -105 +3
M ./watch -2 +1
Fri Oct 24 07:53:26 UTC 2014 Joachim Breitner <mail at joachim-breitner.de>
* Redo helium packaging, now based on Cabal. Requires some new dependencies.
diff -rN -u old-helium/changelog new-helium/changelog
--- old-helium/changelog 2014-10-24 07:54:04.211222104 +0000
+++ new-helium/changelog 2014-10-24 07:54:04.223222116 +0000
@@ -1,3 +1,10 @@
+helium (1.8-1) UNRELEASED; urgency=medium
+
+ * New upstream release, now Cabal based
+ * New packaging
+
+ -- Joachim Breitner <nomeata at debian.org> Thu, 23 Oct 2014 23:28:57 +0200
+
helium (1.7~pre20090428-5) UNRELEASED; urgency=low
* Restore changes from NMU (Luk Claes):
diff -rN -u old-helium/clean new-helium/clean
--- old-helium/clean 2014-10-24 07:54:04.211222104 +0000
+++ new-helium/clean 1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-helium/src/parser/ResolveOperators.hs
-helium/src/staticanalysis/directives/TS_Analyse.hs
-helium/src/staticanalysis/directives/TS_Apply.hs
-helium/src/staticanalysis/directives/TS_ToCore.hs
-helium/src/staticanalysis/inferencers/KindInferencing.hs
-helium/src/staticanalysis/staticchecks/StaticChecks.hs
-helium/src/codegeneration/CodeGeneration.hs
diff -rN -u old-helium/control new-helium/control
--- old-helium/control 2014-10-24 07:54:04.211222104 +0000
+++ new-helium/control 2014-10-24 07:54:04.223222116 +0000
@@ -2,10 +2,19 @@
Section: haskell
Priority: optional
Maintainer: Debian Haskell Group <pkg-haskell-maintainers at lists.alioth.debian.org>
-Uploaders: Marco Túlio Gontijo e Silva <marcot at debian.org>
-Build-Depends: autotools-dev, debhelper (>= 9),
- ghc (>= 6.8.2), haddock, libghc-mtl-dev, libghc-parsec3-dev, uuagc, libghc-editline-dev, libghc-network-dev, libncurses-dev
-Build-Conflicts: libghc-parsec2-dev
+Uploaders: Joachim Breitner <nomeata at debian.org>
+Build-Depends: autotools-dev,
+ debhelper (>= 9),
+ haskell-devscripts,
+ ghc,
+ libghc-mtl-dev,
+ libghc-parsec3-dev,
+ libghc-network-dev,
+ libghc-process-dev,
+ libghc-transformers-dev,
+ libghc-wl-pprint-dev,
+ libghc-top-dev,
+ libghc-lvmlib-dev,
Standards-Version: 3.9.4
Homepage: http://www.cs.uu.nl/wiki/bin/view/Helium/WebHome
Vcs-Darcs: http://darcs.debian.org/pkg-haskell/helium
@@ -15,12 +24,8 @@
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: compiler used for learning the programming language Haskell
- Helium is a functional programming language and a compiler designed
- especially for learning Haskell. Quality of the error messages has
- been the main concern both in the choice of the language features and
- in the implementation of the compiler. The goal of the language and
- the compiler is to let students (or anyone) learn functional
- programming more quickly and with more fun.
- .
- Note: Helium does not support type classes yet. For that reason it is
- incompatible with Haskell text books.
+ Helium is a compiler for a subset of Haskell that aims at delivering high
+ quality type error messages particularly for beginner programmers. It also
+ includes facilities for specializing type error diagnosis for embedded domain
+ specific languages. The compiler supports Haskell 98, but without the ability
+ to define new type classes and instances.
diff -rN -u old-helium/copyright new-helium/copyright
--- old-helium/copyright 2014-10-24 07:54:04.211222104 +0000
+++ new-helium/copyright 2014-10-24 07:54:04.223222116 +0000
@@ -1,89 +1,31 @@
-This package was debianized by Arjan Oosting <arjanoosting at home.nl> on
-Fri, 15 Sep 2006 02:35:13 +0200.
-
-It was downloaded from http://www.cs.uu.nl/helium/download.html
-
-Upstream Authors:
- Arjan van IJzendoorn
- Rijk-Jan van Haaften
- Daan Leijen <daan at cs.uu.nl>
- Bastiaan Heeren <bastiaan at cs.uu.nl>
-
-Current Maintainer:
- Bastiaan Heeren <bastiaan at cs.uu.nl>
-
-Copyright:
-
- (c) 1996,1997,1999-2001 Institut National de Recherche en
- Informatique et en Automatique.
- (c) 1999,2001 Daan Leijen <daan at cs.uu.nl>
- (c) Bastiaan Heerden <bastiaan at cs.uu.nl>
-
-
-This package expect the source files in the directory lvm is licensed
-under the GPL:
-
- This package is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License version 2 as
- published by the Free Software Foundation.
-
- This package is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this package; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-On Debian systems, the complete text of the GNU General
-Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'.
-
-**********************************************************************
-The source files of the Lazy Virtual Machine, which are the files in
-the directory lvm, except the files in lvm/src/lib/core, are licensed
-under the GNU Library General Public License, currectly known as the
-GNU Lesser General Public License:
-
- This package is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License version 2 as published by the Free Software Foundation.
-
- This package is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this package; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-On Debian systems, the complete text of the GNU Lesser General
-Public License can be found in `/usr/share/common-licenses/LGPL-2'.
-
-**********************************************************************
-The source files in the directory lvm/src/lib/core which are part of
-the Core Assembler of the Lazy Virtual Machine are licensed under the
-BSD license:
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted under the terms of the BSD License.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-On Debian systems, the complete text of the BSD License can be
-found in `/usr/share/common-licenses/BSD'.
-
-**********************************************************************
-The Debian packaging is (C) 2006, Arjan Oosting <arjanoosting at home.nl> and
-is licensed under the GPL, see above.
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: helium
+Upstream-Contact: helium at cs.uu.nl
+Source: http://hackage.haskell.org/package/helium
+
+Files: *
+Copyright: 1996-2014
+ Arjan van IJzendoorn, Bastiaan Heeren, Jurriaan Hage,
+ Daan Leijen, Rijk-Jan van Haaften, Arie Middelkoop, Arjan Oosting,
+ Jurriën Stutterheim, Jeroen Fokker, Andres Löh, Arthur Baars, Remco Burema,
+ Atze Dijkstra, Maarten van Gompel, Doaitse Swierstra, Martijn Lammerts,
+ Martijn Schrage and Stefan Holdermans.
+License: GPL-3
+
+Files: debian/*
+Copyright: held by the contributors mentioned in debian/changelog
+License: GPL-3
+
+License: GPL-3
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ See /usr/share/common-licenses/GPL-3 for a copy of the GNU General General
+ Public License.
diff -rN -u old-helium/helium.docs new-helium/helium.docs
--- old-helium/helium.docs 2014-10-24 07:54:04.211222104 +0000
+++ new-helium/helium.docs 1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-helium/docs/PreludeDiffs.hs
-helium/docs/TODO.txt
diff -rN -u old-helium/helium.haskell-binaries new-helium/helium.haskell-binaries
--- old-helium/helium.haskell-binaries 1970-01-01 00:00:00.000000000 +0000
+++ new-helium/helium.haskell-binaries 2014-10-24 07:54:04.223222116 +0000
@@ -0,0 +1,3 @@
+helium
+lvmrun
+texthint
diff -rN -u old-helium/patches/01_fhs-and-destdir new-helium/patches/01_fhs-and-destdir
--- old-helium/patches/01_fhs-and-destdir 2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/01_fhs-and-destdir 1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-# Description: FHS and destdir
-# Author: Arjan Oosting <arjanoosting at home.nl>
-Index: helium-1.7~pre20090428/helium/src/Makefile.in
-===================================================================
---- helium-1.7~pre20090428.orig/helium/src/Makefile.in 2011-06-02 19:13:59.000000000 +0200
-+++ helium-1.7~pre20090428/helium/src/Makefile.in 2011-06-02 19:14:24.000000000 +0200
-@@ -29,12 +29,12 @@
-
- # Installation paths
- prefix = @prefix@
--basedir = @prefix@/helium-$(VERSION)
-+basedir = $(DESTDIR)@prefix@/lib/helium
- exec_prefix = @exec_prefix@
--bindir = @bindir@ # Typically, this is in your path
-+bindir = $(DESTDIR)@bindir@ # Typically, this is in your path
- hbindir = $(basedir)/bin # typically, this one is not. Used to support multiple versions.
- libdir = $(basedir)/lib
--demodir = $(basedir)/demo
-+demodir = $(DESTDIR)@prefix@/share/doc/helium/demo
-
- status :
- @echo "*******************************************************************"
diff -rN -u old-helium/patches/02_typed-punning new-helium/patches/02_typed-punning
--- old-helium/patches/02_typed-punning 2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/02_typed-punning 1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-# Description: Typed punning
-# Author: Arjan Oosting <arjanoosting at home.nl>
-Index: helium-1.6/lvm/src/configure
-===================================================================
---- helium-1.6.orig/lvm/src/configure 2006-02-05 14:35:50.000000000 -0200
-+++ helium-1.6/lvm/src/configure 2010-03-15 10:27:12.000000000 -0300
-@@ -662,7 +662,7 @@
- echo "CONFIGPATH=../config" >> makefile;;
- esac
-
--echo "CCOPTS=$cccompopts -I\$(CONFIGPATH)" >> makefile
-+echo "CCOPTS=$cccompopts -fno-strict-aliasing -I\$(CONFIGPATH)" >> makefile
-
- rm -f tst$exe hasgot.c *.obj
-
-@@ -694,4 +694,4 @@
- echo " linker used............... $link"
- echo " options for linking....... $cclinkopts"
- echo
--echo
-\ No newline at end of file
-+echo
diff -rN -u old-helium/patches/03_add-readline-support new-helium/patches/03_add-readline-support
--- old-helium/patches/03_add-readline-support 2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/03_add-readline-support 1970-01-01 00:00:00.000000000 +0000
@@ -1,55 +0,0 @@
-# Description: Add readline support
-# Author: Arjan Oosting <arjanoosting at home.nl>
-Index: helium-1.7~pre20090428/helium/src/texthint/Main.hs
-===================================================================
---- helium-1.7~pre20090428.orig/helium/src/texthint/Main.hs 2011-06-02 18:34:20.000000000 +0200
-+++ helium-1.7~pre20090428/helium/src/texthint/Main.hs 2011-06-02 18:43:48.000000000 +0200
-@@ -23,6 +23,7 @@
- import Data.IORef ( IORef, readIORef, newIORef, writeIORef )
- import System.IO.Unsafe ( unsafePerformIO )
- import System(system, getEnv, getArgs, exitWith, ExitCode(..))
-+import qualified System.Console.Editline.Readline as RL
- import OSSpecific(slash)
- import Directory
- import ConfigFile(Config, readConfig)
-@@ -155,6 +156,9 @@
- (initialState{ compOptions = addStandardLVMPath basepath (configOptions ++ (map show options)) })
- Nothing ->
- return initialState{ compOptions = addStandardLVMPath basepath configOptions }
-+
-+ -- Initialize editline
-+ RL.initialize
-
- -- Enter read-eval-print loop
- loop stateAfterLoad
-@@ -170,20 +174,22 @@
-
- loop :: State -> IO State
- loop state = do
-- putStr (prompt state)
-- hFlush stdout
-- command' <- getLine
-- let command = trim command'
-+ command' <- RL.readline (prompt state)
-+ let command = fmap trim command'
- newState <- case command of
-- (':':cmd:rest) ->
-+ Just (':':cmd:rest) -> do
-+ RL.addHistory (':':cmd:rest)
- processCommand (toLower cmd) (trim rest) state
-- (':':_) -> do
-+ Just (':':_) -> do
- putStrLn "Expecting command after colon. Type :? for help"
- return state
-- expression -> do
-+ Just expression -> do
- if null expression
- then return state
-- else processExpression expression state
-+ else do
-+ RL.addHistory expression
-+ processExpression expression state
-+ Nothing -> return state
- loop newState
- where
- prompt :: State -> String
diff -rN -u old-helium/patches/05_fixes-for-64bit new-helium/patches/05_fixes-for-64bit
--- old-helium/patches/05_fixes-for-64bit 2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/05_fixes-for-64bit 1970-01-01 00:00:00.000000000 +0000
@@ -1,240 +0,0 @@
-# Description: Fix for 64 bit
-# Author: Arjan Oosting <arjan at debian.org>
-Index: helium-1.7~pre20090428/lvm/src/lib/common/Byte.hs
-===================================================================
---- helium-1.7~pre20090428.orig/lvm/src/lib/common/Byte.hs 2009-04-24 16:26:18.000000000 +0200
-+++ helium-1.7~pre20090428/lvm/src/lib/common/Byte.hs 2011-06-02 18:17:28.000000000 +0200
-@@ -27,6 +27,8 @@
- , stringFromByteList, bytesFromByteList
- ) where
-
-+import Data.Word
-+
- import IO ( IOMode(..) )
- import Special ( openBinary, writeBinaryChar, readBinary, closeBinary )
- import Standard ( strict )
-@@ -35,7 +37,7 @@
- {----------------------------------------------------------------
- types
- ----------------------------------------------------------------}
--type Byte = Char
-+type Byte = Word8
-
- data Bytes = Nil
- | Cons Byte !Bytes -- Byte is not strict since LvmWrite uses it lazily right now.
-@@ -52,19 +54,19 @@
- ----------------------------------------------------------------}
- byteFromInt8 :: Int -> Byte
- byteFromInt8 i
-- = toEnum (mod i 256)
-+ = toEnum i
-
- intFromByte :: Byte -> Int
- intFromByte b
- = fromEnum b
-
- bytesFromString :: String -> Bytes
--bytesFromString s
-- = bytesFromList s
-+bytesFromString
-+ = bytesFromList . map (toEnum . fromEnum)
-
- stringFromBytes :: Bytes -> String
--stringFromBytes bs
-- = listFromBytes bs
-+stringFromBytes
-+ = map (toEnum . fromEnum) . listFromBytes
-
- bytesFromInt32 :: Int -> Bytes -- 4 byte big-endian encoding
- bytesFromInt32 i
-@@ -72,7 +74,7 @@
- n1 = div n0 256
- n2 = div n1 256
- n3 = div n2 256
-- xs = map byteFromInt8 [n3,n2,n1,n0]
-+ xs = map (byteFromInt8 . (flip mod) 256) [n3,n2,n1,n0]
- in bytesFromList xs
-
- max32 :: Int
-@@ -131,7 +133,7 @@
- write h bs
- = case bs of
- Nil -> return ()
-- Cons b bs -> do{ writeBinaryChar h b; write h bs }
-+ Cons b bs -> do{ writeBinaryChar h (toEnum (fromEnum b)); write h bs }
- Cat bs cs -> do{ write h bs; write h cs }
-
-
-@@ -150,7 +152,7 @@
-
- stringFromByteList :: [Byte] -> String
- stringFromByteList bs
-- = bs
-+ = map (toEnum . fromEnum) bs
-
- bytesFromByteList :: [Byte] -> Bytes
- bytesFromByteList bs
-@@ -161,7 +163,7 @@
- = do{ h <- openBinary path ReadMode
- ; xs <- readBinary h
- ; closeBinary h
-- ; return xs
-+ ; return (map (toEnum . fromEnum) xs)
- } `catch` (\exception ->
- let message = show exception ++ "\n\nUnable to read from file " ++ show path
- in do { putStrLn message; exitWith (ExitFailure 1) })
-Index: helium-1.7~pre20090428/lvm/src/lib/common/Id.hs
-===================================================================
---- helium-1.7~pre20090428.orig/lvm/src/lib/common/Id.hs 2005-11-07 12:48:22.000000000 +0100
-+++ helium-1.7~pre20090428/lvm/src/lib/common/Id.hs 2011-06-02 18:17:28.000000000 +0200
-@@ -29,16 +29,19 @@
- import Standard (foldlStrict)
- import qualified IntMap
-
-+import Data.Int (Int32)
- import Data.IORef( IORef, newIORef, readIORef, writeIORef )
- import Special ( unsafePerformIO )
-
- ----------------------------------------------------------------
- -- Types
- ----------------------------------------------------------------
--newtype Id = Id Int
-+newtype Id = Id Int32
-
--intFromId (Id i) = i
--idFromInt i = Id i
-+intFromId :: Id -> Int
-+intFromId (Id i) = fromIntegral i
-+idFromInt :: Int -> Id
-+idFromInt i = Id (fromIntegral i)
-
-
- ----------------------------------------------------------------
-@@ -83,7 +86,7 @@
- -- fresh identifiers without a nice name
- -- but the advantage of a pure interface
- ----------------------------------------------------------------
--newtype NameSupply = NameSupply (IORef Int)
-+newtype NameSupply = NameSupply (IORef Int32)
-
- newNameSupply :: IO NameSupply
- newNameSupply
-@@ -133,24 +136,24 @@
- dummyId :: Id
- dummyId = Id (0x7FFFFFF1)
-
--shiftSort, maxSort :: Int
-+shiftSort, maxSort :: Int32
- shiftSort = 0x00000002
- maxSort = 0x7F
-
--maxHash, shiftHash :: Int
-+maxHash, shiftHash :: Int32
- maxHash = 0xFFF
- shiftHash = 0x00000100
-
--shiftIdx, maxIdx :: Int
-+shiftIdx, maxIdx :: Int32
- shiftIdx = 0x00100000
- maxIdx = 0x7FF
-
--shiftUniq,maxUniq,flagUniq :: Int
-+shiftUniq,maxUniq,flagUniq :: Int32
- shiftUniq = 0x00000100
- maxUniq = 0x007FFFFF
- flagUniq = 0x00000001
-
--extractBits, clearBits, initBits :: Int -> Int -> Int -> Int
-+extractBits, clearBits, initBits :: Int32 -> Int32 -> Int32 -> Int32
- extractBits shift max i
- = (i `div` shift) `mod` (max+1)
-
-@@ -192,21 +195,21 @@
-
- getNameSpace :: Enum a => Id -> a
- getNameSpace (Id i)
-- = toEnum (extractSort i)
-+ = toEnum (fromIntegral (extractSort i))
-
- setNameSpace :: Enum a => a -> Id -> Id
- setNameSpace sort (Id i)
- | s > maxSort = error "Id.setIdSort: sort index out of range"
- | otherwise = Id (initSort s (clearSort i))
- where
-- s = fromEnum sort
-+ s = fromIntegral (fromEnum sort)
-
-
- lookupId :: Id -> Names -> Maybe String
- lookupId (Id i) (Names fresh map)
- = let idx = extractIdx i
- h = extractHash i
-- in case IntMap.lookupM map h of
-+ in case IntMap.lookupM map (fromIntegral h) of
- Nothing -> Nothing
- Just xs -> Just (index idx xs)
- where
-@@ -223,7 +226,7 @@
- insertName' name (Names fr[...incomplete...]
More information about the Pkg-haskell-commits
mailing list