on d66da21 help sign in
all commits
5afcedbFixed malformed haddock commentsJan de Muijnck-Hughes b3bf956When specialising, reduce more namesEdwin Brady 205ad70Tweak reduction rules for private/abstract namesEdwin Brady 543cd7eStrictness improvementsEdwin Brady a269492Disambiguate when printing totality information.David Christiansen 8531634Set up more partial evaluation machineryEdwin Brady b6627beReinstate inlining of type class dictionariesEdwin Brady 9836a07Inlining - Evaluator now supports run-time termsEdwin Brady 521dc75Prune case trees properly on optimised NatEdwin Brady 6b3457aName resolution should respect %hideEdwin Brady 3c32b65Whitespace cleanup.George Leontiev 66f4f9eExtend split/splitOnLine to cope with 'where/with'Edwin Brady 57c8657Added column name to sourceAhmad Salim Al-Sibahi 93992c3Compile Nat as Int, (and plus/mult/fromInteger)Edwin Brady df41e3dGive a bit more context for error messagesEdwin Brady af4fda7%flag directiveEdwin Brady 81425d2Add skeleton of inlinerEdwin Brady 1931074Prevent io_bind reducing at REPLEdwin Brady 3fcbff5A little reorganisation of clauses elaboration To be more clear which case tree is whichEdwin Brady f1c3c75Merge branch 'color-repl' of https://github.com/david-christiansen/Idris-dev into david-christiansen-color-replEdwin Brady a063bfaSome refactoring in CaseOp Separate case trees for totality checking, compile time and run time and lift into their own data structure, so that it's clear which one to use when.Edwin Brady b762f14Basic colourisation in REPLDavid Christiansen c182c92Allow simple function types to be reflectedEdwin Brady 6d7dc4eSimplify evaluator It tries to support too much, but since it's part of the kernel it should do as little clever stuff as possible. Now just normalises, simplifies or specialises, the latter two simply meaning that certain names are blocked from being reduced.Edwin Brady dd12ac4Remove unused code in Evaluator plus some setting up for more control in inlining - VApp now takes two copies of its argument: one fully evaluated, one with names frozen. Plan is that dictionaries (in particular) will only unfold if doing so leads to further evaluation, so we need to keep both forms.Edwin Brady d43a279Change TCGen flag to Dictionary, update evaluator accordinglyEdwin Brady fd9bd68Add '%reflection' option for functions A reflection function can evaluate at compile-time only, and pattern matches on *syntax* rather than on constructor forms. Also add 'prim__syntactic_eq' for a compile-time syntactic equality check.Edwin Brady adf646eChange default specialisation behaviour to not unfold namesEdwin Brady ad66486Add %specialise annotation for functions (Part 1 of partial evaluation) %specialise [n1 t1, n2 t2 ...] as an annotation before a function type means that the r.h.s. of all the clauses will be evaluated, but with the name n1 reduced at most t1 times, etc. The t1 part is optional, and means unlimited (which is the default for all names at the minute anyway)Edwin Brady 773e454Make ChType a member of IntTy ITChar.Jan Bessai 0aa3fd6Beginnings of integer SIMD support (no backend yet)Benjamin Saunders dad12e6Don't inline for compilation (because the evaluator makes bad choices) Instead, inline the compile-time representation to help the totality checker only. This can cause subexpressions to be duplicated, so should be avoided at run-time. For the run-time representation, inline later at IRTS level.Edwin Brady ddaf6b6Fix Haddock parser errorDavid Christiansen 633f698Take care to avoid duplicating redexes when reducing lambdas Binders in values are annotated with a 'reducible' flag, which is set to False if simplifying and the argument appears more than once.Edwin Brady e6d48b6Take care with 'let' in specialiser - avoid duplicating a redex Let now only reduces if the binding appears at most once in scope during specialisationEdwin Brady d9435c6New size change graph builder Looks at patterns, rather than case tree, and therefore finds it easier to spot structurally smaller arguments which are more complex.Edwin Brady 99a8a66Check that explicitly given implicit args unify with inferred versions Also exposed a unification bug which unified things which shouldn't be: f x = f y does not imply x = y unless f is injective, and this was not properly checked.Edwin Brady 00ae7feMerge branch 'master' into providersDavid Christiansen a807a34Remove the unused arg from lookup functionsDavid Christiansen 490c22aBasically working executor/interpreterDavid Christiansen e3a4097Fix eta problemEdwin Brady 21f2ce3evTree does not handle ImpossibleCaseraichoo 22c355aDocumentation comment additionsDavid Christiansen 306a451Reformat existing comments for Haddock and add Haddock commentsDavid Christiansen 4c5b1bdMerge branch 'master' into bitstringBenjamin Saunders e5706d3HNF in unification to speed things upEdwin Brady 41f3d97Merge branch 'master' of git://github.com/edwinb/Idris-dev into bitstringBenjamin Saunders 70aa358Removed the stack depth limit from Core.Evaluate.Luke Palmer 2acbdf6Small conversion changeEdwin Brady 7a66adcMake unification faster by computing HNF rather than normalisingEdwin Brady