Commit Graph

  • a809361d69 fix(ext2spice): use ';' instead of '$' for NGSpice end-of-line comments Torleif Skår 2026-06-03 14:38:06 +0200
  • bbb6eece21
    Merge f0c2d88b6f into d9e6c78adb Gonsolo 2026-05-30 03:25:58 +0800
  • 5619900cf1
    Merge 8a47a8ac58 into d9e6c78adb anirban 2026-05-30 03:24:58 +0800
  • 3f3c715217
    Merge ff6bcecd9f into d9e6c78adb Darryl Miles 2026-05-30 03:19:33 +0800
  • c69ad8efe7
    Merge 402080049b into d9e6c78adb Darryl Miles 2026-05-30 03:19:20 +0800
  • 0f45bc90a0
    Merge fb85e97b92 into d9e6c78adb Oran C 2026-05-30 03:10:44 +0800
  • 85d7d524d6
    Merge f6b4671d96 into d9e6c78adb Dan Moore 2026-05-30 03:07:37 +0800
  • 82062a5c26
    Merge 16c0ab35b1 into d9e6c78adb Intubun 2026-05-29 18:21:46 +0000
  • 16c0ab35b1 update build.sh and readme.md Enno Schnackenberg 2026-05-29 20:21:31 +0200
  • e188ac3004 Changed versioning scheme for npm package and update Readme.md Intubun 2026-05-29 13:10:44 +0200
  • d9e6c78adb Corrected an issue that was caused by early work on extresist: The original version of extresist only worked with 4-terminal FET devices, and handling of devices with fewer terminals was ignored, and never properly dealt with. This commit fixes the issues with devices such as diodes that have fewer terminals. master 8.3.652 magic-8.3 R. Timothy Edwards 2026-05-27 10:52:44 -0400
  • d8580be739 Corrected a problem caused by fixing the "select visible" command with respect to visible/invisible labels and cells. The change inadvertently made the "select area" command option stop selecting labels on the same type as the layers being selected. This has been fixed. 8.3.651 R. Timothy Edwards 2026-05-26 17:01:45 -0400
  • 1a16502a69 Fixed a potential string overrun crash condition when doing "getnode", as there is no limit on the length of a hierarchical node name, and no check on the string length when copying back into a fixed-length character array. 8.3.650 R. Timothy Edwards 2026-05-25 14:39:12 -0400
  • 5ecf10c022 Updated the version to go along with the merge of pull request #521 from Sylvain Munaut, which fixes an issue with the "property" command when using the recently-added plane properties. R. Timothy Edwards 2026-05-25 12:07:33 -0400
  • e366cf6a4c commands: Fix parsing of plane properties in case of single string Sylvain Munaut 2026-05-25 12:49:52 +0200
  • 7ecebb5dd6 Corrected a stupid omission to set the plane hint during a search in "extresist", which when missing causes the plane to be searched repeatedly from the same point instead of from the last place searched. Can knock down the "extresist" time by up to 50%. 8.3.649 R. Timothy Edwards 2026-05-24 22:01:29 -0400
  • 099d513011 Corrected the "Pick" button action in the "Library Manager" window; this had two issues: (1) "getcell" was not being called with "child 0 0", leading to child cells that are not placed where expected in relation to a grid snap setting; and (2) "cursor" was assuming internal units and needed that to be explicitly stated using "cursor internal". R. Timothy Edwards 2026-05-24 16:23:18 -0400
  • e45399d347 Yet another optimization on "extresist", to remove the calls to DBPaint() and DBErase(), which are meant as high-level calls from the "paint" and "erase" commands and are not appropriate for low- level tasks like erasing all contacts out of a database. This cut maybe 40 to 50% time off of the resistance extraction. 8.3.648 R. Timothy Edwards 2026-05-22 12:02:03 -0400
  • a7cb1f9a6e update npm versioning, build.sh and delete tcl.ref and fix to latest stable Intubun 2026-05-22 12:49:02 +0200
  • 7a3717b02a Another performance optimization to "extresist", this one to avoid re-parsing a linked list from the current breakpoint to the end to find all entries pointing to the same node. Instead, the change to be made is saved in a hash table and applied at the following link, so only one pass through the linked list is required. 8.3.647 R. Timothy Edwards 2026-05-21 19:55:50 -0400
  • 8e70cbffc8 build-tcl-wasm.sh: guard against missing tclConfig.sh after emconfigure Intubun 2026-05-21 14:40:27 +0200
  • 439730a13b fix: sscanf length bound in TclmagicRegisterCommands; show output-tcl in CI Intubun 2026-05-21 14:28:09 +0200
  • 7e26b59f38 fix: three correctness fixes before PR Intubun 2026-05-21 14:20:39 +0200
  • fc3d8cf352 fix: remove remaining intubun/tcl references and dead workflow comment Intubun 2026-05-21 13:28:46 +0200
  • eae3b70619 refactor(tcl-examples): rename TCL scripts, drop dead pcell.tcl, fix comments and naming Intubun 2026-05-21 12:39:38 +0200
  • c78a81aa56 fix(pcell): use magic::load to switch cell context before painting Intubun 2026-05-21 10:37:45 +0200
  • 1f19ac913f test(tcl): add TCL variant test suite including PCell generation Intubun 2026-05-21 10:25:58 +0200
  • 8fdd2eec20 fix(tcl-wasm): register magic:: Tcl commands after C initialization completes Intubun 2026-05-21 10:25:51 +0200
  • 4eb8a4da40 docs(npm): add GitHub Packages install instructions and TCL variant documentation Intubun 2026-05-21 10:25:40 +0200
  • 64fcbb6581 wasm: increase initial memory to 64 MB and stack to 10 MB for larger designs Intubun 2026-05-21 10:25:33 +0200
  • 7e02395591 Update tcl.ref Intubun 2026-05-18 08:28:31 +0200
  • bf9559cecd Update main-wasm.yml Intubun 2026-05-18 08:18:59 +0200
  • 6b3b2f5162 Add TCL-embedded WASM build variant alongside the existing non-TCL build Enno Schnackenberg 2026-05-17 21:41:03 +0200
  • a062fdcfe0 Continued optimizing poorly written routines in "extresist". Changed the "ResDissolveContacts()" routine to avoid running both redundant and useless code. Changed the breakpoint sorting routine from a bubble sort to a merge sort for linked lists longer than 16, as merge sort is more efficient for long lists. 8.3.646 R. Timothy Edwards 2026-05-20 19:02:22 -0400
  • 29447a35cd Delete duplicate magicps.pro file 8.3.645 Ahmed Nematallah 2026-05-17 03:46:10 +0200
  • 1dcd09e20c Update the postscript file to be able to support much more stipples Ahmed Nematallah 2026-05-17 03:41:07 +0200
  • 9626b5e8c9 Changed two sprintf() to snprint() on recommendation from an AI. R. Timothy Edwards 2026-05-19 12:21:54 -0400
  • 3f0ef53527
    Delete duplicate magicps.pro file Ahmed Nematallah 2026-05-17 03:46:10 +0200
  • f3c2571b55
    Update the postscript file to be able to support much more stipples Ahmed Nematallah 2026-05-17 03:41:07 +0200
  • 580c80a540 fix: V-001 security vulnerability orbisai0security 2026-05-16 08:05:47 +0000
  • 256955f48e Created alternative algorithms for routines ResParallelCheck() and ResTriangleCheck(). By using hash tables, I reduced ResParallelCheck() from O(N^2) to O(N), and I reduced ResTriangleCheck() from O(N^3) to O(N^2); however, it is a bit better than that because previously there was an N^2 loop over items in the same list, so if one list happened to be very long, then N^2 would be huge; whereas now the N^2 is the length of two lists multiplied together, where both lists would have to be very long to have the same performance impact. It appears that long resistor lists are pathological and rare. For an example pathological case, the extresist runtime has been reduced from hours to seconds. 8.3.644 R. Timothy Edwards 2026-05-15 21:38:32 -0400
  • b983e33be7 Corrected an error with the recently-added "exception" DRC rule. The logical expression for determining an excepted area was wrong for one direction, resulting in false positive DRC violations. R. Timothy Edwards 2026-05-15 11:04:23 -0400
  • db224105a7 Found another couple of places where the environment variable HOME was checked but no check was made on whether or not the result was NULL. This resolves issue #490 in the github issue tracker. 8.3.643 R. Timothy Edwards 2026-05-13 09:46:21 -0400
  • e5a6cf0df9 Handled the case in which environment variable HOME is not set. See github issue tracker issue #490. There were two cases: When running without the Tk console, a NULL value was being passed to a string comparison. When running with the Tk console, two variables were not initialized. Both prolems have been fixed. R. Timothy Edwards 2026-05-13 08:51:16 -0400
  • 22e182f908 One additional modification to check for a space in the option with no following text. R. Timothy Edwards 2026-05-13 08:38:11 -0400
  • 0013dda92d Response to issue #513 in the github issue tracker: The command- line parser does not recognize arguments that are both in the same word and also space separated; this is easy to do from, e.g., a python interpreter by setting an option as a single string as in "-d null"; it is harder to do from the command line, but can be done with quotes, as in 'magic "-d null"'. R. Timothy Edwards 2026-05-13 08:30:32 -0400
  • 85561d0503 Corrected an error with the new "tagged" operator when used in "cifinput"; instead of cifSrTiles(), which ignores the "area" argument and searches over the entire plane, it should have been using cifSrTiles2(), which translates the area to CIF coordinates and searches only over that area. Otherwise, everything on the same layer in a cell gets tagged, rather than just connected material. 8.3.642 R. Timothy Edwards 2026-05-12 12:06:16 -0400
  • eb83075e16 Modified EXT_DOALL to include EXT_DOUNIQUE. Prior to a recent change, unique node names could only be enforced by running the command "extract unique", and there was no way to ensure that the user would run the command as part of the extraction recipe. Now that it has been changed to an extraction option instead of a separate command, and does not permanently alter labels in the layout like the standalone command version did, it is possible to include the setting in "extract do all", making it run by default, and requiring the user to manually turn it off for certain use cases (which are relatively rare). R. Timothy Edwards 2026-05-12 10:36:36 -0400
  • 8fea20425e Merged PR #512 from Intubun, reworking the wasm workflow. Updated the version to force a test of the workflow. R. Timothy Edwards 2026-05-12 08:57:42 -0400
  • ad14c26597 ci(wasm): also publish on tag push Intubun 2026-05-12 11:19:11 +0200
  • 19a2d5c57c ci(wasm): auto-publish @<owner>/magic-vlsi-wasm to GitHub Packages when VERSION changes Intubun 2026-05-12 11:13:25 +0200
  • fb01f77755 Updated the version to go along with the merge of pull request the repo parsing on opencircuitdesign.com, since yesterday I found out that the tags were not updating, caused by a documentation change in a copy of the repository that created a merge conflict when seen by the script. Will check tomorrow that everything ran smoothly overnight. 8.3.641 R. Timothy Edwards 2026-05-11 14:23:04 -0400
  • 9d74f4f9a7 update main.yml Enno Schnackenberg 2026-05-11 06:59:25 +0200
  • 9af6b329de update main.yml Enno Schnackenberg 2026-05-11 06:57:32 +0200
  • 6d3494a8fe Update extract.tcl Enno Schnackenberg 2026-05-07 07:17:45 +0200
  • 068b93608a Update extract.tcl Enno Schnackenberg 2026-05-07 06:57:26 +0200
  • e62626fc06 Update extract.tcl Enno Schnackenberg 2026-05-07 06:53:37 +0200
  • 145fba9ac0 Update extract.tcl Enno Schnackenberg 2026-05-07 06:49:58 +0200
  • 19113bec89 Update extract.tcl Enno Schnackenberg 2026-05-07 06:48:02 +0200
  • 480c40f516 Update extract.tcl Enno Schnackenberg 2026-05-07 06:44:13 +0200
  • 1fffc2b8b4 Update main-wasm.yml Enno Schnackenberg 2026-05-06 20:06:47 +0200
  • 392d9c4408 Rework WASM CI structure Enno Schnackenberg 2026-05-06 19:47:08 +0200
  • c8b50a702d Change npm examples to scmos examples Enno Schnackenberg 2026-05-06 19:16:55 +0200
  • 354416f717 ci: add ARM WASM build job with Emscripten diagnostics to CI-aarch64 Intubun 2026-05-06 11:02:29 +0200
  • f802d729af Annotate ClientData callbacks: /*ARGSUSED*/ + /* UNUSED */ markers Intubun 2026-05-06 10:43:34 +0200
  • 1d402d2c5f npm: stamp version as base-YYYYMMDD.hash on every CI build Intubun 2026-05-06 10:38:06 +0200
  • 2d6a3a8ed6 CI: publish to GitHub Packages, emsdk latest by default, add ARM WASM job Intubun 2026-05-06 07:27:29 +0200
  • 8560027569 Add npm package and CI workflows Intubun 2026-05-04 13:32:51 +0200
  • 02087ea3f8 cmwind: ARGSUSED/UNUSED annotation on CMWreposition (newScreenArea unused) Intubun 2026-05-06 07:01:54 +0200
  • 8e8fada32f Add WASM entry point and Emscripten build wiring Intubun 2026-05-04 13:31:41 +0200
  • f4c22438c6 Wire up headless / WASM mode at module boundaries Intubun 2026-05-04 13:31:11 +0200
  • fdfb54badb graphics/grNull.c: typed no-op stubs for WASM call_indirect Intubun 2026-05-04 13:30:21 +0200
  • 6fc7b30386 Save and restore GrDisplayStatus across long operations Intubun 2026-05-04 13:29:49 +0200
  • 476bb5474c Add ClientData parameter to indirect-call callbacks for WASM Intubun 2026-05-04 13:29:11 +0200
  • 537d370536 Fix five latent bugs surfaced while porting to WASM Intubun 2026-05-04 13:28:42 +0200
  • 109a47a8b8 update main.yml Enno Schnackenberg 2026-05-11 06:59:25 +0200
  • e985eb4d27 update main.yml Enno Schnackenberg 2026-05-11 06:57:32 +0200
  • 9825aa7cf7
    Merge branch 'RTimothyEdwards:master' into master Intubun 2026-05-11 06:45:39 +0200
  • bdc0325901 Extended the use of "ext2spice resistor tee on" to include DEV_RSUBCKT as well as (previously implemented) DEV_RES. The handling of DEV_RSUBCKT includes checking if the subcircuit has a substrate pin, and zeroing the capacitance to substrate for the resistor node, under the assumption that the parasitics are part of the resistor subcircuit model. 8.3.640 R. Timothy Edwards 2026-05-09 20:05:52 -0400
  • 998b931a2a
    Merge branch 'RTimothyEdwards:master' into master Intubun 2026-05-08 08:49:07 +0200
  • be0c90337e Update extract.tcl Enno Schnackenberg 2026-05-07 07:17:45 +0200
  • 52d62a3509 Update extract.tcl Enno Schnackenberg 2026-05-07 06:57:26 +0200
  • 8b33e891e2 Update extract.tcl Enno Schnackenberg 2026-05-07 06:53:37 +0200
  • c24d9e3676 Update extract.tcl Enno Schnackenberg 2026-05-07 06:49:58 +0200
  • b32c2117ff Update extract.tcl Enno Schnackenberg 2026-05-07 06:48:02 +0200
  • e9249ef2e4 Update extract.tcl Enno Schnackenberg 2026-05-07 06:44:13 +0200
  • 2157163379 Update main-wasm.yml Enno Schnackenberg 2026-05-06 20:06:47 +0200
  • 1e56445453 Rework WASM CI structure Enno Schnackenberg 2026-05-06 19:47:08 +0200
  • 17b30b517a Change npm examples to scmos examples Enno Schnackenberg 2026-05-06 19:16:55 +0200
  • fa80458d80 Ensure layer name compatibility in wrapper.tcl Ahmed Nematallah 2026-05-02 22:50:25 +0200
  • c3ee33e9a1 tcl/tk: Fix layer toolbar icon synchronization on left-click Ahmed Nematallah 2026-05-02 18:09:18 +0200
  • 900f6d7b0f Ensure all cells are loaded into memory in netlist_to_spice to avoid file corruption during save Ahmed Nematallah 2026-05-03 05:12:21 +0200
  • 97fd047aab Implement existing cell check for layout generation Ahmed Nematallah 2026-05-01 22:54:33 +0200
  • df4ec3ab32 Corrects an error that can cause "extresist" to segfault. This is due to moving away from using the node "location" in favor of a drivepoint specified by a port or other connection point. The "location" record can end up at the default value of "infinity", and should not be used to set the area for searches. This fix is in response to issue #502 on the github issue tracker, submitted by Julian Schwarz. R. Timothy Edwards 2026-05-06 10:21:35 -0400
  • ba6289478e ci: add ARM WASM build job with Emscripten diagnostics to CI-aarch64 Intubun 2026-05-06 11:02:29 +0200
  • 30d40fb206 Annotate ClientData callbacks: /*ARGSUSED*/ + /* UNUSED */ markers Intubun 2026-05-06 10:43:34 +0200
  • 003babee04 npm: stamp version as base-YYYYMMDD.hash on every CI build Intubun 2026-05-06 10:38:06 +0200
  • 93bf324007 CI: publish to GitHub Packages, emsdk latest by default, add ARM WASM job Intubun 2026-05-06 07:27:29 +0200
  • f5fa4d3603 Add npm package and CI workflows Intubun 2026-05-04 13:32:51 +0200
  • 683bcfd867 cmwind: ARGSUSED/UNUSED annotation on CMWreposition (newScreenArea unused) Intubun 2026-05-06 07:01:54 +0200