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
Mac case insensitivity must
be addressed
#92
Comments
I've seen a number of cases where the first character in a method name is capitalized, and there is a method with the same name except for that one capitalization (for instance, this pattern is fairly standard in ancient GBS code). So it'd be better to make case mangling work even for the first character, if possible. |
Thanks @martinmcclure, after an email convo with Richard and James, I think that we can use the
a leading Can you think of any reason the James suggested doubling the |
Hold on...we already use |
I'm leaning toward using double period as the capitalization escape:
Not too bad. I already know that the absence of |
After further "conversations" with James and Richard covering the pros and cons of the above approach and additional approaches, I am now leaning towards an approach where we only invoke distinguishment when there is a case insensitive collision between two filenames. When a collision occurs we tack on a double period and a sequence number so the above mappings become:
The It's a bit of work to determine when you are exposed, but I think the advantage of leaving the filenames as unmangled as possible outweighs the computation costs.... |
tests green ... didn't break any existing behavior (covered by tests)...time for some new tests |
test case and test repo added ... green tests ... need to distribute changes to other platforms ... |
(Issue #11, #92, #93, #101) Conflicts: repository/MonticelloFileTree-Core.package/MCFileTreeStCypressReader.class/instance/loadVersionInfo.st repository/MonticelloFileTree-Core.package/MCFileTreeStCypressReader.class/methodProperties.json repository/MonticelloFileTree-Core.package/MCFileTreeStCypressWriter.class/instance/writeDefinitions..st repository/MonticelloFileTree-Core.package/MCFileTreeStCypressWriter.class/methodProperties.json repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/instance/writeDefinitions..st repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/instance/writeMethodHolderDefinitions.extension.to.do..st repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/methodProperties.json repository/MonticelloFileTree-Core.package/monticello.meta/version repository/MonticelloFileTree-Tests.package/monticello.meta/version
(Issue #11, #92, #93, #101) Conflicts: README.md repository/MonticelloFileTree-Core.package/MCFileTreeStCypressWriter.class/instance/writeDefinitions..st repository/MonticelloFileTree-Core.package/MCFileTreeStCypressWriter.class/methodProperties.json repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/instance/writeDefinitions..st repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/instance/writeMethodHolderDefinitions.extension.to.do..st repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/methodProperties.json repository/MonticelloFileTree-Core.package/monticello.meta/version repository/MonticelloFileTree-Tests.package/monticello.meta/version
(Issue #11, #92, #93, #101) Conflicts: README.md repository/MonticelloFileTree-Core.package/MCFileTreeStCypressReader.class/instance/loadVersionInfo.st repository/MonticelloFileTree-Core.package/MCFileTreeStCypressWriter.class/instance/writeDefinitions..st repository/MonticelloFileTree-Core.package/MCFileTreeStCypressWriter.class/methodProperties.json repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/instance/writeDefinitions..st repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/instance/writeMethodHolderDefinitions.extension.to.do..st repository/MonticelloFileTree-Core.package/MCFileTreeStSnapshotWriter.class/methodProperties.json repository/MonticelloFileTree-Core.package/monticello.meta/version repository/MonticelloFileTree-Tests.package/monticello.meta/version
distributed to all platforms |
Dale, a small comment on that:
Just my 2ct |
I decided that I didn't really want to mangle ALL of the method names when a very small percentage of the methods are going to be affected ... yeah we talked about a whole slew of algorithms .. one idea that we through around was to tack the hash of the method onto the end of each filename ... there are a lot of ways to do this and I picked one ... ----- Original Message ----- | From: "Tobias Pape" notifications@github.com | Dale, a small comment on that: | * downcase all method names and | Just my 2ct |
👍 I like that. |
-fix Issue #11: Traits and Script support - fix Issue #92: Mac case insensitivity `must` be addressed - fix Issue #97: Load packages from repos with no monticello meta data - fix Issue #101: Refactor MCFileTreeStCypressWriter>>writeDefinitions: to ease Issue #11 integration for details: https://github.com/dalehenrich/filetree/issues?direction=desc&milestone=9&page=1&sort=updated&state=closed
Just hit this working on the GLASS project ... since Mac is lowest common denominator, we have to bit the bullet ... (I hate it) ... will have to mangle the filenames of methods that have embedded capitalization ... this needs to be posted as a Cypress issue as well ... assuming that leading character in method name is not capitalized only need to come up with a scheme for making camel cased methods unique...
The text was updated successfully, but these errors were encountered: