New in 0.29 * Initial implementation of embedded PSL assertions. * Improve speed of non-sensitized processes. * Improve speed of string case statement (dichotomy instead of linear search). * bug fix and improvments in SDF annotator. * bug fix when the bound of a string literal type is not locally static. * bug fix: gcov crash New in 0.28 (2009-09-17) * Add --std=08 to enable vhdl 2008 features. * Support all-sensitized processes from vhdl 2008. * bug fix: handle 'pos/'leftof/'rightof/'succ/'pred in concurrent statements. * bug fix: overloaded resolution functions. * bug fix: direct drivers elaboration for unconstrained array signals. * Documentation typos (thanks to Peter Huewe). * many minor bugs fixed. New in 0.27 (2008-07-01) * Improve SDF annotation (handles much more annotations) * Add --ieee-asserts= option to control assert messages from ieee packages. * bug fix: aliases in port map * bug fix: crash during elaboration for top entities with ports/generic * bug fix: crash when string literal in aggregate. * bug fix: concatenation with an array subtype element. * bug fix: non-static subtype used by type conversions in associations. * bug fix: clear timeout in wait for. * minor bugs fixed. New in 0.26 (2007-04-08) * GHDL_PREFIX environment variable overrides default installation prefix. * simulation speed improved with 'direct drivers'. * windows version: exceptions are caught * windows version: use executable path instead of registry for prefix * bug fix: individual association by expression (was not working) * bug fix: individual association of string * bug fix: within windows code generator * bug fix (windows): large local variables crashed * bug fix: crash when overloaded aggregate target. * bug fix: forbid individual association with open * bug fix: crash when bad array prefix * bug fix: correctly extract sensitivity of record aggregate New in 0.25 (2006-08-11) * bug fix: ieee math libraries available when --ieee=synopsys. * bug fix: 'image in package bodies. * bug fix: scan of fp literals. * bug fix: interface identifier is checked for conformance rules. * bug fix: avoid a crash in case of error in configuration specification. * bug fix: non-static choice in unidim case are now correctly checked. * bug fix: do not crash in case of bad use of incomplete type. * bug fix: 'range are not expressions. * bug fix: handle file declaration in concurrent procedure calls. * bug fix: correctly handle static 'image attribute. * bug fix: handle in-conversion for signal associated with an expression. * bug fix: emit an error when a function tries to exit without a return. * vpi functions to schedules values. * math_real now works under windows. * documentation updated for windows. * filename/line number displayed for range error during signal update. New in 0.24 (2006-06-25) * bug fix: correctly handle empty file name. * bug fix: correctly handle unused subprograms of protected types. * bug fix: avoid a crash if unused library are use'd. * bug fix: avoid crashes during error reports. * bug fix: add a missing case array conversion. * bug fix: build on x86_64. * bug fix: code generated for conversion after mod/rem (windows version). * bug fix: -fexplicit crashed with std.standard functions. * bug fix: handle recursion of pure/wait checks. * bug fix: correctly handle error cases of user attributes * bug fix: time and character read procedure of std.textio. * bug fix: initialize by value parameters (instead of copy-in). * Handle enums with more than 256 elements. * Relax expr static rules in 93c to analyze Xilinx core lib from 8.1 * man page (ghdl.1) added. * windows installer improved New in 0.23 (2006-05-16) * bug fix: handle implicit conversion in resolution functions. * bug fix: missing implicit conversion added. * bug fix: avoid a crash in error. New in 0.22 (2006-03-28) * direntry added in ghdl.texi * bug fix: avoid crash if type conversion is indexed/sliced. * bug fix: do not allow anymore uncomplete individual association * bug fix: missing check on array association * bug fix: check bounds for val attribute on enumerated type. * bug fix: array inequality of locally static expressions evaluated. * bug fix: configuration issue. * bug fix: --warn-no-vital-generic is now working. * Documentation updated (explain bug in Xilinx unisim library). * Updated to gcc 4.1 * math_real updated. New in 0.21 (2005-12-18) * bug fix: line number for some bound violation messages. * bug fix: improved message error for deferred constants. * bug fix: file parameter for functions. * bug fix: universal real divided by integer handled in locally static expr. * bug fix: std_ulogic types and arrays are known by vpi. * bug fix: missing space added in VCDs for integers. * bug fix: CR+LF is also end of line for std.textio.readline. * bug fix: avoid a crash if parse error on choice. * bug fix: handle 'image in nested subprograms. * bug fix: handle 'image for floating point types. * bug fix: do not use varargs C calls. * bug fix: handle missing EOL for readline. * local optimizations (loops, indexed name). * simulation speed improved by 20% due to processes mngt optimizations. * stack-switching code ported to x86_64 (amd64/em64t). * stack-switching code ported to ia64. * bug fixes for x86_64. * --syn-binding option extended (see documentation). New in 0.20 (2005-10-15) * stack memory usage improved for shortcurt operations. * gtkwave now displays nice waves for bit and std_ulogic signals. * time unit is displayed in assert/report message. * -fexplicit option added. * integers are now written in VCD files. * hash table added for design_units (speed optimization). * range checks slightly optimized. * --vcdz run time option added. * improved error message for invalid expressions. * grt now compiles with GNAT-GPL-2005 (use a GNAT bug work-around). * bug fix: handle more types for --dump-rti and --wave. * bug fix: 'last_event and 'last_active (bad value returned when no previous event or activity). * bug fix: 'image attribute for physical types (was bad unit). * bug fix: 'image attribute for locally static integers. * bug fix: for reading .ghw files. * bug fix: in --xref. New in 0.19 (2005-08-17) * bug fix: internal error (missing close_temp for implicit read) * bug fix: --xref-html: avoid to reanalyze unit. * bug fix: handle implicit conversion for 'image. * bug fix: aggregate assigned to an aggregate: avoid crash. * bug fix: array attributes on unconstrained array: avoid crash. * bug fix: 'last_event returns time'high if no event. * bug fix: 'last_event on array (uninitialized variable). * bug fix: allow calling rising_edge with a port of mode buffer. * bug fix: allow aliases of unconstrained arrays. * bug fix: bound error on aggregate with an unused other association. * bug fix: catch indexed/sliced component (was crashing). * bug fix: catch index/slice of a type conversion (was crashing). * bug fix: handle bad component specification in conf (was crashing). * bug fix: missing ports in component (was crashing). * bug fix: component configurations were dicarded by bug in some cases. * bug fix: no more unused warnings for subprograms in architectures (they may be used in configuration). * bug fix: allow conversion in component configuration. * bug fix: conversion in associations with not statically defined array signals. * ADAFLAGS has been replaced by GHDL_ADAFLAGS to ease compilation. * ieee.math_real and ieee.math_complex added (only partially, based on a draft). * current time is printed with assert/report messages. * stack switch assembly code ported to powerpc-linux. * documentation on how to use grt from Ada added. * allow indexes of indexed names to be non-static in case statements (93c only) (this is not standard, but I can't see why it should be required). * unbound ports of entities are now reported with --warn-binding. * some error or warning messages improved. * --wave option added to dump waveforms (using ghw file format). New in 0.18 (2005-03-12) * bug fix: in textio.read for time. * bug fix: file_close does not crash if file was already closed. * bug fix: spurious unused warnings for protected types. * bug fix: allow subtype names in slice during sensitivity extraction. * bug fix: correctly set the default value of collapsed ports. * bug fix: handling of stack2 (aka large concatenation bug). * Keep last line number to speed-up line number look-up (improvement). * --warn-default-binding added, --warn-binding rewritten. * 'value implemented for integer numbers. New in 0.17 (2005-02-26) * command --elab-run added. * Code generation for aggregate improved. * bug fix: port map with expression (corner case ?). * Library name of option --work= is checked. * bug fix: forbid empty extended identifiers. * --no-run option added to prevent simulation (may be used to disp tree only). * disp signal name in error when multiple sources drive an unresolved signal. * -m/--gen-makefile now handle several libraries. * dependences are not stored anymore in libraries (shorter/faster). * bug fix: enumeration literal xrefs. * mentor version of ieee library is now provided. * bug fix: non-object name in sensitivity list crashed. * handling of universal types is more consistent with LRM (almost corner cases). * iterator and indexes whose bounds were universal expressions are now of type integer or erroneous, according to the weird LRM rules. * handle selected name as entity name in architecture/configuration. * bug fix: correctly handle alias of signals in processes. New in 0.16 (2005-01-02) * bug fix: better handling of errors in type conversion. * bug fix: few uninitialized variables in ghdl itself caught. * std.textio: readline has no limits on line length. * bug fix: parse error: 'begin' in aggregates. * bug fix: bad 'unused subprogram' warnings. * command -r (run) added. New in 0.15 (2004-10-13) * library file format modified to handle relative pathes. * install fixed to use relative pathes. * internal change: ortho API modified (constant are not anymore expressions). New in 0.14 (2004-08-29) * bug fix: resolution function can be an expanded name. * bug fix: missing type check in a corner case. * bug fix: emit an error when EOF is reached while a text file is read. * bug fix: std.textio.read for negative number. * bug fix: std.textio.read [integer]: correctly handle end of line. * bug fix: parameters of protected type: handled and checked. * bug fix: gen_tree.c modified to work with sparc. * pretty printing in HTML command (--pp-html) added. * xref generation in HTML command (--xref-html) added. * syntax checking command (-s) added. * Code generation in whole command (-c files -e unit) added. * warns for unused subprograms. * bug box added to help bug reports. * -s (syntax check) command added. * Missing grt subprogram to close non-text file added. * maximum line length of std.textio.readline extended to 512 characters. * std.textio.readline assert error on truncated lines. * Handle P32 and P64 in --trace-signals * sequentials statements are not canonicalized (should be faster). * DESTDIR added in Makefile to ease packaging. * for -m command, re-parse modified files of the work library. * Many checks added on interfaces. * Many checks added on associations, better handling of conversions. * Checks for unassociated entity ports at elaboration. New in 0.13 (2004-06-26) * support of 64bits integers and 32bits time (not yet user available) * handle 'high and 'low attributes on non-locally static types and subtypes. * Many warning switches added (to control output of warnings). * --gen-makefile mode added to ghdl (to generate a Makefile) * alias identifier restrictions of vhdl-02 implemented. * declarative region for architecture from vhdl-02 implemented. * buffer port association rules of vhdl-02 implemented. * method operator restrictions of vhdl-02 implemented. * 'driving and 'driving_value implemented. * run-time bound check error message now contains file name and line number. * strings are not stored anymore with the identifiers. * parser does not back-track anymore. * bug fix: name clash in generated .s files (arch and port/generic names). * bug fix: implicit conversion of signal parameters. * bug fix: handle locally static type conversion of arrays. * bug fix: stabilize during elaboration of an unconstrained signal. * bug fix: revert previous vhdl87 conf spec bug fix, according to INT-1991 issue 27. * bug fix: multiple visibility of declarations (eg: direct and alias). * bug fix: names attribute of non-object aliases. New in 0.12 (2004-05-30) * simulation speed improved (2 fold) due to reduced activity optimization. * type conversion handled in associations * make mode of ghdl improved. * bug fix: attribute specification * bug fix: allow discrete type marks in choices * bug fix: handling of generate statement for VCD * bug fix: allow dereference in variable associations * bug fix: allow function conversion in block port map * bug fix: vhdl87: apply configuration specification inside generate stmts. * bug fix: catch non-passive concurrent procedure calls in entity. * bug fix: association of an unconstrained port with an expression. * bug fix: declaring an uncons. array subtype of an uncons. array subtype. New in 0.11.1 (2004-04-24) * bug fix: corner case of signal not updated * bug fix: handle 'stable, 'quiet with a paramater > 0 * bug fix: typos (missing '+ ') in sparc.S New in 0.11 (2004-04-17) * bug fix: in code generation for an aggregate. * bug fix: run-time check of ascending order of projected transactions. * bug fix: empty sequence of stmts in case alternatives (unidim array). * bug fix: evaluation of locally static 'range attribute. * signal collapsing improved. * simulation kernel speed improved (maybe 5x faster). * --lines mode of ghdldrv added. * boolean signals are now dumped in vcd files. * bug fix: implicit conversion in formal function convertor. * bug fix: return type is a type mark. New in 0.10 (2004-02-28) * architecture with many instances can be compiled with less memory. * --stats option added to the simulator, to evaluate performance. * signals are now collapsed between instances, if possible. * simulation is about 3x faster. * sparc port available (source only). * more checks added for attribute specification. * bug fixed: absolute source files. * chop command added (split files by design unit). * bug fixed: empty sequence of statements in case alternatives. New in 0.9 (2004-02-01) * VITAL level 0 restrictions checks added. * VITAL 2000 packages provided. * run-time information (such as signal names) rewritten. * SDF support added (partial and experimental). * bug fixed: allow elaboration even if no package body if the package is present in a file but not used by the hierarchy. * bug fixed: delay_length range is pre-elaborated (was not in v93). * bug fixed: crashed when a design unit is not found at elaboration. * bug fixed: allow association of 'stable, 'quiet... with signal interfaces. * bug fixed: concurrent procedure call creates a non-sensitized process. * bug fixed: effective value of non-scalar resolved signal might not be set. New in 0.8 (2003-11-05) * protected types (from 1076a/1076-2000) implemented. * file declarations are finalized in subprograms. * an exit call-back has been added in the run-time library. * internal modifications (nodes are stored in a table). * signal declaration not allowed in processes (bug fixed). * name of generated executable can be set with '-o' option. * IVI (ivi.sourceforge.org) support through a few VPI subprograms. * pure and wait checks added. * out ports are correctly dumped in VCD files. * several bugs fixed. New in 0.7 (2003-08-02) * layout of internal nodes improved. * incremental binding (vhdl93). * association of in port with expressions (vhdl93). * instantiation added in hierarchy (bug fixed). * individual association of subelements by expression (bug fixed). * --disp-time option added. * --stop-delta option is working (bug fixed). * make mode (ghdl -m) rewritten. * 'simple_name, 'path_name and 'instance_name added (vhdl93). * correctly handle operators names at function call (bug fixed). * several small bugs fixed. New in 0.6 (2003-06-09) * internal modifications (single linked list used instead of arrays). * bug fixed: xnor on bit and boolean is working. * Mentor version of std_logic_arith is provided. * postponed handled (vhdl 93). * declarations allowed in a generate statement (vhdl 93). * bug fixed: selected_name list in use clauses. * non object aliases handled (vhdl93). * signatures handled (vhdl93). * many other small bug fixes. New in 0.5 (2003-05-10) * foreign attribute handled. You can now call subprograms defined in a foreign language (such as C or Ada). * ghdl entry point added: you can start the VHDL simulation from your own program. * bug fixed: triple use. * bug fixed: incomplete types New in 0.4.1 (2003-04-07) * bug fixed in the vcd output. New in 0.4 (2003-04-02) * libgrt does not depend on GNAT library anymore. Installation requirements are reduced. * 'delayed attribute implemented. * 'transaction attribute implemented. * unaffected (from vhdl-93) implemented. * ghdl action '--disp-standard' prints the std.standard package. * exponentiation operator ("**") implemented for all integer and floating point types. * bug fix: subprogram interfaces are now elaborated. * many other small bug fixes.