Eating Your Own Dog Food

Similar documents
Applicability of Earn Value Management in Sri Lankan Construction Projects

EUROPEAN COMMISSION DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY

and suitability aspects of food control. CAC and the OIE have Food safety is an issue of increasing concern world wide and

Component Specification NFQ Level 5. Sheep Husbandry 5N Component Details. Sheep Husbandry. Level 5. Credit Value 10

Development and improvement of diagnostics to improve use of antibiotics and alternatives to antibiotics

Dynamic Programming for Linear Time Incremental Parsing

OIE SUB-REGIONAL TRAINING SEMINAR ON VETERINARY LEGISLATION FOR OIE FOCAL POINTS

Effective Vaccine Management Initiative

AMR situation in Europe: Strategy and vision

NATURA CAGE-FREE. Modern aviary system for barn and free range egg production

EVM Practice & Future Trend

BSc Biological Sciences (Animal Behaviour, Welfare and Ethics) degree programme Information Sheet

Drive More Efficient Clinical Action by Streamlining the Interpretation of Test Results

ICAO Public Key Directory (PKD)

Nathan A. Thompson, Ph.D. Adjunct Faculty, University of Cincinnati Vice President, Assessment Systems Corporation

BY CAROLE RICH WRITING AND REPORTING NEWS: A COACHING METHOD (8TH EIGHTH EDITION) [PAPERBACK] FROM CENGAGE LEARNING

10015NAT Graduate Diploma Veterinary Acupuncture

U N D E R S TA N D I N G O U R C A N I N E C O M PA N I O N S ( ADVANCED DIPLOMA ) DISTANCE LEARNING

Chapter 6: Extending Theory

IMPLEMENTATION GUIDELINES FOR ANSI ASC X12 EDI CONVENTIONS MOPAR DISTRIBUTOR PURCHASE ORDER ACKNOWLEDGMENT (855) TRANSACTION SET

King Fahd University of Petroleum & Minerals College of Industrial Management

Recurrent neural network grammars. Slide credits: Chris Dyer, Adhiguna Kuncoro

Veterinary Medicine Master s Degree Day-One Skills

Investing in Human Resources in Veterinary Services

Promoting One Health : the international perspective OIE

STANDARD SUMMARY PROJECT FICHE Project Number 2002/

European Regional Verification Commission for Measles and Rubella Elimination (RVC) TERMS OF REFERENCE. 6 December 2011

Moving toward formalisation COMP62342

ICAO PUBLIC KEY DIRECTORY (PKD)

UNIT Animal Care: An Introduction to Dog Grooming (SCQF level 5)

TREAT Steward. Antimicrobial Stewardship software with personalized decision support

MSc in Veterinary Education

PRODUCT FAMILY DATASHEET LED SUPERSTAR CLASSIC B DIM

Our training program... 4

Lab 6: Energizer Turtles

SYTLE FORMAL : The Online Dog Trainer In-Depth Review

Animal Welfare in the Uruguayan Veterinary Profession Field

Judges Competency Framework Overview

November Final Report. Communications Comparison. With Florida Climate Institute. Written by Nicole Lytwyn PIE2012/13-04B

IMPLEMENTATION GUIDELINES FOR ANSI ASC X12 EDI CONVENTIONS MAJOR DAMAGE TRACKING PAYMENT ORDER/REMITTANCE ADVICE (820) TRANSACTION SET

Overview of the OIE PVS Pathway

Lessons learned from implementing EVM on a large scale IT portfolio at the Department of State

3. records of distribution for proteins and feeds are being kept to facilitate tracing throughout the animal feed and animal production chain.

Industrial Batteries Network Power Marathon M FT AGM Modular Power.

FIF CAT WG Discussion Document Firm-Designated ID Walk-Through Originally Submitted: April 8, 2013, Updated August 5, 2014

lasting compassion and

National Unit Specification: general information. UNIT Animal Care: Breeding (SCQF level 5) CODE F6SS 11 SUMMARY OUTCOMES RECOMMENDED ENTRY

EUROPEAN COMMISSION DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY

EXTERNAL TECHNICAL REPORT

Comparative Analysis of Adders Parallel-Prefix Adder for Their Area, Delay and Power Consumption

Subdomain Entry Vocabulary Modules Evaluation

... I Poge1of4 I... Next

UPDATE ON ANTIMICROBIAL STEWARDSHIP REGULATIONS AND IMPLEMENTATION OF AN AMS PROGRAM

