← Back to home
Comparison · Analytics

cyclocomp vs lazyeval

A side-by-side editorial comparison of cyclocomp and lazyeval — release velocity, themes, recent moves, and the top alternatives to consider.

cyclocomp vs lazyeval: at a glance

Featurecyclocomplazyeval
SectorAnalyticsAnalytics
Velocity score0.00.0
Sparks · 30d00
Top themesstatic-analysis, code-complexity, linting, r-packagenon-standard-evaluation, r-c-api, dormancy-revival, tidyverse
Last editorial update28m ago29m ago
WebsiteVisit →Visit →

What is cyclocomp?

A cyclomatic complexity checker that ships once every couple of years, and lands when it does.

cyclocomp measures cyclomatic complexity of R functions and packages, and is best known as the engine behind lintr's complexity rule. It has three releases in the visible window spread across nearly three years. The current one, 1.1.2, adds a quiet argument to cyclocomp_package_dir(); the two before it, shipped a day apart in 2023, added a large speedup and the package-directory entry point itself.

Read the full cyclocomp trajectory →

What is lazyeval?

A package retired in 2017 just got rewritten against R's public C API.

lazyeval was the tidyverse's pre-rlang non-standard evaluation layer, formally set aside in 2017 when tidy evaluation replaced it. After eight and a half years without a release, 0.2.3 arrives as a compliance rewrite: the implementation now uses R's public C API, and the release note states it may differ from the historical one in subtle ways. Nothing about the package's role has changed.

Read the full lazyeval trajectory →

cyclocomp vs lazyeval: editorial side-by-side

C
cyclocomp
ANALYTICS
0.0

A cyclomatic complexity checker that ships once every couple of years, and lands when it does.

◆ Current state

cyclocomp measures cyclomatic complexity of R functions and packages, and is best known as the engine behind lintr's complexity rule. It has three releases in the visible window spread across nearly three years. The current one, 1.1.2, adds a quiet argument to cyclocomp_package_dir(); the two before it, shipped a day apart in 2023, added a large speedup and the package-directory entry point itself.

◆ Where it's heading

This is a small tool that reached feature-complete and now moves only when a downstream consumer needs something. Every change in the window is externally contributed, and each addresses a concrete integration need: a function that works on a local package tree rather than an installed one, complexity results sorted so the worst offenders come first, and output suppression for programmatic callers. The 2023 pair shipped a day apart because the new entry point immediately exposed a performance problem on long linear code.

◆ Prediction

Expect the next change to arrive the same way, as a contributed patch serving a linting or CI workflow rather than as planned development.

L
lazyeval
ANALYTICS
0.0

A package retired in 2017 just got rewritten against R's public C API.

◆ Current state

lazyeval was the tidyverse's pre-rlang non-standard evaluation layer, formally set aside in 2017 when tidy evaluation replaced it. After eight and a half years without a release, 0.2.3 arrives as a compliance rewrite: the implementation now uses R's public C API, and the release note states it may differ from the historical one in subtle ways. Nothing about the package's role has changed.

◆ Where it's heading

This is a dormancy revival driven entirely from outside, R core tightening what counts as the public C API forces packages using older internals to be rewritten or be archived. lazyeval is still a dependency deep in older package trees, so keeping it installable matters more than developing it. The caveat about subtle behavioural differences is the notable part: a package nobody is developing has changed behaviour in ways its release note declines to enumerate.

◆ Prediction

Expect no further development, only additional compliance releases if R core tightens the C API again.

Alternatives to cyclocomp and lazyeval

Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either cyclocomp or lazyeval.

See all cyclocomp alternatives → · See all lazyeval alternatives →

Recent activity from cyclocomp and lazyeval

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 4mo agolazyevalReimplemented against R's public C API after eight years dormant
  2. 5mo agocyclocompcyclocomp_package_dir() gains a quiet argument
  3. 2y agocyclocompLarge speedup on long linear code
  4. 2y agocyclocompComplexity checks run against a local package tree
  5. 8y agolazyevalDevelopment ends as the tidyverse moves to tidy evaluation
  6. 10y agolazyevalFormula-based lazy evaluation system introduced
  7. 11y agolazyevallazyeval 0.1.10
  8. 11y agolazyevallazyeval 0.1.9

Frequently asked questions

What is the difference between cyclocomp and lazyeval?

They serve adjacent needs but don't currently overlap on shipped themes. cyclocomp and lazyeval are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is cyclocomp better than lazyeval?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. cyclocomp and lazyeval are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.

What are the best alternatives to cyclocomp?

Top cyclocomp alternatives in Analytics are ranked by recent ship velocity. Browse the "cyclocomp alternatives" section above for the current picks, or visit /alternatives/cyclocomp for the full list with editorial commentary on each.

What are the best alternatives to lazyeval?

Top lazyeval alternatives in Analytics are ranked by recent ship velocity. Browse the "lazyeval alternatives" section above for the current picks, or visit /alternatives/lazyeval for the full list with editorial commentary on each.