gnucap-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnucap-devel] gnucap patches and article


From: Telford Tendys
Subject: Re: [Gnucap-devel] gnucap patches and article
Date: Tue, 15 Oct 2002 12:32:47 +1000
User-agent: Mutt/1.2.5i

On Mon, Oct 14, 2002 at 08:34:14AM -0400, address@hidden wrote:
> 
> what would the effort be to make this work with verilog,
> http://icarus.com/eda/verilog/index.html is a nice one that is GPL,
> instead of C?

I'm no verilog expert (though I'm always willing to learn) but I wouldn't
really consider not supporting C so if anything the verilog support might
be as well as C.

My reasoning works a bit like this... supporting C really means supporting
the shared-object binaries that gcc produces, plus some C-style function
call setup. Since the dlopen() command is available on Linux, it is very
easy to grab a shared object binary and start running code out of it so
the linkage into gnucap should be pretty minimal.

Now gcc happens to be able produce shared objects for Java, C++ and FORTRAN
so all of those languages are automatically supported too. Since those
languages need a way to call libc and other system libraries, they all support
the C-style function calls so that's OK too. With things like small Eiffel
that can compile to JVM which in turn can go through gcc, the Eiffel is also
supported (somewhat indirectly).

The question then is whether verilog can be compiled into a shared-object
in a native binary format. I suspect that icarus cannot do this but it can
produce its own VM-style language "vvp assembly" so the most likely direction
there is to rework their "vvp" shell command (probably written in C) into a
shared-object which can act as an interpreter for assembly files. Possibly
another approach would be to compile a "wrapper" for vvp which creates some
pipes and runs the shell command in the background (messier but easier to
do and probably easier to debug and safer).

        - Tel






reply via email to

[Prev in Thread] Current Thread [Next in Thread]