Comments (7)
This resource provides a good description of how to define a custom iterator in modern C++:
Their description of the different properties expected to be implemented is quite good:
![image](https://private-user-images.githubusercontent.com/49374526/333757112-8ab4c807-e7fa-4a0d-b523-821148dc1929.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkyODIxMjQsIm5iZiI6MTcxOTI4MTgyNCwicGF0aCI6Ii80OTM3NDUyNi8zMzM3NTcxMTItOGFiNGM4MDctZTdmYS00YTBkLWI1MjMtODIxMTQ4ZGMxOTI5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI1VDAyMTcwNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdmZmEyY2NkNjhmMzdhYjA4YjQ1MzE3NjE2ODkxNDUzMWE2ZjMzNTUxMmE1MzU1MzA4NzFiNGNlZmNmNDQyMDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.O6gSucmPG7ya4xYsFeUfh-_vVDkjYoFFgVuZ6uvelYE)
As well as a description of why adding these arguments are important:
from vtr-verilog-to-routing.
libvtrutil/src/vtr_array_view.h
and libvtrutil/src/vtr_vector.h
, beyond just having obviously duplicated code, have this strange comment and style of declaring something called "my_iter". I find this very strange, and I am not sure how to proceed in this case since it appears to rely on the fact that we are using std::iterator here; but I do not think this is necessary.
from vtr-verilog-to-routing.
Thanks @AlexandreSinger . No strong preference on how you fix this, but I agree it is good to update. Pushing back to libtatum/upstreaming should be easy. capnproto won't be so easy; maybe the latest version of capnproto gets rid of this?
from vtr-verilog-to-routing.
@vaughnbetz Looks like you were correct. Capnproto fixed this issue 2 years ago:
This means that we may need to upgrade our version of capnproto if we want to 100% remove these warnings. Once the other uses of std::iterator are removed we can decide what to do from there. Based on the git history, we are currently on capnproto v0.9.1
In order to resolve this, we would need to rebase ourselves onto capnproto v1.0.0 at least. (v1.0.2 is the latest). I think we should update to the most recent release version (v1.0.2).
from vtr-verilog-to-routing.
Thanks @AlexandreSinger . Yes, rebasing onto the latest seems like the best approach. Of course, we should change one thing at a time, so sorting the other iterators before trying the upgrade makes sense!
from vtr-verilog-to-routing.
Through looking through the CI logs, it looks like there were uses of std::iterator in Yosys as well that I did not originally see (blocked by too many warnings).
Currently we are on yosys-0.32
. The developers of Yosys fixed this issue in yosys-0.37
(yosys-0.41
is the latest). Looks like we may need to upgrade Yosys as well.
@vaughnbetz I agree, we should change one thing at a time. Hopefully these upgrades go smoothly.
from vtr-verilog-to-routing.
Sounds good. Upgrading to the latest yosys makes sense. Good topics for the vtr meeting Thursday. We should probably make a table (or slide deck) of planned upgrades and try to assign owners and a sequence.
from vtr-verilog-to-routing.
Related Issues (20)
- Change ODIN II Quick Start Walkthrough to Parmys HOT 2
- Overuse report with flat routing
- Unreachable code in vpr/src/route/connection_router.cpp HOT 2
- Upgrade Self-Hosted Runners to Node20 HOT 8
- Can Titan benchmarks be used for power analysis? HOT 4
- CI artifacts are not available for download when a CI test fails HOT 3
- Issue with git submodule update --init Command HOT 1
- Update documentation (and code if needed) to make placement constraints 3D HOT 1
- Update documentation for 3D arch switches
- Test rr-graph write out and read in with a 3D architecture.
- Prevent running the CI if only the docs are updated HOT 2
- Missing Output Port in BLIF File Generation Using ABC HOT 1
- Constant and inverter "replication" during packing HOT 2
- Remove has_path_to_sink HOT 1
- high fanout routing to heap code -- only count CHANX and CHANY nodes to determine if enough has been added. HOT 5
- Loosen the minimum channel width and related metric pass characteristics for small circuits HOT 1
- See if simplifying the placement cost function slightly would speed up placement.
- Document how to build for debugging HOT 2
- Missing documentaion for some 3D-related tags and fields in the architecture reference
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vtr-verilog-to-routing.