OIE standards on the Quality of Veterinary Services

ICAO PUBLIC KEY DIRECTORY (PKD) Christiane DerMarkar ICAO PKD Officer

Course # Course Name Credits

Implementation of the Public Key Directory

OFFICE OF THE CITY ADMINISTRATIVE OFFICER

Measuring the Effectiveness of ACATS

Introduction ICAO PKD Higher Travel Security. ICAO TRIP Seminar 9 to 11th May 2016

OIE PVS Pathway including Veterinary Education

UNIT Animal Care: Reptile and Amphibian Care (SCQF level 5)

REFERENCE COPY. FILE: ECG Critical EXPLANATION: ANIMALS ON DISTRICT PROPERTY

A-FAVP.1 Foundations of Advanced Veterinary Practice

HOW CAN TRACEABILITY SYSTEMS INFLUENCE MODERN ANIMAL BREEDING AND FARM MANAGEMENT?

international news RECOMMENDATIONS

COURSE DATES FOR 2018

This is an optional Unit within the National Certificate in Agriculture (SCQF level 6) but is also available as a free-standing Unit.

Regulating Animal Welfare in the EU.the EU.

Guideline on quality data requirements for veterinary medicinal products intended for minor use or minor species (MUMS)/limited market

MANAGER S HANDBOOK. A guide for running the 2018 CAT

in food safety Jean-Luc ANGOT CVO France

BVetMed Programme Specification Applies to Cohort Commencing 2018

Reflection paper on promotion of pharmacovigilance reporting

THE CROATIAN NATIONAL INFORMATION SYSTEM FOR REGISTERING THE VACCINATION AND TAGGING OF DOGS, CATS AND DOMESTIC FERRETS

PROCESSES TO FILE CERTIFICATES OF DEVELOPMENT Cathy Szychulda, ARBA Standards Chair

Dog training and behaviour skills: program overview

Robbins Basic Pathology: With VETERINARY CONSULT Access, 8e (Robbins Pathology) PDF

Evolution in Action: Graphing and Statistics

Content Delivery Network Interconnection (CDNI) Request Routing: CDNI Footprint and Capabilities Advertisement using ALTO

OIE Collaborating Centres Reports Activities

Unit title: Livestock Husbandry, Health and Welfare (SCQF level 6)

Lavin's Radiography For Veterinary Technicians PDF

Happy hens. Teacher guidance - 1. Introduction. Project overview

Chapter 6: Extending Theory

SECOND REPORT FROM THE COMMISSION TO THE COUNCIL

ANTIMICROBIAL RESISTANCE and causes of non-prudent use of antibiotics in human medicine in the EU

Tntibiotic resistance is a growing problem and the main cause of this problem is misuse

Implementation and Estimation of Delay, Power and Area for Parallel Prefix Adders

of Conferences of OIE Regional Commissions organised since 1 June 2013 endorsed by the Assembly of the OIE on 29 May 2014

ICAO Public Key Directory (PKD)

Factoring Training Workshop

Dasher Web Service USER/DEVELOPER DOCUMENTATION June 2010 Version 1.1

Objectives. ERTs for the New Beef Industry. Ancient History. The EPD we produce entirely depends on the tools we have to use them.

Grade 5, Prompt for Opinion Writing Common Core Standard W.CCR.1

VIKRANK Customized index

Methodological guide for developing producer price indices for services Joined Task Force OECD-Eurostat

4/17/2013. Antimicrobial Stewardship: pengalaman di Belanda. Henri A. Verbrugh MD PhD. number of emerging infectious diseases events per decade

xrm in Action: Charities Commission Royal New Zealand Foundation of the Blind Selena Moon and Kirsten Bockett-Smith 27 May 2010

Nordic Cattle Genetic Evaluation a tool for practical breeding with red breeds

Transcription:

Eating Your Own Dog Food Andreas Abel 1 1 Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden 25th Agda Implementor s Meeting (AIM XXI) Teknikparken, Chalmers, Gothenburg, Sweden 9 May 2017 Abel (GU) Own Dog Food AIM XXV 1 / 20

Statistics Agda: Inside View 3 main developers (part-time) 1 packaging, integration, and release engineer (part-time) a dozen contributers (sporadically active) a long tail of single-patch submitters 103.000 loc (3.9MB) [2015: 93.000 loc; 2014: 70.000 loc] 2461 issues on the bug tracker (404 open) [2015: 1528 (249); 2014: 1076 (165)] 2007-2010 300 100 bugs/year 2010-2013 600 200 bugs/year 2013-2015 600 300 bugs/year 2015-2017 900 >400 bugs/year Abel (GU) Own Dog Food AIM XXV 2 / 20

Statistics Agda: code by components Component loc ( 17) loc ( 15) loc ( 14) Utility functions 6800 8000 4100 Syntax (parse print scope) 23500 19000 16000 Type checker (eval. cov. pos.) 49000 39000 30000 Termination checker 4900 5800 4600 Interaction (imp. highl. LaTeX) 8600 7400 6600 Agsy 4200 4200 4100 Compiler 5500 8000 5200 total 103000 93000 71000 Abel (GU) Own Dog Food AIM XXV 3 / 20

Statistics Abel (GU) Own Dog Food AIM XXV 4 / 20

Statistics Abel (GU) Own Dog Food AIM XXV 5 / 20

Statistics Abel (GU) Own Dog Food AIM XXV 6 / 20

Statistics Abel (GU) Own Dog Food AIM XXV 7 / 20

Statistics Abel (GU) Own Dog Food AIM XXV 8 / 20

Statistics Abel (GU) Own Dog Food AIM XXV 9 / 20

Looking at our development process Eating Our Own Dog Food We are developing a language for verification. Shouldn t we eat our own dog food? Develop Agda in Agda? Certainly a grand challenge. Abel (GU) Own Dog Food AIM XXV 10 / 20

Looking at our development process Agda in Agda is out of reach, for a while We do not even have rigorous pen or paper proofs for our theory. We do not even have a theory. Most of the theoretical work focuses on the semantics. Semantics of small fragments of the language. Formalization of decidability Π + Set 0 + N: half a year of dedicated Agda grinding (Joakim hman). No advanced technology formalized: unification, pattern matching, termination... Abel (GU) Own Dog Food AIM XXV 11 / 20

Looking at our development process Santa Claus Let s get millions of EUR from the EU! Abel (GU) Own Dog Food AIM XXV 12 / 20

Looking at our development process Can we at least apply some dependent types to implement dependent types? Well-scoped syntax via Haskell GADTs. Could take care of de Bruijn index bugs. How does this scale to pattern matching, unification, with-abstraction? Type-checking monad needs to be indexed by the context length. First try this on a prototype! An advanced master thesis? Abel (GU) Own Dog Food AIM XXV 13 / 20

Looking at our development process Prior to Formal Methods Agda is a programming language, so it should have a SPECIFICATION Write an informal specification! Flesh it out with test cases. We will have plenty of deviations from the specification. We can have testcases that should work but do not yet. We can gradually approach correctness. Abel (GU) Own Dog Food AIM XXV 14 / 20

Looking at our development process Code quality: documentation Module documentation. Algorithm explanation by example. Documentation of our data structures. Pre- and postconditions of functions. 100% haddock coverage. Can only be reached by code reviewing requesting documentation. Abel (GU) Own Dog Food AIM XXV 15 / 20

Looking at our development process Code quality: structure Break long procedures into several components! Write out the properties of the components. We have legacy spaghetti code with impenetrable control flow: Interaction.Imports Genesis: patches-over-patches Counterculture: refactorings, data structure evolution! We have monolithic state (TCState): pre-oo imperative programming. Gegenentwurf: modular monadic programming. Abel (GU) Own Dog Food AIM XXV 16 / 20

What happened to the 2015 wish list? Long on the Wish List (2015) User manual Packaging Type classes (WIP) Universe cumulativity Reflection/tactics (WIP) Efficient type-checking Usable compiler (WIP) Abel (GU) Own Dog Food AIM XXV 17 / 20

What happened to the 2015 wish list? Core Language / Internal Syntax (2015) Sharing Independent checking Termination certificates Shared optimizations/transformations used by compiler backends Abel (GU) Own Dog Food AIM XXV 18 / 20

What happened to the 2015 wish list? Research topics (2015) Equality (HoTT, OTT) Parametricity/colors Sized dependent types Proof/instance search and unification Foundation for hidden/named arguments Telescopes/Σ-types at framework level Printing Abel (GU) Own Dog Food AIM XXV 19 / 20

What happened to the 2015 wish list? Action items for us Install a coding code of conduct (à la style guide). Install mandatory code reviews. Framework for test-backed specification. Stabilize core features of Agda. Abel (GU) Own Dog Food AIM XXV 20 / 20