New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chisel rename fails on case-insensitive filesystems. #219
Comments
Many software projects fall victim to this, including even the GNU C Library. We mount case-sensitive file systems to get around that issue. It is annoying and would hinder uptake to some extent. Can we handle this another way by putting the two packages in different directory subtrees? Alternatively, using chisel3 as the package name doesn't sound like a bad idea. |
I tried putting the Chisel stuff in a different package in the caseFix branch, but that doesn't have seemed to work on my Windows machine. Anyone on a case-insensitive Mac want to try it? |
It appears to compile on an OSX case-insensitive FS without warnings about case sensitivity, but almost all tests fail with:
|
Yeah, got the same problem. I'm guessing that regardless of the project structure we give it, the classes get flattened at runtime and still collide, it just gets pushed past where the compiler could warn you about it |
Let me place my vote for having chisel having only the lower case form and conversion to chisel3 require fixing up the package names in your project. There is a growing list of things that have to be done to move to chisel3, this one more does not seem that onerous. I also think we are using up a lot of time trying to solve nearly intractable problems like this |
Having users move to lowercase chisel was always part of the plan, but that's not due to happen until the "release". This is mainly "how do we support both until everyone is ready to make the huge jump" (compatibility mode). Another question is how much work needs to go into compatibility mode vs. how much the user needs to put in (for example, perhaps requiring case-sensitive filesystems during the transition period is acceptable)? |
Bumps [chisel3](https://github.com/freechipsproject/chisel3) from `74a727f` to `c146fa0`. - [Release notes](https://github.com/freechipsproject/chisel3/releases) - [Commits](74a727f...c146fa0) --- updated-dependencies: - dependency-name: chisel3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes #219 * Adds AsyncResetType (similar to ClockType) * Registers with reset signal of type AsyncResetType are async reset registers * Registers with async reset can only be reset to literal values * Add initialization logic for async reset registers
Unfortunately, we can't provide both a "Chisel" package and a "chisel" package on platforms with case-insensitive file systems (i.e., Mac OSX):
Running tests in chisel3 result in:
We can either:
Although OSX suggests the root volume should be case-insensitive, additional volumes may be configured as case-sensitive. A case-sensitive filesystem is recommended for Android development (and they give instructions for setting up a suitable environment on OSX - https://source.android.com/source/initializing.html )
The text was updated successfully, but these errors were encountered: