Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f34b2de8939ea29e1f46d834319376219ee22582
      
https://github.com/WebKit/WebKit/commit/f34b2de8939ea29e1f46d834319376219ee22582
  Author: Ian Grunert <[email protected]>
  Date:   2025-05-28 (Wed, 28 May 2025)

  Changed paths:
    M Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp
    M Source/JavaScriptCore/jsc.cpp
    M Source/WTF/wtf/FastMalloc.cpp
    M Source/bmalloc/CMakeLists.txt
    M Source/bmalloc/bmalloc.xcodeproj/project.pbxproj
    M Source/bmalloc/bmalloc/Algorithm.h
    M Source/bmalloc/bmalloc/BCompiler.h
    M Source/bmalloc/bmalloc/BPlatform.h
    M Source/bmalloc/bmalloc/CryptoRandom.cpp
    M Source/bmalloc/bmalloc/Deallocator.cpp
    M Source/bmalloc/bmalloc/DebugHeap.cpp
    M Source/bmalloc/bmalloc/GigacageConfig.h
    M Source/bmalloc/bmalloc/IsoMallocFallback.cpp
    M Source/bmalloc/bmalloc/Mutex.cpp
    M Source/bmalloc/bmalloc/PerThread.h
    M Source/bmalloc/bmalloc/VMAllocate.h
    M Source/bmalloc/libpas/build.sh
    M Source/bmalloc/libpas/src/libpas/pas_baseline_allocator_table.c
    M Source/bmalloc/libpas/src/libpas/pas_bitfit_page_inlines.h
    M Source/bmalloc/libpas/src/libpas/pas_bitvector.h
    M Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.c
    M Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.h
    M Source/bmalloc/libpas/src/libpas/pas_compact_expendable_memory.h
    M Source/bmalloc/libpas/src/libpas/pas_config.h
    M Source/bmalloc/libpas/src/libpas/pas_darwin_spi.h
    M Source/bmalloc/libpas/src/libpas/pas_enumerate_bitfit_heaps.c
    M Source/bmalloc/libpas/src/libpas/pas_expendable_memory.h
    M Source/bmalloc/libpas/src/libpas/pas_heap.c
    M Source/bmalloc/libpas/src/libpas/pas_large_sharing_pool.c
    M Source/bmalloc/libpas/src/libpas/pas_large_sharing_pool.h
    M Source/bmalloc/libpas/src/libpas/pas_lock.h
    M Source/bmalloc/libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.h
    M Source/bmalloc/libpas/src/libpas/pas_log.c
    M Source/bmalloc/libpas/src/libpas/pas_log.h
    M Source/bmalloc/libpas/src/libpas/pas_monotonic_time.c
    M Source/bmalloc/libpas/src/libpas/pas_page_malloc.c
    M Source/bmalloc/libpas/src/libpas/pas_page_sharing_pool.c
    M 
Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c
    M Source/bmalloc/libpas/src/libpas/pas_red_black_tree.h
    M Source/bmalloc/libpas/src/libpas/pas_root.h
    M Source/bmalloc/libpas/src/libpas/pas_scavenger.c
    M Source/bmalloc/libpas/src/libpas/pas_scavenger.h
    M Source/bmalloc/libpas/src/libpas/pas_segregated_directory.h
    M Source/bmalloc/libpas/src/libpas/pas_segregated_directory_inlines.h
    M Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c
    M Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.c
    M Source/bmalloc/libpas/src/libpas/pas_segregated_size_directory.c
    M Source/bmalloc/libpas/src/libpas/pas_segregated_size_directory.h
    M Source/bmalloc/libpas/src/libpas/pas_status_reporter.c
    A Source/bmalloc/libpas/src/libpas/pas_thread.c
    A Source/bmalloc/libpas/src/libpas/pas_thread.h
    M Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c
    M Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.h
    M Source/bmalloc/libpas/src/libpas/pas_thread_local_cache_layout_node.h
    M Source/bmalloc/libpas/src/libpas/pas_utils.c
    M Source/bmalloc/libpas/src/libpas/pas_utils.h
    M Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h
    M Source/bmalloc/libpas/src/test/TSDTests.cpp
    M Source/cmake/OptionsJSCOnly.cmake
    M Source/cmake/OptionsWin.cmake

  Log Message:
  -----------
  Port libpas to Windows
https://bugs.webkit.org/show_bug.cgi?id=283311

Reviewed by Yusuke Suzuki.

Introduced pas_thread as a wrapper around pthread, where we
introduce pthread shims for Windows.

Turned on compiler flag mcx16 so it'll use the cmpxchg16b instruction.
There hasn't been a x64 CPU built without that feature for 20 years or
so, feels like it's safe to turn that on.

Currently using fiber-local-storage instead of thread-local-storage.
There's a performance penalty, but it's simpler to implement and we can
switch to thread-local-storage in a follow-up PR.

We're manually committing the memory in StructureAlignedMemoryAllocator.
This is to workaround https://bugs.webkit.org/show_bug.cgi?id=292771 -
pas_page_malloc commit isn't getting called in this codepath. This
shouldn't use the physical memory until the pages are accessed anyway,
so it should be fine for it to work this way.

Canonical link: https://commits.webkit.org/295497@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to