carbon-lang icon indicating copy to clipboard operation
carbon-lang copied to clipboard

Re-evaluate optional features when optimizing compile time

Open dwblaikie opened this issue 1 year ago • 4 comments

There are a few features that we've enabled by default that are nice to have - but at some point, especially when promoting carbon to users more heavily, we may want to ensure these features aren't costing too much, especially in compile time, and harming users first impressions.

So far the list is:

  • parse tree validation (an internal consistency check)
  • debug info (enabled by default, unlike other compilers (gcc, clang, etc) that disable this by default, presumably because it's too expensive to enable by default - carbon plans to have relatively light debug info compared to C++ so maybe it can get away with paying this cost by default)

dwblaikie avatar Aug 21 '24 00:08 dwblaikie

  • parse tree validation (an internal consistency check)

Just to be sure, there's some minimal validation, but #4174 turned off the really expensive parts (in opt mode, anyways).

jonmeow avatar Aug 21 '24 15:08 jonmeow

  • CARBON_CHECK -- while we want some of those to remain, it'd be worth doing a performance comparison with all of the checks disabled to get a measure of how much we're paying. If it's a lot, we should carefully pick specific instances that we might want to turn into CARBON_DCHECK.
  • CARBON_VLOG -- similarly, disabling all of these would give us an idea of whether we're leaving performance on the table here, and maybe we can reduce that cost.

zygoloid avatar Sep 06 '24 22:09 zygoloid

@zygoloid hi, are there any easy first issues i can work on to get my hands dirty in the repo? Cant see any on the issues page.

muhd360 avatar Sep 21 '24 12:09 muhd360

We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please comment or remove the inactive label. The long term label can also be added for issues which are expected to take time.

This issue is labeled inactive because the last activity was over 90 days ago.

github-actions[bot] avatar Dec 23 '24 02:12 github-actions[bot]