Skip to content

Commit 4faba50

Browse files
authored
Merge pull request #1418 from hzeller/20220831-update-readme
Update README, add screenshots.
2 parents 537ca0c + 8d4c5b7 commit 4faba50

File tree

3 files changed

+103
-72
lines changed

3 files changed

+103
-72
lines changed

README.md

Lines changed: 103 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[![codecov](https://codecov.io/gh/chipsalliance/verible/branch/master/graph/badge.svg?token=5f656dpmDT)](https://codecov.io/gh/chipsalliance/verible)
88

99
<!--*
10-
freshness: { owner: 'hzeller' reviewed: '2020-10-08' }
10+
freshness: { owner: 'hzeller' reviewed: '2022-08-31' }
1111
*-->
1212

1313
The Verible project's main mission is to parse SystemVerilog (IEEE 1800-2017)
@@ -30,79 +30,12 @@ A lesser (but notable) objective is that the language-agnostic components of
3030
Verible be usable for rapidly developing language support tools for other
3131
languages.
3232

33-
## Developers, Welcome
34-
35-
For source code browsing, we recommend using the fully-indexed and searchable
36-
mirror at https://cs.opensource.google/verible/verible.
37-
38-
If you'd like to contribute, check out the [contributing](./CONTRIBUTING.md)
39-
guide and the [development resources](./doc/development.md).
40-
41-
## Build
42-
43-
Verible's code base is written in C++.
44-
45-
To build, you need the [bazel] (>= 4.0) build system and a C++17 compatible compiler
46-
(e.g. >= g++-9), as well as python3.
47-
48-
Use your package manager to install the dependencies; on a system with
49-
the nix package manager simply run `nix-shell` to get a build environment.
50-
51-
```bash
52-
# Build all tools and libraries
53-
bazel build -c opt //...
54-
```
55-
56-
You can access the generated artifacts under `bazel-bin/`. For instance the
57-
syntax checker will be at
58-
`bazel-bin/verilog/tools/syntax/verible-verilog-syntax` (corresponding to the
59-
target name `//verilog/tools/syntax:verible-verilog-syntax`).
60-
61-
### Optionally using local flex/bison for build
62-
63-
Flex and Bison, that are needed for the parser generation, are compiled as part
64-
of the build process. But if for any reason you want or need local tools (e.g.
65-
if you encounter a compile problem with them - please file a bug then)
66-
can choose so by adding `--//bazel:use_local_flex_bison` to your bazel
67-
command line:
68-
69-
```bash
70-
# Also append the option '--//bazel:use_local_flex_bison' to test/install commands
71-
bazel build -c opt --//bazel:use_local_flex_bison //...
72-
```
73-
7433
### Installation
7534

7635
For simple installation, we provide regular [binary releases].
7736

78-
If you prefer to build and install the binaries locally yourself:
79-
80-
```bash
81-
# In your home directory
82-
bazel run -c opt :install -- ~/bin
83-
84-
# For a system directory that requires root-access, call with -s option.
85-
# (Do _not_ run bazel with sudo.)
86-
bazel run -c opt :install -- -s /usr/local/bin
87-
```
88-
89-
### Test
90-
91-
We strongly encourage running the test suite using [bazel]:
92-
93-
```bash
94-
# Run all tests
95-
bazel test -c opt //...
96-
```
97-
98-
## Mailing Lists
99-
100-
Join the Verible community!
101-
102-
* Developers: [email protected]
103-
([join](https://groups.google.com/forum/#!forum/verible-dev/join))
104-
105-
([join](https://groups.google.com/forum/#!forum/verible-users/join))
37+
If you prefer to build and install the binaries locally yourself, see
38+
details below in the [Developers](#developers-welcome) section.
10639

10740
## SystemVerilog Developer Tools
10841

@@ -134,6 +67,8 @@ Features:
13467
* Waiver mechanisms: in-file, external waiver file
13568
* [Github SystemVerilog linter action][github-lint-action] available.
13669

70+
![Integrating Verible Linter in Github screenshot](./img/example-github-integration.png)
71+
13772
Documentation:
13873

13974
* [Style linter user documentation](./verilog/tools/lint)
@@ -171,6 +106,11 @@ also directly in your editor.
171106
It implements the standardized [language server protocol] that is supported
172107
by a myriad of editors and IDEs.
173108

109+
The language server provides formatting and linting. If possible, it also
110+
provides quick-fixes
111+
112+
![Showing a lint message with quick-fix in vscode screenshot](./img/language-server-demo-vscode.png)
113+
174114
### Lexical Diff
175115

176116
[`verible-verilog-diff`](./verilog/tools/diff) compares two input files for
@@ -213,11 +153,101 @@ navigation.
213153
TODO(minatoma): short animation of hover/navigation features
214154
-->
215155

216-
### Future Intent
156+
## Developers, Welcome
157+
158+
For source code browsing, we recommend using the fully-indexed and searchable
159+
mirror at https://cs.opensource.google/verible/verible.
160+
161+
If you'd like to contribute, check out the [contributing](./CONTRIBUTING.md)
162+
guide and the [development resources](./doc/development.md).
163+
164+
### Build
165+
166+
Verible's code base is written in C++.
167+
168+
To build, you need the [bazel] (>= 4.0) build system and a C++17 compatible compiler
169+
(e.g. >= g++-9), as well as python3.
170+
171+
Use your package manager to install the dependencies; on a system with
172+
the nix package manager simply run `nix-shell` to get a build environment.
173+
174+
```bash
175+
# Build all tools and libraries
176+
bazel build -c opt //...
177+
```
178+
179+
You can access the generated artifacts under `bazel-bin/`. For instance the
180+
syntax checker will be at
181+
`bazel-bin/verilog/tools/syntax/verible-verilog-syntax` (corresponding to the
182+
target name `//verilog/tools/syntax:verible-verilog-syntax`).
183+
184+
### Optionally using local flex/bison for build
185+
186+
Flex and Bison, that are needed for the parser generation, are compiled as part
187+
of the build process. But if for any reason you want or need local tools (e.g.
188+
if you encounter a compile problem with them - please file a bug then)
189+
can choose so by adding `--//bazel:use_local_flex_bison` to your bazel
190+
command line:
191+
192+
```bash
193+
# Also append the option '--//bazel:use_local_flex_bison' to test/install commands
194+
bazel build -c opt --//bazel:use_local_flex_bison //...
195+
```
196+
197+
### Installation
198+
199+
For simple installation, we provide regular [binary releases].
200+
201+
If you prefer to build and install the binaries locally yourself:
202+
203+
```bash
204+
# In your home directory
205+
bazel run -c opt :install -- ~/bin
206+
207+
# For a system directory that requires root-access, call with -s option.
208+
# (Do _not_ run bazel with sudo.)
209+
bazel run -c opt :install -- -s /usr/local/bin
210+
```
211+
212+
(this requies a compliant `install` utility, otherwise simply copy
213+
the binaries from `bazel-bin/` to your desired location)
214+
215+
### Test
216+
217+
We strongly encourage running the test suite using [bazel]:
218+
219+
```bash
220+
# Run all tests
221+
bazel test -c opt //...
222+
```
223+
224+
Whenever adding new features in file, say, `foo.cc` always make sure to also
225+
update (or add) the corresponding `foo_test.cc`. Once you've written the
226+
test, you can use `.github/bin/generate-coverage-html.sh` to double-check
227+
that you have covered all code-paths in your test; narrow the coverage
228+
run to your test to make sure coverage is not accidentally coming from
229+
unrelated tests that happen to use the library:
230+
231+
```bash
232+
MODE=coverage .github/bin/build-and-test.sh //foo/bar:foo_test
233+
.github/bin/generate-coverage-html.sh
234+
```
235+
236+
## Mailing Lists
237+
238+
Join the Verible community!
239+
240+
* Developers: [email protected]
241+
([join](https://groups.google.com/forum/#!forum/verible-dev/join))
242+
243+
([join](https://groups.google.com/forum/#!forum/verible-users/join))
244+
245+
### Future
217246

218247
The Verible team is interested in exploring how it can help other tool
219248
developers in providing a SystemVerilog front end, for example, emitting an
220-
abstract syntax tree (AST). If you are interested in collaborating, contact us.
249+
abstract syntax tree (AST) or possibly even provide more higher-level
250+
[UHDM] format. If you are interested in collaborating, contact us.
221251

222252
[bazel]: https://bazel.build/
223253
[SV-LRM]: https://ieeexplore.ieee.org/document/8299595
@@ -226,3 +256,4 @@ abstract syntax tree (AST). If you are interested in collaborating, contact us.
226256
[github-format-action]: https://github.com/chipsalliance/verible-formatter-action
227257
[binary releases]: https://github.com/chipsalliance/verible/releases
228258
[language server protocol]: https://microsoft.github.io/language-server-protocol/
259+
[UHDM]: https://github.com/chipsalliance/UHDM

img/example-github-integration.png

54.5 KB
Loading
144 KB
Loading

0 commit comments

Comments
 (0)