mirror of
https://github.com/steveicarus/iverilog.git
synced 2026-08-24 06:46:52 +02:00
Compare commits
28
Commits
master
...
v13-branch
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07dd50d37e | ||
|
|
c00178148a | ||
|
|
77116aa09a | ||
|
|
f97fd5184c | ||
|
|
31b8d2f674 | ||
|
|
8295eb9762 | ||
|
|
3928e2bd32 | ||
|
|
d1cbaf08d2 | ||
|
|
28d31c6df1 | ||
|
|
0c575e6166 | ||
|
|
ab6e9effe1 | ||
|
|
824ff5b8cb | ||
|
|
5fb9d93715 | ||
|
|
52b9e1816d | ||
|
|
e537dafb7f | ||
|
|
f7fabc57bb | ||
|
|
1c8d9e37f2 | ||
|
|
9e02a32046 | ||
|
|
894a681ff0 | ||
|
|
84f51be69a | ||
|
|
6d7a38847a | ||
|
|
ef9e91c168 | ||
|
|
f5ee8a9a44 | ||
|
|
94d92ced82 | ||
|
|
1746e03a70 | ||
|
|
dfeee909ed | ||
|
|
f614488591 | ||
|
|
24c105531d |
@@ -142,7 +142,7 @@ latex_documents = [
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'icarusverilog', 'Icarus Verilog Documentation',
|
||||
(master_doc, 'iverilog-docs', 'Icarus Verilog Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ source code itself, so that you can find the global parts where you
|
||||
can look for even better detail.
|
||||
|
||||
The documentation for getting, building and installing Icarus Verilog
|
||||
is kept and maintained at :doc:`Getting Started as a Contributer <../getting_started>`
|
||||
is kept and maintained at :doc:`Getting Started as a Contributor <../getting_started>`
|
||||
|
||||
See the Installation Guide for getting the current source from the git
|
||||
repository (and how to use the git repository) and see the Developer Guide
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Reporting Issues
|
||||
================
|
||||
|
||||
The developers of and contributers to Icarus Verilog use github to track
|
||||
The developers of and contributors to Icarus Verilog use github to track
|
||||
issues and to create patches for the product. If you believe you have found a
|
||||
problem, use the Issues tracker at the
|
||||
`Icarus Verilog github page <https://github.com/steveicarus/iverilog>`__.
|
||||
@@ -60,7 +60,7 @@ Bug reports with patches/PRs are very welcome. Please also add a new test case i
|
||||
|
||||
If you are editing the source, you should be using the latest
|
||||
version from git. Please see the developer documentation for more
|
||||
detailed instructions -- :doc:`Getting Started as a Contributer <getting_started>` .
|
||||
detailed instructions -- :doc:`Getting Started as a Contributor <getting_started>` .
|
||||
|
||||
COPYRIGHT ISSUES
|
||||
|
||||
|
||||
+2
-1
@@ -166,6 +166,7 @@ clean:
|
||||
$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) $@ && ) true
|
||||
rm -f *.o parse.cc parse.h lexor.cc
|
||||
rm -f ivl.exp iverilog-vpi.man iverilog-vpi.pdf iverilog-vpi.ps
|
||||
rm -f iverilog_man.ps iverilog_man.pdf iverilog_man_`./version.exe %M_%n`.pdf
|
||||
rm -f parse.output syn-rules.output dosify$(BUILDEXT) ivl@EXEEXT@ check.vvp
|
||||
rm -f lexor_keyword.cc libivl.a libvpi.a iverilog-vpi syn-rules.cc
|
||||
rm -rf dep
|
||||
@@ -252,7 +253,7 @@ endif
|
||||
version.exe: $(srcdir)/version.c $(srcdir)/version_base.h version_tag.h
|
||||
$(BUILDCC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o version.exe -I. -I$(srcdir) $(srcdir)/version.c
|
||||
|
||||
%.o: %.cc config.h
|
||||
%.o: %.cc config.h | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep/$*.d
|
||||
|
||||
|
||||
Vendored
+52
-16
@@ -10,7 +10,7 @@ AC_DEFUN([AX_ENABLE_SUFFIX],
|
||||
[Use/set the installation command suffix])],
|
||||
[true],[enable_suffix=no])
|
||||
if test X$enable_suffix = Xyes; then
|
||||
install_suffix='-dev'
|
||||
install_suffix='-13'
|
||||
elif test X$enable_suffix = Xno; then
|
||||
install_suffix=''
|
||||
else
|
||||
@@ -285,7 +285,7 @@ echo "timestamp for $_config_header" > `AS_DIRNAME(["$_config_header"])`/[]$_sta
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 18
|
||||
#serial 26
|
||||
|
||||
AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
|
||||
AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
|
||||
@@ -296,14 +296,16 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl
|
||||
dnl Use the standard macros, but make them use other variable names
|
||||
dnl
|
||||
pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
|
||||
pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
|
||||
pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
|
||||
pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
|
||||
pushdef([ac_cv_prog_cc_c99], ac_cv_build_prog_cc_c99)dnl
|
||||
pushdef([ac_cv_prog_cc_c11], ac_cv_build_prog_cc_c11)dnl
|
||||
pushdef([ac_cv_prog_cc_c23], ac_cv_build_prog_cc_c23)dnl
|
||||
pushdef([ac_cv_prog_cc_stdc], ac_cv_build_prog_cc_stdc)dnl
|
||||
pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
|
||||
pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
|
||||
pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
|
||||
pushdef([ac_cv_c_compiler_gnu], ac_cv_build_c_compiler_gnu)dnl
|
||||
pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
|
||||
pushdef([ac_cv_objext], ac_cv_build_objext)dnl
|
||||
pushdef([ac_prog_cc_stdc], ac_build_prog_cc_stdc)dnl
|
||||
pushdef([ac_exeext], ac_build_exeext)dnl
|
||||
pushdef([ac_objext], ac_build_objext)dnl
|
||||
pushdef([CC], CC_FOR_BUILD)dnl
|
||||
@@ -311,9 +313,7 @@ pushdef([CPP], CPP_FOR_BUILD)dnl
|
||||
pushdef([GCC], GCC_FOR_BUILD)dnl
|
||||
pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
|
||||
pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
|
||||
pushdef([EXEEXT], BUILD_EXEEXT)dnl
|
||||
pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
|
||||
pushdef([OBJEXT], BUILD_OBJEXT)dnl
|
||||
pushdef([host], build)dnl
|
||||
pushdef([host_alias], build_alias)dnl
|
||||
pushdef([host_cpu], build_cpu)dnl
|
||||
@@ -328,6 +328,32 @@ pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl
|
||||
pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl
|
||||
pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl
|
||||
pushdef([cross_compiling], cross_compiling_build)dnl
|
||||
dnl
|
||||
dnl These variables are problematic to rename by M4 macros, so we save
|
||||
dnl their values in alternative names, and restore the values later.
|
||||
dnl
|
||||
dnl _AC_COMPILER_EXEEXT and _AC_COMPILER_OBJEXT internally call
|
||||
dnl AC_SUBST which prevents the renaming of EXEEXT and OBJEXT
|
||||
dnl variables. It's not a good idea to rename ac_cv_exeext and
|
||||
dnl ac_cv_objext either as they're related.
|
||||
dnl Renaming ac_exeext and ac_objext is safe though.
|
||||
dnl
|
||||
ac_cv_host_exeext=$ac_cv_exeext
|
||||
AS_VAR_SET_IF([ac_cv_build_exeext],
|
||||
[ac_cv_exeext=$ac_cv_build_exeext],
|
||||
[AS_UNSET([ac_cv_exeext])])
|
||||
ac_cv_host_objext=$ac_cv_objext
|
||||
AS_VAR_SET_IF([ac_cv_build_objext],
|
||||
[ac_cv_objext=$ac_cv_build_objext],
|
||||
[AS_UNSET([ac_cv_objext])])
|
||||
dnl
|
||||
dnl ac_cv_c_compiler_gnu is used in _AC_LANG_COMPILER_GNU (called by
|
||||
dnl AC_PROG_CC) indirectly.
|
||||
dnl
|
||||
ac_cv_host_c_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
AS_VAR_SET_IF([ac_cv_build_c_compiler_gnu],
|
||||
[ac_cv_c_compiler_gnu=$ac_cv_build_c_compiler_gnu],
|
||||
[AS_UNSET([ac_cv_c_compiler_gnu])])
|
||||
|
||||
cross_compiling_build=no
|
||||
|
||||
@@ -341,6 +367,9 @@ _AC_COMPILER_EXEEXT
|
||||
_AC_COMPILER_OBJEXT
|
||||
AC_PROG_CPP
|
||||
|
||||
BUILD_EXEEXT=$ac_cv_exeext
|
||||
BUILD_OBJEXT=$ac_cv_objext
|
||||
|
||||
dnl Restore the old definitions
|
||||
dnl
|
||||
popdef([cross_compiling])dnl
|
||||
@@ -357,9 +386,7 @@ popdef([host_vendor])dnl
|
||||
popdef([host_cpu])dnl
|
||||
popdef([host_alias])dnl
|
||||
popdef([host])dnl
|
||||
popdef([OBJEXT])dnl
|
||||
popdef([LDFLAGS])dnl
|
||||
popdef([EXEEXT])dnl
|
||||
popdef([CPPFLAGS])dnl
|
||||
popdef([CFLAGS])dnl
|
||||
popdef([GCC])dnl
|
||||
@@ -367,25 +394,34 @@ popdef([CPP])dnl
|
||||
popdef([CC])dnl
|
||||
popdef([ac_objext])dnl
|
||||
popdef([ac_exeext])dnl
|
||||
popdef([ac_cv_objext])dnl
|
||||
popdef([ac_cv_exeext])dnl
|
||||
popdef([ac_cv_c_compiler_gnu])dnl
|
||||
popdef([ac_prog_cc_stdc])dnl
|
||||
popdef([ac_cv_prog_cc_g])dnl
|
||||
popdef([ac_cv_prog_cc_cross])dnl
|
||||
popdef([ac_cv_prog_cc_works])dnl
|
||||
popdef([ac_cv_prog_cc_stdc])dnl
|
||||
popdef([ac_cv_prog_cc_c23])dnl
|
||||
popdef([ac_cv_prog_cc_c11])dnl
|
||||
popdef([ac_cv_prog_cc_c99])dnl
|
||||
popdef([ac_cv_prog_cc_c89])dnl
|
||||
popdef([ac_cv_prog_gcc])dnl
|
||||
popdef([ac_cv_prog_CPP])dnl
|
||||
dnl
|
||||
ac_cv_exeext=$ac_cv_host_exeext
|
||||
EXEEXT=$ac_cv_host_exeext
|
||||
ac_cv_objext=$ac_cv_host_objext
|
||||
OBJEXT=$ac_cv_host_objext
|
||||
ac_cv_c_compiler_gnu=$ac_cv_host_c_compiler_gnu
|
||||
ac_compiler_gnu=$ac_cv_host_c_compiler_gnu
|
||||
|
||||
dnl restore global variables ac_ext, ac_cpp, ac_compile,
|
||||
dnl ac_link, ac_compiler_gnu (dependant on the current
|
||||
dnl ac_link, ac_compiler_gnu (dependent on the current
|
||||
dnl language after popping):
|
||||
AC_LANG_POP([C])
|
||||
|
||||
dnl Finally, set Makefile variables
|
||||
dnl
|
||||
AC_SUBST(BUILD_EXEEXT)dnl
|
||||
AC_SUBST(BUILD_OBJEXT)dnl
|
||||
AC_SUBST([BUILD_EXEEXT])dnl
|
||||
AC_SUBST([BUILD_OBJEXT])dnl
|
||||
AC_SUBST([CFLAGS_FOR_BUILD])dnl
|
||||
AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
|
||||
AC_SUBST([LDFLAGS_FOR_BUILD])dnl
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $<
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2010 Stephen Williams (steve@icarus.com)
|
||||
* Copyright (c) 2003-2026 Stephen Williams (steve@icarus.com)
|
||||
*
|
||||
* This source code is free software; you can redistribute it
|
||||
* and/or modify it in source code form under the terms of the GNU
|
||||
@@ -53,7 +53,7 @@ static void thunker_register(void)
|
||||
strncpy(module, cp, bp-cp);
|
||||
module[bp-cp] = 0;
|
||||
|
||||
mod = ivl_dlopen(module);
|
||||
mod = ivl_dlopen(module, false);
|
||||
if (mod == 0) {
|
||||
vpi_printf("%s link: %s\n", vlog_info.argv[idx], dlerror());
|
||||
free(module);
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
#ifndef IVL_ivl_dlfcn_H
|
||||
#define IVL_ivl_dlfcn_H
|
||||
/*
|
||||
* Copyright (c) 2001-2014 Stephen Williams (steve@icarus.com)
|
||||
*
|
||||
* This source code is free software; you can redistribute it
|
||||
* and/or modify it in source code form under the terms of the GNU
|
||||
* General Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
# include <windows.h>
|
||||
# include <stdio.h>
|
||||
typedef void * ivl_dll_t;
|
||||
#elif defined(HAVE_DLFCN_H)
|
||||
# include <dlfcn.h>
|
||||
typedef void* ivl_dll_t;
|
||||
#elif defined(HAVE_DL_H)
|
||||
# include <dl.h>
|
||||
typedef shl_t ivl_dll_t;
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
static __inline__ ivl_dll_t ivl_dlopen(const char *name)
|
||||
{ return (void *)LoadLibrary(name); }
|
||||
|
||||
static __inline__ void *ivl_dlsym(ivl_dll_t dll, const char *nm)
|
||||
{ return (void *)GetProcAddress((HINSTANCE)dll,nm);}
|
||||
|
||||
static __inline__ void ivl_dlclose(ivl_dll_t dll)
|
||||
{ (void)FreeLibrary((HINSTANCE)dll);}
|
||||
|
||||
static __inline__ const char *dlerror(void)
|
||||
{
|
||||
static char msg[256];
|
||||
unsigned long err = GetLastError();
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
NULL,
|
||||
err,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
|
||||
(LPTSTR) &msg,
|
||||
sizeof(msg) - 1,
|
||||
NULL
|
||||
);
|
||||
return msg;
|
||||
}
|
||||
|
||||
#elif defined(HAVE_DLFCN_H)
|
||||
static __inline__ ivl_dll_t ivl_dlopen(const char*name)
|
||||
{ return dlopen(name,RTLD_LAZY); }
|
||||
|
||||
static __inline__ void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
{
|
||||
void*sym = dlsym(dll, nm);
|
||||
/* Not found? try without the leading _ */
|
||||
if (sym == 0 && nm[0] == '_')
|
||||
sym = dlsym(dll, nm+1);
|
||||
return sym;
|
||||
}
|
||||
|
||||
static __inline__ void ivl_dlclose(ivl_dll_t dll)
|
||||
{ dlclose(dll); }
|
||||
|
||||
#elif defined(HAVE_DL_H)
|
||||
static __inline__ ivl_dll_t ivl_dlopen(const char*name)
|
||||
{ return shl_load(name, BIND_IMMEDIATE, 0); }
|
||||
|
||||
static __inline__ void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
{
|
||||
void*sym;
|
||||
int rc = shl_findsym(&dll, nm, TYPE_PROCEDURE, &sym);
|
||||
return (rc == 0) ? sym : 0;
|
||||
}
|
||||
|
||||
static __inline__ void ivl_dlclose(ivl_dll_t dll)
|
||||
{ shl_unload(dll); }
|
||||
|
||||
static __inline__ const char*dlerror(void)
|
||||
{ return strerror( errno ); }
|
||||
#endif
|
||||
|
||||
#endif /* IVL_ivl_dlfcn_H */
|
||||
+2
-2
@@ -92,11 +92,11 @@ cflexor.c: $(srcdir)/cflexor.lex
|
||||
cfparse%c cfparse%h: $(srcdir)/cfparse%y
|
||||
$(YACC) --verbose -t -p cf -d -o cfparse.c $<
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
main.o: main.c globals.h $(srcdir)/../version_base.h ../version_tag.h Makefile
|
||||
main.o: main.c globals.h $(srcdir)/../version_base.h ../version_tag.h Makefile | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c -DIVL_ROOT='"@libdir@/ivl$(suffix)"' -DIVL_SUFFIX='"$(suffix)"' -DIVL_INC='"@includedir@"' -DIVL_LIB='"@libdir@"' -DDLLIB='"@DLLIB@"' -DIVL_INCLUDE_INSTALL_DIR="\"$(realpath $(DESTDIR)/$(includedir))\"" $(srcdir)/main.c
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -69,6 +69,9 @@ const char HELP[] =
|
||||
# include <libiberty.h>
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __APPLE__
|
||||
# include <mach-o/dyld.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifdef HAVE_GETOPT_H
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 1998-2026 Stephen Williams ([email protected])
|
||||
#
|
||||
# This source code is free software; you can redistribute it
|
||||
# and/or modify it in source code form under the terms of the GNU
|
||||
# Library General Public License as published by the Free Software
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef IVL_ivl_dlfcn_H
|
||||
#define IVL_ivl_dlfcn_H
|
||||
/*
|
||||
* Copyright (c) 2001-2014 Stephen Williams (steve@icarus.com)
|
||||
* Copyright (c) 2001-2026 Stephen Williams (steve@icarus.com)
|
||||
*
|
||||
* This source code is free software; you can redistribute it
|
||||
* and/or modify it in source code form under the terms of the GNU
|
||||
@@ -21,7 +21,11 @@
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
# include <windows.h>
|
||||
#if defined(__cplusplus)
|
||||
# include <cstdio>
|
||||
#else
|
||||
# include <stdio.h>
|
||||
#endif
|
||||
typedef void * ivl_dll_t;
|
||||
#elif defined(HAVE_DLFCN_H)
|
||||
# include <dlfcn.h>
|
||||
@@ -32,7 +36,7 @@ typedef shl_t ivl_dll_t;
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
inline ivl_dll_t ivl_dlopen(const char *name, bool)
|
||||
static inline ivl_dll_t ivl_dlopen(const char *name, bool global_flag)
|
||||
{
|
||||
static char full_name[4096];
|
||||
unsigned long length = GetFullPathName(name, sizeof(full_name),
|
||||
@@ -40,16 +44,18 @@ inline ivl_dll_t ivl_dlopen(const char *name, bool)
|
||||
if ((length == 0) || (length > sizeof(full_name)))
|
||||
return 0;
|
||||
|
||||
(void)global_flag;
|
||||
|
||||
return (void *)LoadLibrary(full_name);
|
||||
}
|
||||
|
||||
inline void *ivl_dlsym(ivl_dll_t dll, const char *nm)
|
||||
static inline void *ivl_dlsym(ivl_dll_t dll, const char *nm)
|
||||
{ return (void *)GetProcAddress((HINSTANCE)dll,nm);}
|
||||
|
||||
inline void ivl_dlclose(ivl_dll_t dll)
|
||||
static inline void ivl_dlclose(ivl_dll_t dll)
|
||||
{ (void)FreeLibrary((HINSTANCE)dll);}
|
||||
|
||||
inline const char *dlerror(void)
|
||||
static inline const char *dlerror(void)
|
||||
{
|
||||
static char msg[256];
|
||||
unsigned long err = GetLastError();
|
||||
@@ -66,10 +72,10 @@ inline const char *dlerror(void)
|
||||
}
|
||||
|
||||
#elif defined(HAVE_DLFCN_H)
|
||||
inline ivl_dll_t ivl_dlopen(const char*name, bool global_flag)
|
||||
static inline ivl_dll_t ivl_dlopen(const char*name, bool global_flag)
|
||||
{ return dlopen(name,RTLD_LAZY|(global_flag?RTLD_GLOBAL:0)); }
|
||||
|
||||
inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
static inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
{
|
||||
void*sym = dlsym(dll, nm);
|
||||
/* Not found? try without the leading _ */
|
||||
@@ -78,24 +84,28 @@ inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
return sym;
|
||||
}
|
||||
|
||||
inline void ivl_dlclose(ivl_dll_t dll)
|
||||
static inline void ivl_dlclose(ivl_dll_t dll)
|
||||
{ dlclose(dll); }
|
||||
|
||||
#elif defined(HAVE_DL_H)
|
||||
inline ivl_dll_t ivl_dlopen(const char*name)
|
||||
{ return shl_load(name, BIND_IMMEDIATE, 0); }
|
||||
static inline ivl_dll_t ivl_dlopen(const char*name, bool global_flag)
|
||||
{
|
||||
(void)global_flag;
|
||||
|
||||
inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
return shl_load(name, BIND_IMMEDIATE, 0);
|
||||
}
|
||||
|
||||
static inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
{
|
||||
void*sym;
|
||||
int rc = shl_findsym(&dll, nm, TYPE_PROCEDURE, &sym);
|
||||
return (rc == 0) ? sym : 0;
|
||||
}
|
||||
|
||||
inline void ivl_dlclose(ivl_dll_t dll)
|
||||
static inline void ivl_dlclose(ivl_dll_t dll)
|
||||
{ shl_unload(dll); }
|
||||
|
||||
inline const char*dlerror(void)
|
||||
static inline const char*dlerror(void)
|
||||
{ return strerror( errno ); }
|
||||
#endif
|
||||
|
||||
@@ -34,4 +34,5 @@ tmp_blif.vvp
|
||||
dump.vcd
|
||||
dump.lxt
|
||||
dump.lx2
|
||||
dump.fst
|
||||
foo.vcd
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (c) 1998-2026 Stephen Williams ([email protected])
|
||||
#
|
||||
# This source code is free software; you can redistribute it
|
||||
# and/or modify it in source code form under the terms of the GNU
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
FST info: dumpfile dump.fst opened for output.
|
||||
@@ -31,6 +31,7 @@ br_gh703 vvp_tests/br_gh703.json
|
||||
br_gh710a vvp_tests/br_gh710a.json
|
||||
br_gh710b vvp_tests/br_gh710b.json
|
||||
br_gh710c vvp_tests/br_gh710c.json
|
||||
br_gh710d vvp_tests/br_gh710d.json
|
||||
br_gh939 vvp_tests/br_gh939.json
|
||||
br_gh1001 vvp_tests/br_gh1001.json
|
||||
br_gh1018 vvp_tests/br_gh1018.json
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"type" : "normal",
|
||||
"source" : "br_gh710.v",
|
||||
"gold" : "br_gh710d",
|
||||
"iverilog-args" : [ "-g2009" ],
|
||||
"vvp-args-extended" : [ "-fst" ]
|
||||
}
|
||||
@@ -101,7 +101,7 @@ libveriuser.a: libveriuser.o
|
||||
$(AR) cvq $@ libveriuser.o
|
||||
$(RANLIB) $@
|
||||
|
||||
%.o: %.c config.h
|
||||
%.o: %.c config.h | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
#
|
||||
# git push -u origin v13-branch
|
||||
#
|
||||
# After this update the master branch to the next version and update
|
||||
# vvp/examples/*.vvp to match the new version.
|
||||
#
|
||||
|
||||
if [ $# -ne 1 ] ; then
|
||||
echo "Usage: CREATE_BRANCH.sh <major-number>"
|
||||
|
||||
@@ -38,74 +38,6 @@ using namespace std;
|
||||
|
||||
struct dll_target dll_target_obj;
|
||||
|
||||
#if defined(__WIN32__)
|
||||
|
||||
inline ivl_dll_t ivl_dlopen(const char *name)
|
||||
{
|
||||
ivl_dll_t res = static_cast<ivl_dll_t>(LoadLibrary(name));
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
inline void * ivl_dlsym(ivl_dll_t dll, const char *nm)
|
||||
{
|
||||
return reinterpret_cast<void*>(GetProcAddress((HMODULE)dll, nm));
|
||||
}
|
||||
|
||||
inline void ivl_dlclose(ivl_dll_t dll)
|
||||
{
|
||||
FreeLibrary((HMODULE)dll);
|
||||
}
|
||||
|
||||
const char *dlerror(void)
|
||||
{
|
||||
static char msg[256];
|
||||
unsigned long err = GetLastError();
|
||||
FormatMessage(
|
||||
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
NULL,
|
||||
err,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
|
||||
(LPTSTR) &msg,
|
||||
sizeof(msg) - 1,
|
||||
NULL
|
||||
);
|
||||
return msg;
|
||||
}
|
||||
#elif defined(HAVE_DLFCN_H)
|
||||
inline ivl_dll_t ivl_dlopen(const char*name)
|
||||
{ return dlopen(name,RTLD_LAZY); }
|
||||
|
||||
inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
{
|
||||
void*sym = dlsym(dll, nm);
|
||||
/* Not found? try without the leading _ */
|
||||
if (sym == 0 && nm[0] == '_')
|
||||
sym = dlsym(dll, nm+1);
|
||||
return sym;
|
||||
}
|
||||
|
||||
inline void ivl_dlclose(ivl_dll_t dll)
|
||||
{ dlclose(dll); }
|
||||
|
||||
#elif defined(HAVE_DL_H)
|
||||
inline ivl_dll_t ivl_dlopen(const char*name)
|
||||
{ return shl_load(name, BIND_IMMEDIATE, 0); }
|
||||
|
||||
inline void* ivl_dlsym(ivl_dll_t dll, const char*nm)
|
||||
{
|
||||
void*sym;
|
||||
int rc = shl_findsym(&dll, nm, TYPE_PROCEDURE, &sym);
|
||||
return (rc == 0) ? sym : 0;
|
||||
}
|
||||
|
||||
inline void ivl_dlclose(ivl_dll_t dll)
|
||||
{ shl_unload(dll); }
|
||||
|
||||
inline const char*dlerror(void)
|
||||
{ return strerror( errno ); }
|
||||
#endif
|
||||
|
||||
ivl_scope_s::ivl_scope_s()
|
||||
: func_type(IVL_VT_NO_TYPE)
|
||||
{
|
||||
@@ -667,13 +599,13 @@ bool dll_target::start_design(const Design*des)
|
||||
{
|
||||
const char*dll_path_ = des->get_flag("DLL");
|
||||
|
||||
dll_ = ivl_dlopen(dll_path_);
|
||||
dll_ = ivl_dlopen(dll_path_, false);
|
||||
|
||||
if ((dll_ == 0) && (dll_path_[0] != '/')) {
|
||||
size_t len = strlen(basedir) + 1 + strlen(dll_path_) + 1;
|
||||
char*tmp = new char[len];
|
||||
snprintf(tmp, len, "%s/%s", basedir, dll_path_);
|
||||
dll_ = ivl_dlopen(tmp);
|
||||
dll_ = ivl_dlopen(tmp, false);
|
||||
delete[]tmp;
|
||||
}
|
||||
|
||||
@@ -2852,13 +2784,13 @@ bool dll_target::signal_paths(const NetNet*net)
|
||||
|
||||
void dll_target::test_version(const char*target_name)
|
||||
{
|
||||
dll_ = ivl_dlopen(target_name);
|
||||
dll_ = ivl_dlopen(target_name, false);
|
||||
|
||||
if ((dll_ == 0) && (target_name[0] != '/')) {
|
||||
size_t len = strlen(basedir) + 1 + strlen(target_name) + 1;
|
||||
char*tmp = new char[len];
|
||||
snprintf(tmp, len, "%s/%s", basedir, target_name);
|
||||
dll_ = ivl_dlopen(tmp);
|
||||
dll_ = ivl_dlopen(tmp, false);
|
||||
delete[]tmp;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,24 +22,12 @@
|
||||
# include "target.h"
|
||||
# include "ivl_target.h"
|
||||
# include "ivl_target_priv.h"
|
||||
# include "ivl_dlfcn.h"
|
||||
# include "StringHeap.h"
|
||||
# include "netlist.h"
|
||||
# include <vector>
|
||||
# include <map>
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
#include <windows.h>
|
||||
typedef void *ivl_dll_t;
|
||||
#elif defined(HAVE_DLFCN_H)
|
||||
# include <dlfcn.h>
|
||||
typedef void* ivl_dll_t;
|
||||
#elif defined(HAVE_DL_H)
|
||||
# include <dl.h>
|
||||
typedef shl_t ivl_dll_t;
|
||||
#else
|
||||
# error No DLL stub support for this target.
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The DLL target type loads a named object file to handle the process
|
||||
* of scanning the netlist. When it is time to start the design, I
|
||||
|
||||
@@ -70,7 +70,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.cc
|
||||
%.o: %.cc | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ stamp-pcb_config-h: $(srcdir)/pcb_config.h.in ../config.status
|
||||
cd ..; ./config.status --header=tgt-pcb/pcb_config.h
|
||||
pcb_config.h: stamp-pcb_config-h
|
||||
|
||||
%.o: %.cc
|
||||
%.o: %.cc | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.cc
|
||||
%.o: %.cc | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) -MD -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.cc vhdl_config.h
|
||||
%.o: %.cc vhdl_config.h | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c
|
||||
%.o: %.c | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c vvp_config.h
|
||||
%.o: %.c vvp_config.h | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#
|
||||
%define major 13
|
||||
%define minor 0
|
||||
%define rev_date 20251012
|
||||
%define rev_date 20260301
|
||||
# Normally, the suff-ix is %nil, meaning the suffix is to not be used.
|
||||
# But if the builder wants to make a suffixed package, he may set this
|
||||
# to a value (i.e. -test) to cause suffixes to be put in all the right
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
* This will be appended to the version. Use this to mark development
|
||||
* versions and the like.
|
||||
*/
|
||||
# define VERSION_EXTRA " (devel)"
|
||||
# define VERSION_EXTRA " (stable)"
|
||||
|
||||
# define VERSION_STRINGIFY(x) #x
|
||||
# define VERSION_STR(a,b,extra) VERSION_STRINGIFY(a.b) extra
|
||||
|
||||
+2
-2
@@ -104,11 +104,11 @@ dep:
|
||||
vhdlpp@EXEEXT@: $O
|
||||
$(CXX) -o vhdlpp@EXEEXT@ $(LDFLAGS) $O $(LIBS)
|
||||
|
||||
%.o: $(srcdir)/../libmisc/%.cc
|
||||
%.o: $(srcdir)/../libmisc/%.cc | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep/$*.d
|
||||
|
||||
%.o: %.cc vhdlpp_config.h
|
||||
%.o: %.cc vhdlpp_config.h | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep/$*.d
|
||||
|
||||
|
||||
+2
-2
@@ -123,11 +123,11 @@ Makefile: $(srcdir)/Makefile.in ../config.status
|
||||
dep:
|
||||
mkdir dep
|
||||
|
||||
%.o: %.c vpi_config.h
|
||||
%.o: %.c vpi_config.h | dep
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
%.o: %.cc vpi_config.h
|
||||
%.o: %.cc vpi_config.h | dep
|
||||
$(CXX) $(CPPFLAGS) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep
|
||||
|
||||
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009-2023 Tony Bybell.
|
||||
* Copyright (c) 2009-2026 Tony Bybell.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -3203,7 +3203,8 @@ static const char *modtypes[] = {"module",
|
||||
"vhdl_for_generate",
|
||||
"vhdl_if_generate",
|
||||
"vhdl_generate",
|
||||
"vhdl_package"};
|
||||
"vhdl_package",
|
||||
"sv_array"};
|
||||
|
||||
static const char *attrtypes[] = {"misc", "array", "enum", "class"};
|
||||
|
||||
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009-2018 Tony Bybell.
|
||||
* Copyright (c) 2009-2026 Tony Bybell.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -108,7 +108,8 @@ enum fstScopeType
|
||||
FST_ST_VHDL_GENERATE = 20,
|
||||
FST_ST_VHDL_PACKAGE = 21,
|
||||
|
||||
FST_ST_MAX = 21,
|
||||
FST_ST_SV_ARRAY = 22,
|
||||
FST_ST_MAX = 22,
|
||||
|
||||
FST_ST_GEN_ATTRBEGIN = 252,
|
||||
FST_ST_GEN_ATTREND = 253,
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@
|
||||
#include "compiler.h"
|
||||
#include "vpi_user.h"
|
||||
#include "sv_vpi_user.h"
|
||||
#include "vvp/ivl_dlfcn.h"
|
||||
#include "ivl_dlfcn.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
+2
-2
@@ -159,11 +159,11 @@ vvp@EXEEXT@: $O main.o
|
||||
endif
|
||||
endif
|
||||
|
||||
%.o: %.cc config.h
|
||||
%.o: %.cc config.h | dep
|
||||
$(CXX) $(CPPFLAGS) -DIVL_SUFFIX='"$(suffix)"' $(MDIR1) $(MDIR2) $(CXXFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep/$*.d
|
||||
|
||||
%.o: %.c config.h
|
||||
%.o: %.c config.h | dep
|
||||
$(CC) $(CPPFLAGS) $(MDIR1) $(MDIR2) $(CFLAGS) @DEPENDENCY_FLAG@ -c $< -o $*.o
|
||||
mv $*.d dep/$*.d
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001 Stephan Boettcher <[email protected]>
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; Copyright (c) 2001-2015 Stephen Williams ([email protected])
|
||||
; Copyright (c) 2001-2026 Stephen Williams ([email protected])
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
:ivl_version "12.0" "vec4-stack";
|
||||
:ivl_version "13.0" "vec4-stack";
|
||||
:vpi_module "system";
|
||||
|
||||
; This program is free software; you can redistribute it and/or modify
|
||||
|
||||
Reference in New Issue
Block a user