Open Bug 1192301 Opened 4 years ago Updated Last year

[meta] Bring Order to Chaos (in the GC)

Categories

(Core :: JavaScript: GC, defect)

defect
Not set

Tracking

()

ASSIGNED
Tracking Status
firefox42 --- affected

People

(Reporter: terrence, Assigned: terrence)

References

(Depends on 7 open bugs, Blocks 2 open bugs)

Details

(Keywords: meta)

Our GC algorithm is a data-flow maze. In theory we have tight bounds on the valid lifetimes and values of the various inter-slice states, yet in practice we poke and prod these from all over the place to the point that they are effectively all just globals. For most state this isn't a huge issue, but for things like incrementalState and mode that are poked and prodded from literally everywhere, in every thread, constantly, this lack of discipline is quite worrying.

The basic plan is to (1) salve some of the most egregious dataflow issues by passing data manually as many places as possible to increase our density of pure code and (2) to reformat the GC in such a way that we don't need to retain so much inter-slice state. I have some speculative ideas for this that I want to experiment with.
Depends on: 1192304
Depends on: 1192306
Depends on: 1193032
Keywords: meta
Depends on: 1193428
Depends on: 1202865
Depends on: 1202914
Depends on: 1202923
Depends on: 1205054
Depends on: 1205132
Depends on: 1205454
Depends on: 1205463
Depends on: 1205909
Depends on: 1207730
Depends on: 1209704
Depends on: 1209754
Depends on: 1210924
Depends on: 1211022
Depends on: 1211031
Depends on: 1213005
Depends on: 1219498
Depends on: 1220310
Depends on: 1220703
Depends on: 1220803
Depends on: 1225298
Depends on: 1227750
Depends on: 1227774
Depends on: 1243888
Depends on: 1244358
Depends on: 1244365
Depends on: 1244909
Depends on: 1244956
Depends on: 1245145
Depends on: 1245316
Depends on: 1251480
Depends on: 1337427
You need to log in before you can comment on or make changes to this bug.