summaryrefslogtreecommitdiffstats
path: root/js/src/gc
Commit message (Collapse)AuthorAgeLines
* Issue #1471 - Fix building on sparc64 LinuxJMadgwick2020-03-09-3/+3
| | | | | Correct various pre-processor defines for sparc64 and in mozjemalloc use the JS arm64 allocator on Linux/sparc64. This corrects build problems opn Linux sparc64 and is in line with bugzilla bug #1275204.
* Revert #1091 Remove unboxed object code phase 1 + extras.wolfbeast2020-02-23-3/+112
| | | | | | This should be the last code backout for this. merging this branch should get us back to the way we were (+ additional code changes for later changes) as fasr as the unused unboxed code is concerned.
* Revert #1137 - Remove unboxed arrayswolfbeast2020-02-23-0/+2
| | | | | - accounting for removal of watch()/unwatch() - updated for intermediate code changes.
* Issue #316 - Make the memory GC performance object conditional (WIP)wolfbeast2020-02-20-0/+5
| | | | | This was only added for GCubench and likely interfering with building without devtools-server.
* Merge pull request #1262 from athenian200/solaris-workMoonchild2019-11-02-3/+14
|\ | | | | Support Modern Solaris
| * MoonchildProductions#1251 - Part 27: Fix ifdef style.athenian2002019-10-21-1/+1
| | | | | | | | This should do it for all the commits to files I changed, but while I'm in here I could probably go ahead and turn ALL the singular if defined statements into ifdef statements by using grep/find on the tree. On the other hand, perhaps we should do that as a separate issue so that this doesn't become a case of scope creep.
| * MoonchildProductions#1251 - Part 23: Allow AMD64 build to work.athenian2002019-10-21-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Compiling_32-bit_Firefox_on_a_Linux_64-bit_OS Setting this up turned out to be easier than I thought it would be. All I had to do was apply these instructions in reverse and add the following to my .mozconfig file: CC="gcc -m64" CXX="g++ -m64" AS="gas --64" ac_add_options --target=x86_64-pc-solaris2.11 export PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig ac_add_options --libdir=/usr/lib/amd64 ac_add_options --x-libraries=/usr/lib/amd64 Most of these changes were fairly trivial, just requiring me to make a few of the changes I made earlier conditional on a 32-bit build. The biggest challenge was figuring out why the JavaScript engine triggered a segfault everytime it tried to allocate memory. But this patch fixes it: https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/web/firefox/patches/patch-js_src_gc_Memory.cpp.patch Turns out that Solaris on AMD64 handles memory management in a fairly unusual way with a segmented memory model, but it's not that different from what we see on other 64-bit processors. In fact, I saw a SPARC crash for a similar reason, and noticed that it looked just like mine except the numbers in the first segment were reversed. Having played around with hex editors before, I had a feeling I might be dealing with a little-endian version of a big-endian problem, but I didn't expect that knowledge to actually yield an easy solution. https://bugzilla.mozilla.org/show_bug.cgi?id=577056 https://www.oracle.com/technetwork/server-storage/solaris10/solaris-memory-135224.html As far as I can tell, this was the last barrier to an AMD64 Solaris build of Pale Moon.
| * MoonchildProductions#1251 - Part 7: All the posix_m* memory-related stuff, ↵athenian2002019-10-21-1/+5
| | | | | | | | | | | | | | | | | | | | gathered together. https://bugzilla.mozilla.org/show_bug.cgi?id=1158445 https://bugzilla.mozilla.org/show_bug.cgi?id=963983 https://bugzilla.mozilla.org/show_bug.cgi?id=1542758 Solaris madvise and malign don't perfectly map to their POSIX counterparts, and some Linux versions (especially Android) don't define the POSIX counterparts at all, so options are limited. Ideally posix_madvise and posix_malign should be the safer and more portable options for all platforms.
* | Issue #1257 - Part 2: Remove watch/unwatch and JS watchpoint class.wolfbeast2019-10-27-5/+3
|/
* Remove UnboxedArray code part 2wolfbeast2019-05-23-2/+0
|
* Remove unboxed objects from GCwolfbeast2019-05-15-112/+3
|
* tab to spaces js/src/gcwin7-72019-04-30-21/+21
|
* add newline at end of files js/src/gcwin7-72019-04-29-4/+4
|
* Improve dead compartment collection js/src/gcwin7-72019-04-29-8/+32
|
* Issue #187: Remove solaris conditional code.wolfbeast2019-03-30-85/+0
|
* Reset nursery position when it's disabled.Jon Coppeard2019-03-22-0/+2
|
* Remove telemetry leftovers from JS engine.adeshkp2019-01-30-164/+63
|
* Stop using PodZero in several places to initialize values of non-trivial typetrav902018-09-12-14/+9
|
* Convert the trailing array of BindingNames at the end of the various kinds ↵trav902018-09-02-15/+15
| | | | of scope data into raw unsigned chars into which those BindingNames are placement-new'd, rather than memcpy-ing non-trivial classes around and failing to comply with the C++ object model
* Simplify HeapSlot to make it trivially copyabletrav902018-08-12-23/+4
| | | | This removes the constructors, which were never called since we allocate arrays of HeapSlot with pod_malloc. The destructor is only ever called explicitly since we free this memory with js_free so it has been renamed to destroy(). Also removed is an unused manual barrier.
* Bug 1465108 - Use function pointers rather than virtual run method for GC ↵Jon Coppeard2018-06-07-16/+13
| | | | parallel tasks r=sfink a=abillings a=RyanVM
* Fix Value::isGCThing footgun, stop returning true for NullValuetrav902018-04-07-5/+5
|
* Bug 1323868: Report object allocation failure when running off-main-threadjanekptacijarabaci2018-03-19-2/+6
| | | | | Issue #77 [Depends on] Bug 1192038: RegExp.prototype should be an ordinary object
* Always initialize nursery data structures even if size is smaller than one ↵wolfbeast2018-02-05-7/+7
| | | | chunk.
* Remove unused compileBarriers()wolfbeast2018-02-03-2/+0
|
* Remove SetGCZeal() stub and its callers.wolfbeast2018-02-03-2/+0
|
* Remove runDebugGC() stubwolfbeast2018-02-03-1/+0
|
* Remove pushZealSelectedObjects() and callerwolfbeast2018-02-03-1/+0
|
* Remove finishMarkingValidation and callerwolfbeast2018-02-03-2/+0
|
* Remove validateIncrementalMarking() and callerwolfbeast2018-02-03-1/+0
|
* Remove computeNonIncrementalMarkingForValidation(lock) and callerwolfbeast2018-02-03-1/+0
|
* Remove AutoStopVerifyingBarriers RAII stub struct no longer in use.wolfbeast2018-02-03-6/+0
|
* Remove needZealousGC()wolfbeast2018-02-03-4/+0
|
* Remove upcomingZealousGC() and callerwolfbeast2018-02-03-2/+0
|
* Remove clearZealMode(mode)wolfbeast2018-02-03-2/+0
|
* Remove hasZealMode(mode) and callerswolfbeast2018-02-03-12/+3
|
* Remove isVerifyPreBarriersEnabled() stub and callerswolfbeast2018-02-03-3/+0
|
* Remove GCZeal: Base cleanupwolfbeast2018-02-03-666/+1
| | | | UXP repo issue #8
* Add m-esr52 at 52.6.0Matt A. Tobin2018-02-02-0/+17641