Added Idris and updated fetchdarcs.
svn path=/nixpkgs/trunk/; revision=15595
This commit is contained in:
		
							parent
							
								
									1ffa8f0c17
								
							
						
					
					
						commit
						677f91a6d1
					
				@ -5,11 +5,14 @@ tagflags=""
 | 
			
		||||
if test -n "$tag"; then
 | 
			
		||||
    tagtext="(tag $tag) "
 | 
			
		||||
    tagflags="--tag=$tag"
 | 
			
		||||
elif test -n "$context"; then
 | 
			
		||||
    tagtext="(context) "
 | 
			
		||||
    tagflags="--context=$context"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
header "getting $url $partial ${tagtext} into $out"
 | 
			
		||||
 | 
			
		||||
darcs get --no-pristine-tree $partial $tagflags "$url" "$out"
 | 
			
		||||
darcs get --lazy --ephemeral $tagflags "$url" "$out"
 | 
			
		||||
# remove metadata, because it can change
 | 
			
		||||
rm -rf "$out/_darcs"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,17 +1,13 @@
 | 
			
		||||
{stdenv, darcs, nix}: {url, tag ? null, md5, partial ? true}:
 | 
			
		||||
{stdenv, darcs, nix}: {url, tag ? null, context ? null, md5 ? "", sha256 ? ""}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation {
 | 
			
		||||
  name = "fetchdarcs";
 | 
			
		||||
  builder = ./builder.sh;
 | 
			
		||||
  buildInputs = [darcs nix];
 | 
			
		||||
  partial = if partial then "--partial" else "";
 | 
			
		||||
  buildInputs = [darcs];
 | 
			
		||||
 | 
			
		||||
  # Nix <= 0.7 compatibility.
 | 
			
		||||
  id = md5;
 | 
			
		||||
 | 
			
		||||
  outputHashAlgo = "md5";
 | 
			
		||||
  outputHashAlgo = if sha256 == "" then "md5" else "sha256";
 | 
			
		||||
  outputHashMode = "recursive";
 | 
			
		||||
  outputHash = md5;
 | 
			
		||||
  outputHash = if sha256 == "" then md5 else sha256;
 | 
			
		||||
  
 | 
			
		||||
  inherit url tag;
 | 
			
		||||
  inherit url tag context;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								pkgs/development/compilers/idris/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								pkgs/development/compilers/idris/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
{fetchdarcs, cabal, mtl, parsec, readline, ivor, happy}:
 | 
			
		||||
 | 
			
		||||
cabal.mkDerivation (self : {
 | 
			
		||||
  pname = "idris";
 | 
			
		||||
  name = self.fname;
 | 
			
		||||
  version = "0.1.2";
 | 
			
		||||
  src = fetchdarcs {
 | 
			
		||||
    url = http://www-fp.dcs.st-and.ac.uk/~eb/darcs/Idris;
 | 
			
		||||
    sha256 = "de50ed4bedacee36d9942bf4db90deca3915cf6c106aa834d11e83972b2b639a";
 | 
			
		||||
    context = ./idris.context;
 | 
			
		||||
  };
 | 
			
		||||
  propagatedBuildInputs = [mtl parsec readline ivor];
 | 
			
		||||
  extraBuildInputs = [happy];
 | 
			
		||||
  preConfigure = ''
 | 
			
		||||
    echo "module Idris.Prefix where prefix = \"$out\"" > Idris/Prefix.hs
 | 
			
		||||
  '';
 | 
			
		||||
  postInstall = ''
 | 
			
		||||
    ensureDir $out/lib/idris
 | 
			
		||||
    install lib/*.idr lib/*.e $out/lib/idris
 | 
			
		||||
  '';
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "An experimental language with full dependent types";
 | 
			
		||||
  };
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										586
									
								
								pkgs/development/compilers/idris/idris.context
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										586
									
								
								pkgs/development/compilers/idris/idris.context
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,586 @@
 | 
			
		||||
 | 
			
		||||
Context:
 | 
			
		||||
 | 
			
		||||
[Missed SCTrans source!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090511120315] 
 | 
			
		||||
 | 
			
		||||
[Put RunIO in a more sensible place
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090426144418] 
 | 
			
		||||
 | 
			
		||||
[Update cabal details
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090426144101] 
 | 
			
		||||
 | 
			
		||||
[Convert things which look like Nats to Nats for optimisation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090423220551] 
 | 
			
		||||
 | 
			
		||||
[Basic Nat optimisation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090423185609] 
 | 
			
		||||
 | 
			
		||||
[need to check if arguments are still needed to discriminate on collapsing
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309174234] 
 | 
			
		||||
 | 
			
		||||
[Using knowledge of collapsing to help forcing
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309153744] 
 | 
			
		||||
 | 
			
		||||
[Make transforms part of state, and display of optimised terms
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309145419] 
 | 
			
		||||
 | 
			
		||||
[Prettier time formatting
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309131334] 
 | 
			
		||||
 | 
			
		||||
[Don't just crash if the command is invalid...
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309125424] 
 | 
			
		||||
 | 
			
		||||
[Added global options
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309124541
 | 
			
		||||
 :o sets, :o f- or :o f+ to turn forcing/collapsing off/on
 | 
			
		||||
 :o r- or :o r+ to turn display of compile/run times off/on
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Added collapsing optimisation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309112238] 
 | 
			
		||||
 | 
			
		||||
[Added unused argument elimination
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090309004741
 | 
			
		||||
 Can fit within the optimisation framework, but you need to remember
 | 
			
		||||
 the transforms so far at each definition for maximum effect.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[(Failed) effort at argument erasure
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090308222948
 | 
			
		||||
 Trying to get it into the same framework as constructor transformations,
 | 
			
		||||
 but it isn't going to happen that easily.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Added forcing optimisation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090308164110] 
 | 
			
		||||
 | 
			
		||||
[Decide tactic works out its arguments
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090305165743] 
 | 
			
		||||
 | 
			
		||||
[Allow redefining of do notation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090228164646] 
 | 
			
		||||
 | 
			
		||||
[lookupIdx fix
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090227231257] 
 | 
			
		||||
 | 
			
		||||
[Added 'using' syntax
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090226003439
 | 
			
		||||
 For blocks where lots of things use the same implicit arguments, saving
 | 
			
		||||
 lots of typing and clutter.
 | 
			
		||||
 (also allowed forward declaration of datatypes)
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Fix conflict
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090107121727] 
 | 
			
		||||
 | 
			
		||||
[Laziness annotations
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20090107121328] 
 | 
			
		||||
 | 
			
		||||
[Added decide tactic
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081220221809] 
 | 
			
		||||
 | 
			
		||||
[Add 'collapsible' flag
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081219180742] 
 | 
			
		||||
 | 
			
		||||
[Add TODO
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081219180726] 
 | 
			
		||||
 | 
			
		||||
[Some compiler fiddling
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081219155920] 
 | 
			
		||||
 | 
			
		||||
[Keep track of names which are still to be proved
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081219143302] 
 | 
			
		||||
 | 
			
		||||
[File operations
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081218233527] 
 | 
			
		||||
 | 
			
		||||
[Can allow the system to make up names for metavariables
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081218233428] 
 | 
			
		||||
 | 
			
		||||
[Deal with c includes and external libraries
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081126150921] 
 | 
			
		||||
 | 
			
		||||
[Fix foreign functions for IO
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081102153832] 
 | 
			
		||||
 | 
			
		||||
[Added Ptr primitive
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081102134232] 
 | 
			
		||||
 | 
			
		||||
[Add unsafePerformIO
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081019171546
 | 
			
		||||
 Mostly meant for pure foreign functions, but of course you're free to abuse
 | 
			
		||||
 it as you like...
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Add flags on functions to denote special behaviour
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20081019160020
 | 
			
		||||
 Specifically, so far:
 | 
			
		||||
 * %nocg  Never generate code when compling
 | 
			
		||||
 * %eval  Evaluate completely before compiling
 | 
			
		||||
 
 | 
			
		||||
 This allows some 'meta-programs' to be written, which are fully evaluated
 | 
			
		||||
 before compiling. We use this for defining foreign functions easily.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Record paper changes!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080916170851] 
 | 
			
		||||
 | 
			
		||||
[Added 'use' tactic
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080916170742
 | 
			
		||||
 Like 'believe' but instead of just believing the value, adds subgoals for
 | 
			
		||||
 each required equality proof.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[More of paper
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080901161738] 
 | 
			
		||||
 | 
			
		||||
[Added paper macros
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080901094433] 
 | 
			
		||||
 | 
			
		||||
[Starting on paper
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080829091345] 
 | 
			
		||||
 | 
			
		||||
[Compiling 'Foreign' constructor (but only when inline)
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080826123458] 
 | 
			
		||||
 | 
			
		||||
[Generate Idris functions from foreign function descriptions
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080825164523] 
 | 
			
		||||
 | 
			
		||||
[Some work towards constructor optimisations
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080825094709] 
 | 
			
		||||
 | 
			
		||||
[Basic foreign function framework
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080825094631] 
 | 
			
		||||
 | 
			
		||||
[Added test transformation on Vects
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080731155217] 
 | 
			
		||||
 | 
			
		||||
[Transformation application
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080730125618] 
 | 
			
		||||
 | 
			
		||||
['noElim' flag to allow big data types not to need elimination rules
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080729125140] 
 | 
			
		||||
 | 
			
		||||
[Added __toInt and __toString
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080710151313
 | 
			
		||||
 Hacky for now, until we work out a nice way of doing coercions between
 | 
			
		||||
 primitives. But it makes some programs, like those which ask for an int
 | 
			
		||||
 as input, possible.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[If an operator returns a boolean, the compiler had better make code to build a boolean!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080710145313] 
 | 
			
		||||
 | 
			
		||||
[Deal with weird names that Ivor generates in the compiler
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080709112032] 
 | 
			
		||||
 | 
			
		||||
[Some Nat theorems
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080709014158] 
 | 
			
		||||
 | 
			
		||||
[Generalise tactic
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080709014121] 
 | 
			
		||||
 | 
			
		||||
[Need to give all the definitions to addIvor
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708203624] 
 | 
			
		||||
 | 
			
		||||
[Don't crash when there's an error in input!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708182610] 
 | 
			
		||||
 | 
			
		||||
[Only allow 'believe' to rewrite values
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708165140
 | 
			
		||||
 This way at least the types have to be right before '?=' defined
 | 
			
		||||
 programs will run.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Added 'believe' tactic
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708160736
 | 
			
		||||
 For allowing the testing of programs before a complete proof term
 | 
			
		||||
 exists. Obviously programs built this way are not trustworthy! They make
 | 
			
		||||
 use of a "Suspend_Disbelief" function which just invents a rewrite rule
 | 
			
		||||
 that works, but which doesn't have a proof.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Added '?=' syntax
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708140505
 | 
			
		||||
 If you have a pattern clause, and don't know the definite type of the
 | 
			
		||||
 right hand side, use;
 | 
			
		||||
 foo patterns ?= def; [theoremName]
 | 
			
		||||
 
 | 
			
		||||
 This will add a theorem called theoremName which fixes up the type,
 | 
			
		||||
 and you can prove it later, via :p or with the 'proof' syntax. Useful
 | 
			
		||||
 if you want to hide details of the proof of a necessary rewriting.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Catch errors in proofs, and allow abandoning
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708123202] 
 | 
			
		||||
 | 
			
		||||
[Identify parameters of data types to make elimination rule properly
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080708105930] 
 | 
			
		||||
 | 
			
		||||
[Reading of proof scripts
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080707010718] 
 | 
			
		||||
 | 
			
		||||
[Add Undo, require % before tactics, and output script when done
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080707004642] 
 | 
			
		||||
 | 
			
		||||
[Rudimentary theorem prover now working
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080706235523] 
 | 
			
		||||
 | 
			
		||||
[Parsing tactics and proofs
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080706222536] 
 | 
			
		||||
 | 
			
		||||
[Adding some tactics
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080706211202] 
 | 
			
		||||
 | 
			
		||||
[Added :e command and call to epic
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080702115125] 
 | 
			
		||||
 | 
			
		||||
[forking needs the argument to be lazily evaluated
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080630141845] 
 | 
			
		||||
 | 
			
		||||
[Added threading to compiler
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080630130045] 
 | 
			
		||||
 | 
			
		||||
[Compiling IORefs
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080630123521] 
 | 
			
		||||
 | 
			
		||||
[Add Prelude.e, and prepend it to epic output
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080630113450] 
 | 
			
		||||
 | 
			
		||||
[Added Prover.lhs (not that it does much yet)
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080623231341] 
 | 
			
		||||
 | 
			
		||||
[Fix constructor expansion
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080623111226] 
 | 
			
		||||
 | 
			
		||||
[Got the basic compilation working
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080622233141] 
 | 
			
		||||
 | 
			
		||||
[Added proof token to Lexer
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080516140747
 | 
			
		||||
 (not doing anything yet, it needs a separate parser)
 | 
			
		||||
 Also fix minor lexing error, and added ':i' command to drop into Ivor
 | 
			
		||||
 for debugging purposes.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Added 'normalise' command
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080523140332
 | 
			
		||||
 Useful if you want to normalise an IO computation without running it.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Small implicit argument change
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080513231721
 | 
			
		||||
 {a,b,c} now allowed (i.e no need for type label as in {a,b,c:_}
 | 
			
		||||
 Also, implicit arguments can now, syntactically, only appear at the
 | 
			
		||||
 left of types of top level declarations (since that is the only place they
 | 
			
		||||
 make sense with our simple way of handling such arguments).
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
['!' to stop implicit arguments being added to a name
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080513215523] 
 | 
			
		||||
 | 
			
		||||
[Outputting Epic code
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080511173955
 | 
			
		||||
 Still some things to sort out before this runs though
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Removing IO boiler plate for compilation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080510170038] 
 | 
			
		||||
 | 
			
		||||
[Lambda lifter
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080509161049] 
 | 
			
		||||
 | 
			
		||||
[Oops, broke the build *again*
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080508220834] 
 | 
			
		||||
 | 
			
		||||
[Data type for result of lambda lifting
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080508214635] 
 | 
			
		||||
 | 
			
		||||
[Compiler part 1 (pattern matching)
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080508200113] 
 | 
			
		||||
 | 
			
		||||
[partition
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080508132348] 
 | 
			
		||||
 | 
			
		||||
[Let's try not to apply patches which break the build...
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080508111341] 
 | 
			
		||||
 | 
			
		||||
[Patterns representation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080508110025] 
 | 
			
		||||
 | 
			
		||||
[Added append to library
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080429111614] 
 | 
			
		||||
 | 
			
		||||
[Begin planning compiler
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080414123534] 
 | 
			
		||||
 | 
			
		||||
[brief note
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080414103207] 
 | 
			
		||||
 | 
			
		||||
[Minor LaTeX improvement
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080330151806
 | 
			
		||||
 Output placeholders correctly. Can you tell I'm writing a paper ;).
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Even more LaTeX fixes
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080327115445] 
 | 
			
		||||
 | 
			
		||||
[Fix some LaTeXing
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080327113804] 
 | 
			
		||||
 | 
			
		||||
[Some latex tidying
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080325114709] 
 | 
			
		||||
 | 
			
		||||
[Latex of do notating
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080325110051] 
 | 
			
		||||
 | 
			
		||||
[Add %latex directive to parser
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080325105552] 
 | 
			
		||||
 | 
			
		||||
[Allow giving latex commands for particular names in :l
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080325103351] 
 | 
			
		||||
 | 
			
		||||
[Basic LaTeX generation working
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080324185632] 
 | 
			
		||||
 | 
			
		||||
[Started LaTeX generation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080324170817] 
 | 
			
		||||
 | 
			
		||||
[Implement :t in REPL
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080324143135] 
 | 
			
		||||
 | 
			
		||||
[Use readline for REPL, add :commands
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080324141759] 
 | 
			
		||||
 | 
			
		||||
[Oops, didn't mean to record the trace
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080322115632] 
 | 
			
		||||
 | 
			
		||||
[Allow types on bindings in do notation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080322114909] 
 | 
			
		||||
 | 
			
		||||
[Fix bug: add placeholders inside infix ops
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080320150127] 
 | 
			
		||||
 | 
			
		||||
[Pretty print refl
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080320134148] 
 | 
			
		||||
 | 
			
		||||
[Bind multiple names in one go in type declarations
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080320132941] 
 | 
			
		||||
 | 
			
		||||
[Locks are semaphores
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080319161532
 | 
			
		||||
 So allow them to be initialised with the number of processes allowed to
 | 
			
		||||
 hold onto then,
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Missed a case in constant show
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080318175442] 
 | 
			
		||||
 | 
			
		||||
[Add Maybe and Either to prelude
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080318224740] 
 | 
			
		||||
 | 
			
		||||
[Use 'fastCheck' since we already know our IO programs work
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080318161100] 
 | 
			
		||||
 | 
			
		||||
[Pretty printing and parsing tweaks
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080318161027] 
 | 
			
		||||
 | 
			
		||||
[No point in generating elimination rules since we don't use them
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080317162738
 | 
			
		||||
 Perhaps later, if linking to a theorem prover, it will be useful, but
 | 
			
		||||
 it can be done on demand.
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Dump environment for metavars in the right order
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080315230225] 
 | 
			
		||||
 | 
			
		||||
[Nicer display of metavariables
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080314174637] 
 | 
			
		||||
 | 
			
		||||
[Added a pretty ugly pretty-printer for terms
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080314154034] 
 | 
			
		||||
 | 
			
		||||
[Added metavariable syntax
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080314132802] 
 | 
			
		||||
 | 
			
		||||
[Back in sync with Ivor (addPatternDef type changed)
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080314011920] 
 | 
			
		||||
 | 
			
		||||
[Add modules to .cabal for executable
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080313134204] 
 | 
			
		||||
 | 
			
		||||
[imports in RunIO
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080312174755] 
 | 
			
		||||
 | 
			
		||||
[minor cabal format
 | 
			
		||||
gwern0@gmail.com**20080312041116] 
 | 
			
		||||
 | 
			
		||||
[improve cabal metadata for hackage, split into lib/main
 | 
			
		||||
gwern0@gmail.com**20080312041034] 
 | 
			
		||||
 | 
			
		||||
[fix sdist
 | 
			
		||||
gwern0@gmail.com**20080312040218] 
 | 
			
		||||
 | 
			
		||||
[+Extensions
 | 
			
		||||
gwern0@gmail.com**20080312035953] 
 | 
			
		||||
 | 
			
		||||
[Context.lhs -> Context.hs
 | 
			
		||||
gwern0@gmail.com**20080312035926
 | 
			
		||||
 Literate files are just wasteful if they aren't literate
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[dehaskell98
 | 
			
		||||
gwern0@gmail.com**20080312035905] 
 | 
			
		||||
 | 
			
		||||
[Update ioref example
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080312125024] 
 | 
			
		||||
 | 
			
		||||
[Added IORefs
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080312123834] 
 | 
			
		||||
 | 
			
		||||
[Added some concurrency primitives
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080311205546
 | 
			
		||||
 fork, newLock, lock, unlock
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[Add simple stateful DSL
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080311151020] 
 | 
			
		||||
 | 
			
		||||
[Add placeholders in do expressions too!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080311150824] 
 | 
			
		||||
 | 
			
		||||
[Be more implicit!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310135937] 
 | 
			
		||||
 | 
			
		||||
[Better if testVect has ints
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310133325] 
 | 
			
		||||
 | 
			
		||||
[syntax tinker in partition.idr
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310132921] 
 | 
			
		||||
 | 
			
		||||
[Syntax for let bindings
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310025357] 
 | 
			
		||||
 | 
			
		||||
[if...then...else syntax
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310024516] 
 | 
			
		||||
 | 
			
		||||
[Member predicate
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310013200] 
 | 
			
		||||
 | 
			
		||||
[Syntax for _ patterns
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310012608] 
 | 
			
		||||
 | 
			
		||||
[Rename List
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310002023] 
 | 
			
		||||
 | 
			
		||||
[builtins needs bool
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080310001809] 
 | 
			
		||||
 | 
			
		||||
[Removed samples which should be in lib
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080309224149] 
 | 
			
		||||
 | 
			
		||||
[Added io example
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080309223957] 
 | 
			
		||||
 | 
			
		||||
[More keeping in sync with Ivor
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080309222931] 
 | 
			
		||||
 | 
			
		||||
[Take advantage of better ivor inference
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080309213603] 
 | 
			
		||||
 | 
			
		||||
[Added vect lib
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080308185405] 
 | 
			
		||||
 | 
			
		||||
[Added List to library
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080308185119] 
 | 
			
		||||
 | 
			
		||||
[Lambdas can take multiple arguments
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080308185050] 
 | 
			
		||||
 | 
			
		||||
[Added integer comparison operators
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080308134245] 
 | 
			
		||||
 | 
			
		||||
[Add polymorphic boolean equality
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080308133304] 
 | 
			
		||||
 | 
			
		||||
[Added library paths and a simple prelude
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080308132011] 
 | 
			
		||||
 | 
			
		||||
[Some primitive operators, and '=' for JM equality
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080307234257] 
 | 
			
		||||
 | 
			
		||||
[Use WHNF for evaluation now Ivor has it
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080307195902] 
 | 
			
		||||
 | 
			
		||||
[Added builtins
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080307173517] 
 | 
			
		||||
 | 
			
		||||
[add RunIO.hs
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080306114827] 
 | 
			
		||||
 | 
			
		||||
[Added more samples (IO not quite working yet due to Ivor bug though)
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080305170333] 
 | 
			
		||||
 | 
			
		||||
[Add do notation
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080305170312] 
 | 
			
		||||
 | 
			
		||||
['include' files
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080305112534] 
 | 
			
		||||
 | 
			
		||||
[Latest Ivor allows more implicitness
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080305104707] 
 | 
			
		||||
 | 
			
		||||
[Enough annotations to make interp work
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080305001951] 
 | 
			
		||||
 | 
			
		||||
[Allow forward declarations for functions, add quicksort example
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080305000656] 
 | 
			
		||||
 | 
			
		||||
[Added 'partition' example
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080304224512] 
 | 
			
		||||
 | 
			
		||||
[Easier to put implicit arguments in pattern clauses
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080304224425] 
 | 
			
		||||
 | 
			
		||||
[John Major equality syntax
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080304215146] 
 | 
			
		||||
 | 
			
		||||
[Added interpreter example, fixed simple sample
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080303164114] 
 | 
			
		||||
 | 
			
		||||
[Changed some syntax
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080303163946
 | 
			
		||||
 - Implicit arguments can now be named when applied, so that the parser
 | 
			
		||||
 knows which argument you mean
 | 
			
		||||
 - No need for {} around definitions
 | 
			
		||||
 - Type of types is #
 | 
			
		||||
 
 | 
			
		||||
] 
 | 
			
		||||
 | 
			
		||||
[make sure constructur arguments get new names generated
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080229003215] 
 | 
			
		||||
 | 
			
		||||
[Added samples directory
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080228232920] 
 | 
			
		||||
 | 
			
		||||
[First version which runs code!
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080228232820] 
 | 
			
		||||
 | 
			
		||||
[Some simple examples
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080228175453] 
 | 
			
		||||
 | 
			
		||||
[Now building terms and datatypes for Ivor with implicit args added
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080228161136] 
 | 
			
		||||
 | 
			
		||||
[More work on parser; constants, lambdas, new syntax tree
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080226111951] 
 | 
			
		||||
 | 
			
		||||
[Parser for datatypes and basic function definitions
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20080108171829] 
 | 
			
		||||
 | 
			
		||||
[Started parser
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20071214181416] 
 | 
			
		||||
 | 
			
		||||
[First chunk of code
 | 
			
		||||
eb@cs.st-andrews.ac.uk**20071212114523] 
 | 
			
		||||
							
								
								
									
										12
									
								
								pkgs/development/libraries/haskell/ivor/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								pkgs/development/libraries/haskell/ivor/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
{cabal, mtl, parsec}:
 | 
			
		||||
 | 
			
		||||
cabal.mkDerivation (self : {
 | 
			
		||||
  pname = "ivor";
 | 
			
		||||
  version = "0.1.8";
 | 
			
		||||
  sha256 = "e51ad07c78ea0cad6fce9253012258dbf7c740198792aa4a446e1f0269a9186d";
 | 
			
		||||
  propagatedBuildInputs = [mtl parsec];
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "Theorem proving library based on dependent type theory";
 | 
			
		||||
  };
 | 
			
		||||
})  
 | 
			
		||||
 | 
			
		||||
@ -153,6 +153,15 @@ rec {
 | 
			
		||||
    inherit cabal;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  idris = import ../development/compilers/idris {
 | 
			
		||||
    inherit cabal mtl parsec readline ivor happy;
 | 
			
		||||
    inherit (pkgs) fetchdarcs;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ivor = import ../development/libraries/haskell/ivor {
 | 
			
		||||
    inherit cabal mtl parsec;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  json = import ../development/libraries/haskell/json {
 | 
			
		||||
    inherit cabal mtl;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user