History log of /seL4-l4v-master/l4v/isabelle/src/Tools/Code/code_haskell.ML
Revision Date Author Comments
# e10c04e8 19-Jan-2019 haftmann <none@none>

self-contained code modules for Haskell

--HG--
extra : rebase_source : a3b1eacb5c9dd9b269251b2329a9eed2ec8eb2da


# 28b11dd3 09-Jan-2019 haftmann <none@none>

explicit model concerning files of generated code


# a4bab154 04-Jan-2019 wenzelm <none@none>

isabelle update -u control_cartouches;


# 5832c207 30-Oct-2018 wenzelm <none@none>

tuned -- prefer GHC.print_codepoint;


# 220aa276 30-Oct-2018 wenzelm <none@none>

clarified signature;


# 3a4a7136 24-Apr-2018 haftmann <none@none>

proper datatype for 8-bit characters


# 515bdf02 14-Dec-2017 haftmann <none@none>

dedicated case option for code generation to Scala

--HG--
extra : rebase_source : f4d2da47982250c33b66f81d009da3f3d0b48bbd


# 878b6f4b 13-Apr-2017 haftmann <none@none>

for generated Haskell code, never use let-binds with pattern matching: irrefutable patterns destroy partial correctness

--HG--
extra : rebase_source : e408c1077f16249a98b1375329604e6e90339e0c


# 4aa541f4 06-Apr-2015 wenzelm <none@none>

@{command_spec} is superseded by @{command_keyword};


# 0285f5b6 09-Jan-2015 haftmann <none@none>

modernized and more uniform style


# 0976a200 05-Dec-2014 haftmann <none@none>

allow multiple inheritance of targets

--HG--
extra : rebase_source : 9d4980222d189226728427249e77a98373cb2011


# f005bbba 25-Sep-2014 haftmann <none@none>

more correct precedence of do-notation


# 5f477322 18-Sep-2014 haftmann <none@none>

always annotate potentially polymorphic Haskell numerals

--HG--
extra : rebase_source : afdd470c78d704a706fe6d34761f4251b2b79ec0


# 011d7c60 18-Sep-2014 haftmann <none@none>

tuned data structure

--HG--
extra : rebase_source : 7cc408d038ae0cb3e103cd433b0b20a81851b688


# b7f1a757 02-May-2014 haftmann <none@none>

enforce case of identifiers only to accomodate strict language requirements (or clear separation of constructors from variables in the case of SML)


# 5607f158 01-May-2014 haftmann <none@none>

centralized upper/lowercase name mangling

--HG--
extra : rebase_source : 9afb0b542ffd66bd6bcf3a4990fe5063573500be


# 34a077b1 23-Feb-2014 haftmann <none@none>

explicit option for "open" code generation


# 950cc03c 23-Feb-2014 haftmann <none@none>

more fine-grain notion of export


# 8b24d313 23-Feb-2014 haftmann <none@none>

formal markup for public ingredients


# 251f0e4f 09-Feb-2014 haftmann <none@none>

restoring ancient string_classes option

--HG--
extra : rebase_source : 9b03c8e4430cf8460e78a06b0b0a434d0faba6c7


# a1412075 09-Feb-2014 haftmann <none@none>

method names in instance declarations are always unqualified

--HG--
extra : rebase_source : a7e123bbd89d38cc04042c93bf9379879ac237bf


# 463293a2 26-Jan-2014 haftmann <none@none>

more suitable names, without any notion of "activating"


# 07ad0bb4 25-Jan-2014 haftmann <none@none>

less clumsy namespace


# 290db6b4 25-Jan-2014 haftmann <none@none>

avoid (now superfluous) indirect passing of constant names


# 9250249f 25-Jan-2014 haftmann <none@none>

prefer explicit code symbol type over ad-hoc name mangling


# 85e946f2 25-Jan-2014 haftmann <none@none>

more abstract declaration of unqualified constant names in code printing context


# 62f7d300 30-Jul-2013 wenzelm <none@none>

proper PIDE markup for codegen arguments;


# 3e492425 04-Jul-2013 haftmann <none@none>

