Magic 8.3 Revisions
Magic 8.2 Revisions
Magic 8.1 Revisions
Magic 8.0 Revisions
Magic 7.5 Revisions
Magic 7.4 Revisions
Magic 7.3 Revisions
Magic 7.2 Revisions
- posted: February 6, 2025 at 2:00am version: 8.3 revision: 517
Corrected a crash condition caused by yesterday's commit, if the new CIF operator is used in a tech file. Reworked yesterday's commit to add more related operators, so there are now four new ones (also renamed them): interacting, noninteracting, overlapping, and nonoverlapping. "interacting" now means overlapping or touching; so the four cases allow all variations of adjacency between the two material types.
- posted: February 5, 2025 at 2:00am version: 8.3 revision: 516
Added a new CIF operator "interact" which enumerates disjoint regions of a given type and retains only those regions which interact with (overlap) another given type. Both sets of types can be either magic database types or CIF temp layers. This will allow the implementation of rules that were not previously possible.
Added a new CIF operator "not-interact" which is complementary to "interact", because it was trivially easy to implement and saves processing vs. doing the same thing with two templayers and an "and-not" operator.
- posted: January 16, 2025 at 2:00am version: 8.3 revision: 515
Added a fallback method for "extresist" whenever a device terminal connection to a net that has been decomposed into a resistor array cannot be found. This indicates some fundamental error in the way extresist works. However, it should not be producing an invalid and unsimulatable netlist. Instead, it makes an arbitrary connection from the device terminal to the resistor array and adds an entry in the output netlist (.res.ext file). This results in a poor representation of the resistor network to that terminal, but an otherwise simulatable netlist. A warning is issued to note that an arbitrary connection has been made. This is most typically a "garbage in, garbage out" situation in which insufficient information exists in a layout to inform magic on which direction current is traveling through a net. However, it should be possible to rewrite the extresist code so that magic makes somewhat informed decisions about current paths and produces a halfway decent representation of the actual net, instead of just giving up on the detailed extraction.
- posted: January 13, 2025 at 2:00am version: 8.3 revision: 514
Modified a routine to return a valid string when attempting to generate a name for an instance that is set to NULL. It is not clear to me by an instance would have a NULL name, but apparently it can happen, and should not crash magic.
- posted: January 11, 2025 at 2:00am version: 8.3 revision: 513
gcc: support -Werror=format-security
Updated the version to go along with the merge of pul request
Also: Added the contents of the "readline" module back. This is generally unused, as it is incompatible with the Tcl/Tk build of magic. However, I had not intended to remove it, only move the name from "readline-4.3" to "readline". But "readline/readline" was in .gitignore, which caused the contents to be removed from the repository. This commit restores those files, and also prevents the readline directory Makefile from making a symbolic link called "readline" to itself, which was causing compile-time issues. The readline code is only kept for backwards compatibility with ancient versions of magic not using the Tcl/Tk interpreter.
- posted: January 8, 2025 at 2:00am version: 8.3 revision: 512
gcc11 -Wall -Wpedantic cleanup
utils/*.c: K&R conversion to ANSI
Also: hash.c: K&R conversion to ANSI and constify arguments / callback
Also: extflat: K&R various converted to ANSI (mainly due to bool use)
Also: ihash.c: cleanup warning use of void* with pointer arithmetic
Also: database/database.h.in: const PaintResultType *resultTbl
Also: gcc11 -Wall -Wpedantic cleanup (post TCL9)
Also: gcc11 -Wall -Wpedantic cleanup (post TCL9) FUN2CD() CD2FUN()
Also: gcc11 -Wall -Wpedantic cleanup (post __attribute__)
Also: gcc11 -Wall -Wpedantic cleanup (post __attribute__ DLONG_PREFIX)
Also: gcc11 -Wall -Wpedantic document for the next person
Also: Revert "commands/CmdFI.c: added CmdFlush_NoConfirm option to disable flush prompt
Also: feat: flush [-noprompt], option support
Also: docs: quit -noprompt
Also: feat: quit [exit_status], option support
Also: CIFread.h: fix struct cifrstyle.crs_layers type bool -> enum (unsigned char)
Also: resis.h: create RESTRUE to replace use of TRUE macro ((bool)1)
Also: Updated the version number to go along with the merge of several pull requests from Darryl Miles.
- posted: January 7, 2025 at 2:00am version: 8.3 revision: 511
Modified the code in ext2spice.c that prints parameter values; the former code attempted to determine the precision and generate an output without unnecessary trailing zeros. Unfortunately there were counterexamples that fail to be formatted correctly, as found by Mark Martin, and which generate output that has roundoff error. Reimplemented the method using code found on StackOverflow, which appears to solve the problem more robustly.
- posted: January 5, 2025 at 2:00am version: 8.3 revision: 510
printf: use compiler __attribute__((format (printf,fff,aaa)))
printf: vararg functions use 'const' for format string
Also: magic.h: add macro __unused__
Also: utils/magic.h: ATTR_UNREACHABLE ATTR_NORETURN
Also: utils/main.h: MainExit() add ATTR_NORETURN hint
Also: grOGL1.c: use ATTR_UNREACHABLE to help analyser
Also: utils/magic.h: ATTR_SENTINEL __attribute__ ((sentinel))
Also: utils/magic.h: ANALYSER_xxxxxxxxxx __attribute__
Also: geometry.c: TxError() constify call-site
Also: tclmagic.c: printf style constify fmt call-site
Also: txOutput.c: printf style constify fmt call-site
Also: LIBtextio.c: printf style constify fmt call-site
Also: DRCtech.c: printf style constify fmt call-site
Also: ext2sim.c: printf style constify fmt call-site
Also: ext2hier.c: printf style constify fmt call-site
Also: EFerr.c: printf style constify fmt call-site
Also: extflat.h: efReadError() printf ATTR_FORMAT_PRINTF_1
Also: ext2spice.c: printf style constify fmt call-site
Also: TCL9: magic.h ClientData type change helper macros
Also: TCL9: _ANSI_ARGS_ compatibility macro removal
Also: TCL9: Tk_Offset() macro removal
Also: TCL9: CONST removal (all current compilers support const keyword)
Also: TCL9: CONST84 removal (all current compilers support const keyword)
Also: TCL9: Tcl_xxxxxxx() API changes around Tcl_SaveResult()
Also: TCL9: Tcl_Size type introduction
Also: TCL9: Tk_ConfigureWidget() function signature change
Also: TCL9: plugin createProc() function signature change ImgLayerCreate()
Also: TCL9: ClientData macro header file changes
Also: TCL9: ClientData macro assignment and access usage
Also: TCL9: Tcl_SetExitProc() API was removed
Also: TCL9: Tcl_InitStubs(version="9.0")
Also: TCL9: Tcl_GetIntFromObj() call checked
Also: TCL9: CmdLQ.c Tcl_AppendResult(... (char*)NULL) cast sentinal
Also: TCL9: TxResetTerminal(bool force) added arguments
Also: TCL9: *.tcl changes $::tcl_platform
Also: TCL9: FIXME OPTIONAL magic.h ClientData
Also: Revert "TCL9: *.tcl changes $::tcl_platform
Also: HACK tkcon.tcl to get it running
Also: cif/CIFgen.c: fix incorrect type bool -> int
Also: GHA: MacOS maintenance update
Also: CalmaRdpt.c: simplfy use of sprintf()
Also: calma: use 'const' with readonly data
Also: calma: use 'const' with 'rcsid'
Also: cif: use 'const' with 'rcsid'
Also: CIFrdpoly.c: qsort 'compar' function argument prototype fix
Also: cif: use 'const' with readonly data (also consumer DBpaint)
Also: cmwind: use 'const' with 'rcsid'
Also: cmwind: use 'const' with readonly data
Also: command: use 'const' with 'rcsid'
Also: command: use 'const' with readonly data
Also: debug: use 'const' with 'rcsid'
Also: debug/hist.c: constify and add prototype
Also: debug/debug.c: constify and add prototype
Also: Remove superfluous parenthesis around regular type declarations
Also: fix infinite def write
Also: lef/defWrite.c: reworked kareefardi_fix-def-write
Also: Updating the revision number to go along with the merging of a series of pull requests from Darryl Miles.
Also: Modified some lines in tkcon.tcl that make it compatible with both Tcl 8.6 and Tcl 9.0, fixing some features that got broken with an attempt to update the script for version 9.0.
- posted: December 27, 2024 at 2:00am version: 8.3 revision: 509
K&R calma: missing prototype: calmaWriteContacts()
K&R calma.h: conversion to ANSI
Also: K&R calmaInt.h: conversion to ANSI
Also: K&R calma: prototype for non-existent function: calmaWriteMarkFunc()
Also: K&R calma: prototype for non-existent function: calmaMergeBoundaries()
Also: K&R calma: remove system header time() K&R style prototype
Also: configure: autoconf regen (2.69) to add HAVE_SYS_TIME_H
Also: K&R calma/*.c: bulk forward reference function prototype conversion
Also: K&R calma/*.c: bulk function implementation conversion
Also: K&R CalmaRead.c: too many args for calmaLookCell()
Also: K&R calma: missing HAVE_ZLIB ifdef around function using type gzFile
Also: K&R CalmaWriteZ.c: move typedef to before forward declaration
Also: K&R CalmaWrite.c: move typedef to before forward declaration usage
Also: K&R calma: move internal prototypes and typedef to calmaInt.h
Also: commands/CmdFI.c: added CmdFlush_NoConfirm option to disable flush prompt
Also: GHA: main-macos.yml
Also: MacOS: FREAD rename to magicFREAD due to sys/fcntl.h definition
Also: scripts/configure_mac --x-includes=... --x-libraries=...
Also: MacOSX diagnostics Kick The Tyres
Also: configure.in: X11 detection and option order
Also: GHA: main.yml move MacOSX to its own workflow
Also: MacOSX diagnostics Search
Also: main-macos.yml install libglu freeglut on x86_64
Also: main-macos.yml log output extract CONFIGURE_ARGS
Also: main-macos.yml add Summary step
Also: main-macos.yml add Prepare archive and Upload archive steps
Also: calma/CalmaWrite.c: calmaProcessBoundary() Dereference of null pointer
Also: calma/CalmaWrite.c: calmaProcessBoundaryZ() Dereference of null pointer
Also: ext2spice.c: pname used before initialization
Also: EFbuild.c:1330 ASSERT(nn) added
Also: EFname.c: potential dereference of a null pointer
Also: extflat/EFname.c: EFHNBest() add argument ASSERT to convey intention
Also: ExtBasic.c: oppdir, The right operand of '==' is a garbage value
Also: gaStem.c: type, The left operand of '==' is a garbage value
Also: grDStyle.c: GrLoadStyles() scount, The left operand of '<' is a garbage value
Also: grDStyle.c: newres, Branch condition evaluates to a garbage value
Also: grOGL1.c: pipehandler() XEvent processing NULL deref
Also: grOGL1.c: GrOGLIconUpdate() potential -1 out-of-bound access
Also: grOGL3.c: font, The left operand of '==' is a garbage value
Also: grOGL3.c: add GrOGLTextSize() error return
Also: lefRead.c: LefError() add ASSERT(type) for incorrect caller usage
Also: grTCairo1.c: GrTCairoIconUpdate() potential -1 out-of-bound access
Also: grTk1.c: GrTkIconUpdate() potential -1 out-of-bound access
Also: grTOGL1.c: GrTOGLIconUpdate() potential -1 out-of-bound access
Also: grX11su1.c: GrX11IconUpdate() potential -1 out-of-bound access
Also: K&R: prototype for non-existent function: CIFGetDefaultContactSize()
Also: K&R: cif.h conversion to ANSI
Also: K&R: CIFint.h conversion to ANSI
Also: K&R: CIFread.h conversion to ANSI
Also: K&R: cif/*.c bulk forward reference function prototype conversion