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

update ci.yml and be more explicit in .nimble #27

Merged
merged 2 commits into from
Jul 3, 2024
Merged

update ci.yml and be more explicit in .nimble #27

merged 2 commits into from
Jul 3, 2024

Conversation

narimiran
Copy link
Contributor

No description provided.

kzg4844.nimble Outdated
@@ -20,15 +20,19 @@ requires "nim >= 1.6.0"
requires "stew >= 0.1.0"
requires "unittest2"

let cfg =
" --outdir:build -f -c --hints:off --warnings:off" &
Copy link
Contributor

@tersec tersec Jun 26, 2024

Choose a reason for hiding this comment

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

These --warnings:off in tests seem dodgy. I know it was already there, but probably better to remove it. If it's truly necessary for a specific warning, that warning can be more selectively disabled.

Copy link
Contributor Author

@narimiran narimiran Jun 26, 2024

Choose a reason for hiding this comment

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

Agreed!

I've pushed a commit removing that. Let's see if anything pops up.

P.S. EDIT:
No warnings produced, as far as I can tell.

Copy link
Contributor

Choose a reason for hiding this comment

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

For 2.0:

[NimScript] mkDir: build
[NimScript] exec: nim c   --outdir:build -f -c --hints:off --styleCheck:usages --styleCheck:error --skipParentCfg -d:release -d:kzgExternalBlstNoSha256 -d:kzgExternalBlst --mm:refc tests/test_all
[NimScript] exec: nim c   --outdir:build -f -c --hints:off --styleCheck:usages --styleCheck:error --skipParentCfg -d:release -d:kzgExternalBlstNoSha256 -d:kzgExternalBlst --mm:orc tests/test_all

For 1.6:

[NimScript] mkDir: build
[NimScript] exec: nim c   --outdir:build -f -c --hints:off --styleCheck:usages --styleCheck:error --skipParentCfg -d:release -d:kzgExternalBlstNoSha256 -d:kzgExternalBlst --mm:refc tests/test_all

For devel:

[NimScript] mkDir: build
[NimScript] exec: nim c   --outdir:build -f -c --hints:off --styleCheck:usages --styleCheck:error --skipParentCfg -d:release -d:kzgExternalBlstNoSha256 -d:kzgExternalBlst --mm:refc tests/test_all
[NimScript] exec: nim c   --outdir:build -f -c --hints:off --styleCheck:usages --styleCheck:error --skipParentCfg -d:release -d:kzgExternalBlstNoSha256 -d:kzgExternalBlst --mm:orc tests/test_all

Looks fine, yeah.

In some sense, this isn't actually that interesting a repo for Nim warnings/hints because there's little-to-no nontrivial algorithmic logic. It's mostly C bindings, so not surprising.

It's vaguely unfortunate that the Processing hint means that to avoid un-actionable hint spam, one needs to disable something, and that something can easily end up being all hints.

Hints:
  [ ] Success
  [ ] SuccessX
  [ ] CC
  [ ] XDeclaredButNotUsed
  [ ] DuplicateModuleImport
  [ ] XCannotRaiseY
  [ ] ConvToBaseNotNeeded
  [ ] ConvFromXtoItselfNotNeeded
  [ ] ExprAlwaysX
  [x] QuitCalled
  [x] Processing
  [ ] ProcessingStmt
  [ ] CodeBegin
  [ ] CodeEnd
  [ ] Conf
  [ ] Path
  [ ] CondTrue
  [ ] CondFalse
  [ ] Name
  [ ] Pattern
  [x] Exec
  [ ] Link
  [ ] Dependency
  [ ] Source
  [ ] Performance
  [ ] StackTrace
  [ ] GCStats
  [ ] GlobalVar
  [ ] ExpandMacro
  [ ] AmbiguousEnum
  [x] User
  [ ] UserRaw
  [ ] ExtendedContext
  [ ] MsgOrigin
  [ ] DeclaredLoc
  [ ] UnknownHint

Especially Processing and is basically spam. The rest (Conf, Link, and SuccessX, for example) are at least mostly bounded, happening a small, essentially constant number of times each build.

What does the output look like with --hint:Processing:off instead of --hints:off?

This is a good baseline repo to test this out with precisely because it's kind of a null case, not much going on to flag, to have a reference for what this might do with more involved repos.

Copy link
Contributor

Choose a reason for hiding this comment

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

e.g., for a single-line echo program, with ORC, the Processing hints:

CC: Nim/lib/system/exceptions.nim
CC: Nim/lib/std/private/since.nim
CC: Nim/lib/system/ctypes.nim
CC: Nim/lib/std/sysatomics.nim
CC: Nim/lib/system/ansi_c.nim
CC: Nim/lib/system/memory.nim
CC: Nim/lib/std/private/syslocks.nim
CC: Nim/lib/std/private/threadtypes.nim
CC: Nim/lib/std/private/digitsutils.nim
CC: Nim/lib/std/private/miscdollars.nim
CC: Nim/lib/std/assertions.nim
CC: Nim/lib/system/iterators.nim
CC: Nim/lib/system/coro_detection.nim
CC: Nim/lib/std/private/dragonbox.nim
CC: Nim/lib/std/private/schubfach.nim
CC: Nim/lib/std/formatfloat.nim
CC: Nim/lib/std/objectdollar.nim
CC: Nim/lib/system/dollars.nim
CC: Nim/lib/std/typedthreads.nim
CC: Nim/lib/system/stacktraces.nim
CC: Nim/lib/std/private/bitops_utils.nim
CC: Nim/lib/system/countbits_impl.nim
CC: Nim/lib/system/repr_v2.nim
CC: Nim/lib/std/widestrs.nim
CC: Nim/lib/std/syncio.nim
CC: Nim/lib/system.nim

refc is better at least:

CC: Nim/lib/system/exceptions.nim
CC: Nim/lib/std/private/digitsutils.nim
CC: Nim/lib/system/dollars.nim
CC: Nim/lib/std/typedthreads.nim
CC: Nim/lib/pure/collections/sharedlist.nim
CC: Nim/lib/system.nim

But the Hints ontology is just not optimal.

Copy link
Contributor Author

@narimiran narimiran Jun 26, 2024

Choose a reason for hiding this comment

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

What does the output look like with --hint:Processing:off instead of --hints:off?

It just suppresses processing dots (one line per executed command), hints about used config files are still there.

Using --hint:processing:off --hint:conf:off helps with both.

Copy link
Contributor

Choose a reason for hiding this comment

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

Using --hint:processing:off --hint:conf:off helps with both.

This seems like a reasonable balance, yeah

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'd rather keep --hints:off, like it is currently. I don't see any gain in being more specific and/or keeping some of the hints present.

@tersec tersec merged commit c0cc7da into master Jul 3, 2024
15 checks passed
@tersec tersec deleted the update-ci branch July 3, 2024 04:50
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

Successfully merging this pull request may close these issues.

2 participants