-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathcompilation.schema.yaml
More file actions
88 lines (72 loc) · 2.47 KB
/
compilation.schema.yaml
File metadata and controls
88 lines (72 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "schema:ethdebug/format/materials/compilation"
title: ethdebug/format/materials/compilation
description: |
An object representing a single invocation of a compiler.
type: object
properties:
id:
description: |
Compilation ID
This value **should** be globally-unique and generated only from the
compiler inputs (settings, sources, etc.); the same compiler inputs/
settings **should** produce the same identifier.
$ref: "schema:ethdebug/format/materials/id"
compiler:
type: object
title: Compiler name and version
properties:
name:
type: string
description: Compiler name
version:
type: string
description: |
Compiler version.
This value **should** be specified using the most detailed version
representation available, i.e., including source control hash and
compiler build information whenever possible.
required:
- name
- version
examples:
- name: lllc
version: 0.4.12-develop.2017.6.27+commit.b83f77e0.Linux.g++
settings:
description: |
Compiler settings in a format native to the compiler.
For compilers whose settings includes full source representations, this
field **should** be specified in such a way that avoids large data
redundancies (e.g. if compiler settings contain full source
representations, then this field would significantly duplicate the
information represented by the `sources` field in this object).
In situations where settings information duplicates information
represented elsewhere in **ethdebug/format**, compilers **may** adopt
any reasonable strategy, e.g.:
- omit duplications partially (leaving the rest of the settings
intact)
- omit this field entirely
- specify this field as a hash of the full settings
representation (with the expectation that users of this format will
have access to the full representation by some other means)
allOf:
- {}
sources:
type: array
items:
$ref: "schema:ethdebug/format/materials/source"
required:
- id
- compiler
- sources
examples:
- id: foo
compiler:
name: lllc
version: 0.4.12-develop.2017.6.27+commit.b83f77e0.Linux.g++
sources:
- id: 0
path: stdin
contents: |
(add 1 (mul 2 (add 3 4)))
language: LLL