on 496cf41 help sign in
all commits
449e292Tweak totality checkerEdwin Brady 8d090c0A couple of small improvements to termination checking * inlining to help out * %assert_total doesn't allow inlining so as not to break totality for functions which rely on the asserted function * bug fix for mutual recursion - build size graphs before doing any totality checkingEdwin Brady 267f044Improve case compilation by checking most distinct argument firstEdwin Brady bbbe563Merge pull request #114 from raichoo/wordEdwin Brady f6451efword 8/16 primitive typesraichoo 06283b6Improve evaluation of projection By caching result of evaluation, so that it's already evaluated when next projection happens.Edwin Brady 20627e4Better strategy for building case trees at compile timeEdwin Brady 7af45b4Fix error in case tree optimisation (hence fix issue #70)Edwin Brady 2856967Normalise LHS before compilation ...otherwise in some situations the forcing optimisation may lead to uncompilable codeEdwin Brady 64fc043Fix overenthuiastic unused argument removal problem (Wasn't checking case analysis where the scrutinee was the result of a projection)Edwin Brady 2616a69Fix call graph generationEdwin Brady 449bb27Fix allocation of big integersEdwin Brady 29c67e9Pattern matching on strings, big integers and charactersEdwin Brady a52bb30Separate compile time and run time inlinings Run time can be more aggressive - compile time needs to be careful since over aggressive inline can make the termination check harder, especially for type class instances.Edwin Brady 9e58e28Type safe message passing concurrencyEdwin Brady 9affb75Totality checker improvements Now does a better job of checking type class instances for totality, by inlining dictionaries where possible. Added %default total declarations to some libraries where possibleEdwin Brady ebb75fbCalculate size change graphsEdwin Brady fb2b17dAdd collapsing optimisation and more aggressive erasureEdwin Brady 5a6299bUnification fix Specifically to stop it filling in things which are given by the programmer (caused by a bug replacing nullary constructors with terms!)Edwin Brady 8063cfdAdded --dumpcases <file> option for dumping case trees on compilingEdwin Brady 76442a7Better rendering of case trees in debug infoEdwin Brady 72d4d96Starting unused argument analysisEdwin Brady 6d7c9bcCall graph changeEdwin Brady 0f957f6Add Proj operator to runtime version of TT Allows extracting arguments without checking constructor first which will make erasing unused values easier shortlyEdwin Brady 0679225Tweak match compilation (right to left, rather than l to r) Now matches on values before indices, to give a chance of erasing indices.Edwin Brady bb76c6cMore aggressive simplification; fix case generation bugEdwin Brady 7c75851Test file for new VM, hook up parserEdwin Brady 19495edCheck patterns are inaccessibleEdwin Brady 489ea6fPass pattern variable names to match compilerEdwin Brady 09f2abdFix let overloading bug with do blocksEdwin Brady b1e95cbFix coverage checkerEdwin Brady 6dcf4c3Build a call graph and only compile things which are usedEdwin Brady c08dff7Fix circular dependenciesEdwin Brady 6807cf4Unreachable case warningEdwin Brady 1112fe4Coverage checker Not quite complete - a bug (which I know how to fix) makes some things appear not covering even though they are. Results currently used only for pruning case trees in compiled code. There is a small performance penalty - coverage checking can be disable with --nocoverageEdwin Brady 10ea548Inline type class applications where possible to reduce overheadEdwin Brady 0bc69fbAdded prelude.strings, made believe_me primitiveEdwin Brady dccbc43Generate bytecode so that files don't need to be rechecked every time they're loadedEdwin Brady bbaa193Better representation of namesEdwin Brady 4931c20Added Integer (but an Epic bug prevents them compiling properly)Edwin Brady ffc64e3Add mechanism for simplification and function optionsEdwin Brady 6757c47Added case analysis on types, but only when enabled with --typecase (since it breaks parametricity)Edwin Brady bf368abFirst attempt at with ruleEdwin Brady 3b115b2Fixed pattern matching and delaborator bugEdwin Brady a805f47Added constants and some primitive operationsEdwin Brady c637850Pattern matcher, evaluation of 2+2 now worksEdwin Brady