explicit hint for domain of class parameters in instance statements


# a7b3de52 23-Jun-2013 haftmann <none@none>

migration from code_(const|type|class|instance) to code_printing and from code_module to code_identifier

--HG--
extra : rebase_source : ff8027ac9606264aa4b2d4f8da037c426a3db98b


# 8efa9794 24-May-2013 haftmann <none@none>

bookkeeping and input syntax for exact specification of names of symbols in generated code

--HG--
extra : rebase_source : 60e91890f26f4c44ec2fa3a5be594fa7f2c1bdd0


# 5a8927d0 15-Feb-2013 haftmann <none@none>

two target language numeral types: integer and natural, as replacement for code_numeral;
former theory HOL/Library/Code_Numeral_Types replaces HOL/Code_Numeral;
refined stack of theories implementing int and/or nat by target language numerals;
reduced number of target language numeral types to exactly one

--HG--
extra : rebase_source : ffa0242ad108fe680ff144a716257c0784285d17


# c3e8fd6a 27-Jul-2012 haftmann <none@none>

evaluation: allow multiple code modules


# f59ab713 23-Jul-2012 haftmann <none@none>

restrict unqualified imports from Haskell Prelude to a small set of fundamental operations


# dc977d45 04-Jun-2012 haftmann <none@none>

prefer records with speaking labels over deeply nested tuples

--HG--
extra : rebase_source : 09acb7079a2d06a9c7f68aaaf04cedb0752142e0


# 8ceda7e9 28-May-2012 haftmann <none@none>

dropped sort constraints on datatype specifications


# 070c6dd5 19-Apr-2012 haftmann <none@none>

dropped dead code


# 150d8520 16-Mar-2012 wenzelm <none@none>

outer syntax command definitions based on formal command_spec derived from theory header declarations;


# 5a712294 20-Sep-2011 bulwahn <none@none>

syntactic improvements and tuning names in the code generator due to Florian's code review


# e8122118 16-Sep-2011 noschinl <none@none>

tune indenting


# 6337cf3f 14-Sep-2011 noschinl <none@none>

create central list for language extensions used by the haskell code generator


# 3045cc19 07-Sep-2011 noschinl <none@none>

call ghc with -XEmptyDataDecls


# 81f7f7e1 07-Sep-2011 bulwahn <none@none>

removing previous crude approximation to add type annotations to disambiguate types


# b41a4b70 07-Sep-2011 bulwahn <none@none>

adding minimalistic implementation for printing the type annotations


# 20767fdb 07-Sep-2011 bulwahn <none@none>

adding the body type as well to the code generation for constants as it is required for type annotations of constants


# 0b9a2ceb 07-Sep-2011 bulwahn <none@none>

changing const type to pass along if typing annotations are necessary for disambigous terms


# 91926906 18-Aug-2011 noschinl <none@none>

do not call ghc with -fglasgow-exts


# 1a5a42ee 09-Jun-2011 wenzelm <none@none>

simplified Name.variant -- discontinued builtin fold_map;


# 953fd692 20-Mar-2011 wenzelm <none@none>

replaced File.check by specific File.check_file, File.check_dir;
clarified File.full_path -- include parts of former Thy_Load.get_file;
simplified Thy_Load.check_file -- do not read/digest yet;
merged Thy_Load.check_thy/deps_thy -- always read text and parse header;
clarified Thy_Header.read -- NB: partial Path.explode outside of args parser combinator;
Thy_Info.check_deps etc.: File.read exactly once;


# b82e3883 13-Mar-2011 wenzelm <none@none>

cleanup of former settings GHC_PATH, EXEC_GHC, EXEC_OCAML, EXEC_SWIPL, EXEC_YAP -- discontinued implicit detection;
determine swipl_version at runtime;


# 9ad65a83 13-Mar-2011 wenzelm <none@none>

allow spaces in executable names;
simplified generated bash scripts;


# 98274748 21-Dec-2010 haftmann <none@none>

program is separate argument to serializer


# f46601df 17-Dec-2010 haftmann <none@none>

allocate intermediate directories in module hierarchy


