#
2d8bef7a |
|
18-Nov-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Improve TypeBase API for reporting on record fields Datatype code now bypasses treatment of "big records". This stuff can all be deleted and I will be happy to see it go as it is horrifically complicated, and usually only serves to confuse users. Thanks to a CakeML Slack discussion for the push to make the API change.
|
#
1e0d2028 |
|
11-Apr-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Re-implement Datatype package with TypeBase sexps (not adjoin)
|
#
6da728bc |
|
13-Jan-2015 |
Michael Norrish <michael.norrish@nicta.com.au> |
Ensure record type constructor names don't interfere with user names. When you declare a type like foo = <| n : num ; b : bool |> there is an underlying constructor defined called foo: foo : num -> bool -> foo This underpins the definition of the various functions over record types, which are made with the recursion principle for this underlying algebraic type. However, with sufficient care/malice, this constant (which users are typically oblivious to), can interfere with other definitions to ill effect. The fix is to make the constant take a name that can't even be generated by the parser, but to then overload the name ("foo" in the example) to this constant. The parser is happy to have a string overload to multiple constants; the internal theory signature mechanism has to prevent multiple constants from having the real name. (Before the fix, the kernel signature maintenance lets the second definition of a constant with this name go through but invalidates the first constant, causing a theory to purge itself of what the user thinks is a perfectly valid type.) This solves one of the problems identified in github issue #224.
|
#
08d7a558 |
|
23-Oct-2014 |
Piotr Trojanek <piotr.trojanek@gmail.com> |
trailing newlines in *.{sml,sig} files from src/ removed Trailing newlines from SML files in src/ were rendered in HTML documentation.
|
#
4761143b |
|
10-Aug-2009 |
Tjark Weber <Tjark.Weber@cl.cam.ac.uk> |
Removed trailing whitespace from all .sml and .sig files. This affects over 900 files and was done using emacs's delete-trailing-whitespace function in batch mode. Building the system with Poly/ML and Moscow ML seems to work, so I'm hoping these changes don't break anything. Please complain if they do!
|
#
5d6a6595 |
|
09-Jun-2006 |
Konrad Slind <konrad.slind@gmail.com> |
The new changes to records have been fixed so that the system will rebuild without error. Whether the record stuff actually does what it should, I am still checking. The big record stuff will have to be checked in Australia, probably, since I don't really understand it.
|
#
a37e5a74 |
|
09-Jun-2006 |
Konrad Slind <konrad.slind@gmail.com> |
Fixes to support code generation for records. Incomplete! So do not update these changes (I'm just using CVS to transfer files to work machine).
|
#
bbea9bc2 |
|
27-Sep-2004 |
Konrad Slind <konrad.slind@gmail.com> |
A load of changes aimed at supporting records better. And some other odds and ends.
|
#
4cd281d5 |
|
03-Sep-2002 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modify TypeBases so that they can store conversions as well as theorems in a tyinfo's "simpls_of" slot. This is then used to implement a conversion for enumerated type equalities. Previously, we just used a rewrite directly, which meant that something of the form (x = C10) might turn into the rather ugly (foo_to_num x = 11). Now, the rewrite is only applied to equalities between constants. Some comments in the .sig files in Datatype, RecordType and EnumType hopefully also make it clearer what the weird string results are doing, and how they get added into theory files.
|
#
3d2f9ce3 |
|
20-Jun-2001 |
Konrad Slind <konrad.slind@gmail.com> |
Change stemming from split of TypeBase into TypeBasePure and TypeBase.
|
#
cfdc1706 |
|
11-Apr-2001 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Modifications caused by change of TypeBase signature.
|
#
77efd725 |
|
04-Feb-2001 |
Konrad Slind <konrad.slind@gmail.com> |
New work aimed at making a single global EVAL function, with an underlying compset.
|
#
9d7cbc09 |
|
10-Dec-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Changes due to the incorporation of John Harrison's datatype definition package. In particular, record type definition is now done elsewhere, code here just takes a tyinfo and proves all of the extra theorems (including some definitions) appropriate for a record type.
|
#
689cd3cc |
|
16-Nov-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fairly wide-ranging modifications to make Hol_datatype take record type definition quotations as well as normal types. The syntax supported is: tyname = <| fld1 : ty1 ; fld2 : ty2 ; fld3 : ty3 ... |> Not extensively tested.
|
#
58841e67 |
|
29-Apr-1999 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Initial revision
|