Giter VIP home page Giter VIP logo

linter-vhdl's People

Contributors

graphman65 avatar ucgen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

ucgen lcapossio

linter-vhdl's Issues

Error checking syntax: package not found in library

Hi,
If a file (eg my_vhdl.vhd) uses a package (eg my_package.vhd) in the work library, the following error is reported:
: error: unit "my_package" not found in library "work"

One solution to fix this problem is to check the syntax of the package(s) before the main file, such as:
ghdl -s my_package.vhd my_vhdl.vhd

It would be great to have an option to pass the package(s) as parameters before checking syntax.
Thanks!

use -s instead of -a

is there a reason why ghdl's -a is used instead of -s?
-s will check the syntax without generating any libraries in the current directory. I think it is much cleaner to use -s.

I have been waiting for an atom VHDL linter for a while. Thanks for your great efforts.

no error messages on Linux and MAC

linter-vhdl do not show any warnings / errors.
tested on Linux and MAC.

access to ghdl is tested by using the "compile on lint" option. If a there are no errors the cf file is created. Command Line access to ghdl works and all errors are shown correct.

atom 1.25.1
linter-vhdl 1.1.4
linter 2.2.0
linter-ui-default 1.7.1

VHDL2008 selection

Hello,

It would be nice to be able to select as a global option to use VHDL2008 or pass arguments to GHDL.

GHDL: Wrong command parameter sequence

Hi,
while trying out this linter extension for my VHDL2008 code, I found out, that the -- args: --std=08 parameter in the first line of the VHDL file did not work as expected. I tried to directly call GHDL with the following parameters: ghdl.exe -s vhdl2008-file.vhd --std=08, but this seems to ignore the last argument. I then tried the following parameters: ghdl.exe -s --std=08 peak_detector.vhd, and with this the VHDL2008 analysis has worked. I looked at the plugin implementation, and found that a small change in main.js solves the problem:

main.js:48: await exec("${compiler}" ${command} "${editorPath}" ${argsString}, options);
to
main.js:48: await exec("${compiler}" ${command} ${argsString} "${editorPath}", options);

Is there a reason, why argsString is appended at the end?

Need to set up environment variables

Hi,

TL;DR:
In my environment, I cannot run ghdl without changing the LD_LIBRARY_PATH environment variable. There should be a way to change environment variables in linter-vhdl.

Long version:
My OS is an up-to-date Debian testing (bullseye) amd64. Atom is installed using flatpak from the flathub repository. It is a kind of sandboxed environment which does not provide access to the main OS by default. Instead, Atom runs on a "runtime" environment, which is a standardized system with various utilities already pre-installed: git, gcc, clang, and others, but not ghdl.
I can provide the environment access to the host’s /usr/bin directory (which becomes available as /var/run/host/usr/bin in the sandboxed environment), and ghdl becomes available as /var/run/host/usr/bin/ghdl. Unfornately, the ghdl binary is dependent from a libgnarl-9.so.1 library, which is not available in the sandboxed environment, and I have to change the LD_LIBRARY_PATH so dynamic linking finds the library in the correct place in the host’s filesystem. Here is a shell session in the sanboxed environment:

root@debian:~# flatpak run --filesystem=host-os:ro org.freedesktop.Sdk
[📦 org.freedesktop.Sdk ~]# /var/run/host/usr/bin/ghdl
/var/run/host/usr/bin/ghdl-mcode: error while loading shared libraries: libgnarl-9.so.1: cannot open shared object file: No such file or directory
[📦 org.freedesktop.Sdk ~]# LD_LIBRARY_PATH=/var/run/host/usr/lib/x86_64-linux-gnu /var/run/host/usr/bin/ghdl
/var/run/host/usr/bin/ghdl-mcode:error: missing command, try /var/run/host/usr/bin/ghdl-mcode --help
[📦 org.freedesktop.Sdk ~]# 

In the linter-vhdl settings, I already changed the path to ghdl accordingly. But I really need to be able to set that LD_LIBRARY_PATH value.

A better alternative would be that linter-vhdl detects it runs on a sandboxed Atom, issues warnings if it cannot access the host filesystem or has trouble with dynamic linking, and automatically sets itself up if everything is available.

Thanks a lot for reading me, and for your very good work on linter-vhdl.

Linter warning: cannot find library "std_logic_unsigned"

Hi,

I'm using linter-vhdl for a couple of weeks now, only now got the time to ask about this linter warning.
Using it on Ubuntu 16.04, installed the latest version of GHDL and I'm using teh latest version of everything around Atom.
When opening a VHDL file the linter warns about "std_logic_unsigned" and about "unisims".
The warning about the latter is possible because its a proprietary license and I guess needs to be compiled for GHDL before it will be recognised. The first library is a standard VHDL library, why the warning? Does it first need to be compiled? GHDL states it supports full VHDL up to 2008 thus I suspect that all standard libraries are supported to.
Can anybody provide and answer/comment?

Thanks,

Marc

VHDL-2008 block comment

Hello,

VHDL-2008 has entered the block comments:

/*
block comment
*/

Could be added in linter-vhdl?

Thank you.

-- args: how to use it, need somewhat more explication than in readme.

Hi,

I’m using in VHDL the “std_logic_unsigned” library and without the “-- args: --ieee=synopsys” argument,
the linter complains that it cannot fine the library in “ieee”. Whn including "– args: --ieee=synopsys…"
in the first lines of the VHDl file VHDL-Linter no longer complains.
The above works fine, but the linter complains also about the fact it cannot find other libraries, link:

  • Xilinx Unisim vcomponents library
    • The xilinx libraries are compiled with GHDL and placed in a directory “xilinx” together the other
      GHDL libraries.
  • All instantiated components
    • Instantiation of components uses the entity instantiation method (<component_name> : .entity).
      (component name is just the name of the component in the vhdl.
      Library is a folder on disk hosting the lower hierarchy VHD file.
      entity is the entity name of the lower hierarchy).

What is the syntax for the arguments, args:, in above cases so that linter no longer complains?

I tried to use the GHDL syntax but that did not work or maybe I used it wrongly.
This what I tried (and what did not work):
-- args: --work=unisim /path_to_unisim_libraries
-- args: --work=<entity_name_of_component> /path_to_folder_of component.
Many thanks in advance for any help/hints.

kind regards,

Marc

path.dirname is deprecated.

Argument to path.dirname must be a string

path.dirname (C:\Users\josee\AppData\Local\atom\app-1.45.0\resources\app.asar\src\electron-shims.js:9:10)
Object.<anonymous> (C:\Users\josee\.atom\packages\linter-vhdl\lib\main.js:56:48)
Generator.next (null:null:null)
step (C:\Users\josee\.atom\packages\linter-vhdl\lib\main.js:7:273)
<unknown> (C:\Users\josee\.atom\packages\linter-vhdl\lib\main.js:7:443)
Promise (null:null:null)

Installing linter-vhdl failed

When I install linter-vhdl 1.1.4, Installing failed.
It is error message.

events.js:160
throw er; // Unhandled 'error' event
^

Error: EPERM: operation not permitted, open 'C:\Users\JMYI.atom\packages\linter-vhdl\examples\main.vhd'
at Error (native)

How can I fix it?

atom 1.26.0
linter 2.2.0
linter-ui-default 1.7.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.