# 10dbc8bf 29-Nov-2010 haftmann <none@none>

less ghc-specific pragma


# e1ce7c44 27-Nov-2010 wenzelm <none@none>

more basic Isabelle_System.mkdir;


# 1bfcb69d 27-Nov-2010 wenzelm <none@none>

more explicit Isabelle_System operations;


# f32e539b 25-Nov-2010 haftmann <none@none>

toplevel deresolving for flat module name space


# f990e5ec 07-Sep-2010 haftmann <none@none>

only write ghc pragma when writing to a file


# e971aa56 07-Sep-2010 haftmann <none@none>

dropped ancient deresolve_base; plain_const_syntax also needs modification of instance statement


# efed139b 07-Sep-2010 haftmann <none@none>

moved flat_program to code_namespace


# 47dfafb4 07-Sep-2010 haftmann <none@none>

Haskell uses generic flat_program combinator


# 30978253 07-Sep-2010 haftmann <none@none>

added generic flat_program procedure


# e0e92b2c 04-Sep-2010 haftmann <none@none>

dropped names from serializer interface


# 6d96da30 02-Sep-2010 haftmann <none@none>

hand out deresolver from serializer invocation


# 29dcd16b 02-Sep-2010 haftmann <none@none>

dropped superfluous presentation names


# c63f8622 02-Sep-2010 haftmann <none@none>

manage statement selection for presentation wholly through markup


# 760b2c60 02-Sep-2010 haftmann <none@none>

formal markup of generated code for statements


# 7a5c11b8 02-Sep-2010 haftmann <none@none>

removed namespace stuff from code_printer


# 6d9e22df 01-Sep-2010 haftmann <none@none>

formal framework for presentation of selected statements


# 94cad23a 01-Sep-2010 haftmann <none@none>

tuned internally and made smlnj happy


# 13daea3e 31-Aug-2010 haftmann <none@none>

dropped single_module parameter


# c2bf7b3b 31-Aug-2010 haftmann <none@none>

record argument for serializers


# df6809b2 31-Aug-2010 haftmann <none@none>

removed serializer interface redundancies


# 7a8d28bc 31-Aug-2010 haftmann <none@none>

more coherent naming of syntax data structures


# 0017b558 30-Aug-2010 haftmann <none@none>

tuned


# 82283147 30-Aug-2010 haftmann <none@none>

tuned


# 7faeece9 30-Aug-2010 haftmann <none@none>

tuned


# fa897977 30-Aug-2010 haftmann <none@none>

eliminated some obscure higher-order arguments


# e7d56225 30-Aug-2010 haftmann <none@none>

trailing newline by default


# 8ee2a45e 30-Aug-2010 haftmann <none@none>

width is a formal parameter of serialization


# 93bcf928 30-Aug-2010 haftmann <none@none>

code checking: compiler invocation happens in same directory as generated file -- avoid problem with different path representations on cygwin


# 6ab291e0 26-Aug-2010 haftmann <none@none>

tuned serializer interface


# b6390e34 25-Aug-2010 haftmann <none@none>

tuned


# e34974fd 25-Aug-2010 haftmann <none@none>

traling newline on standard output


# 1ad44b2b 24-Jul-2010 haftmann <none@none>

another refinement chapter in the neverending numeral story


# ede59fb5 19-Jul-2010 haftmann <none@none>

distinguish different classes of const syntax


# 6f5252ce 14-Jul-2010 haftmann <none@none>

more consistent spacing in generated monadic code


# a1a50e92 14-Jul-2010 haftmann <none@none>

braced needed in layout-insensitive syntax


# 6728ff4f 14-Jul-2010 haftmann <none@none>

use generic description slot for formal code checking


# c54f63c8 14-Jul-2010 haftmann <none@none>

formal slot for code checker


# 134c2b0f 14-Jul-2010 haftmann <none@none>

check without explicit path


# b5520044 08-Jul-2010 haftmann <none@none>

dropped ancient in-place compilation of SML


# 515be4d6 08-Jul-2010 haftmann <none@none>

checking generated code for various target languages


