Development Build
Pre-release
Pre-release
Features
- Better take location into account when stitching. #740 (eyal0)
- Test gerberimporter for correctness only in debug mode. #746 (eyal0)
- Better checking of eulerian path output. #743 (eyal0)
- Add sanity-checks flag. #772 (eyal0)
- Add single-thread option to disable multi-threading. #777 (eyal0)
- Make path_finding re-entrant. #778 (eyal0)
Bug Fixes
- Use a new Eulerian paths algorithm. #743 (eyal0)
- Use a consistent random number generator. #753 (eyal0)
- Have invert-gerbers also properly mask the outline. #750 (eyal0)
- Use mutex to print multithreaded messages. #777 (eyal0)
- Tighten merge_near_points distance threshold. #785 (eyal0)
Styles
Code Refactoring
- Move the path data into the path_manager. #740 (eyal0)
- path_manager::remove_path #740 (eyal0)
- Change eulerian_paths::make_path to eulerian_paths::insert_one. #740 (eyal0)
- eulerian_paths::stitch_loops stitch in-place. #740 (eyal0)
- Better looping through islands. #740 (eyal0)
- Make members of path_manager private. #740 (eyal0)
- Add eulerian_paths::add_path. #740 (eyal0)
- Move eulerian_paths logic from hpp to cpp. #747 (eyal0)
- Common subexpression elimination. #771 (eyal0)
- Simpler imbalance calculation. #771 (eyal0)
- Early exit from loop. #771 (eyal0)
- Calculate score as function of path_manager. #771 (eyal0)
- Find best bidi in path_manager. #771 (eyal0)
- Always maintain the bidi conversion score cache. #771 (eyal0)
- Remove unnecessary usage of shared_ptr. #775 (eyal0)
- Remove unnecessary usage of shared_ptr. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for GerberImporter. #775 (eyal0)
- Use std::unique_ptr for gerbv_project_t. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for GerberImporter. #775 (eyal0)
- Store just polygons for the mask in Surface_vectorial. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Surface_vectorial. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Surface_vectorial. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Cutter. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for RoutingMill. #775 (eyal0)
- Put the board into the exporter later. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for NGC_Exporter::board. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Layer::add_mask. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Layer. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Surface_vectorial::vectorial_surface. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for full_eulerian_paths. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Surface_vectorial::make_path_finder_ring_indices. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Surface_vectorial::final_path_finder. #775 (eyal0)
- Remove unnecessary usage of shared_ptr for Surface_vectorial::make_path_finder. #775 (eyal0)
- Remove Board::prepared_layers. #777 (eyal0)
- Less state in members in NGC_Exporter. #777 (eyal0)
Performance Improvements
- Use combined cosine score. #771 (eyal0)
- Memoize bidi scores with invalidation when converting bidi to directional. #771 (eyal0)
- Remove scores from cache when they are no longer valid. #771 (eyal0)
- Store a sorted list of scores. #771 (eyal0)
- Render surface using multiple threads. #777 (eyal0)
- Export NGC layers in parallel. #777 (eyal0)
Tests
- Check the result of eulerian paths in debug mode. #739 (eyal0)
- Use check_eulerian_paths in unit testing. #739 (eyal0)
- fix eulerian_tests. #742 (eyal0)
- Better support for Windows in integration_tests.py. #752 (eyal0)
- Make the silk test faster without affecting coverage. #758 (eyal0)
- Add nog91-1 option to nom6 test for coverage. #758 (eyal0)
- Add spinup and spindown to a test for coverage. #758 (eyal0)
- Add only spinup to a test for coverage. #758 (eyal0)
- Add only spindown to a test for coverage. #758 (eyal0)
- Add --quick option to integration testing. #758 (eyal0)
Builds
- Modernize autoconf. #737 (eyal0)
- Add --enable-debug flag to configure. #738 (eyal0)
- Increment version to 3.0.1. #783 (eyal0)
- Increment version to 3.0.2. #787 (eyal0)
Continuous Integration
- Put integration tests back into ci. #744 (eyal0)
- Only run all the examples when doing a scheduled run. #755 (eyal0)
- Upgrade to actions/cachev5. #756 (eyal0)
- Print the versions of installed tools. #757 (eyal0)
- Use eyal0 version of gerbv. #757 (eyal0)
- Enable code coverage for geos 3.13.1. #752 (eyal0)
- Use more CPUs in Windows build and runs. #752 (eyal0)
- Add support for running integration tests on more platforms. #752 (eyal0)
- Don't use valgrind with code coverage. #752 (eyal0)
- Only use code coverage on g++-10. #752 (eyal0)
- Use quick integration test. #758 (eyal0)
- Gather coverage for modern g++, too. #759 (eyal0)
- Use ccache in CI. #760 (eyal0)
- Use the latest valgrind. #761 (eyal0)