Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / atoms / c-type.sig
CommitLineData
7f918cf1
CE
1(* Copyright (C) 2014 Matthew Fluet.
2 * Copyright (C) 2004-2007 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9signature C_TYPE_STRUCTS =
10 sig
11 structure RealSize: REAL_SIZE
12 structure WordSize: WORD_SIZE
13 end
14
15signature C_TYPE =
16 sig
17 include C_TYPE_STRUCTS
18
19 datatype t =
20 CPointer
21 | Int8
22 | Int16
23 | Int32
24 | Int64
25 | Objptr
26 | Real32
27 | Real64
28 | Word8
29 | Word16
30 | Word32
31 | Word64
32
33 val align: t * Bytes.t -> Bytes.t
34 val all: t list
35 val bool: t
36 val cpointer: t
37 val cint: unit -> t
38 val csize: unit -> t
39 val compareRes: t
40 val equals: t * t -> bool
41 val objptrHeader: unit -> t
42 val memo: (t -> 'a) -> t -> 'a
43 (* name: I{8,16,32,64} R{32,64} W{8,16,32,64} *)
44 val name: t -> string
45 val layout: t -> Layout.t
46 val objptr: t
47 val real: RealSize.t -> t
48 val seqIndex: unit -> t
49 val shiftArg: t
50 val size: t -> Bytes.t
51 val thread: t
52 val toString: t -> string
53 val word: WordSize.t * {signed: bool} -> t
54 end