Open
Conversation
The `make clean` target consists of a single `rm` call that passes every generated file, object file, and dependency directory. This results in a command line that's around 53,800 characters long. On Linux, the maximum length of a command line is 131,072 or 262,144 characters, however on Windows the limit is 32,768. The 53,800 character command simply fails to run on Windows, which is a problem when the first command that gets run is `make clean`. Break this target into steps, first removing the output files, then the object files, then any generated garbage, and then the object depedency directories. This fixes `make clean` (and as a result yosys) on Windows. Signed-off-by: Sean Cross <sean@xobs.io>
Since cmdCheckShellEscape doesn't actually report failure in any way, this code simulates a situation where system() never succeeds.
Add missing WASI platform support for signal.h
Surround $(CC), $(CXX) with double quotes when calling depends.sh, to allow space-delimited compilation tools to be used.
Makefile: support ccache for compiling ABC.
Abort on OOM since there are no C++ exceptions yet. Signed-off-by: Miodrag Milanovic <mmicko@gmail.com>
On platforms such as Android, legacy macros are no longer defined. Hence, we define them in terms of the new POSIX macros if the new ones are defined. Otherwise, we throw an error. Signed-off-by: Mohamed A. Bamakhrama <mohamed@alumni.tum.de> Signed-off-by: Miodrag Milanovic <mmicko@gmail.com>
Signed-off-by: Miodrag Milanovic <mmicko@gmail.com>
Abort on OOM since there are no C++ exceptions yet.
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Integrate write_cex and cexinfo and some fixes in write_cex output code
Integrate write_cex and cexinfo and some fixes in write_cex output code
Added read_cex command
Make read_cex able to append if some latches are missing
…ter node_retetntion
…). TODO: prune balance
- Fix ctest step to use --test-dir build - Add CI steps running get_and_put, v3, and abc.script tests - Add ci_validate.sh to verify output BLIF files are produced Co-developed-by: Claude Code v2.1.44 (claude-opus-4-6)
Implements Phase 2 of the \src attribute preservation plan: - New `&write_retention <file>` command writes GIA retention map containing CI position-to-GIA-ID mapping and AND/CO node origin tracking, enabling Yosys to recover source location attributes through ABC9 synthesis - New `Nr_ManPrintRetentionMapGia()` function in node_retention.c that outputs retention data using GIA object IDs directly (no name resolution needed - Yosys handles via sym file) - Seed retention with self-origins in `&read` command so all CI and AND objects establish baseline tracking before synthesis - Fix missing retention propagation in `Gia_ManFromIfLogic()` (the default `&if` extraction path was not copying origins from If_Man_t back to the new GIA) - Add GTest unit tests for GIA retention API - Add integration test script and CI validation for &write_retention Output format: .gia_retention_begin CI <ci_position> <gia_object_id> <gia_id> SRC <origin_gia_id_1> <origin_gia_id_2> ... .gia_retention_end Co-developed-by: Claude Code v2.1.44 (claude-opus-4-6)
clock_gettime(CLOCK_REALTIME, ...) is POSIX-only and unavailable on Windows/MSVC. Guard with #if defined(LIN) || defined(LIN64) and fall back to time(NULL) for srand seeding on other platforms. Fixes bmcMaj.c and giaLutCas.c which both had unguarded usage. Co-developed-by: Claude Code v2.1.45 (claude-opus-4-6)
std::to_string was used without including <string>. This compiled on GCC/Clang due to transitive includes but fails on MSVC. Co-developed-by: Claude Code v2.1.45 (claude-opus-4-6)
Add source files that were missing from the Visual Studio project, causing unresolved symbol linker errors on Windows: - node_retention.c (node retention feature) - abcTopo.c, ioJsonc.c (base modules) - bmcMaj7.c, bmcMaj8.c, bmcMaj9.c (exact synthesis) - giaLutCas.c, giaMulFind3.c, giaDecGraph.cpp (GIA modules) - ifDecJ.c (LUT mapping) - utilMiniver.c, utilMulSim.c, utilAigSim.c, utilNet.c (utilities) - UfarCmd.cpp (new ufar module) Co-developed-by: Claude Code v2.1.45 (claude-opus-4-6)
- Guard #include <unistd.h> with #ifndef WIN32 in utilAigSim.c, utilNet.c, and bmcMaj9.c - Add #include <stdint.h> and <limits.h> to bmcMaj8.c for int64_t and INT_MAX on MSVC Co-developed-by: Claude Code v2.1.45 (claude-opus-4-6)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
clock_gettime(CLOCK_REALTIME, ...)with#if defined(LIN) || defined(LIN64)inbmcMaj.candgiaLutCas.ctime(NULL)forsrandseeding on Windows/other platformserror C2065: 'CLOCK_REALTIME': undeclared identifierTest plan