-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
js -d:nodejs now supports osenv: getEnv
, putEnv
, envPairs
, delEnv
, existsEnv
(v2)
#15826
Conversation
a4aeaba
to
9e55f7b
Compare
getEnv
, putEnv
, envPairs
, delEnv
, existsEnv
getEnv
, putEnv
, envPairs
, delEnv
, existsEnv
(v2)
57306c3
to
d0dde8c
Compare
Before merging this, please first discuss a policy regarding future maintenance and the criteria for supporting/not supporting other nodejs functions.
IMO supported is pretty much the opposite of best effort basis in software development Most other languages have something like supported tiers/platforms on their website, IMO we should have it too (Apologies, if it is already present somewhere, I could not find it) - |
nodejs would be a Tier 2: mostly maintained by individuals, tested in testament as part of CI, with the explicit 2-fold goals:
good idea |
Tiers only help a little bit, in practice we would still get bug reports and PRs for the "Tier 2" targets. You can only argue that the benefits are worth the costs for |
Well, that's the thing. The issues and pr's will get opened whether you apply this tiering mechanism or not. So there are two options -
Personally I am fine with both. I do not use nodejs, and I would prefer the core team to focus on important features and bug fixes. Edit: |
|
this would entirely defeat the purpose, it would make any code containing The costs involved are being blown out of proportion; accomodating nodejs can be written (as in this PR) with minimal interaction. And yes, I've written quite a few PR's for os.nim. One of the main points of os.nim is to abstract away platform/backend differences so that other libraries written on top of it work across the board without having to deal with platform specific logic to a large extent. That's the real benefit. |
Thanks for merging this. |
…Env`, `existsEnv` (v2) (nim-lang#15826) * js -d:nodejs now supports osenv: `getEnv`, `putEnv`, `envPairs`, `delEnv`, `existsEnv` * refactor to osenv * fix for js (without -d:nodejs) + VM Co-authored-by: Andreas Rumpf <[email protected]>
…Env`, `existsEnv` (v2) (nim-lang#15826) * js -d:nodejs now supports osenv: `getEnv`, `putEnv`, `envPairs`, `delEnv`, `existsEnv` * refactor to osenv * fix for js (without -d:nodejs) + VM Co-authored-by: Andreas Rumpf <[email protected]>
…Env`, `existsEnv` (v2) (nim-lang#15826) * js -d:nodejs now supports osenv: `getEnv`, `putEnv`, `envPairs`, `delEnv`, `existsEnv` * refactor to osenv * fix for js (without -d:nodejs) + VM Co-authored-by: Andreas Rumpf <[email protected]>
…Env`, `existsEnv` (v2) (nim-lang#15826) * js -d:nodejs now supports osenv: `getEnv`, `putEnv`, `envPairs`, `delEnv`, `existsEnv` * refactor to osenv * fix for js (without -d:nodejs) + VM Co-authored-by: Andreas Rumpf <[email protected]>
alternative approach to #15475, aimed at minimizing impact on existing code to reduce complexity, so that
nodejs
can be supported on a best effort basis without adding undue burden on maintenance.As you can see here https://github.com/nim-lang/Nim/pull/15826/files?diff=split&w=1 (hiding whitespace in the diff), the diff essentially amounts to adding a a single when
defined(nodejs): X else: Y
and re-indenting the existing Ysee relevant discussion in previous PR, in particular rationale eg #15475 (comment)
future work
=> [nodejs backend] paramStr, paramCount #17082