# ae53558f 01-Jul-2010 haftmann <none@none>

once more a try with mkdir_leaf


# 16acb0c8 01-Jul-2010 haftmann <none@none>

revert to plain for now mkdir


# 4dd3f473 29-Jun-2010 haftmann <none@none>

mkdir_leaf -- avoiding surprises with typos in user-given paths


# 293b817b 17-Jun-2010 haftmann <none@none>

more precise code


# 3032d8aa 17-Jun-2010 haftmann <none@none>

transitive superclasses were also only a misunderstanding


# 233f64f3 17-Jun-2010 haftmann <none@none>

formal introduction of transitive superclasses


# d7eae967 15-Jun-2010 haftmann <none@none>

drop function definitions of combinators


# 93fbbd8f 15-Jun-2010 haftmann <none@none>

formal introduction of case cong


# 5c97a57f 07-Jun-2010 haftmann <none@none>

more consistent naming aroud type classes and instances


# 7828de15 01-Jun-2010 haftmann <none@none>

brackify_infix etc.: no break before infix operator -- eases survival in Scala


# 7a6b0131 17-May-2010 wenzelm <none@none>

prefer structure Keyword, Parse, Parse_Spec, Outer_Syntax;
eliminated old-style structure aliases K = Keyword, P = Parse;


# e9f7d35e 30-Apr-2010 haftmann <none@none>

enclose case expression in brackets


# 4ee8ba5e 29-Apr-2010 haftmann <none@none>

more coherent naming with ML serializer


# 3161d8fa 19-Feb-2010 haftmann <none@none>

context theorem is optional


# a22630a8 22-Jan-2010 haftmann <none@none>

code literals: distinguish numeral classes by different entries


# 86870af6 05-Jan-2010 haftmann <none@none>

more correct handling of empty functions


# f91f53e6 23-Dec-2009 haftmann <none@none>

take care for destructive print mode properly using dedicated pretty builders


# 5238aed7 14-Dec-2009 haftmann <none@none>

improved crude deriving_show inference


# a51d8725 11-Dec-2009 haftmann <none@none>

repaired accident: do not forget module contents if there are no imports


# 3e0eda2f 09-Dec-2009 haftmann <none@none>

each import resides in its own line


# 28b52255 04-Dec-2009 haftmann <none@none>

tuned


# 71c651db 29-Nov-2009 haftmann <none@none>

dropped some unused bindings

--HG--
rename : src/HOL/Tools/Datatype/datatype.ML => src/HOL/Tools/Datatype/datatype_data.ML
extra : rebase_source : f9974e246b201df041a994a3a755319b83bce2a3


# 02c48bf5 25-Nov-2009 haftmann <none@none>

normalized uncurry take/drop

--HG--
extra : rebase_source : 647c8b5a6641f0eef6d4d81646474d16388f9fb9


# e3772a5e 24-Nov-2009 haftmann <none@none>

curried take/drop

--HG--
extra : rebase_source : 6e6b508d936640bef00f0ad0c4fb089ad5253ef0


# f1a24937 03-Nov-2009 haftmann <none@none>

always be qualified -- suspected smartness in fact never worked as expected


# 54a9d7d4 13-Oct-2009 haftmann <none@none>

tuned whitespace


# 3be2cdc1 14-Oct-2009 haftmann <none@none>

dropped Code_Printer prefix where feasible; fixed whitespace issues; more coherent terminology


# 8bf989cc 12-Oct-2009 haftmann <none@none>

intro_base_names combinator


# 0f29c7dc 12-Oct-2009 haftmann <none@none>

dropped dead code


# 392b8944 03-Jul-2009 haftmann <none@none>

cleaned up fundamental iml term functions


# d811f2f3 30-Jun-2009 haftmann <none@none>

all variable names are optional


# 890b79ce 30-Jun-2009 haftmann <none@none>

variable names in abstractions are optional


# 4f0af429 30-Jun-2009 haftmann <none@none>

simplified binding concept


# d18d6a07 22-Jun-2009 haftmann <none@none>

uniformly capitialized names for subdirectories

