Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@jaimergp
Copy link

@jaimergp jaimergp commented Apr 6, 2025

Closes #222.

PURL-TYPES.rst Outdated

- ``compiler``: for toolchains that implement a language standard.

- The ``name`` must correspond to the identifier of the language. Common examples
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i can already imagine the purl-community fighting over well-known "names".
too much ambiguity.

lets say, i want to have a PURL that fits to all java runtime environments that are compatible with java 17. what would be my PURL?
is it java? is it JRE? uppercase/lowercase?

what about c++? why is the example using cxx? why not cpp? or even c%2B%2B?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The language is Java, so I'd use pkg:abstract/compiler/java@17. I'm using cxx because cpp is C Pre Processor, and to save the + encoding. Other than that, it's just one possible proposal.

What's the suggestion here, to provide a table of languages? Or a general rule to create the name with a couple of exceptions? (e.g. lowercase with underscores for spaces, must be in the TIOBE index).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

still to early to think about this, i dont think all real-world requirements were considered/met, yet.

@jkowalleck jkowalleck requested a review from a team April 6, 2025 16:45
Co-authored-by: Jan Kowalleck <[email protected]>
@jkowalleck
Copy link
Member

what about language compiler-plugins and extensions?
for example, in php/composer, they are checked on install-time. see https://thomasventurini.com/articles/require-php-extensions-for-your-project-through-composer/

@jaimergp
Copy link
Author

jaimergp commented Apr 9, 2025

In the case of PHP, are those really "virtual"? I'm not too familiar with the ecosystem, but they feel like a concrete set of packages needed by the php interpreter, so they should not be expressed using the proposed type in this PR.

@jaimergp jaimergp changed the title Add abstract type Add virtual type Apr 9, 2025
@jkowalleck
Copy link
Member

jkowalleck commented Apr 9, 2025

In the case of PHP, are those really "virtual"? I'm not too familiar with the ecosystem, but they feel like a concrete set of packages needed by the php interpreter, so they should not be expressed using the proposed type in this PR.

Theybare virtual. The extensions arr more of a contract to make certain interfaces available, the actual implementation is irrelevant.

These are actual virtual packages, just asbthe language compilers/interpreters/implementation.
Since there are multiple php langauge implementations (zend, hhvm, phalanger,...) each could have their own implementation of the individual lanuage extensions.

@jaimergp
Copy link
Author

jaimergp commented Apr 9, 2025

I see, thank for the details. I guess something along the lines of compiler-ext or language-ext? And now that I see you mention interpreter, I wonder if this should be added (e.g. CPython vs PyPy), but also I recognize that it might be tricky to draw the line between compiler and interpreter in some edge cases 😬

@jkowalleck
Copy link
Member

jkowalleck commented Apr 9, 2025

These are questions that should be discussed in the ticket, not in a proposed solution ;)

@johnmhoran johnmhoran added this to the PURL-TBD milestone May 30, 2025
@mjherzog mjherzog removed this from the PURL-TBD milestone Sep 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for "virtual packages" / dependencies on interfaces?

4 participants