Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • aports aports
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Graph
    • Compare
  • Issues 737
    • Issues 737
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 325
    • Merge requests 325
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • alpinealpine
  • aportsaports
  • Issues
  • #10918
Closed
Open
Issue created Oct 29, 2019 by Johannes Müller@straight-shootaContributor

main/gc: Enable large config for heap size > 4GiB

I'm proposing to enable LARGE_CONFIG setting for building libgc on 64-bit systems to enable heap sizes of more than 4 GiB.

LARGE_CONFIG    Tunes the collector for unusually large heaps.
  Necessary for heaps larger than about 4 GiB on most (64-bit) machines.
  Recommended for heaps larger than about 500 MiB.  Not recommended for
  embedded systems.  Could be used in conjunction with SMALL_CONFIG to
  generate smaller code (by disabling incremental collection support,
  statistic printing and some optimization algorithms).

source

Depending on the use case, a heap size of 4+ GiB might actually not be that unusually large anymore.

We've had issues with large heaps in Crystal applications (Crystal runtime uses libgc), which meant the program would fail and is unusable for large amounts of data. This has even been a problem for the Crystal compiler. We now use libgc with --enable-large-config in the generic distribution packages. But the aports package community/crystal uses libgc from main/gc-dev which currently does not use LARGE_CONFIG. So it will inevitably run in to issues as well that have been witnessed on other platforms before. This could obviously be fixed by using a custom build libgc for Crystal package, but a) it's better to depend on the default package and b) other users of libgc might benefit from this change as well.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking