status-im / nim-stew

stew is collection of utilities, std library extensions and budding libraries that are frequently used at Status, but are too small to deserve their own git repository.
139 stars 18 forks source link

stylecheck: nnkArglist -> nnkArgList #127

Closed tersec closed 2 years ago

tersec commented 2 years ago

https://github.com/nim-lang/Nim/pull/17529 https://github.com/nim-lang/Nim/pull/19822

tersec commented 2 years ago

Windows Nim 1.2 fails with:

stdlib_system.nim.c
C:\Users\runneradmin\nimcache\all_tests_d\stdlib_io.nim.c(1095): warning C4020: '_setjmp': too many actual parameters
C:\Users\runneradmin\nimcache\all_tests_d\stdlib_io.nim.c(1095): error C2167: '_setjmp': too many actual parameters for intrinsic function
Error: execution of an external compiler program 'cl.exe /c /nologo -DWIN32_LEAN_AND_MEAN   /ID:\a\nim-stew\nim-stew\nim\lib /ID:\a\nim-stew\nim-stew\tests /FoC:\Users\runneradmin\nimcache\all_tests_d\stdlib_io.nim.c.obj C:\Users\runneradmin\nimcache\all_tests_d\stdlib_io.nim.c' failed with exit code: 2
stack trace: (most recent call last)
D:\a\_temp\msys64\tmp\nimblecache-3274857584\nimscriptapi_1488220575.nim(187, 16)
D:\a\nim-stew\nim-stew\stew.nimble(35, 8) testvccTask
D:\a\nim-stew\nim-stew\stew.nimble(25, 8) test
D:\a\nim-stew\nim-stew\nim\lib\system\nimscript.nim(260, 7) exec
D:\a\nim-stew\nim-stew\nim\lib\system\nimscript.nim(260, 7) Error: unhandled exception: FAILED: nim c  --cc:vcc --threads:off -r --hints:off --skipParentCfg --styleCheck:usages --styleCheck:hint tests/all_tests [OSError]
     Error: Exception raised during nimble script execution
C:\Users\runneradmin\nimcache\all_tests_d\stdlib_system.nim.c(5788): warning C4020: '_setjmp': too many actual parameters
C:\Users\runneradmin\nimcache\all_tests_d\stdlib_system.nim.c(5788): error C2167: '_setjmp': too many actual parameters for intrinsic function
Error: Process completed with exit code 1.

But so does current master commit in same situation/same way: https://github.com/status-im/nim-stew/runs/7371971078?check_suite_focus=true

Nim 1.6 Windows fails for VCC with:

@m..@snim@slib@ssystem.nim.c
Error: execution of an external compiler program 'cl.exe /c /nologo -DWIN32_LEAN_AND_MEAN   /ID:\a\nim-stew\nim-stew\nim\lib /ID:\a\nim-stew\nim-stew\tests /nologo /FoC:\Users\runneradmin\nimcache\all_tests_d\@m..@snim@slib@ssystem@sio.nim.c.obj C:\Users\runneradmin\nimcache\all_tests_d\@m..@snim@slib@ssystem@sio.nim.c' failed with exit code: 2
C:\Users\runneradmin\nimcache\all_tests_d\@m..@snim@slib@ssystem@sio.nim.c(1256): warning C4020: '_setjmp': too many actual parameters
C:\Users\runneradmin\nimcache\all_tests_d\@m..@snim@slib@ssystem@sio.nim.c(1256): error C2167: '_setjmp': too many actual parameters for intrinsic function
stack trace: (most recent call last)
D:\a\_temp\msys64\tmp\nimblecache-3274857584\nimscriptapi_571214219.nim(187, 16)
D:\a\nim-stew\nim-stew\stew.nimble(35, 8) testvccTask
D:\a\nim-stew\nim-stew\stew.nimble(25, 8) test
D:\a\nim-stew\nim-stew\nim\lib\system\nimscript.nim(273, 7) exec
D:\a\nim-stew\nim-stew\nim\lib\system\nimscript.nim(273, 7) Error: unhandled exception: FAILED: nim c  --cc:vcc --threads:off -r --hints:off --skipParentCfg --styleCheck:usages --styleCheck:error tests/all_tests [OSError]
     Error: Exception raised during nimble script execution
C:\Users\runneradmin\nimcache\all_tests_d\@m..@snim@slib@ssystem.nim.c(4855): warning C4020: '_setjmp': too many actual parameters
C:\Users\runneradmin\nimcache\all_tests_d\@m..@snim@slib@ssystem.nim.c(4855): error C2167: '_setjmp': too many actual parameters for intrinsic function
Error: Process completed with exit code 1.

Same issue in master: https://github.com/status-im/nim-stew/runs/7371971140?check_suite_focus=true

All other Nim branches/versions and platforms pass CI. No test suite regressions and fixes most of the issues.

narimiran commented 2 years ago

This is causing problems (in Nim CIs, when testing other packages which use stew) with Nim 1.2: macros.nim(415, 20) Error: 'nnkArgList' should be: 'nnkArglist'

arnetheduck commented 2 years ago

we've come to the conclusion those packages should use stylecheck:hint for 1.2 and error for 1.6

tersec commented 2 years ago

Yes, even if this could be worked around, there's also localPassc (1.2) vs localPassC (1.4, I believe, and definitely 1.6). --styleCheck:error can't work across 1.2 and later versions simultaneously.