Skip to content
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

File extension #206

Closed
zipotron opened this issue Jan 17, 2022 · 13 comments
Closed

File extension #206

zipotron opened this issue Jan 17, 2022 · 13 comments
Assignees
Labels
enhancement New feature or request

Comments

@zipotron
Copy link

Hello, first thing congratulate for this awesome work, I just discover this project last weekend and got in love with it.
I am writing this issue because, I discover by accident Silice. I found an interesting work (The PAWSv2 risc-v softcore) and I wanted to check it, when I saw the .ice extension I recognize it as a IceStusio files, and then try to open with my IceStudio, other amazing opensource project.
The big surprise was to discover that those .ice files was corresponding to another completely different project, this one, and the surprise became even bigger when discover that Github is not making the difference between the IceStudio code and the Silice code (for Github everything is "Slice") .
BTW Github is tagging .ice as a "Slice" not "Silice".

@sylefeb
Copy link
Owner

sylefeb commented Jan 17, 2022

Hi - thanks and welcome to Silice! PAWS is great, so many excellent features and games!

Extension: that is a good point. Unfortunately I wasn't aware about the file extension collision until late in the project, and I agree this is not ideal. I've since been thinking of changing it. This has little technical impact but a rather wide one in terms of repository. I'll bump this up in priority.

@sylefeb sylefeb added the enhancement New feature or request label Jan 17, 2022
@rob-ng15
Copy link
Contributor

rob-ng15 commented Jan 17, 2022 via email

@sylefeb sylefeb self-assigned this Jan 17, 2022
@sylefeb
Copy link
Owner

sylefeb commented Jan 17, 2022

Hi Rob, thanks :-) Cheers!

@sylefeb
Copy link
Owner

sylefeb commented Jan 17, 2022

A few ideas on extensions:

  • ".silice", after all most systems should support more than 3 letters? (e.g. ".html")
  • ".si" short, does not seem too crowded, at least not in the FPGA space. Also, that's Silicon in the element table.
  • ".ic" is not bad either, and has the advantage to be a single letter change.

@rob-ng15
Copy link
Contributor

rob-ng15 commented Jan 17, 2022 via email

@umarcor
Copy link

umarcor commented Jan 17, 2022

@zipotron, I think that GitHub's Slice refers to a third file format. It's Slice (Specification Language for Ice) and Internet Communications Engine (Ice):

The extension is also listed in https://github.com/github/linguist/blob/80f3531e8a1014a23f4606458e5a528053ed3cac/lib/linguist/languages.yml#L2707, which is the Icestudio case I believe.

A few ideas on extensions:

  • ".silice", after all most systems should support more than 3 letters? (e.g. ".html")
  • ".si" short, does not seem too crowded, at least not in the FPGA space. Also, that's Silicon in the element table.
  • ".ic" is not bad either, and has the advantage to be a single letter change.

IIRC, there are historical reasons to use three characters for extensions. That might be irrelevant nowadays, but worth giving a thought. In the VHDL community, there is fragmentation between .vhd and .vhdl for that reason. See the TIP in http://ghdl.github.io/ghdl/quick_start/simulation/hello/index.html.

In this case, the content of Silice's .ice files should be very obviously different from Icestudio's (which are JSON) for any parser/analyser. ""If it walks like a duck and it quacks like a duck, then it must be a duck"". Therefore, it might be reasonable to acknowledge the polymorphism rather that try changing the user bases.

Other than that, I like that .si is the symbol in the element table.

@sylefeb
Copy link
Owner

sylefeb commented Jan 17, 2022

Hi Unai - thanks for the suggestions! Yes I am not 100% comfortable with using a 'long' extension, .html also has .htm for instance. I'd assume most 2022 systems would be fine with it, but ... old habits tend to stick around ;)
Maybe a good approach is to encourage .silice and optionally .si for short. In fact, I don't think there are any instances where the extension truly matters in the code base: most likely the user could use anything (I'll check and confirm). So this is mostly for 'aesthetics' in the code base. In any case, I'll make sure the .ice is still supported so as to not break anything!

(Side note: the reason I think the change is needed is because IceStudio is also for fpga hardware design, so that's one extension for two closely related things -- which is source of confusion.)

@zipotron
Copy link
Author

Thanks Unai! Well, And .sil? Or .slc (just consonants)?

@zipotron
Copy link
Author

Just for fill the three characters, because the idea of .si is cool

@sylefeb
Copy link
Owner

sylefeb commented Jan 17, 2022

I thought of .slc as well but this one is used for slice formats in Additive Manufacturing (since there is some confusion between Silice and Slice it might reinforce it further, plus I also do AM software so I might get confused myself ;) )
.sil is definitely an option, but I like .si more due to the element table. Also it seems <=3 character should be fine? (I am thinking of python's .py for instance)

@umarcor
Copy link

umarcor commented Jan 17, 2022

I think that two characters (.si) is ok. As @sylefeb said, several well-known extensions have one or two characters. The limitation in "8.3 filename" is as follows:

https://en.wikipedia.org/wiki/8.3_filename

8.3 filenames are limited to at most eight characters (after any directory specifier), followed optionally by a filename extension consisting of a period . and at most three further characters. For systems that only support 8.3 filenames, excess characters are ignored.

@zipotron
Copy link
Author

I definitely like .si

@sylefeb
Copy link
Owner

sylefeb commented Apr 8, 2022

Closing ; draft branch has now transitioned to .si (merge with master planned soon). Thanks everyone for the discussion!

@sylefeb sylefeb closed this as completed Apr 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants