packages feed

alms 0.6.0 → 0.6.1

raw patch · 10 files changed

+50/−28 lines, 10 files

Files

Makefile view
@@ -63,7 +63,7 @@ 	$(RM) html  -VERSION = 0.6.0+VERSION = 0.6.1 DISTDIR = alms-$(VERSION) TARBALL = $(DISTDIR).tar.gz 
README view
@@ -14,8 +14,8 @@  GETTING STARTED -  Alms requires GHC to build.  It is known to work with GHC 6.12.1 and-  6.10.4, and likely no longer works with GHC 6.8.+  Alms requires GHC to build.  It is known to work with GHC 7.0.2, and+  and likely no longer works with GHC 6.    Provided that a recent ghc is in your path, to build on UNIX it ought   to be be sufficient to type:@@ -89,7 +89,7 @@    You can load libraries from the command line like this: -    % ./alms -l libsocketcap+    % ./alms -lsocketcap    Or from within the REPL like this: @@ -99,11 +99,9 @@   REPL about identifiers:      #- #i list Exn *-    type +`a list : a = Cons of `a * `a list | Nil-        -- built-in-    module Exn-        -- defined at "lib/libbasis.alms" (line 2, col. 3 to line 23, col. 3)-    type +`a * +`b : a \/ b   -- built-in+    type +`a list : `a = (::) of `a * `a list | ([])   -- built-in+    module Exn    -- defined at lib/libbasis.alms:198:1-32+    type +`a * +`b : `a \/ `b   -- built-in     val ( * ) : int -> int -> int   -- built-in  @@ -117,10 +115,10 @@   \forall \exists \lambda         all ex fun   (binders)   \alpha                          'a           (unlimited type variable)   \hat\alpha                      `a           (affine type variable)-  \to^A                           -o           (affine arrow)-  \to^{\hat\alpha}                -[a]>        (arrow with qualifier)-  \sqcup \sqcap                   \/ /\        (qualifier join and meet)-  \pm \baro + -                   = * + -      (variances)+  \to^A                           -A>          (affine arrow)+  \to^{\hat\alpha}                -a>          (arrow with qualifier)+  \sqcup                          \/           (qualifier join)+  \pm \baro + -                   = 0 + -      (variances)   EDITLINE TROUBLE@@ -133,9 +131,17 @@         % make clean; make FLAGS=-editline +     or++       % cabal install --flags="-editline" alms+    - Use readline instead:         % make clean; make FLAGS=readline++     or++       % cabal install --flags="readline" alms     - Try to install editline or readline . . . 
TODO view
@@ -1,4 +1,1 @@  - some termination checking for type operators- - remove direct dependency of Parser on Sigma (! patterns)- - row types for protocols- - type inference
alms.cabal view
@@ -1,5 +1,5 @@ Name:           alms-Version:        0.6.0+Version:        0.6.1 Copyright:      2011, Jesse A. Tov Cabal-Version:  >= 1.8 License:        BSD3
+ ghc6-quasis.sh view
@@ -0,0 +1,8 @@+#!/bin/sh++# Dirty hack to turn GHC 7 quasiquote syntax (e.g. "[ex|") into+# GHC 6 ("[$ex|").  This relies on the fact that all my quasiquoters+# have alphanumeric names of at least two characters (which+# distinguishes them from built-in TH quasiquotes such as "[d|").++exec sed 's/\[\([a-z][a-zA-Z0-9][a-zA-Z0-9]*\)|/[$\1|/g' "$2" > "$3"
src/AST/Ident.hs view
@@ -360,8 +360,8 @@   showsPrec p (LidAnti a) = showsPrec p a  instance Show (Uid i) where-  showsPrec _ (Uid _ s@('?':_)) = showString s-  showsPrec _ (Uid _ s)         = showsIdent s+  showsPrec _ (Uid _ s@(':':_)) = showChar '(' . showString s . showChar ')'+  showsPrec _ (Uid _ s)         = showString s   showsPrec p (UidAnti a)       = showsPrec p a  -- | Show an identifier with parens if necessary
src/Data/Empty.hs view
@@ -3,17 +3,21 @@   Empty, elimEmpty, elimEmptyF, ) where -import Data.Generics (Typeable, Data)+import Data.Generics (Typeable, Data(..), mkDataType) import Unsafe.Coerce (unsafeCoerce)  -- | An uninhabited type data Empty deriving Typeable -deriving instance Data Empty+instance Data Empty where+  gfoldl _ _    = elimEmpty+  gunfold _ _ _ = error "Empty.gunfold"+  toConstr      = elimEmpty+  dataTypeOf _  = mkDataType "Data.Empty" []  -- | Elimination for 'Empty' elimEmpty  ∷ Empty → a-elimEmpty  = const undefined+elimEmpty  = const (error "elimEmpty")  -- | Elimination for 'Empty' under any functor, implemented as a no-op. elimEmptyF ∷ Functor f ⇒ f Empty → f a
src/Makefile view
@@ -21,17 +21,21 @@ HSBOOT_SRC  = AST/*.hs-boot Statics/*.hs-boot  HCOPTS  = -W -Wall -O0 $(EDITING) $(PARSEC) $(HIOPTS)-HIOPTS  = $(NOWARN) $(IMPARR) $(UNICODE) $(LANGUAGE)+HIOPTS  = $(NOWARN) $(UNICODE) $(LANGUAGE) EDITING = -DUSE_READLINE=System.Console.Editline.Readline PARSEC  = -DPARSEC_VERSION=3-# IMPARR  = -DANNOTATION_PRINTING_RULE=Rule0 NOWARN  = -fno-warn-unused-do-bind -fno-warn-orphans UNICODE = -DUNICODE LANGUAGE= `sed 's/^/-X/' extensions.txt` +PROFILING = -prof -auto-all -osuf p_o -rtsopts+ $(EXE) $(EXE)-%: $(SRC) 	$(GHC) -o $@ --make Main.hs $(HCOPTS) +$(EXE)_p: $(EXE)+	$(GHC) -o $@ --make Main.hs $(HCOPTS) $(PROFILING)+ %.hi: $(HS_SRC) $(HSBOOT_SRC) 	$(GHC) --make `echo "$*" | sed 's@\.@/@g'`.hs $(HCOPTS) @@ -39,8 +43,8 @@ 	$(GHCI) \*`echo "$*" | sed 's@\.@/@g'` $(HIOPTS)  $(EXE)-%:     GHC     = ghc-$*-$(EXE)-6.8.%: EDITING = -DUSE_READLINE=System.Console.Readline $(EXE)-6.%:   PARSEC  = -DPARSEC_VERSION=2+$(EXE)-6.%:   HCOPTS += -F -pgmF ../ghc6-quasis.sh  not-compiled: 	@find . -name \*.hs | sed 's@^\./@@' | while read hs; do \@@ -51,6 +55,7 @@ clean: 	$(RM) $(HS_SRC:.hs=.hi) $(HS_SRC:.hs=.o) 	$(RM) $(HSBOOT_SRC:.hs-boot=.hi-boot) $(HSBOOT_SRC:.hs-boot=.o-boot)+	$(RM) $(HS_SRC:.hs=.p_o) $(HSBOOT_SRC:.hs-boot=.p_o-boot) *.prof 	$(RM) $(EXE) $(EXE)-6.*  wc.%:
src/Statics/Rename.hs view
@@ -603,10 +603,10 @@           Nothing -> return ()           Just (u, _) ->             repeated "Data constructor" u "type declaration" []-        cons' <- forM cons $ \(u, mt) -> withLocation mt $ do+        cons' <- forM cons $ \(u, mt) -> do           -- XXX Why trivial?           let u' = renTrivial u-          tell [MdDatacon (getLoc mt) u u']+          tell [MdDatacon (getLoc note) u u']           mt'   <- traverse renameType mt           return (u', mt')         return (tdDat l' tvs' cons')
src/Util/UndoIO.hs view
@@ -22,11 +22,13 @@   = UndoIO {       unUndoIO ∷ IORef [IO ()] → IO a     }-  deriving Functor  instance Applicative UndoIO where   pure    = return   (<*>)   = ap++instance Functor UndoIO where+  fmap    = liftM  instance Monad UndoIO where   return  = UndoIO . const . return