Activity
From 08/28/2019 to 09/26/2019
09/26/2019
- 08:18 PM Issue #1490: Add an option to create a DPI protected library
- I'm ambivalent towards the choice between --dpi-lib and --dpi-library but I do think one of those would be better tha...
- 12:12 PM Issue #1490: Add an option to create a DPI protected library
- >I'm going to suggest --protect-lib.
Like that, let's sleep on it.
Is protect-library better or worse? I'm alwa... - 11:17 AM Issue #1490: Add an option to create a DPI protected library
- Also, re: testing this specific error:...
- 07:34 AM Issue #1490: Add an option to create a DPI protected library
- > perhaps the makefile by default should make both versions?
Yeah, the only reason I have this as two separate Ver... - 04:51 AM Issue #1490: Add an option to create a DPI protected library
- Also . . .
> The generated code seems wrongly indented (not indented) for some reason.
Isn't this because I'm u... - 04:25 AM Issue #1490: Add an option to create a DPI protected library
- Thanks again. Also, regarding names, I hate naming things. And yeah, I'm already pretty sure that --dpi-protect is ...
- 01:41 AM Issue #1490: Add an option to create a DPI protected library
- >Is dpiProtectLibName() the same thing as the new v3Global.opt function you're suggesting? Does >dpiProtectLibName() ...
- 01:00 PM Issue #1528 (Closed): VPI: Let port vars return variable type, not vpiPort
- VerilatedVpioVar does not provide any of the other properties of the vpiPort, but those of the referenced "vpiLowConn...
- 12:39 PM Issue #1470: VPI systemtf
- The first part is much easier than I thought, because @Verilated::fatalOnVpiError(false);@ does the job. Now I need t...
- 11:55 AM Issue #1521: Add --protect-ids to enhance --protect-lib obfuscation
- Ease of use is a good point so agree --dpi-protect (or whatever renamed) should set --protect-symbols by default; if ...
- 04:09 AM Issue #1521: Add --protect-ids to enhance --protect-lib obfuscation
- Do you see uses for this beyond --dpi-protect? I'd imagine, but of course can't say for sure, that IP vendors wouldn...
- 02:44 AM Issue #1521: Add --protect-ids to enhance --protect-lib obfuscation
- Proposed new flags to implement this feature for discussion:
--protect-symbols = When specified, Verilator wi... - 01:54 AM Issue #1525 (Resolved): Improve error report when erroneously using interface in expression
- Thanks for your issue. I was unable to get the exact error message you did, but got other ugly messages when misusin...
09/25/2019
- 08:21 PM Issue #1490: Add an option to create a DPI protected library
- Thanks for all the feedback. I've got a bunch of the items cleaned up and posted to my branch. But I've got a coupl...
- 12:15 AM Issue #1490: Add an option to create a DPI protected library
- ... think noe that you have AstText you can just hash those in the SV to fingerprint.
- 12:09 AM Issue #1490: Add an option to create a DPI protected library
- Forgot another. The generated V should pass a fingerprint of the info used to make the V to the DPI create for checki...
- 07:04 AM Issue #1525 (Closed): Improve error report when erroneously using interface in expression
- When an interface ("din" in this example) is erroneously used in an expression like this:...
09/24/2019
- 11:53 PM Issue #1490: Add an option to create a DPI protected library
- Forgot one of your questions, it's "DESCR" "IPTION" as I have personal scripts that check every source file has a des...
- 11:51 PM Issue #1490: Add an option to create a DPI protected library
- Good stuff. Review comments attached.
Main comment would be we should heave sensitivity lists based on what's need... - 04:05 PM Issue #1490: Add an option to create a DPI protected library
- I believe this is ready to go now:
https://github.com/toddstrader/verilator-dev/tree/dpi-compile-ast2
A couple no... - 02:44 PM Issue #1522 (Feature): Support mutable top-level parameters for --protect-lib
- Parameters that create data types or generate if/for subcells are unlikely to ever be "wire"able, but perhaps others ...
- 12:47 PM Issue #1522 (Feature): Support mutable top-level parameters for --protect-lib
- This may also have applications outside of --dpi-protect. Possible solutions:
* Automatically convert parameters to... - 02:42 PM Issue #1521 (Feature): Add --protect-ids to enhance --protect-lib obfuscation
- If anyone starts on this let me know, as I at some point might also take a look at it.
- 12:41 PM Issue #1521 (Closed): Add --protect-ids to enhance --protect-lib obfuscation
- Signal names and some other design details are visible via library symbols and possibly strings. We can have Verilat...
- 02:41 PM Issue #1520 (Feature): Improve --protect-lib performance
- 12:37 PM Issue #1520 (Feature): Improve --protect-lib performance
- Some possibilities:
* Detect cones of logic and only fetch the outputs that are affected by a given input
* Detect ... - 02:41 PM Issue #1519 (Feature): Benchmark --protect-lib runtime
- 12:34 PM Issue #1519 (Closed): Benchmark --protect-lib runtime
- There's obviously overhead in shuttling data back and forth with --dpi-protect. We should use some large-ish design ...
- 02:41 PM Issue #1518 (Feature): Protect against --protect-lib Verilator runtime incompatibility
- 12:16 PM Issue #1518: Protect against --protect-lib Verilator runtime incompatibility
- Some items such as the mutexes for multithreading, tracing, VPI name lookup, and coverage are assumed to be common ac...
- 12:08 PM Issue #1518 (Feature): Protect against --protect-lib Verilator runtime incompatibility
- Currently all --dpi-protect'ed modules and the top-level design share the same Verilator runtime symbols. Some optio...
- 02:40 PM Issue #1517 (Feature): Add support for additional simulators in --protect-lib
- 12:02 PM Issue #1517 (Feature): Add support for additional simulators in --protect-lib
- So far XSim has been tested and works with a shared library. We need to determine what we need to be able to build l...
- 02:40 PM Issue #1523 (Feature): Add waveform replay tool
- Would ideally like to see something that works on an arbitrary design without requiring --dpi-protect, and ideally us...
- 12:51 PM Issue #1523 (Feature): Add waveform replay tool
- When simulating with a --dpi-protect'ed module, the end user cannot see the internals and therefore a waveform captur...
- 02:24 PM Issue #1524 (Assigned): Support sensitivity to DPI function outputs
- I need to look into this more, but I believe that Verilator does schedule processes based on the outputs of DPI funct...
09/23/2019
- 11:27 PM Issue #1469: VPI module
- Thanks for working on this. I think your general approach is fine.
I suggest you add a test where there's some bac... - 09:55 PM Issue #1469: VPI module
- This has been more complicated than I hoped. Attached I am sending you my proposal for review. It is probably not the...
- 10:44 PM Issue #1490: Add an option to create a DPI protected library
- Thanks, I think this looks much better & reasonable. I'd suggest using AstComment where you can instead of text with...
- 06:35 PM Issue #1490: Add an option to create a DPI protected library
- This is very much a WIP, but I want to make sure we're on the same page:
https://github.com/toddstrader/verilator-de... - 12:04 PM Issue #1511 (Resolved): Add --public-flat-rw flag
- Thanks all.
Pushed to git towards eventual 4.020 release.
09/21/2019
- 06:36 PM Issue #1514 (Feature): Switch for file to read public signals from
- Agreed, and suggest this should be handled by adding a config file parse rule to the bottom of verilog.y.
Ideally ... - 05:47 PM Issue #1514 (Feature): Switch for file to read public signals from
- We should have a switch that lets the user give a file with names of signals (including whitespaces) that are treated...
- 06:26 PM Issue #1515 (Feature): VPI: Log all variables that were accessed
- 05:49 PM Issue #1515 (Feature): VPI: Log all variables that were accessed
- The idea is to add the capability to the VPI runtime to log all variable accesses in a format compatible with #1514. ...
- 05:43 PM Issue #1513 (Closed): CONTRIBUTING file, internals, and FAQ cleanup
- We should add a CONTRIBUTING file on toplevel that describes the required technical and legal steps to submit patches...
- 05:41 PM Issue #1511: Add --public-flat-rw flag
- Wilson Snyder wrote:
> Ok, given the trade-offs seems reasonable.
>
> If this starts getting a lot of use we migh... - 12:51 PM Issue #1511: Add --public-flat-rw flag
- Ok, given the trade-offs seems reasonable.
If this starts getting a lot of use we might want an option to at runti... - 01:24 PM Issue #1490: Add an option to create a DPI protected library
- >It also slightly modifies the emitted Makefile, but I'm going to assume we're not going to represent the Makefile in...
- 11:45 AM Issue #1512 (Resolved): Make callCbs public (again) and return if callbacks were called
- Your description seems reasonable. One reason why I was asking was if this should be documented in the main docs, bu...
09/20/2019
- 03:40 PM Issue #1470: VPI systemtf
- Wilson Snyder wrote:
> Perhaps when suppressed this should be setting the error return code so vpi_chk_error returns... - 03:32 PM Issue #1470: VPI systemtf
- Perhaps when suppressed this should be setting the error return code so vpi_chk_error returns something sane e.g. lev...
- 02:30 PM Issue #1470: VPI systemtf
- Okay, here is one that is equally hacky and elegant on both sides. Instead of making the symbol weak, how about just ...
- 04:25 AM Issue #1470: VPI systemtf
- Thanks, Wilson, I was already thinking about the issue with other compilers but only came up with LLVM :) I think it ...
- 01:47 PM Issue #1512: Make callCbs public (again) and return if callbacks were called
- Hi,
conceptually the VPI library is generic in cocotb and it used some init hooks to install the callbacks. But Ve... - 01:30 PM Issue #1490: Add an option to create a DPI protected library
- More questions about the in-AST refactor:
Currently "--dpi-protect secret" creates foo.sv and foo.cpp. It also sl... - 05:01 AM Issue #1511: Add --public-flat-rw flag
- Thanks for your insights, I am a bit torn apart on this one. But I believe overall the usability wins in this case. T...
09/19/2019
- 11:01 PM Issue #1512 (Assigned): Make callCbs public (again) and return if callbacks were called
- I'm ok applying this conceptually, but do you think this is the API you really want to use instead of abstracting thr...
- 08:17 PM Issue #1512 (Closed): Make callCbs public (again) and return if callbacks were called
- For the cocotb support we need VPI callbacks of all sorts. The access to callCbs() was public before but has not been...
- 10:52 PM Issue #1511 (Assigned): Add --public-flat-rw flag
- I really don't like expanding the userfullness use of public. There's two problems:
1. Users will probably set it... - 05:16 AM Issue #1511: Add --public-flat-rw flag
- This is a compromise between --public (deprecated) and requiring the designer to add the comments. By restricting it ...
- 05:04 AM Issue #1511 (Closed): Add --public-flat-rw flag
- Hi,
the purpose of these patches is to add a new switch --public-flat-rw that changes the behavior as if /*verilat... - 10:21 PM Issue #1470: VPI systemtf
- Weak seems somewhat hacky, but I can live with hacky. You do however need to do not break non-GCC compilers e.g. MSV...
- 09:00 PM Issue #1470: VPI systemtf
- Hi,
sorry, took much longer as I hoped to even look into it. Attached please find a first, rather trivial patch, t...
09/18/2019
- 04:24 PM Issue #1510 (Resolved): VPI: Get vpiType string
- Great. Pushed to git for eventual release 4.020.
- 11:45 AM Issue #1510: VPI: Get vpiType string
- Patch updated with test. Actually I found vpi_var the better test as it tests vpi_get_str too.
- 11:19 AM Issue #1510: VPI: Get vpiType string
- Yes, I am at it right now. Sorry, slipped me :)
- 11:18 AM Issue #1510 (Assigned): VPI: Get vpiType string
- Thanks for the patch, makes sense, could you also please add a test to t_vpi_get.cpp or one of the other tests? If n...
- 11:09 AM Issue #1510 (Closed): VPI: Get vpiType string
- vpi_get_str: Get vpiType string
- 11:25 AM Issue #1509 (Resolved): Fix variable cast in VPI
- Thanks for the good patch. Applied & pushed to git for eventual 4.016 release.
- 11:14 AM Issue #1509: Fix variable cast in VPI
- Updated patch for current HEAD
- 10:00 AM Issue #1509 (Closed): Fix variable cast in VPI
- Fix cast from Var to base type when getting handle in VPI
09/17/2019
- 08:09 PM Issue #1507: Linting error: backward indexing
- It worked fine. Thanks!
- 07:17 PM Issue #1507: Linting error: backward indexing
- Sorry, not having it in master was my fault, try again.
- 06:55 PM Issue #1507: Linting error: backward indexing
- Let me know if it is better to open a new issue, since it is unrelated topic.
I am on the master branch right now,... - 06:15 PM Issue #1507: Linting error: backward indexing
- It's not released (until next monthish), use master branch, that is don't use any tag.
- 06:02 PM Issue #1507: Linting error: backward indexing
- Wilson Snyder wrote:
> You can get it now from git, see the Install section. Typically releases (tarballs) are ever... - 05:25 PM Issue #1507: Linting error: backward indexing
- You can get it now from git, see the Install section. Typically releases (tarballs) are every month or so.
- 04:45 PM Issue #1507: Linting error: backward indexing
- Wilson Snyder wrote:
> Thanks for the report, simple enough to fix.
>
> Fixed in git towards 4.420.
Thanks for... - 01:18 AM Issue #1507 (Resolved): Linting error: backward indexing
- Thanks for the report, simple enough to fix.
Fixed in git towards 4.420.
- 12:58 AM Issue #1507 (Closed): Linting error: backward indexing
- I think I met a false error in linting:
Slice selection '[2:2]' has backward indexing versus data type's '[0:3]'
Sl... - 02:53 PM Issue #1508 (NoFixNeeded): CI is failing on CPAN installs
- OK, great. I didn't look closely enough at the log before, but now I see:...
- 01:28 PM Issue #1508: CI is failing on CPAN installs
- Note CPAN listed Parallel::Forker but it didn't seem to find it in Travis. This morning I tried pushing a new Parall...
- 01:13 PM Issue #1508 (NoFixNeeded): CI is failing on CPAN installs
- Travis jobs are failing while installing CPAN modules:...
09/15/2019
- 09:09 PM Issue #1506 (NoFixNeeded): Compile with uvm-systemc
- UVM-SystemC as I understand it is just another library which should not care about regular SystemC verilated modules....
- 07:15 PM Issue #1506 (NoFixNeeded): Compile with uvm-systemc
- Is there any way or example to compile the verilator with uvm-systemc?
09/12/2019
- 11:14 PM Issue #1505 (WillNotFix): [Bug] cannot understand multi-dimensional array interfaces
- Thanks for the report.
I created a test case and this is not supported in the two commercial simulators I could ch... - 10:24 PM Issue #1505: [Bug] cannot understand multi-dimensional array interfaces
- Verilog-Perl fixed in version 3.468.
- 02:45 PM Issue #1505 (Confirmed): [Bug] cannot understand multi-dimensional array interfaces
- Agreed this is a mistake in translation of the IEEE grammar. Also applies to Verilog-Perl which will get fixed first.
- 02:06 PM Issue #1505 (WillNotFix): [Bug] cannot understand multi-dimensional array interfaces
- Verilator 4.018 cannot parse understand multi-dimensional array using interfaces structures from system verilog. The ...
09/11/2019
- 07:11 PM Issue #1503: [VerilogAMS]: Unknown Language Specified
- Thanks for the response. I apologize, since it was mentioned in the options, I thought may be it is supported, althou...
- 11:19 AM Issue #1503 (WillNotFix): [VerilogAMS]: Unknown Language Specified
- Verilator supports almost no AMS, basically wreal and one or two functions, and this is unlikely to be improved even ...
- 02:17 PM Issue #1504 (Closed): Produce man files during 'make all'
- ./nodist/install_test runs cleanly:...
- 12:59 PM Issue #1504: Produce man files during 'make all'
- To test installation run ./nodist/install_test
This isn't part of the regression as builds differently.
If that... - 12:01 PM Issue #1504: Produce man files during 'make all'
- Yeah, on that note I didn't have latex installed until just now. I tried to 'make dist' but failed to make README.pd...
- 11:22 AM Issue #1504: Produce man files during 'make all'
- I think the original thinking was most people won't want to install tex. They do have to have perl. So I'd suggest ....
09/10/2019
- 12:31 PM Issue #1504: Produce man files during 'make all'
- t_dist_manifest is failing now because the .1 files are both in the DISTFILES list and in MANIFEST.SKIP. I was just ...
- 11:06 AM Issue #1504 (Closed): Produce man files during 'make all'
- It appears the intention is to build the man files when building the 'all' target:...
- 01:55 AM Issue #1503 (WillNotFix): [VerilogAMS]: Unknown Language Specified
- Hi,
I am new to Verilator. I am interested in simulating several verilogams test cases with Verilator. I ran the f...
09/06/2019
- 05:21 PM Issue #1502 (Closed): -LDLIBS isn't an option
- (This can go to closed immediately as trivial doc bug.)
- 05:06 PM Issue #1502 (Resolved): -LDLIBS isn't an option
- Done.
- 05:00 PM Issue #1502 (Assigned): -LDLIBS isn't an option
- Huh. Yes, guess de-document it. Feel free to squash & push.
- 04:58 PM Issue #1502 (Closed): -LDLIBS isn't an option
- The --help mentions -LDLIBS but that isn't actually an option. Perhaps there was a thought about plumbing both LDFLA...
- 11:10 AM Issue #1501 (Confirmed): Support bind statements within generate blocks
- Thanks for the test.
This is a bug due to Bind being expanded up front before parameters are resolved.
Note t... - 06:28 AM Issue #1501 (Confirmed): Support bind statements within generate blocks
- A bind statement within a generate if, if the generate if evaluates to false, should not bind. ...
09/04/2019
- 01:55 PM Issue #1490: Add an option to create a DPI protected library
- More for my own notes than anything else: running XSim with a static DPI library is not as simple as I had earlier in...
- 10:24 AM Issue #1499 (Resolved): Have V3EmitC::emitcSyms honor --output-split-cfuncs
- Done. This has been pushed to git now.
- 01:33 AM Issue #1499 (Assigned): Have V3EmitC::emitcSyms honor --output-split-cfuncs
- Good stuff, thanks.
Once you update tests feel free to squash and push.
- 01:29 AM Issue #1496 (Resolved): Support additional file I/O functions $fseek, $ftell, $frewind
- Thanks again.
Pushed to git towards 4.020.
09/03/2019
- 11:37 PM Issue #1499: Have V3EmitC::emitcSyms honor --output-split-cfuncs
- It just dawned on me that I didn't modify t_flag_csplit.pl to verify that it is now producing Syms__#.cpp files (whic...
- 08:33 PM Issue #1499: Have V3EmitC::emitcSyms honor --output-split-cfuncs
- Proposed change:
https://github.com/toddstrader/verilator-dev/tree/sym-split - 05:16 PM Issue #1499 (Closed): Have V3EmitC::emitcSyms honor --output-split-cfuncs
- I'm planning to modify V3EmitC::emitcSyms to respect --output-split-cfuncs in order to break up the symbol object con...
- 12:42 PM Issue #1496: Support additional file I/O functions $fseek, $ftell, $frewind
- I agree on the certificate and ack the request explicitly.
- 10:50 AM Issue #1496 (Assigned): Support additional file I/O functions $fseek, $ftell, $frewind
- Excellent work, even in updating the tests.
Just one legal thing, in the patch please insert your name in docs/CON... - 04:14 AM Issue #1496 (Closed): Support additional file I/O functions $fseek, $ftell, $frewind
- Attached the patch to add three functions.
The scenario is that my test bench is able to parsing elf file and load... - 12:23 PM Issue #1369: Raise error / warning on continous assignment to reg
- Git is the change-by-change repo, which is snapshotted for the tarballs.
Anyhow the version released this weekend ... - 12:06 PM Issue #1369: Raise error / warning on continous assignment to reg
- Is the git version different from tarball version ?I thought that they were the same.
I'll have to use git version. ... - 11:55 AM Issue #1369: Raise error / warning on continous assignment to reg
- See https://www.veripool.org/projects/verilator/wiki/Installing
- 11:23 AM Issue #1369: Raise error / warning on continous assignment to reg
- Oh, where can I get the unreleased git version ?
- 11:05 AM Issue #1490: Add an option to create a DPI protected library
- I'm unaware of how Modelsim handles DPI.
Was thinking the structure would be part of the AST (as everything tries ... - 11:00 AM Issue #1490: Add an option to create a DPI protected library
- Thanks for all the feedback.
> Wondering why you build a shared object instead of a static library (.a)?
Becaus...
09/01/2019
- 03:16 PM Issue #1494 (Resolved): verilator 4.018 build fails at 'make test' in examples/hello_world_c
- Ahmed, thanks for the report.
Todd, thanks for pointing out the commit. Yes, part of that removal should have bee... - 12:05 PM Issue #1494: verilator 4.018 build fails at 'make test' in examples/hello_world_c
- Setting VERILATOR_ROOT to the root of your checkout will fix the problem.
Wilson, something about this changed at ... - 03:18 AM Issue #1494 (Closed): verilator 4.018 build fails at 'make test' in examples/hello_world_c
- When building verilator 4.018, the build failed when running make test in
examples/hello_world_c, with the followin...
08/31/2019
- 12:12 AM Issue #1490: Add an option to create a DPI protected library
- In addition to a test_regress, please add an example/, then refer to it in the bin/verilator docs.
Bunch of TODOs ...
08/30/2019
- 11:41 AM Issue #1490: Add an option to create a DPI protected library
- To be clear, I think the MVP is feature complete (something self-contained that people could try out). There's a lot...
- 09:59 AM Issue #1490: Add an option to create a DPI protected library
- Turns out that option #5 is to not need the DPI header at all. I'm not sure why I thought I needed it, but I don't.
...
08/29/2019
- 11:15 PM Issue #1435 (Closed): Report column numbers and source text in error messages
- In 4.018.
- 11:15 PM Issue #1487 (Closed): New WIDTH warnings on genvars
- In 4.018.
- 11:14 PM Issue #1491 (Closed): Add --dpi-hdr-only option
- In 4.018.
- 11:14 PM Issue #1475 (Closed): V3Hashed.cpp Called isIdentical on non-hashed nodes, from Gate dedupe()
- In 4.018.
- 11:14 PM Issue #1442 (Closed): Enum value not made sized when enum sized
- In 4.018.
- 11:14 PM Issue #1429 (Closed): Feature request: elaboration tasks
- In 4.018.
- 11:14 PM Issue #1493 (Closed): Add XSim support to driver.pl
- In 4.018.
- 09:03 PM Issue #1493 (Resolved): Add XSim support to driver.pl
- Great, thanks for the info. This is squashed and pushed now.
- 02:30 PM Issue #1493 (Feature): Add XSim support to driver.pl
- These changes seem fine, you can squash and merge them as you feel appropriate.
When debugging a single test I som... - 11:40 AM Issue #1493 (Closed): Add XSim support to driver.pl
- Related to bug1490:
https://github.com/toddstrader/verilator-dev/tree/xsim
This is particularly useful to me beca... - 11:14 PM Issue #1481 (Closed): Add rr support to the perl wrappers
- In 4.018.
- 11:14 PM Issue #1305 (Closed): Error messages do not contain hierarchical information
- In 4.018.
- 11:13 PM Verilator 4.018 Released
- Verilator 4.018 2019-08-29
** When showing an error, show source code and offer suggestions of replacements.
... - 10:36 PM Issue #1489 (Feature): Python support for Verilated designs
- >the Python compile definition is VL_PYTHON. Is this ok? Because some variables have a VM_ prefix and some VL_.
VM...
08/28/2019
- 01:14 PM Issue #1483 (Closed): Make verilator_ext_tests head-to-head
- 12:39 PM Issue #1483 (Resolved): Make verilator_ext_tests head-to-head
- Done and done.
- 11:54 AM Issue #1483: Make verilator_ext_tests head-to-head
- Ah, driver error. Feel free to squash and push. If you didn't already please contact the SweRV team to report their ...
- 09:59 AM Issue #1483: Make verilator_ext_tests head-to-head
- That's what I've been doing. I just added ci/update_submodules.sh which does the remote submodule update for all sub...
- 12:34 PM Issue #1369: Raise error / warning on continous assignment to reg
- Please use the unreleased git version, it intended to fix this.
- 12:10 PM Issue #1369: Raise error / warning on continous assignment to reg
- Hi,
It's been modified from 4.016. 4.016 version doesn't warn continuous assignments for the port (out) declared a... - 01:44 AM Issue #1491 (Resolved): Add --dpi-hdr-only option
- Pushed since I've used a similar feature in ModelSim for purposes other than what we're discussing in bug1490.
- 12:07 AM Issue #1490: Add an option to create a DPI protected library
- #3 is what I was thinking. Or, ideally refactor the DPI emit code to output something closer to pure Ast, and have V...
- 12:03 AM Issue #1490: Add an option to create a DPI protected library
- > Why can't we build the dpi header in the same binary run? This seems cleaner for the user.
It would definitely b...
Also available in: Atom