--HG--
rename : src/HOL/Tools/datatype_package/datatype.ML => src/HOL/Tools/Datatype/datatype.ML
rename : src/HOL/Tools/datatype_package/datatype_abs_proofs.ML => src/HOL/Tools/Datatype/datatype_abs_proofs.ML
rename : src/HOL/Tools/datatype_package/datatype_aux.ML => src/HOL/Tools/Datatype/datatype_aux.ML
rename : src/HOL/Tools/datatype_package/datatype_case.ML => src/HOL/Tools/Datatype/datatype_case.ML
rename : src/HOL/Tools/datatype_package/datatype_codegen.ML => src/HOL/Tools/Datatype/datatype_codegen.ML
rename : src/HOL/Tools/datatype_package/datatype_prop.ML => src/HOL/Tools/Datatype/datatype_prop.ML
rename : src/HOL/Tools/datatype_package/datatype_realizer.ML => src/HOL/Tools/Datatype/datatype_realizer.ML
rename : src/HOL/Tools/datatype_package/datatype_rep_proofs.ML => src/HOL/Tools/Datatype/datatype_rep_proofs.ML
rename : src/HOL/Tools/function_package/auto_term.ML => src/HOL/Tools/Function/auto_term.ML
rename : src/HOL/Tools/function_package/context_tree.ML => src/HOL/Tools/Function/context_tree.ML
rename : src/HOL/Tools/function_package/decompose.ML => src/HOL/Tools/Function/decompose.ML
rename : src/HOL/Tools/function_package/descent.ML => src/HOL/Tools/Function/descent.ML
rename : src/HOL/Tools/function_package/fundef.ML => src/HOL/Tools/Function/fundef.ML
rename : src/HOL/Tools/function_package/fundef_common.ML => src/HOL/Tools/Function/fundef_common.ML
rename : src/HOL/Tools/function_package/fundef_core.ML => src/HOL/Tools/Function/fundef_core.ML
rename : src/HOL/Tools/function_package/fundef_datatype.ML => src/HOL/Tools/Function/fundef_datatype.ML
rename : src/HOL/Tools/function_package/fundef_lib.ML => src/HOL/Tools/Function/fundef_lib.ML
rename : src/HOL/Tools/function_package/induction_scheme.ML => src/HOL/Tools/Function/induction_scheme.ML
rename : src/HOL/Tools/function_package/inductive_wrap.ML => src/HOL/Tools/Function/inductive_wrap.ML
rename : src/HOL/Tools/function_package/lexicographic_order.ML => src/HOL/Tools/Function/lexicographic_order.ML
rename : src/HOL/Tools/function_package/measure_functions.ML => src/HOL/Tools/Function/measure_functions.ML
rename : src/HOL/Tools/function_package/mutual.ML => src/HOL/Tools/Function/mutual.ML
rename : src/HOL/Tools/function_package/pattern_split.ML => src/HOL/Tools/Function/pattern_split.ML
rename : src/HOL/Tools/function_package/scnp_reconstruct.ML => src/HOL/Tools/Function/scnp_reconstruct.ML
rename : src/HOL/Tools/function_package/scnp_solve.ML => src/HOL/Tools/Function/scnp_solve.ML
rename : src/HOL/Tools/function_package/size.ML => src/HOL/Tools/Function/size.ML
rename : src/HOL/Tools/function_package/sum_tree.ML => src/HOL/Tools/Function/sum_tree.ML
rename : src/HOL/Tools/function_package/termination.ML => src/HOL/Tools/Function/termination.ML
rename : src/Tools/code/code_haskell.ML => src/Tools/Code/code_haskell.ML
rename : src/Tools/code/code_ml.ML => src/Tools/Code/code_ml.ML
rename : src/Tools/code/code_preproc.ML => src/Tools/Code/code_preproc.ML
rename : src/Tools/code/code_printer.ML => src/Tools/Code/code_printer.ML
rename : src/Tools/code/code_target.ML => src/Tools/Code/code_target.ML
rename : src/Tools/code/code_thingol.ML => src/Tools/Code/code_thingol.ML