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
1313The 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
3030Verible be usable for rapidly developing language support tools for other
3131languages.
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
7635For 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- 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+
13772Documentation:
13873
13974* [ Style linter user documentation] ( ./verilog/tools/lint )
@@ -171,6 +106,11 @@ also directly in your editor.
171106It implements the standardized [ language server protocol] that is supported
172107by 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.
213153TODO(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+ 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
218247The Verible team is interested in exploring how it can help other tool
219248developers 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
0 commit comments