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

What GNU extensions does Snow actually depend on? #19

Open
Qqwy opened this issue Jul 26, 2018 · 1 comment
Open

What GNU extensions does Snow actually depend on? #19

Qqwy opened this issue Jul 26, 2018 · 1 comment

Comments

@Qqwy
Copy link

Qqwy commented Jul 26, 2018

The README currently only state that Snow depends on 'some' GNU extensions. It might be worthwhile to write down an explicit list of the extensions, because that allows developers to see more easily if they'd be able to use the library in combination with their existing tooling/stack (like when doing work for embedded devices) or not.

@mortie
Copy link
Owner

mortie commented Aug 20, 2018

Hi, sorry for a way too late response.

The GNU extensions Snow currently depends on is local labels, label pointers, the "GCC diagnostic ignored" pragmas, and __attribute__((constructor)). However, the set of GNU extensions isn't set in stone; I'm working on a new version which will probably use the standard setjmp/longjmp functions instead of label pointers, but might depend on nested functions or the typeof operator. Also, just because a compiler supports a particular GNU extension doesn't necessarily mean it works in the same way; I had to do some extra work to make Snow work in Clang because its label pointers worked slightly differently from GCC's.

It might still be a good idea though to document what GNU extensions are used, and consider any new GNU extension dependencies a breaking change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants