[Git][ghc/ghc][wip/T26166] 2 commits: Need to bump version to satisfy cabal [no-default-language] warning

Rodrigo Mesquita pushed to branch wip/T26166 at Glasgow Haskell Compiler / GHC Commits: d161d119 by Rodrigo Mesquita at 2025-10-08T16:04:30+01:00 Need to bump version to satisfy cabal [no-default-language] warning - - - - - a025452f by Rodrigo Mesquita at 2025-10-08T18:14:06+01:00 Multiple fixes towards #26166 Bump hsc2hs submodule to version with fix - - - - - 10 changed files: - libraries/base/src/System/CPUTime.hsc - libraries/ghc-internal/ghc-internal.cabal.in - rts/include/HsFFI.h - rts/rts.cabal - utils/ghc-toolchain/ghc-toolchain.cabal - utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs - + utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link/RtsSymbols.hs - utils/hsc2hs - + utils/parse-rts-symbols/README.md - + utils/parse-rts-symbols/main.py Changes: ===================================== libraries/base/src/System/CPUTime.hsc ===================================== @@ -17,6 +17,7 @@ #include "HsFFI.h" #include "HsBaseConfig.h" +#include "RtsIfaceStub.h" -- For various _POSIX_* #defines #if defined(HAVE_UNISTD_H) ===================================== libraries/ghc-internal/ghc-internal.cabal.in ===================================== @@ -486,6 +486,7 @@ Library RtsIfaceStub.h install-includes: HsBase.h + RtsIfaceStub.h consUtils.h if flag(need-atomic) ===================================== rts/include/HsFFI.h ===================================== @@ -143,8 +143,6 @@ extern void hs_try_putmvar_with_value (int capability, HsStablePtr sp, StgClosur /* -------------------------------------------------------------------------- */ - - #if defined(__cplusplus) } #endif ===================================== rts/rts.cabal ===================================== @@ -1,4 +1,4 @@ -cabal-version: 3.0 +cabal-version: 3.4 name: rts version: 1.0.3 synopsis: The GHC runtime system ===================================== utils/ghc-toolchain/ghc-toolchain.cabal ===================================== @@ -26,6 +26,7 @@ library GHC.Toolchain.Tools.Cxx, GHC.Toolchain.Tools.Cpp, GHC.Toolchain.Tools.Link, + GHC.Toolchain.Tools.Link.RtsSymbols, GHC.Toolchain.Tools.Nm, GHC.Toolchain.Tools.Ranlib, GHC.Toolchain.Tools.Readelf, ===================================== utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs ===================================== @@ -17,6 +17,8 @@ import GHC.Toolchain.Program import GHC.Toolchain.Tools.Cc import GHC.Toolchain.Tools.Readelf +import GHC.Toolchain.Tools.Link.RtsSymbols + -- | Configuration on how the C compiler can be used to link data CcLink = CcLink { ccLinkProgram :: Program , ccLinkSupportsNoPie :: Bool -- See Note [No PIE when linking] in GHC.Driver.Session @@ -328,6 +330,10 @@ addPlatformDepLinkFlags archOs cc ccLink0 = do -- Since https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md#407---0... -- the emcc linker does not export the HEAP8 memory view which is used by the js RTS by default anymore. return $ ccLink2 & _prgFlags %++ "-sEXPORTED_RUNTIME_METHODS=HEAP8,HEAPU8" + ArchOS _ OSDarwin -> + -- See Note [TODO] + return $ ccLink2 & _prgFlags %++ + ("-Wl" ++ concatMap (",-U,_" ++ ) rtsPublicSymbols) _ -> return ccLink2 ===================================== utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link/RtsSymbols.hs ===================================== @@ -0,0 +1,2876 @@ +module GHC.Toolchain.Tools.Link.RtsSymbols where + +import Data.String (String) +import Data.List ((++)) + +-- My guess is that these should not be part of the rtsPublicSymbols and are a +-- problem which comes from no longer having -undefined dynamic_lookup. For +-- unix e.g. we probably should add -U<symbol> to the ld-options of unix? +-- +-- For the other Symbols not as sure. +sketchySymbols :: [String] +sketchySymbols = + ["nocldstop"] -- from unix + ++ + ["CCS_DONT_CARE", "user_era"] -- ?? + ++ + -- things which should probably be in the public api dir (rts/include/..) but are only in (rts/...) + ["arenaAlloc", "arenaFree", "cloneStack", "newArena", "rts_setMainThread", "sendCloneStackMessage"] + ++ + -- FFI things...? + ["ffi_prep_cif", "ffi_type_double", "ffi_type_float", "ffi_type_pointer", + "ffi_type_sint16", "ffi_type_sint32", "ffi_type_sint64", "ffi_type_sint8", + "ffi_type_uint16", "ffi_type_uint32", "ffi_type_uint64", "ffi_type_uint8", + "ffi_type_void"] + ++ + -- Profiling and more unexported from rts/include but which are public in the RTS + -- Perhaps we should just include ALL symbols from the RTS regardless of public/private. + -- Ideally we'd want the "visibility" attribute to be checked but that doesn't seem to be available. + [ "mkCostCentre", "rts_disableStopAfterReturn", "rts_disableStopNextBreakpoint", "rts_disableStopNextBreakpointAll", "rts_enableStopAfterReturn", "rts_enableStopNextBreakpoint", "rts_enableStopNextBreakpointAll"] + -- Stg things? + ++ + [ "stg_interp_constr1_entry" + , "stg_interp_constr2_entry" + , "stg_interp_constr3_entry" + , "stg_interp_constr4_entry" + , "stg_interp_constr5_entry" + , "stg_interp_constr6_entry" + , "stg_interp_constr7_entry" + ] + +-- See Note [TODO] + +-- The `rtsPublicSymbols` list is kept up to date by hand but can be potentially regenerated from +-- scratch using the script XXX... + +-- A list of all the symbols which are undefined when linking a Haskell library +-- and are only resolved when linking a final executable against the RTS. +-- +-- Essentially, all the public RTS symbols +rtsPublicSymbols :: [String] +rtsPublicSymbols = + sketchySymbols ++ + [ "ALLOC_BH_adm" + , "ALLOC_BH_ctr" + , "ALLOC_BH_gds" + , "ALLOC_BH_slp" + , "ALLOC_CON_adm" + , "ALLOC_CON_ctr" + , "ALLOC_CON_gds" + , "ALLOC_CON_slp" + , "ALLOC_FUN_adm" + , "ALLOC_FUN_ctr" + , "ALLOC_FUN_gds" + , "ALLOC_FUN_slp" + , "ALLOC_HEAP_ctr" + , "ALLOC_HEAP_tot" + , "ALLOC_PAP_adm" + , "ALLOC_PAP_ctr" + , "ALLOC_PAP_gds" + , "ALLOC_PAP_slp" + , "ALLOC_PRIM_adm" + , "ALLOC_PRIM_ctr" + , "ALLOC_PRIM_gds" + , "ALLOC_PRIM_slp" + , "ALLOC_RTS_ctr" + , "ALLOC_RTS_tot" + , "ALLOC_SE_THK_ctr" + , "ALLOC_STACK_ctr" + , "ALLOC_STACK_tot" + , "ALLOC_THK_adm" + , "ALLOC_THK_gds" + , "ALLOC_THK_slp" + , "ALLOC_TSO_ctr" + , "ALLOC_TSO_tot" + , "ALLOC_TUP_adm" + , "ALLOC_TUP_ctr" + , "ALLOC_TUP_gds" + , "ALLOC_TUP_slp" + , "ALLOC_UP_THK_ctr" + , "ATTRIBUTE_ALIGNED" + , "AddDelayRequest" + , "AddIORequest" + , "AddProcRequest" + , "CATCHF_PUSHED_ctr" + , "CCS_OVERHEAD" + , "CCS_SYSTEM" + , "CLOSURE" + , "Capability" + , "EF_" + , "ENT_AP_STACK_ctr" + , "ENT_AP_ctr" + , "ENT_BH_ctr" + , "ENT_CONTINUATION_ctr" + , "ENT_DYN_CON_ctr" + , "ENT_DYN_FUN_DIRECT_ctr" + , "ENT_DYN_IND_ctr" + , "ENT_DYN_THK_MANY_ctr" + , "ENT_DYN_THK_SINGLE_ctr" + , "ENT_LNE_ctr" + , "ENT_PAP_ctr" + , "ENT_PERM_IND_ctr" + , "ENT_STATIC_CON_ctr" + , "ENT_STATIC_FUN_DIRECT_ctr" + , "ENT_STATIC_IND_ctr" + , "ENT_STATIC_THK_MANY_ctr" + , "ENT_STATIC_THK_SINGLE_ctr" + , "ENT_VIA_NODE_ctr" + , "EXTERN_INLINE" + , "FetchWork" + , "FileEventLogWriter" + , "FlagDefaultsHook" + , "FreeWorkQueue" + , "GC_FAILED_PROMOTION_ctr" + , "GC_SEL_ABANDONED_ctr" + , "GC_SEL_MAJOR_ctr" + , "GC_SEL_MINOR_ctr" + , "GHC_STATIC_ASSERT" + , "GarbageCollect" + , "GetWork" + , "GetWorkQueueHandle" + , "HEAP_CHK_ctr" + , "HashSet" + , "INFO_TABLE_RET" + , "KNOWN_CALL_EXTRA_ARGS_ctr" + , "KNOWN_CALL_TOO_FEW_ARGS_ctr" + , "KNOWN_CALL_ctr" + , "LongGCSync" + , "LongGCSyncEnd" + , "MULTI_CHUNK_SLOW_CALL_CHUNKS_ctr" + , "MULTI_CHUNK_SLOW_CALL_ctr" + , "MainCapability" + , "MallocFailHook" + , "N" + , "NewWorkQueue" + , "NullEventLogWriter" + , "OnExitHook" + , "OutOfHeapHook" + , "P_" + , "PrintTickyInfo" + , "RET_NEW_ctr" + , "RET_NEW_hst" + , "RET_OLD_ctr" + , "RET_OLD_hst" + , "RET_SEMI_loads_avoided" + , "RET_UNBOXED_TUP_ctr" + , "RET_UNBOXED_TUP_hst" + , "RtsFlags" + , "SET_INFO" + , "SET_INFO_RELAXED" + , "SET_INFO_RELEASE" + , "SLOW_CALL_FUN_CORRECT_ctr" + , "SLOW_CALL_FUN_TOO_FEW_ctr" + , "SLOW_CALL_FUN_TOO_MANY_ctr" + , "SLOW_CALL_PAP_CORRECT_ctr" + , "SLOW_CALL_PAP_TOO_FEW_ctr" + , "SLOW_CALL_PAP_TOO_MANY_ctr" + , "SLOW_CALL_UNEVALD_ctr" + , "SLOW_CALL_ctr" + , "SLOW_CALL_fast_d_ctr" + , "SLOW_CALL_fast_f_ctr" + , "SLOW_CALL_fast_l_ctr" + , "SLOW_CALL_fast_n_ctr" + , "SLOW_CALL_fast_p_ctr" + , "SLOW_CALL_fast_pp_ctr" + , "SLOW_CALL_fast_ppp_ctr" + , "SLOW_CALL_fast_pppp_ctr" + , "SLOW_CALL_fast_ppppp_ctr" + , "SLOW_CALL_fast_pppppp_ctr" + , "SLOW_CALL_fast_pppv_ctr" + , "SLOW_CALL_fast_ppv_ctr" + , "SLOW_CALL_fast_pv_ctr" + , "SLOW_CALL_fast_v16_ctr" + , "SLOW_CALL_fast_v_ctr" + , "SNT_size" + , "STK_CHK_ctr" + , "ShutdownIOManager" + , "StackOverflowHook" + , "StartIOManager" + , "StgClosure" + , "StgCompactNFData" + , "StgCompactNFDataBlock" + , "StgConInfoTable" + , "StgFun" + , "StgFunInfoTable" + , "StgHalfWord" + , "StgInfoTable" + , "StgInt" + , "StgOffset" + , "StgPtr" + , "StgRegTable" + , "StgRetInfoTable" + , "StgReturn" + , "StgTSO" + , "StgThunkInfoTable" + , "StgTimeout" + , "StgTimeoutQueue" + , "StgWord" + , "StgWord8" + , "StrHashTable" + , "SubmitWork" + , "TAG_TAGGED_miss" + , "TAG_TAGGED_pred" + , "TAG_UNTAGGED_miss" + , "TAG_UNTAGGED_pred" + , "TRACE_cap" + , "TRACE_gc" + , "TRACE_nonmoving_gc" + , "TRACE_sched" + , "TRACE_spark_full" + , "TRACE_spark_sampled" + , "Task" + , "TaskId" + , "Time" + , "UNKNOWN_CALL_ctr" + , "UPDF_OMITTED_ctr" + , "UPDF_PUSHED_ctr" + , "UPDF_RCC_OMITTED_ctr" + , "UPDF_RCC_PUSHED_ctr" + , "UPD_BH_UPDATABLE_ctr" + , "UPD_CAF_BH_SINGLE_ENTRY_ctr" + , "UPD_CAF_BH_UPDATABLE_ctr" + , "UPD_CON_IN_NEW_ctr" + , "UPD_CON_IN_PLACE_ctr" + , "UPD_NEW_IND_ctr" + , "UPD_NEW_PERM_IND_ctr" + , "UPD_OLD_IND_ctr" + , "UPD_OLD_PERM_IND_ctr" + , "UPD_PAP_IN_NEW_ctr" + , "UPD_PAP_IN_PLACE_ctr" + , "UPD_SQUEEZED_ctr" + , "VERY_SLOW_CALL_ctr" + , "WINAPI" + , "W_" + , "XXH128_canonicalFromHash" + , "XXH128_cmp" + , "XXH128_hashFromCanonical" + , "XXH128_isEqual" + , "XXH32" + , "XXH32_canonicalFromHash" + , "XXH32_copyState" + , "XXH32_createState" + , "XXH32_digest" + , "XXH32_freeState" + , "XXH32_hashFromCanonical" + , "XXH32_reset" + , "XXH32_update" + , "XXH3_128bits" + , "XXH3_128bits_digest" + , "XXH3_128bits_reset" + , "XXH3_128bits_reset_withSecret" + , "XXH3_128bits_reset_withSeed" + , "XXH3_128bits_update" + , "XXH3_128bits_withSecret" + , "XXH3_128bits_withSeed" + , "XXH3_64bits" + , "XXH3_64bits_digest" + , "XXH3_64bits_reset" + , "XXH3_64bits_reset_withSecret" + , "XXH3_64bits_reset_withSeed" + , "XXH3_64bits_update" + , "XXH3_64bits_withSecret" + , "XXH3_64bits_withSeed" + , "XXH3_copyState" + , "XXH3_createState" + , "XXH3_freeState" + , "XXH64" + , "XXH64_canonicalFromHash" + , "XXH64_copyState" + , "XXH64_createState" + , "XXH64_digest" + , "XXH64_freeState" + , "XXH64_hashFromCanonical" + , "XXH64_reset" + , "XXH64_update" + , "XXH_versionNumber" + , "ZCMain_main_closure" + , "_Exit" + , "__assert_rtn" + , "__cospi" + , "__cospif" + , "__decodeDouble_2Int" + , "__decodeDouble_Int64" + , "__decodeFloat_Int" + , "__exp10" + , "__exp10f" + , "__fpclassifyd" + , "__fpclassifyf" + , "__fpclassifyl" + , "__hs_fopen" + , "__hscore_get_saved_termios" + , "__hscore_set_saved_termios" + , "__inline_isfinited" + , "__inline_isfinitef" + , "__inline_isfinitel" + , "__inline_isinfd" + , "__inline_isinff" + , "__inline_isinfl" + , "__inline_isnand" + , "__inline_isnanf" + , "__inline_isnanl" + , "__inline_isnormald" + , "__inline_isnormalf" + , "__inline_isnormall" + , "__inline_signbitd" + , "__inline_signbitf" + , "__inline_signbitl" + , "__int_encodeDouble" + , "__int_encodeFloat" + , "__math_errhandling" + , "__mb_cur_max" + , "__register_hs_exception_handler" + , "__rts_fopen" + , "__sincos" + , "__sincos_stret" + , "__sincosf" + , "__sincosf_stret" + , "__sincospi" + , "__sincospi_stret" + , "__sincospif" + , "__sincospif_stret" + , "__sinpi" + , "__sinpif" + , "__snprintf_chk" + , "__sprintf_chk" + , "__sputc" + , "__srget" + , "__stderrp" + , "__stdinp" + , "__stdoutp" + , "__stg_EAGER_BLACKHOLE_entry" + , "__stg_EAGER_BLACKHOLE_info" + , "__stg_gc_enter_1" + , "__stg_gc_fun" + , "__svfscanf" + , "__swbuf" + , "__tanpi" + , "__tanpif" + , "__unregister_hs_exception_handler" + , "__vsnprintf_chk" + , "__vsprintf_chk" + , "__word_encodeDouble" + , "__word_encodeFloat" + , "_assertFail" + , "_warnFail" + , "a64l" + , "abandonRequestWait" + , "abandonWorkRequest" + , "abort" + , "abs" + , "accountAllocation" + , "acos" + , "acosf" + , "acosh" + , "acoshf" + , "acoshl" + , "acosl" + , "addDLL" + , "addDLL_PEi386" + , "addDelayRequest" + , "addDoProcRequest" + , "addIORequest" + , "addInitFini" + , "addLibrarySearchPath" + , "addLibrarySearchPath_PEi386" + , "addProddableBlock" + , "addSection" + , "aligned_alloc" + , "all_tasks" + , "allocAlignedGroupOnNode" + , "allocBlockOnNode_lock" + , "allocBlock_lock" + , "allocGroup" + , "allocGroupOnNode" + , "allocGroupOnNode_lock" + , "allocGroupOnNode_sync" + , "allocGroup_lock" + , "allocGroup_sync" + , "allocHashTable" + , "allocLargeChunk" + , "allocLargeChunkOnNode" + , "allocMBlockAlignedGroupOnNode" + , "alloc_adjustor" + , "alloc_todo_block" + , "alloca" + , "allocate" + , "allocateArrBytes" + , "allocateArrBytesPinned" + , "allocateExecPage" + , "allocateForCompact" + , "allocateMightFail" + , "allocateMutArrPtrs" + , "allocatePinned" + , "allocateSmallMutArrPtrs" + , "anyPendingTimeoutsOrIO" + , "anyUserHandlers" + , "appendToRunQueue" + , "arc4random" + , "arc4random_addrandom" + , "arc4random_buf" + , "arc4random_stir" + , "arc4random_uniform" + , "arenaAlloc" + , "arenaBlocks" + , "arenaFree" + , "asctime" + , "asctime_r" + , "asin" + , "asinf" + , "asinh" + , "asinhf" + , "asinhl" + , "asinl" + , "asprintf" + , "assert_in_nonmoving_heap" + , "atan" + , "atan2" + , "atan2f" + , "atan2l" + , "atanf" + , "atanh" + , "atanhf" + , "atanhl" + , "atanl" + , "atexit" + , "atexit_b" + , "atof" + , "atoi" + , "atol" + , "atoll" + , "awaitAsyncRequests" + , "awaitCompletedTimeoutsOrIO" + , "awaitCompletedTimeoutsOrIOSelect" + , "awaitCompletedTimeoutsOrIOWin32" + , "awaitRequests" + , "awakenBlockedExceptionQueue" + , "backtraceFree" + , "barf" + , "bcmp" + , "bcopy" + , "bdescr" + , "blackHoleOwner" + , "blockUserSignals" + , "bool" + , "broadcastCondition" + , "bsearch" + , "bsearch_b" + , "bzero" + , "calcNeeded" + , "calcTotalAllocated" + , "calcTotalCompactW" + , "calcTotalLargeObjectsW" + , "calloc" + , "capabilities" + , "capacityClosureTable" + , "captureContinuationAndAbort" + , "cas_ptr" + , "cbrt" + , "cbrtf" + , "cbrtl" + , "ceil" + , "ceilf" + , "ceill" + , "cgetcap" + , "cgetclose" + , "cgetent" + , "cgetfirst" + , "cgetmatch" + , "cgetnext" + , "cgetnum" + , "cgetset" + , "cgetstr" + , "cgetustr" + , "checkAndLoadImportLibrary" + , "checkBlockingQueues" + , "checkFPUStack" + , "checkProddableBlock" + , "checkUnload" + , "checkVectorSupport" + , "clearImportSymbol" + , "clearNursery" + , "clear_blocks" + , "clear_free_list" + , "clearerr" + , "clock" + , "clock_getres" + , "clock_gettime" + , "clock_gettime_nsec_np" + , "clock_settime" + , "cloneStack" + , "closeCondition" + , "closeMutex" + , "closure_flags" + , "closure_sizeW_" + , "closure_type_names" + , "cmp_thread" + , "collectFreshWeakPtrs" + , "collect_pointers" + , "commitMBlockFreeing" + , "compact" + , "compactAllocateBlock" + , "compactContains" + , "compactFixupPointers" + , "compactFree" + , "compactMarkKnown" + , "compactNew" + , "compactResize" + , "completeSynchronousRequest" + , "containsSpan" + , "contextSwitchAllCapabilities" + , "contextSwitchCapability" + , "copysign" + , "copysignf" + , "copysignl" + , "cos" + , "cosf" + , "cosh" + , "coshf" + , "coshl" + , "cosl" + , "countAllocdBlocks" + , "countBlocks" + , "countCompactBlocks" + , "countNurseryBlocks" + , "countOccupied" + , "createAdjustor" + , "createAttachedOSThread" + , "createGenThread" + , "createIOThread" + , "createOSThread" + , "createStrictIOThread" + , "createThread" + , "ctermid" + , "ctermid_r" + , "ctime" + , "ctime_r" + , "current_mark_queue" + , "daemon" + , "daylight" + , "dbl_link_insert_after" + , "dbl_link_onto" + , "dbl_link_remove" + , "dbl_link_replace" + , "dead_weak_ptr_list" + , "deadlock_detect_gc" + , "debugBelch" + , "debugMsgFn" + , "debug_caf_list" + , "defaultRtsConfig" + , "deferMBlockFreeing" + , "deleteMinTimeoutQueue" + , "deleteTimeoutQueue" + , "devname" + , "devname_r" + , "difftime" + , "dirty_MUT_VAR" + , "dirty_MVAR" + , "dirty_STACK" + , "dirty_TSO" + , "dirty_TVAR" + , "discardElements" + , "discardTasksExcept" + , "div" + , "doIdleGCWork" + , "doneWithMsgThrowTo" + , "dprintf" + , "drand48" + , "dropExtension" + , "dumpIPEToEventLog" + , "dyn_caf_list" + , "ecvt" + , "emitTickyCounterDefs" + , "emitTickyCounterSamples" + , "enabled_capabilities" + , "endEventLogging" + , "endHeapProfiling" + , "endProfiling" + , "endsWithPath" + , "enlargeClosureTable" + , "enterFunCCS" + , "entering_PAP" + , "eq_thread" + , "era" + , "erand48" + , "erf" + , "erfc" + , "erfcf" + , "erfcl" + , "erff" + , "erfl" + , "errorBelch" + , "errorMsgFn" + , "evacuate" + , "evacuate1" + , "evacuate_BLACKHOLE" + , "evacuate_BLACKHOLE1" + , "eventLogStatus" + , "exec_block" + , "exit" + , "exitFn" + , "exitGlobalStore" + , "exitHeapOverflow" + , "exitHpc" + , "exitIOManager" + , "exitIpe" + , "exitLinker" + , "exitLinker_PEi386" + , "exitMyTask" + , "exitScheduler" + , "exitStableNameTable" + , "exitStablePtrTable" + , "exitStaticPtrTable" + , "exitStorage" + , "exitTicker" + , "exitTimer" + , "exitTopHandler" + , "exitUnloadCheck" + , "exp" + , "exp2" + , "exp2f" + , "exp2l" + , "expf" + , "expl" + , "expm1" + , "expm1f" + , "expm1l" + , "fabs" + , "fabsf" + , "fabsl" + , "fatalInternalErrorFn" + , "fclose" + , "fcvt" + , "fdim" + , "fdimf" + , "fdiml" + , "fdopen" + , "feof" + , "ferror" + , "fflush" + , "ffs" + , "ffsl" + , "ffsll" + , "fgetc" + , "fgetln" + , "fgetpos" + , "fgets" + , "fileno" + , "findAtomicallyFrameHelper" + , "findRetryFrameHelper" + , "findSystemLibrary" + , "findSystemLibrary_PEi386" + , "finiUserSignals" + , "finishCapEventLogging" + , "finishedNurseryBlock" + , "flockfile" + , "floor" + , "floorf" + , "floorl" + , "fls" + , "flsl" + , "flsll" + , "flushEventLog" + , "flushExec" + , "flushLocalEventsBuf" + , "fma" + , "fmaf" + , "fmal" + , "fmax" + , "fmaxf" + , "fmaxl" + , "fmemopen" + , "fmin" + , "fminf" + , "fminl" + , "fmod" + , "fmodf" + , "fmodl" + , "fmtcheck" + , "fopen" + , "foreignExportStablePtr" + , "foreignExportsFinishedLoadingObject" + , "foreignExportsLoadingObject" + , "forkOS_createThread" + , "forkProcess" + , "formatClosureDescIpe" + , "fprintf" + , "fpurge" + , "fputc" + , "fputs" + , "fread" + , "free" + , "freeAllMBlocks" + , "freeCapabilities" + , "freeChain" + , "freeChain_lock" + , "freeChain_sync" + , "freeExecPage" + , "freeFileLocking" + , "freeFullProgArgv" + , "freeGcThreads" + , "freeGroup" + , "freeGroup_lock" + , "freeGroup_sync" + , "freeHashSet" + , "freeHashTable" + , "freeHaskellFunctionPtr" + , "freeHeapProfiling" + , "freeInitFiniList" + , "freeMBlocks" + , "freeMarkQueue" + , "freeMyTask" + , "freeNativeCode_POSIX" + , "freeObjectCode" + , "freePreloadObjectFile_PEi386" + , "freeProddableBlocks" + , "freeProfiling" + , "freeProgEnvv" + , "freeRtsArgs" + , "freeScheduler" + , "freeSegments" + , "freeSnEntry" + , "freeStablePtr" + , "freeStablePtrUnsafe" + , "freeStorage" + , "freeStrHashTable" + , "freeTaskManager" + , "freeThreadingResources" + , "freeWSDeque" + , "free_adjustor" + , "freezeExecPage" + , "freopen" + , "frexp" + , "frexpf" + , "frexpl" + , "fscanf" + , "fseek" + , "fseeko" + , "fsetpos" + , "ftell" + , "ftello" + , "ftrylockfile" + , "funlockfile" + , "funopen" + , "fwrite" + , "g0" + , "gcStableNameTable" + , "gcThreadLiveBlocks" + , "gcThreadLiveWords" + , "gcWorkerThread" + , "gc_threads" + , "gcvt" + , "genLiveBlocks" + , "genLiveCopiedBlocks" + , "genLiveCopiedWords" + , "genLiveUncopiedBlocks" + , "genLiveUncopiedWords" + , "genLiveWords" + , "gen_workspace" + , "generateDump" + , "generateStack" + , "generations" + , "genericRaise" + , "getAllocations" + , "getCurrentThreadCPUTime" + , "getDelayTarget" + , "getFirstMBlock" + , "getFullProgArgv" + , "getHeaderInfo" + , "getMBlock" + , "getMBlockOnNode" + , "getMBlocks" + , "getMBlocksOnNode" + , "getMonotonicNSec" + , "getMyTask" + , "getNewNursery" + , "getNextMBlock" + , "getNumCapabilities" + , "getNumberOfProcessors" + , "getObjectLoadStatus" + , "getObjectLoadStatus_" + , "getObjectType" + , "getOrSetGHCConcSignalSignalHandlerStore" + , "getOrSetGHCConcWindowsIOManagerThreadStore" + , "getOrSetGHCConcWindowsPendingDelaysStore" + , "getOrSetGHCConcWindowsProddingStore" + , "getOrSetLibHSghcFastStringTable" + , "getOrSetLibHSghcGlobalHasNoDebugOutput" + , "getOrSetLibHSghcGlobalHasNoStateHack" + , "getOrSetLibHSghcGlobalHasPprDebug" + , "getOrSetSystemEventThreadEventManagerStore" + , "getOrSetSystemEventThreadIOManagerThreadStore" + , "getOrSetSystemTimerThreadEventManagerStore" + , "getOrSetSystemTimerThreadIOManagerThreadStore" + , "getOverlappedEntries" + , "getPageFaults" + , "getPageSize" + , "getPhysicalMemorySize" + , "getProcessCPUTime" + , "getProcessElapsedTime" + , "getProcessTimes" + , "getProgArgv" + , "getProgEnvv" + , "getRTSStats" + , "getRTSStatsEnabled" + , "getRecentActivity" + , "getSchedState" + , "getSectionKind_MachO" + , "getStablePtr" + , "getSymNumberOfAuxSymbols" + , "getSymSectionNumber" + , "getSymShortName" + , "getSymStorageClass" + , "getSymType" + , "getSymValue" + , "getSymbolSize" + , "getTopHandlerThread" + , "getUnixEpochTime" + , "getUserEra" + , "get_name_string" + , "get_sym_name" + , "getbsize" + , "getc" + , "getc_unlocked" + , "getchar" + , "getchar_unlocked" + , "getdate" + , "getdate_err" + , "getdelim" + , "getenv" + , "getiopolicy_np" + , "getline" + , "getloadavg" + , "getpriority" + , "getprogname" + , "getrlimit" + , "getrusage" + , "gets" + , "getsubopt" + , "getw" + , "ghc___aarch64_cas1_acq" + , "ghc___aarch64_cas1_acq_rel" + , "ghc___aarch64_cas1_relax" + , "ghc___aarch64_cas1_sync" + , "ghc___aarch64_cas2_acq" + , "ghc___aarch64_cas2_acq_rel" + , "ghc___aarch64_cas2_relax" + , "ghc___aarch64_cas2_sync" + , "ghc___aarch64_cas4_acq" + , "ghc___aarch64_cas4_acq_rel" + , "ghc___aarch64_cas4_relax" + , "ghc___aarch64_cas4_sync" + , "ghc___aarch64_cas8_acq" + , "ghc___aarch64_cas8_acq_rel" + , "ghc___aarch64_cas8_relax" + , "ghc___aarch64_cas8_sync" + , "ghc___aarch64_ldadd1_acq" + , "ghc___aarch64_ldadd1_acq_rel" + , "ghc___aarch64_ldadd1_rel" + , "ghc___aarch64_ldadd1_relax" + , "ghc___aarch64_ldadd1_sync" + , "ghc___aarch64_ldadd2_acq" + , "ghc___aarch64_ldadd2_acq_rel" + , "ghc___aarch64_ldadd2_rel" + , "ghc___aarch64_ldadd2_relax" + , "ghc___aarch64_ldadd2_sync" + , "ghc___aarch64_ldadd4_acq" + , "ghc___aarch64_ldadd4_acq_rel" + , "ghc___aarch64_ldadd4_rel" + , "ghc___aarch64_ldadd4_relax" + , "ghc___aarch64_ldadd4_sync" + , "ghc___aarch64_ldadd8_acq" + , "ghc___aarch64_ldadd8_acq_rel" + , "ghc___aarch64_ldadd8_rel" + , "ghc___aarch64_ldadd8_relax" + , "ghc___aarch64_ldadd8_sync" + , "ghc___aarch64_ldclr1_acq" + , "ghc___aarch64_ldclr1_acq_rel" + , "ghc___aarch64_ldclr1_rel" + , "ghc___aarch64_ldclr1_relax" + , "ghc___aarch64_ldclr1_sync" + , "ghc___aarch64_ldclr2_acq" + , "ghc___aarch64_ldclr2_acq_rel" + , "ghc___aarch64_ldclr2_rel" + , "ghc___aarch64_ldclr2_relax" + , "ghc___aarch64_ldclr2_sync" + , "ghc___aarch64_ldclr4_acq" + , "ghc___aarch64_ldclr4_acq_rel" + , "ghc___aarch64_ldclr4_rel" + , "ghc___aarch64_ldclr4_relax" + , "ghc___aarch64_ldclr4_sync" + , "ghc___aarch64_ldclr8_acq" + , "ghc___aarch64_ldclr8_acq_rel" + , "ghc___aarch64_ldclr8_rel" + , "ghc___aarch64_ldclr8_relax" + , "ghc___aarch64_ldclr8_sync" + , "ghc___aarch64_ldeor1_acq" + , "ghc___aarch64_ldeor1_acq_rel" + , "ghc___aarch64_ldeor1_rel" + , "ghc___aarch64_ldeor1_relax" + , "ghc___aarch64_ldeor1_sync" + , "ghc___aarch64_ldeor2_acq" + , "ghc___aarch64_ldeor2_acq_rel" + , "ghc___aarch64_ldeor2_rel" + , "ghc___aarch64_ldeor2_relax" + , "ghc___aarch64_ldeor2_sync" + , "ghc___aarch64_ldeor4_acq" + , "ghc___aarch64_ldeor4_acq_rel" + , "ghc___aarch64_ldeor4_rel" + , "ghc___aarch64_ldeor4_relax" + , "ghc___aarch64_ldeor4_sync" + , "ghc___aarch64_ldeor8_acq" + , "ghc___aarch64_ldeor8_acq_rel" + , "ghc___aarch64_ldeor8_rel" + , "ghc___aarch64_ldeor8_relax" + , "ghc___aarch64_ldeor8_sync" + , "ghc___aarch64_ldset1_acq" + , "ghc___aarch64_ldset1_acq_rel" + , "ghc___aarch64_ldset1_rel" + , "ghc___aarch64_ldset1_relax" + , "ghc___aarch64_ldset1_sync" + , "ghc___aarch64_ldset2_acq" + , "ghc___aarch64_ldset2_acq_rel" + , "ghc___aarch64_ldset2_rel" + , "ghc___aarch64_ldset2_relax" + , "ghc___aarch64_ldset2_sync" + , "ghc___aarch64_ldset4_acq" + , "ghc___aarch64_ldset4_acq_rel" + , "ghc___aarch64_ldset4_rel" + , "ghc___aarch64_ldset4_relax" + , "ghc___aarch64_ldset4_sync" + , "ghc___aarch64_ldset8_acq" + , "ghc___aarch64_ldset8_acq_rel" + , "ghc___aarch64_ldset8_rel" + , "ghc___aarch64_ldset8_relax" + , "ghc___aarch64_ldset8_sync" + , "ghc___aarch64_swp1_acq" + , "ghc___aarch64_swp1_acq_rel" + , "ghc___aarch64_swp1_rel" + , "ghc___aarch64_swp1_relax" + , "ghc___aarch64_swp1_sync" + , "ghc___aarch64_swp2_acq" + , "ghc___aarch64_swp2_acq_rel" + , "ghc___aarch64_swp2_rel" + , "ghc___aarch64_swp2_relax" + , "ghc___aarch64_swp2_sync" + , "ghc___aarch64_swp4_acq" + , "ghc___aarch64_swp4_acq_rel" + , "ghc___aarch64_swp4_rel" + , "ghc___aarch64_swp4_relax" + , "ghc___aarch64_swp4_sync" + , "ghc___aarch64_swp8_acq" + , "ghc___aarch64_swp8_acq_rel" + , "ghc___aarch64_swp8_rel" + , "ghc___aarch64_swp8_relax" + , "ghc___aarch64_swp8_sync" + , "ghc_hs_iface" + , "ghc_rts_opts" + , "ghc_tsan_atomic16_compare_exchange" + , "ghc_tsan_atomic32_compare_exchange" + , "ghc_tsan_atomic64_compare_exchange" + , "ghc_tsan_atomic8_compare_exchange" + , "ghc_unique_counter64" + , "ghc_unique_inc" + , "ghciInsertSymbolTable" + , "ghciLookupSymbolInfo" + , "gmtime" + , "gmtime_r" + , "grabCapability" + , "grab_local_todo_block" + , "grantpt" + , "handleProfTick" + , "hashBuffer" + , "hashStr" + , "hashWord" + , "heapCensus" + , "heapInsertNewCounter" + , "heap_overflow" + , "heap_view_closurePtrs" + , "heap_view_closureSize" + , "heap_view_closure_ptrs_in_pap_payload" + , "heapsort" + , "heapsort_b" + , "hp_file" + , "hs_add64" + , "hs_and64" + , "hs_atomic_add16" + , "hs_atomic_add32" + , "hs_atomic_add64" + , "hs_atomic_add8" + , "hs_atomic_and16" + , "hs_atomic_and32" + , "hs_atomic_and64" + , "hs_atomic_and8" + , "hs_atomic_nand16" + , "hs_atomic_nand32" + , "hs_atomic_nand64" + , "hs_atomic_nand8" + , "hs_atomic_or16" + , "hs_atomic_or32" + , "hs_atomic_or64" + , "hs_atomic_or8" + , "hs_atomic_sub16" + , "hs_atomic_sub32" + , "hs_atomic_sub64" + , "hs_atomic_sub8" + , "hs_atomic_xor16" + , "hs_atomic_xor32" + , "hs_atomic_xor64" + , "hs_atomic_xor8" + , "hs_atomicread16" + , "hs_atomicread32" + , "hs_atomicread64" + , "hs_atomicread8" + , "hs_atomicwrite16" + , "hs_atomicwrite32" + , "hs_atomicwrite64" + , "hs_atomicwrite8" + , "hs_bitrev16" + , "hs_bitrev32" + , "hs_bitrev64" + , "hs_bitrev8" + , "hs_bswap16" + , "hs_bswap32" + , "hs_bswap64" + , "hs_clz16" + , "hs_clz32" + , "hs_clz64" + , "hs_clz8" + , "hs_cmpxchg16" + , "hs_cmpxchg32" + , "hs_cmpxchg64" + , "hs_cmpxchg8" + , "hs_ctz16" + , "hs_ctz32" + , "hs_ctz64" + , "hs_ctz8" + , "hs_eq64" + , "hs_exit" + , "hs_exit_nowait" + , "hs_free_fun_ptr" + , "hs_free_stable_ptr" + , "hs_free_stable_ptr_unsafe" + , "hs_geInt64" + , "hs_geWord64" + , "hs_gtInt64" + , "hs_gtWord64" + , "hs_hpc_module" + , "hs_hpc_rootModule" + , "hs_init" + , "hs_init_ghc" + , "hs_init_with_rtsopts" + , "hs_int64ToInt" + , "hs_intToInt64" + , "hs_leInt64" + , "hs_leWord64" + , "hs_lock_stable_ptr_table" + , "hs_lock_stable_tables" + , "hs_ltInt64" + , "hs_ltWord64" + , "hs_main" + , "hs_mul64" + , "hs_ne64" + , "hs_neg64" + , "hs_not64" + , "hs_or64" + , "hs_pdep16" + , "hs_pdep32" + , "hs_pdep64" + , "hs_pdep8" + , "hs_perform_gc" + , "hs_pext16" + , "hs_pext32" + , "hs_pext64" + , "hs_pext8" + , "hs_popcnt" + , "hs_popcnt16" + , "hs_popcnt32" + , "hs_popcnt64" + , "hs_popcnt8" + , "hs_quotInt64" + , "hs_quotWord64" + , "hs_remInt64" + , "hs_remWord64" + , "hs_restoreConsoleCP" + , "hs_set_argv" + , "hs_spt_insert" + , "hs_spt_insert_stableptr" + , "hs_spt_key_count" + , "hs_spt_keys" + , "hs_spt_lookup" + , "hs_spt_remove" + , "hs_sub64" + , "hs_thread_done" + , "hs_try_putmvar" + , "hs_try_putmvar_with_value" + , "hs_uncheckedIShiftRA64" + , "hs_uncheckedShiftL64" + , "hs_uncheckedShiftRL64" + , "hs_unlock_stable_ptr_table" + , "hs_unlock_stable_tables" + , "hs_word2float32" + , "hs_word2float64" + , "hs_word64ToWord" + , "hs_wordToWord64" + , "hs_xchg16" + , "hs_xchg32" + , "hs_xchg64" + , "hs_xchg8" + , "hs_xor64" + , "hw_alloc_blocks" + , "hypot" + , "hypotf" + , "hypotl" + , "ilogb" + , "ilogbf" + , "ilogbl" + , "imaxabs" + , "imaxdiv" + , "incrementUserEra" + , "index" + , "indexClosureTable" + , "info_hdr_type" + , "info_type" + , "info_type_by_ip" + , "info_update_frame" + , "initAdjustors" + , "initAllocator" + , "initBdescr" + , "initBlockAllocator" + , "initBuiltinClosures" + , "initCapabilities" + , "initCapabilityIOManager" + , "initClosureTable" + , "initCondition" + , "initElemTimeoutQueue" + , "initFileLocking" + , "initGcThreads" + , "initGeneration" + , "initGlobalStore" + , "initHeapProfiling" + , "initIOManager" + , "initIOManagerAfterFork" + , "initIpe" + , "initLDVCtr" + , "initLinker" + , "initLinkerMMap" + , "initLinker_" + , "initLinker_PEi386" + , "initMBlocks" + , "initMarkQueue" + , "initMutex" + , "initProddableBlockSet" + , "initProfTimer" + , "initProfiling" + , "initRtsFlagsDefaults" + , "initScheduler" + , "initSegment" + , "initSpinLock" + , "initStableNameTable" + , "initStablePtrTable" + , "initStats0" + , "initStats1" + , "initStorage" + , "initTaskManager" + , "initTicker" + , "initTimer" + , "initTopHandler" + , "initUnloadCheck" + , "initWeakForGC" + , "initializeTimer" + , "initstate" + , "insertClosureTable" + , "insertCompactHash" + , "insertHashSet" + , "insertHashTable" + , "insertHashTable_" + , "insertOCSectionIndices" + , "insertStrHashTable" + , "insertSymbol" + , "insertTimeoutQueue" + , "install_vtalrm_handler" + , "interp_shutdown" + , "interp_startup" + , "interruptAllCapabilities" + , "interruptCapability" + , "interruptIOManagerEvent" + , "interruptOSThread" + , "interruptStgRts" + , "interruptible" + , "ioManagerDie" + , "ioManagerFinished" + , "ioManagerStart" + , "ioManagerWakeup" + , "iomgr_type" + , "isAlive" + , "isAlreadyLoaded" + , "isArchive" + , "isSymbolImport" + , "isSymbolWeak" + , "isThreadBound" + , "is_io_mng_native_p" + , "iterHashTable" + , "j0" + , "j1" + , "jn" + , "joinOSThread" + , "jrand48" + , "keepCAFs" + , "kernelThreadId" + , "keyCountHashTable" + , "keysHashTable" + , "l64a" + , "labelThread" + , "labs" + , "large_alloc_lim" + , "lcong48" + , "ldexp" + , "ldexpf" + , "ldexpl" + , "ldiv" + , "lgamma" + , "lgammaf" + , "lgammal" + , "libdwGetBacktrace" + , "libdwLookupLocation" + , "libdwPoolClear" + , "libdwPoolInit" + , "libdwPoolRelease" + , "libdwPoolTake" + , "libdwPrintBacktrace" + , "listAllBlocks" + , "listThreads" + , "llabs" + , "lldiv" + , "llrint" + , "llrintf" + , "llrintl" + , "llround" + , "llroundf" + , "llroundl" + , "loadArchive" + , "loadArchive_" + , "loadNativeObj" + , "loadNativeObjFromLinkerScript_ELF" + , "loadNativeObj_POSIX" + , "loadObj" + , "loadOc" + , "loadSymbol" + , "loaded_objects" + , "localtime" + , "localtime_r" + , "lockFile" + , "log" + , "log10" + , "log10f" + , "log10l" + , "log1p" + , "log1pf" + , "log1pl" + , "log2" + , "log2_ceil" + , "log2f" + , "log2l" + , "logb" + , "logbf" + , "logbl" + , "logf" + , "logl" + , "lookupDependentSymbol" + , "lookupHashTable" + , "lookupHashTable_" + , "lookupIPE" + , "lookupIPEId" + , "lookupObjectByPath" + , "lookupStableName" + , "lookupStrHashTable" + , "lookupSymbol" + , "lookupSymbolInDLL_PEi386" + , "lookupSymbolInNativeObj" + , "lookupSymbol_PEi386" + , "lookupTlsgdSymbol" + , "lrand48" + , "lrint" + , "lrintf" + , "lrintl" + , "lround" + , "lroundf" + , "lroundl" + , "machoGetMisalignment" + , "major_gc" + , "malloc" + , "mapHashTable" + , "mapHashTableKeys" + , "mark" + , "markCAFs" + , "markCapabilities" + , "markCapability" + , "markCapabilityIOManager" + , "markClosureTable" + , "markObjectCode" + , "markQueueAddRoot" + , "markQueuePush" + , "markQueuePushArray" + , "markQueuePushClosure" + , "markQueuePushClosureGC" + , "markQueuePushClosure_" + , "markQueuePushFunSrt" + , "markQueuePushThunkSrt" + , "markStablePtrTable" + , "markWeakList" + , "markWeakPtrList" + , "mark_sp" + , "mark_stack_bd" + , "mark_stack_top_bd" + , "max_n_capabilities" + , "maybePerformBlockedException" + , "mblen" + , "mblocks_allocated" + , "mbstowcs" + , "mbtowc" + , "memccpy" + , "memchr" + , "memcmp" + , "memcpy" + , "memmem" + , "memmove" + , "memset" + , "memset_pattern16" + , "memset_pattern4" + , "memset_pattern8" + , "memset_s" + , "mergesort" + , "mergesort_b" + , "messageBlackHole" + , "migrateThread" + , "mkOc" + , "mkPath" + , "mkstemp" + , "mktemp" + , "mktime" + , "mmapAnon" + , "mmapAnonForLinker" + , "mmapForLinker" + , "mmap_32bit_base" + , "modf" + , "modff" + , "modfl" + , "moreCapabilities" + , "move_STACK" + , "mprotectForLinker" + , "mrand48" + , "munmapForLinker" + , "my_task" + , "myindex" + , "n_alloc_blocks" + , "n_capabilities" + , "n_gc_threads" + , "n_nonmoving_large_blocks" + , "n_numa_nodes" + , "n_nurseries" + , "n_unloaded_objects" + , "nan" + , "nanf" + , "nanl" + , "nanosleep" + , "nearbyint" + , "nearbyintf" + , "nearbyintl" + , "newArena" + , "newBoundTask" + , "newCAF" + , "newGCdCAF" + , "newNurseryBlock" + , "newRetainedCAF" + , "newSpark" + , "newWSDeque" + , "new_adjustor_pool" + , "new_adjustor_pool_from_template" + , "nextafter" + , "nextafterf" + , "nextafterl" + , "nexttoward" + , "nexttowardf" + , "nexttowardl" + , "nonmovingAddUpdRemSetBlocks" + , "nonmovingAllocate" + , "nonmovingAllocateGC" + , "nonmovingAllocatorCensus" + , "nonmovingAllocatorCensusWithWords" + , "nonmovingBlockConcurrentMark" + , "nonmovingBlockCount" + , "nonmovingClearSegment" + , "nonmovingClearSegmentFreeBlocks" + , "nonmovingCollect" + , "nonmovingConcurrentMarkIsRunning" + , "nonmovingExit" + , "nonmovingGetSegment" + , "nonmovingGetSegment_unchecked" + , "nonmovingHeap" + , "nonmovingInit" + , "nonmovingInitCapability" + , "nonmovingInitUpdRemSet" + , "nonmovingIsAlive" + , "nonmovingMark" + , "nonmovingMarkDeadWeak" + , "nonmovingMarkDeadWeaks" + , "nonmovingMarkEpoch" + , "nonmovingMarkInit" + , "nonmovingMarkLiveWeak" + , "nonmovingMarkQueueEntryType" + , "nonmovingMarkUnlimitedBudget" + , "nonmovingMarkWeakPtrList" + , "nonmovingPrintAllocatorCensus" + , "nonmovingPruneFreeSegmentList" + , "nonmovingPushActiveSegment" + , "nonmovingPushFilledSegment" + , "nonmovingPushFreeSegment" + , "nonmovingResurrectThreads" + , "nonmovingScavengeOne" + , "nonmovingSegmentAllocator" + , "nonmovingSegmentBlockCount" + , "nonmovingSegmentBlockSize" + , "nonmovingSegmentGetBlock" + , "nonmovingSegmentGetBlock_" + , "nonmovingSegmentInfo" + , "nonmovingSetClosureMark" + , "nonmovingSetMark" + , "nonmovingSweep" + , "nonmovingSweepCompactObjects" + , "nonmovingSweepLargeObjects" + , "nonmovingSweepMutLists" + , "nonmovingSweepStableNameTable" + , "nonmovingTidyThreads" + , "nonmovingTidyWeaks" + , "nonmovingTraceAllocatorCensus" + , "nonmovingUnblockConcurrentMark" + , "nonmoving_alloca_cnt" + , "nonmoving_alloca_dense_cnt" + , "nonmoving_block_idx" + , "nonmoving_eval_thunk_selector" + , "nonmoving_large_objects" + , "nonmoving_large_words" + , "nonmoving_old_threads" + , "nonmoving_old_weak_ptr_list" + , "nonmoving_segment_live_words" + , "nonmoving_threads" + , "nonmoving_weak_ptr_list" + , "nonmoving_write_barrier_enabled" + , "notifyIOManagerCapabilitiesChanged" + , "nrand48" + , "numa_map" + , "nurseries" + , "object_code_mark_bit" + , "objects" + , "ocAllocateExtras_ELF" + , "ocAllocateExtras_MachO" + , "ocBuildSegments_MachO" + , "ocDeinit_ELF" + , "ocDeinit_MachO" + , "ocFlushInstructionCache" + , "ocGetNames_ELF" + , "ocGetNames_MachO" + , "ocGetNames_PEi386" + , "ocInit_ELF" + , "ocInit_MachO" + , "ocResolve_ELF" + , "ocResolve_MachO" + , "ocResolve_PEi386" + , "ocRunFini_ELF" + , "ocRunFini_MachO" + , "ocRunFini_PEi386" + , "ocRunInit_ELF" + , "ocRunInit_MachO" + , "ocRunInit_PEi386" + , "ocVerifyImage_ELF" + , "ocVerifyImage_MachO" + , "ocVerifyImage_PEi386" + , "oldest_gen" + , "onComplete" + , "open_memstream" + , "osBindMBlocksToNode" + , "osBuiltWithNumaSupport" + , "osFreeAllMBlocks" + , "osFreeMBlocks" + , "osGetMBlocks" + , "osMemInit" + , "osNumaAvailable" + , "osNumaMask" + , "osNumaNodes" + , "osReleaseFreeMemory" + , "osThreadId" + , "osThreadIsAlive" + , "overwritingClosure" + , "overwritingClosureSize" + , "overwritingMutableClosureOfs" + , "parseIOManagerFlag" + , "pathdir" + , "pathdup" + , "pauseHeapProfTimer" + , "pauseTokenCapability" + , "pclose" + , "peakWorkerCount" + , "peak_mblocks_allocated" + , "pending_sync" + , "performBlockingMajorGC" + , "performGC" + , "performHeapProfile" + , "performMajorGC" + , "performTickySample" + , "performTryPutMVar" + , "perror" + , "pollCompletedTimeoutsOrIO" + , "poolFlush" + , "poolFree" + , "poolGetDesiredSize" + , "poolGetMaxSize" + , "poolInit" + , "poolRelease" + , "poolSetDesiredSize" + , "poolSetMaxSize" + , "poolTake" + , "poolTryTake" + , "popRunQueue" + , "popWSDeque" + , "popen" + , "posix2time" + , "posix_memalign" + , "posix_openpt" + , "postCapMsg" + , "postEvent" + , "postEventNoCap" + , "postInitEvent" + , "postMsg" + , "postSchedEvent" + , "postThreadLabel" + , "pow" + , "powf" + , "powl" + , "prepareUnloadCheck" + , "prev_static_flag" + , "printLoadedObjects" + , "printObj" + , "printPtr" + , "printRtsInfo" + , "printf" + , "processForeignExports" + , "processTimeoutCompletions" + , "prof_file" + , "prog_argc" + , "prog_argv" + , "prog_name" + , "promoteInRunQueue" + , "psort" + , "psort_b" + , "psort_r" + , "ptsname" + , "ptsname_r" + , "purgeObj" + , "pushCostCentre" + , "pushOnRunQueue" + , "pushWSDeque" + , "push_mark_stack" + , "push_scanned_block" + , "putc" + , "putc_unlocked" + , "putchar" + , "putchar_unlocked" + , "putenv" + , "puts" + , "putw" + , "qsort" + , "qsort_b" + , "qsort_r" + , "queueIOThread" + , "radixsort" + , "raiseAsync" + , "raiseExceptionHelper" + , "rand" + , "rand_r" + , "random" + , "realloc" + , "reallocf" + , "realpath" + , "recent_activity" + , "recordClosureMutated" + , "recordMutableCap" + , "recordMutableGen_GC" + , "refreshProfilingCCSs" + , "registerAlertableWait" + , "registerCcList" + , "registerCcsList" + , "registerForeignExports" + , "registerIOCPHandle" + , "registerInfoProvList" + , "releaseAndWakeupCapability" + , "releaseCapability" + , "releaseCapability_" + , "releaseFreeMemory" + , "releaseThreadNode" + , "remainder" + , "remainderf" + , "remainderl" + , "rememberOldStableNameAddresses" + , "remove" + , "removeClosureTable" + , "removeCompactClosureTable" + , "removeHashTable" + , "removeHashTable_" + , "removeLibrarySearchPath" + , "removeLibrarySearchPath_PEi386" + , "removeStrHashTable" + , "removeThreadFromDeQueue" + , "removeThreadFromQueue" + , "remquo" + , "remquof" + , "remquol" + , "rename" + , "renameat" + , "renameatx_np" + , "renamex_np" + , "reportHeapOverflow" + , "reportMemoryMap" + , "reportStackOverflow" + , "requestHeapCensus" + , "requestTickyCounterSamples" + , "resetAbandonRequestWait" + , "resetChildProcessStats" + , "resetNurseries" + , "resetTerminalSettings" + , "resizeGenerations" + , "resizeNurseries" + , "resizeNurseriesFixed" + , "resolveObjs" + , "resolveSymbolAddr" + , "resolveSymbolAddr_PEi386" + , "resumeHeapProfTimer" + , "resumeThread" + , "resurrectThreads" + , "resurrected_threads" + , "returnMemoryToOS" + , "revertCAFs" + , "revertible_caf_list" + , "rewind" + , "rindex" + , "rint" + , "rintf" + , "rintl" + , "round" + , "roundf" + , "roundl" + , "rpmatch" + , "rtsBadAlignmentBarf" + , "rtsConfig" + , "rtsDebugMsgFn" + , "rtsErrorMsgFn" + , "rtsExtraSyms" + , "rtsFatalInternalErrorFn" + , "rtsMemcpyRangeOverlap" + , "rtsOutOfBoundsAccess" + , "rtsSleep" + , "rtsSupportsBoundThreads" + , "rtsSyms" + , "rtsSysErrorMsgFn" + , "rtsTimerSignal" + , "rts_apply" + , "rts_argc" + , "rts_argv" + , "rts_breakpoint_io_action" + , "rts_checkSchedStatus" + , "rts_clearMemory" + , "rts_disableStopAfterReturn" + , "rts_disableStopNextBreakpoint" + , "rts_disableStopNextBreakpointAll" + , "rts_disableThreadAllocationLimit" + , "rts_done" + , "rts_enableStopAfterReturn" + , "rts_enableStopNextBreakpoint" + , "rts_enableStopNextBreakpointAll" + , "rts_enableThreadAllocationLimit" + , "rts_eval" + , "rts_evalIO" + , "rts_evalLazyIO" + , "rts_evalLazyIO_" + , "rts_evalStableIO" + , "rts_evalStableIOMain" + , "rts_eval_" + , "rts_getBool" + , "rts_getChar" + , "rts_getDouble" + , "rts_getFloat" + , "rts_getFunPtr" + , "rts_getInt" + , "rts_getInt16" + , "rts_getInt32" + , "rts_getInt64" + , "rts_getInt8" + , "rts_getPtr" + , "rts_getSchedStatus" + , "rts_getStablePtr" + , "rts_getThreadId" + , "rts_getWord" + , "rts_getWord16" + , "rts_getWord32" + , "rts_getWord64" + , "rts_getWord8" + , "rts_inCall" + , "rts_isDebugged" + , "rts_isDynamic" + , "rts_isPaused" + , "rts_isProfiled" + , "rts_isThreaded" + , "rts_isTracing" + , "rts_listMiscRoots" + , "rts_listThreads" + , "rts_lock" + , "rts_mkBool" + , "rts_mkChar" + , "rts_mkDouble" + , "rts_mkFloat" + , "rts_mkFunPtr" + , "rts_mkInt" + , "rts_mkInt16" + , "rts_mkInt32" + , "rts_mkInt64" + , "rts_mkInt8" + , "rts_mkPtr" + , "rts_mkStablePtr" + , "rts_mkString" + , "rts_mkWord" + , "rts_mkWord16" + , "rts_mkWord32" + , "rts_mkWord64" + , "rts_mkWord8" + , "rts_pause" + , "rts_pinThreadToNumaNode" + , "rts_resume" + , "rts_setInCallCapability" + , "rts_setMainThread" + , "rts_stop_next_breakpoint" + , "rts_stop_on_exception" + , "rts_unlock" + , "rts_unsafeGetMyCapability" + , "rts_waitConsoleHandlerCompletion" + , "runAllCFinalizers" + , "runCFinalizers" + , "runFini" + , "runInit" + , "runSomeFinalizers" + , "running_finalizers" + , "scalb" + , "scalbln" + , "scalblnf" + , "scalblnl" + , "scalbn" + , "scalbnf" + , "scalbnl" + , "scanf" + , "scavengeLiveWeak" + , "scavengeNonmovingSegment" + , "scavengeTSO" + , "scavengeTSOIOManager" + , "scavenge_AP" + , "scavenge_PAP" + , "scavenge_capability_mut_lists" + , "scavenge_compact" + , "scavenge_continuation" + , "scavenge_fun_srt" + , "scavenge_loop" + , "scavenge_mut_arr_ptrs" + , "scavenge_stack" + , "scavenge_thunk_srt" + , "sched_state" + , "scheduleFinalizers" + , "scheduleThread" + , "scheduleThreadNow" + , "scheduleThreadOn" + , "scheduleWaitThread" + , "scheduleWorker" + , "seed48" + , "selectIOManager" + , "sendCloneStackMessage" + , "setAllocLimitKill" + , "setFullProgArgv" + , "setHighMemDynamic" + , "setIOManagerControlFd" + , "setIOManagerWakeupFd" + , "setImportSymbol" + , "setKeepCAFs" + , "setMyTask" + , "setNumCapabilities" + , "setProgArgv" + , "setRecentActivity" + , "setSchedState" + , "setSymbolInfo" + , "setTSOLink" + , "setTSOPrev" + , "setThreadAffinity" + , "setThreadLabel" + , "setThreadNode" + , "setTimerManagerControlFd" + , "setUserEra" + , "setVectorSupport" + , "setWeakSymbol" + , "setbuf" + , "setbuffer" + , "setenv" + , "setiopolicy_np" + , "setkey" + , "setlinebuf" + , "setpriority" + , "setprogname" + , "setrlimit" + , "setstate" + , "setupRtsFlags" + , "setvbuf" + , "shouldCompact" + , "showIOManager" + , "showStgWord64" + , "shutdownAllocator" + , "shutdownAsyncIO" + , "shutdownAsyncWinIO" + , "shutdownCapabilities" + , "shutdownHaskell" + , "shutdownHaskellAndExit" + , "shutdownHaskellAndSignal" + , "shutdownThread" + , "signal" + , "signalCondition" + , "signal_handlers" + , "signgam" + , "sin" + , "sinf" + , "sinh" + , "sinhf" + , "sinhl" + , "sinl" + , "sizeClosureTable" + , "size_t" + , "snprintf" + , "sprintf" + , "sqrt" + , "sqrtf" + , "sqrtl" + , "sradixsort" + , "srand" + , "srand48" + , "sranddev" + , "srandom" + , "srandomdev" + , "sscanf" + , "stableNameLock" + , "stableNameUnlock" + , "stablePtrLock" + , "stablePtrUnlock" + , "stable_name_table" + , "stable_ptr_table" + , "startEventLogging" + , "startHeapProfTimer" + , "startProfTimer" + , "startSignalHandlers" + , "startTicker" + , "startTimer" + , "startupAsyncIO" + , "startupAsyncWinIO" + , "startupHaskell" + , "startupHpc" + , "statDescribeGens" + , "stat_endExit" + , "stat_endGC" + , "stat_endGCWorker" + , "stat_endInit" + , "stat_endNonmovingGc" + , "stat_endNonmovingGcSync" + , "stat_exit" + , "stat_exitReport" + , "stat_getElapsedGCTime" + , "stat_getElapsedTime" + , "stat_startExit" + , "stat_startGC" + , "stat_startGCSync" + , "stat_startGCWorker" + , "stat_startInit" + , "stat_startNonmovingGc" + , "stat_startNonmovingGcSync" + , "stat_workerStop" + , "stealWSDeque" + , "stealWSDeque_" + , "stgFree" + , "stgFreeAligned" + , "stgMallocAlignedBytes" + , "stgReallocBytes" + , "stg_AP_NOUPD_entry" + , "stg_AP_NOUPD_info" + , "stg_AP_STACK_NOUPD_entry" + , "stg_AP_STACK_NOUPD_info" + , "stg_AP_STACK_entry" + , "stg_AP_STACK_info" + , "stg_AP_entry" + , "stg_AP_info" + , "stg_ARR_WORDS_entry" + , "stg_ARR_WORDS_info" + , "stg_ASYNCIOOP_entry" + , "stg_ASYNCIOOP_info" + , "stg_ASYNCIO_LIVE0_closure" + , "stg_ASYNCIO_LIVE0_entry" + , "stg_ASYNCIO_LIVE0_info" + , "stg_BCO_entry" + , "stg_BCO_info" + , "stg_BLACKHOLE_entry" + , "stg_BLACKHOLE_info" + , "stg_BLOCKING_QUEUE_CLEAN_entry" + , "stg_BLOCKING_QUEUE_CLEAN_info" + , "stg_BLOCKING_QUEUE_DIRTY_entry" + , "stg_BLOCKING_QUEUE_DIRTY_info" + , "stg_CAF_BLACKHOLE_entry" + , "stg_CAF_BLACKHOLE_info" + , "stg_CHARLIKE_closure" + , "stg_CLOSURE_TABLE_NULL_closure" + , "stg_CLOSURE_TABLE_NULL_entry" + , "stg_CLOSURE_TABLE_NULL_info" + , "stg_COMPACT_NFDATA_CLEAN_entry" + , "stg_COMPACT_NFDATA_CLEAN_info" + , "stg_COMPACT_NFDATA_DIRTY_entry" + , "stg_COMPACT_NFDATA_DIRTY_info" + , "stg_CONTINUATION_apply" + , "stg_CONTINUATION_entry" + , "stg_CONTINUATION_info" + , "stg_C_FINALIZER_LIST_entry" + , "stg_C_FINALIZER_LIST_info" + , "stg_DEAD_WEAK_entry" + , "stg_DEAD_WEAK_info" + , "stg_END_STM_CHUNK_LIST_closure" + , "stg_END_STM_CHUNK_LIST_entry" + , "stg_END_STM_CHUNK_LIST_info" + , "stg_END_STM_WATCH_QUEUE_closure" + , "stg_END_STM_WATCH_QUEUE_entry" + , "stg_END_STM_WATCH_QUEUE_info" + , "stg_END_TSO_QUEUE_closure" + , "stg_END_TSO_QUEUE_entry" + , "stg_END_TSO_QUEUE_info" + , "stg_EVACUATED_entry" + , "stg_EVACUATED_info" + , "stg_GCD_CAF_entry" + , "stg_GCD_CAF_info" + , "stg_IND_STATIC_entry" + , "stg_IND_STATIC_info" + , "stg_IND_entry" + , "stg_IND_info" + , "stg_INTLIKE_closure" + , "stg_MSG_BLACKHOLE_entry" + , "stg_MSG_BLACKHOLE_info" + , "stg_MSG_CLONE_STACK_entry" + , "stg_MSG_CLONE_STACK_info" + , "stg_MSG_NULL_entry" + , "stg_MSG_NULL_info" + , "stg_MSG_THROWTO_entry" + , "stg_MSG_THROWTO_info" + , "stg_MSG_TRY_WAKEUP_entry" + , "stg_MSG_TRY_WAKEUP_info" + , "stg_MUT_ARR_PTRS_CLEAN_entry" + , "stg_MUT_ARR_PTRS_CLEAN_info" + , "stg_MUT_ARR_PTRS_DIRTY_entry" + , "stg_MUT_ARR_PTRS_DIRTY_info" + , "stg_MUT_ARR_PTRS_FROZEN_CLEAN_entry" + , "stg_MUT_ARR_PTRS_FROZEN_CLEAN_info" + , "stg_MUT_ARR_PTRS_FROZEN_DIRTY_entry" + , "stg_MUT_ARR_PTRS_FROZEN_DIRTY_info" + , "stg_MUT_ARR_WORDS_entry" + , "stg_MUT_ARR_WORDS_info" + , "stg_MUT_VAR_CLEAN_entry" + , "stg_MUT_VAR_CLEAN_info" + , "stg_MUT_VAR_DIRTY_entry" + , "stg_MUT_VAR_DIRTY_info" + , "stg_MVAR_CLEAN_entry" + , "stg_MVAR_CLEAN_info" + , "stg_MVAR_DIRTY_entry" + , "stg_MVAR_DIRTY_info" + , "stg_MVAR_TSO_QUEUE_entry" + , "stg_MVAR_TSO_QUEUE_info" + , "stg_NO_FINALIZER_closure" + , "stg_NO_FINALIZER_entry" + , "stg_NO_FINALIZER_info" + , "stg_NO_TREC_closure" + , "stg_NO_TREC_entry" + , "stg_NO_TREC_info" + , "stg_PAP_apply" + , "stg_PAP_entry" + , "stg_PAP_info" + , "stg_PROMPT_TAG_entry" + , "stg_PROMPT_TAG_info" + , "stg_RUBBISH_ENTRY_entry" + , "stg_RUBBISH_ENTRY_info" + , "stg_SMALL_MUT_ARR_PTRS_CLEAN_entry" + , "stg_SMALL_MUT_ARR_PTRS_CLEAN_info" + , "stg_SMALL_MUT_ARR_PTRS_DIRTY_entry" + , "stg_SMALL_MUT_ARR_PTRS_DIRTY_info" + , "stg_SMALL_MUT_ARR_PTRS_FROZEN_CLEAN_entry" + , "stg_SMALL_MUT_ARR_PTRS_FROZEN_CLEAN_info" + , "stg_SMALL_MUT_ARR_PTRS_FROZEN_DIRTY_entry" + , "stg_SMALL_MUT_ARR_PTRS_FROZEN_DIRTY_info" + , "stg_SRT_10_entry" + , "stg_SRT_10_info" + , "stg_SRT_11_entry" + , "stg_SRT_11_info" + , "stg_SRT_12_entry" + , "stg_SRT_12_info" + , "stg_SRT_13_entry" + , "stg_SRT_13_info" + , "stg_SRT_14_entry" + , "stg_SRT_14_info" + , "stg_SRT_15_entry" + , "stg_SRT_15_info" + , "stg_SRT_16_entry" + , "stg_SRT_16_info" + , "stg_SRT_1_entry" + , "stg_SRT_1_info" + , "stg_SRT_2_entry" + , "stg_SRT_2_info" + , "stg_SRT_3_entry" + , "stg_SRT_3_info" + , "stg_SRT_4_entry" + , "stg_SRT_4_info" + , "stg_SRT_5_entry" + , "stg_SRT_5_info" + , "stg_SRT_6_entry" + , "stg_SRT_6_info" + , "stg_SRT_7_entry" + , "stg_SRT_7_info" + , "stg_SRT_8_entry" + , "stg_SRT_8_info" + , "stg_SRT_9_entry" + , "stg_SRT_9_info" + , "stg_STABLE_NAME_entry" + , "stg_STABLE_NAME_info" + , "stg_STACK_entry" + , "stg_STACK_info" + , "stg_STM_AWOKEN_closure" + , "stg_STM_AWOKEN_entry" + , "stg_STM_AWOKEN_info" + , "stg_TIMEOUT_QUEUE_EMPTY_closure" + , "stg_TIMEOUT_QUEUE_EMPTY_entry" + , "stg_TIMEOUT_QUEUE_EMPTY_info" + , "stg_TIMEOUT_QUEUE_entry" + , "stg_TIMEOUT_QUEUE_info" + , "stg_TREC_CHUNK_entry" + , "stg_TREC_CHUNK_info" + , "stg_TREC_HEADER_entry" + , "stg_TREC_HEADER_info" + , "stg_TSO_entry" + , "stg_TSO_info" + , "stg_TVAR_CLEAN_entry" + , "stg_TVAR_CLEAN_info" + , "stg_TVAR_DIRTY_entry" + , "stg_TVAR_DIRTY_info" + , "stg_TVAR_WATCH_QUEUE_entry" + , "stg_TVAR_WATCH_QUEUE_info" + , "stg_WEAK_entry" + , "stg_WEAK_info" + , "stg_WHITEHOLE_entry" + , "stg_WHITEHOLE_info" + , "stg_absentErrorzh" + , "stg_addCFinalizzerToWeakzh" + , "stg_ann_frame_info" + , "stg_ann_frame_ret" + , "stg_annotateStackzh" + , "stg_ap_0_fast" + , "stg_ap_1_upd_entry" + , "stg_ap_1_upd_info" + , "stg_ap_2_upd_entry" + , "stg_ap_2_upd_info" + , "stg_ap_3_upd_entry" + , "stg_ap_3_upd_info" + , "stg_ap_4_upd_entry" + , "stg_ap_4_upd_info" + , "stg_ap_5_upd_entry" + , "stg_ap_5_upd_info" + , "stg_ap_6_upd_entry" + , "stg_ap_6_upd_info" + , "stg_ap_7_upd_entry" + , "stg_ap_7_upd_info" + , "stg_ap_d_fast" + , "stg_ap_d_info" + , "stg_ap_d_ret" + , "stg_ap_f_fast" + , "stg_ap_f_info" + , "stg_ap_f_ret" + , "stg_ap_l_fast" + , "stg_ap_l_info" + , "stg_ap_l_ret" + , "stg_ap_n_fast" + , "stg_ap_n_info" + , "stg_ap_n_ret" + , "stg_ap_p_fast" + , "stg_ap_p_info" + , "stg_ap_p_ret" + , "stg_ap_pp_fast" + , "stg_ap_pp_info" + , "stg_ap_pp_ret" + , "stg_ap_ppp_fast" + , "stg_ap_ppp_info" + , "stg_ap_ppp_ret" + , "stg_ap_pppp_fast" + , "stg_ap_pppp_info" + , "stg_ap_pppp_ret" + , "stg_ap_ppppp_fast" + , "stg_ap_ppppp_info" + , "stg_ap_ppppp_ret" + , "stg_ap_pppppp_fast" + , "stg_ap_pppppp_info" + , "stg_ap_pppppp_ret" + , "stg_ap_pppv_fast" + , "stg_ap_pppv_info" + , "stg_ap_pppv_ret" + , "stg_ap_ppv_fast" + , "stg_ap_ppv_info" + , "stg_ap_ppv_ret" + , "stg_ap_pv_fast" + , "stg_ap_pv_info" + , "stg_ap_pv_ret" + , "stg_ap_stack_entries" + , "stg_ap_stk_v16" + , "stg_ap_stk_v32" + , "stg_ap_stk_v64" + , "stg_ap_v16_fast" + , "stg_ap_v16_info" + , "stg_ap_v16_ret" + , "stg_ap_v32_fast" + , "stg_ap_v32_info" + , "stg_ap_v32_ret" + , "stg_ap_v64_fast" + , "stg_ap_v64_info" + , "stg_ap_v64_ret" + , "stg_ap_v_fast" + , "stg_ap_v_info" + , "stg_ap_v_ret" + , "stg_apply_interp_info" + , "stg_apply_interp_ret" + , "stg_arg_bitmaps" + , "stg_atomicModifyMutVar2zh" + , "stg_atomicModifyMutVarzuzh" + , "stg_atomically_entry" + , "stg_atomically_frame_info" + , "stg_atomically_frame_ret" + , "stg_atomically_info" + , "stg_atomically_waiting_frame_info" + , "stg_atomically_waiting_frame_ret" + , "stg_atomicallyzh" + , "stg_bh_upd_frame_info" + , "stg_bh_upd_frame_ret" + , "stg_block_blackhole" + , "stg_block_blackhole_finally" + , "stg_block_noregs" + , "stg_block_putmvar" + , "stg_block_putmvar_info" + , "stg_block_putmvar_ret" + , "stg_block_readmvar" + , "stg_block_readmvar_info" + , "stg_block_readmvar_ret" + , "stg_block_stmwait" + , "stg_block_takemvar" + , "stg_block_takemvar_info" + , "stg_block_takemvar_ret" + , "stg_block_throwto" + , "stg_block_throwto_info" + , "stg_block_throwto_ret" + , "stg_casArrayzh" + , "stg_casInt16Arrayzh" + , "stg_casInt32Arrayzh" + , "stg_casInt64Arrayzh" + , "stg_casInt8Arrayzh" + , "stg_casIntArrayzh" + , "stg_casMutVarzh" + , "stg_casSmallArrayzh" + , "stg_castDoubleToWord64zh" + , "stg_castFloatToWord32zh" + , "stg_castWord32ToFloatzh" + , "stg_castWord64ToDoublezh" + , "stg_catchRetryzh" + , "stg_catchSTMzh" + , "stg_catch_entry" + , "stg_catch_frame_info" + , "stg_catch_frame_ret" + , "stg_catch_info" + , "stg_catch_retry_frame_info" + , "stg_catch_retry_frame_ret" + , "stg_catch_stm_frame_info" + , "stg_catch_stm_frame_ret" + , "stg_catchzh" + , "stg_clearCCSzh" + , "stg_cloneArrayzh" + , "stg_cloneMutableArrayzh" + , "stg_cloneSmallArrayzh" + , "stg_cloneSmallMutableArrayzh" + , "stg_closureSizzezh" + , "stg_compactAddWithSharingzh" + , "stg_compactAddzh" + , "stg_compactAllocateBlockzh" + , "stg_compactAppendzh" + , "stg_compactContainsAnyzh" + , "stg_compactContainszh" + , "stg_compactFixupPointerszh" + , "stg_compactGetFirstBlockzh" + , "stg_compactGetNextBlockzh" + , "stg_compactGetRootzh" + , "stg_compactNewzh" + , "stg_compactResizzezh" + , "stg_compactSizzezh" + , "stg_control0zh" + , "stg_control0zh_ll" + , "stg_copyArray_barrier" + , "stg_copyArrayzh" + , "stg_copyMutableArrayzh" + , "stg_copySmallArrayzh" + , "stg_copySmallMutableArrayzh" + , "stg_ctoi_D1_info" + , "stg_ctoi_D1_ret" + , "stg_ctoi_F1_info" + , "stg_ctoi_F1_ret" + , "stg_ctoi_L1_info" + , "stg_ctoi_L1_ret" + , "stg_ctoi_R1n_info" + , "stg_ctoi_R1n_ret" + , "stg_ctoi_R1p_info" + , "stg_ctoi_R1p_ret" + , "stg_ctoi_V_info" + , "stg_ctoi_V_ret" + , "stg_ctoi_t" + , "stg_ctoi_t0_info" + , "stg_ctoi_t0_ret" + , "stg_ctoi_t10_info" + , "stg_ctoi_t10_ret" + , "stg_ctoi_t11_info" + , "stg_ctoi_t11_ret" + , "stg_ctoi_t12_info" + , "stg_ctoi_t12_ret" + , "stg_ctoi_t13_info" + , "stg_ctoi_t13_ret" + , "stg_ctoi_t14_info" + , "stg_ctoi_t14_ret" + , "stg_ctoi_t15_info" + , "stg_ctoi_t15_ret" + , "stg_ctoi_t16_info" + , "stg_ctoi_t16_ret" + , "stg_ctoi_t17_info" + , "stg_ctoi_t17_ret" + , "stg_ctoi_t18_info" + , "stg_ctoi_t18_ret" + , "stg_ctoi_t19_info" + , "stg_ctoi_t19_ret" + , "stg_ctoi_t1_info" + , "stg_ctoi_t1_ret" + , "stg_ctoi_t20_info" + , "stg_ctoi_t20_ret" + , "stg_ctoi_t21_info" + , "stg_ctoi_t21_ret" + , "stg_ctoi_t22_info" + , "stg_ctoi_t22_ret" + , "stg_ctoi_t23_info" + , "stg_ctoi_t23_ret" + , "stg_ctoi_t24_info" + , "stg_ctoi_t24_ret" + , "stg_ctoi_t25_info" + , "stg_ctoi_t25_ret" + , "stg_ctoi_t26_info" + , "stg_ctoi_t26_ret" + , "stg_ctoi_t27_info" + , "stg_ctoi_t27_ret" + , "stg_ctoi_t28_info" + , "stg_ctoi_t28_ret" + , "stg_ctoi_t29_info" + , "stg_ctoi_t29_ret" + , "stg_ctoi_t2_info" + , "stg_ctoi_t2_ret" + , "stg_ctoi_t30_info" + , "stg_ctoi_t30_ret" + , "stg_ctoi_t31_info" + , "stg_ctoi_t31_ret" + , "stg_ctoi_t32_info" + , "stg_ctoi_t32_ret" + , "stg_ctoi_t33_info" + , "stg_ctoi_t33_ret" + , "stg_ctoi_t34_info" + , "stg_ctoi_t34_ret" + , "stg_ctoi_t35_info" + , "stg_ctoi_t35_ret" + , "stg_ctoi_t36_info" + , "stg_ctoi_t36_ret" + , "stg_ctoi_t37_info" + , "stg_ctoi_t37_ret" + , "stg_ctoi_t38_info" + , "stg_ctoi_t38_ret" + , "stg_ctoi_t39_info" + , "stg_ctoi_t39_ret" + , "stg_ctoi_t3_info" + , "stg_ctoi_t3_ret" + , "stg_ctoi_t40_info" + , "stg_ctoi_t40_ret" + , "stg_ctoi_t41_info" + , "stg_ctoi_t41_ret" + , "stg_ctoi_t42_info" + , "stg_ctoi_t42_ret" + , "stg_ctoi_t43_info" + , "stg_ctoi_t43_ret" + , "stg_ctoi_t44_info" + , "stg_ctoi_t44_ret" + , "stg_ctoi_t45_info" + , "stg_ctoi_t45_ret" + , "stg_ctoi_t46_info" + , "stg_ctoi_t46_ret" + , "stg_ctoi_t47_info" + , "stg_ctoi_t47_ret" + , "stg_ctoi_t48_info" + , "stg_ctoi_t48_ret" + , "stg_ctoi_t49_info" + , "stg_ctoi_t49_ret" + , "stg_ctoi_t4_info" + , "stg_ctoi_t4_ret" + , "stg_ctoi_t50_info" + , "stg_ctoi_t50_ret" + , "stg_ctoi_t51_info" + , "stg_ctoi_t51_ret" + , "stg_ctoi_t52_info" + , "stg_ctoi_t52_ret" + , "stg_ctoi_t53_info" + , "stg_ctoi_t53_ret" + , "stg_ctoi_t54_info" + , "stg_ctoi_t54_ret" + , "stg_ctoi_t55_info" + , "stg_ctoi_t55_ret" + , "stg_ctoi_t56_info" + , "stg_ctoi_t56_ret" + , "stg_ctoi_t57_info" + , "stg_ctoi_t57_ret" + , "stg_ctoi_t58_info" + , "stg_ctoi_t58_ret" + , "stg_ctoi_t59_info" + , "stg_ctoi_t59_ret" + , "stg_ctoi_t5_info" + , "stg_ctoi_t5_ret" + , "stg_ctoi_t60_info" + , "stg_ctoi_t60_ret" + , "stg_ctoi_t61_info" + , "stg_ctoi_t61_ret" + , "stg_ctoi_t62_info" + , "stg_ctoi_t62_ret" + , "stg_ctoi_t6_info" + , "stg_ctoi_t6_ret" + , "stg_ctoi_t7_info" + , "stg_ctoi_t7_ret" + , "stg_ctoi_t8_info" + , "stg_ctoi_t8_ret" + , "stg_ctoi_t9_info" + , "stg_ctoi_t9_ret" + , "stg_deRefStablePtrzh" + , "stg_deRefWeakzh" + , "stg_dead_thread_info" + , "stg_dead_thread_ret" + , "stg_decodeDoublezu2Intzh" + , "stg_decodeDoublezuInt64zh" + , "stg_decodeFloatzuIntzh" + , "stg_delayzh" + , "stg_dummy_ret_closure" + , "stg_dummy_ret_entry" + , "stg_dummy_ret_info" + , "stg_enter_info" + , "stg_enter_ret" + , "stg_exit" + , "stg_finalizzeWeakzh" + , "stg_forceIO_closure" + , "stg_forceIO_info" + , "stg_forceIO_ret" + , "stg_forkOnzh" + , "stg_forkzh" + , "stg_freezzeArrayzh" + , "stg_freezzeSmallArrayzh" + , "stg_gc_d1" + , "stg_gc_f1" + , "stg_gc_fun_info" + , "stg_gc_fun_ret" + , "stg_gc_l1" + , "stg_gc_noregs" + , "stg_gc_pp" + , "stg_gc_ppp" + , "stg_gc_pppp" + , "stg_gc_prim" + , "stg_gc_prim_n" + , "stg_gc_prim_p" + , "stg_gc_prim_p_ll" + , "stg_gc_prim_p_ll_ret_info" + , "stg_gc_prim_p_ll_ret_ret" + , "stg_gc_prim_pp" + , "stg_gc_prim_pp_ll" + , "stg_gc_prim_pp_ll_ret_info" + , "stg_gc_prim_pp_ll_ret_ret" + , "stg_gc_unbx_r1" + , "stg_gc_unpt_r1" + , "stg_getApStackValzh" + , "stg_getMaskingStatezh" + , "stg_getOtherThreadAllocationCounterzh" + , "stg_getSparkzh" + , "stg_getThreadAllocationCounterzh" + , "stg_isByteArrayPinnedzh" + , "stg_isByteArrayWeaklyPinnedzh" + , "stg_isCurrentThreadBoundzh" + , "stg_isEmptyMVarzh" + , "stg_isMutableByteArrayPinnedzh" + , "stg_isMutableByteArrayWeaklyPinnedzh" + , "stg_keepAlive_frame_info" + , "stg_keepAlive_frame_ret" + , "stg_keepAlivezh" + , "stg_killMyself" + , "stg_killThreadzh" + , "stg_labelThreadzh" + , "stg_listThreadszh" + , "stg_makeStableNamezh" + , "stg_makeStablePtrzh" + , "stg_marked_upd_frame_info" + , "stg_marked_upd_frame_ret" + , "stg_maskAsyncExceptionszh" + , "stg_maskAsyncExceptionszh_ret_info" + , "stg_maskAsyncExceptionszh_ret_ret" + , "stg_maskUninterruptiblezh" + , "stg_maskUninterruptiblezh_ret_info" + , "stg_maskUninterruptiblezh_ret_ret" + , "stg_mkApUpd0zh" + , "stg_mkWeakForeignzh" + , "stg_mkWeakNoFinalizzerzh" + , "stg_mkWeakzh" + , "stg_myThreadIdzh" + , "stg_newAlignedPinnedByteArrayzh" + , "stg_newArrayzh" + , "stg_newBCOzh" + , "stg_newByteArrayzh" + , "stg_newMVarzh" + , "stg_newMutVarzh" + , "stg_newPinnedByteArrayzh" + , "stg_newPromptTagzh" + , "stg_newSmallArrayzh" + , "stg_newTVarzh" + , "stg_noDuplicate_entry" + , "stg_noDuplicate_info" + , "stg_noDuplicatezh" + , "stg_noforceIO_info" + , "stg_noforceIO_ret" + , "stg_noupd_frame_info" + , "stg_noupd_frame_ret" + , "stg_numSparkszh" + , "stg_orig_thunk_info_frame_info" + , "stg_orig_thunk_info_frame_ret" + , "stg_overwritingClosure" + , "stg_overwritingClosureSize" + , "stg_overwritingMutableClosureOfs" + , "stg_paniczh" + , "stg_pending_events" + , "stg_primcall_info" + , "stg_primcall_ret" + , "stg_prompt_frame_info" + , "stg_prompt_frame_ret" + , "stg_promptzh" + , "stg_putMVarzh" + , "stg_raiseDivZZerozh" + , "stg_raiseIOzh" + , "stg_raiseOverflowzh" + , "stg_raiseUnderflowzh" + , "stg_raise_entry" + , "stg_raise_info" + , "stg_raise_ret_entry" + , "stg_raise_ret_info" + , "stg_raisezh" + , "stg_readMVarzh" + , "stg_readTVarIOzh" + , "stg_readTVarzh" + , "stg_resizzeMutableByteArrayzh" + , "stg_restore_cccs_d_info" + , "stg_restore_cccs_d_ret" + , "stg_restore_cccs_eval_info" + , "stg_restore_cccs_eval_ret" + , "stg_restore_cccs_v16_info" + , "stg_restore_cccs_v16_ret" + , "stg_restore_cccs_v32_info" + , "stg_restore_cccs_v32_ret" + , "stg_restore_cccs_v64_info" + , "stg_restore_cccs_v64_ret" + , "stg_ret_d_info" + , "stg_ret_d_ret" + , "stg_ret_f_info" + , "stg_ret_f_ret" + , "stg_ret_l_info" + , "stg_ret_l_ret" + , "stg_ret_n_info" + , "stg_ret_n_ret" + , "stg_ret_p_info" + , "stg_ret_p_ret" + , "stg_ret_t_info" + , "stg_ret_t_ret" + , "stg_ret_v_info" + , "stg_ret_v_ret" + , "stg_retryzh" + , "stg_returnToSched" + , "stg_returnToSchedButFirst" + , "stg_returnToSchedNotPaused" + , "stg_returnToStackTop" + , "stg_runRWzh" + , "stg_sel_0_noupd_entry" + , "stg_sel_0_noupd_info" + , "stg_sel_0_upd_entry" + , "stg_sel_0_upd_info" + , "stg_sel_10_noupd_entry" + , "stg_sel_10_noupd_info" + , "stg_sel_10_upd_entry" + , "stg_sel_10_upd_info" + , "stg_sel_11_noupd_entry" + , "stg_sel_11_noupd_info" + , "stg_sel_11_upd_entry" + , "stg_sel_11_upd_info" + , "stg_sel_12_noupd_entry" + , "stg_sel_12_noupd_info" + , "stg_sel_12_upd_entry" + , "stg_sel_12_upd_info" + , "stg_sel_13_noupd_entry" + , "stg_sel_13_noupd_info" + , "stg_sel_13_upd_entry" + , "stg_sel_13_upd_info" + , "stg_sel_14_noupd_entry" + , "stg_sel_14_noupd_info" + , "stg_sel_14_upd_entry" + , "stg_sel_14_upd_info" + , "stg_sel_15_noupd_entry" + , "stg_sel_15_noupd_info" + , "stg_sel_15_upd_entry" + , "stg_sel_15_upd_info" + , "stg_sel_1_noupd_entry" + , "stg_sel_1_noupd_info" + , "stg_sel_1_upd_entry" + , "stg_sel_1_upd_info" + , "stg_sel_2_noupd_entry" + , "stg_sel_2_noupd_info" + , "stg_sel_2_upd_entry" + , "stg_sel_2_upd_info" + , "stg_sel_3_noupd_entry" + , "stg_sel_3_noupd_info" + , "stg_sel_3_upd_entry" + , "stg_sel_3_upd_info" + , "stg_sel_4_noupd_entry" + , "stg_sel_4_noupd_info" + , "stg_sel_4_upd_entry" + , "stg_sel_4_upd_info" + , "stg_sel_5_noupd_entry" + , "stg_sel_5_noupd_info" + , "stg_sel_5_upd_entry" + , "stg_sel_5_upd_info" + , "stg_sel_6_noupd_entry" + , "stg_sel_6_noupd_info" + , "stg_sel_6_upd_entry" + , "stg_sel_6_upd_info" + , "stg_sel_7_noupd_entry" + , "stg_sel_7_noupd_info" + , "stg_sel_7_upd_entry" + , "stg_sel_7_upd_info" + , "stg_sel_8_noupd_entry" + , "stg_sel_8_noupd_info" + , "stg_sel_8_upd_entry" + , "stg_sel_8_upd_info" + , "stg_sel_9_noupd_entry" + , "stg_sel_9_noupd_info" + , "stg_sel_9_upd_entry" + , "stg_sel_9_upd_info" + , "stg_setOtherThreadAllocationCounterzh" + , "stg_setThreadAllocationCounterzh" + , "stg_shrinkMutableByteArrayzh" + , "stg_shrinkSmallMutableArrayzh" + , "stg_sig_install" + , "stg_stack_save_entries" + , "stg_stack_underflow_frame_d_info" + , "stg_stack_underflow_frame_d_ret" + , "stg_stack_underflow_frame_v16_info" + , "stg_stack_underflow_frame_v16_ret" + , "stg_stack_underflow_frame_v32_info" + , "stg_stack_underflow_frame_v32_ret" + , "stg_stack_underflow_frame_v64_info" + , "stg_stack_underflow_frame_v64_ret" + , "stg_stk_save_v16" + , "stg_stk_save_v32" + , "stg_stk_save_v64" + , "stg_stop_thread_info" + , "stg_stop_thread_ret" + , "stg_takeMVarzh" + , "stg_thawArrayzh" + , "stg_thawSmallArrayzh" + , "stg_threadFinished" + , "stg_threadLabelzh" + , "stg_threadStatuszh" + , "stg_traceBinaryEventzh" + , "stg_traceEventzh" + , "stg_traceMarkerzh" + , "stg_tryPutMVarzh" + , "stg_tryReadMVarzh" + , "stg_tryTakeMVarzh" + , "stg_unmaskAsyncExceptionszh" + , "stg_unmaskAsyncExceptionszh_ret_info" + , "stg_unmaskAsyncExceptionszh_ret_ret" + , "stg_unpackClosurezh" + , "stg_unpack_cstring_entry" + , "stg_unpack_cstring_info" + , "stg_unpack_cstring_utf8_entry" + , "stg_unpack_cstring_utf8_info" + , "stg_unsafeThawArrayzh" + , "stg_unsafeThawSmallArrayzh" + , "stg_upd_frame_info" + , "stg_upd_frame_ret" + , "stg_waitReadzh" + , "stg_waitWritezh" + , "stg_whereFromzh" + , "stg_writeTVarzh" + , "stg_yield_noregs" + , "stg_yield_to_interpreter" + , "stg_yieldzh" + , "stmAbortTransaction" + , "stmCommitNestedTransaction" + , "stmCommitTransaction" + , "stmCondemnTransaction" + , "stmFreeAbortedTRec" + , "stmPreGCHook" + , "stmReWait" + , "stmReadTVar" + , "stmStartNestedTransaction" + , "stmStartTransaction" + , "stmValidateNestOfTransactions" + , "stmWait" + , "stmWaitUnlock" + , "stmWriteTVar" + , "stopCapability" + , "stopHeapProfTimer" + , "stopIOManager" + , "stopProfTimer" + , "stopTicker" + , "stopTimer" + , "storageAddCapabilities" + , "stpcpy" + , "stpncpy" + , "strMatchesSelector" + , "strcasecmp" + , "strcasestr" + , "strcat" + , "strchr" + , "strcmp" + , "strcoll" + , "strcpy" + , "strcspn" + , "strdup" + , "strerror" + , "strerror_r" + , "strftime" + , "strlcat" + , "strlcpy" + , "strlen" + , "strmode" + , "strncasecmp" + , "strncat" + , "strncmp" + , "strncpy" + , "strndup" + , "strnlen" + , "strnstr" + , "strpbrk" + , "strptime" + , "strrchr" + , "strsep" + , "strsignal" + , "strsignal_r" + , "strspn" + , "strstr" + , "strtod" + , "strtof" + , "strtoimax" + , "strtok" + , "strtok_r" + , "strtol" + , "strtold" + , "strtoll" + , "strtonum" + , "strtoq" + , "strtoul" + , "strtoull" + , "strtoumax" + , "strtouq" + , "strxfrm" + , "suboptarg" + , "suspendComputation" + , "suspendThread" + , "swab" + , "sweep" + , "symhash" + , "syncDelay" + , "syncDelayCancel" + , "syncDelayCancelTimeout" + , "syncDelayTimeout" + , "syncIOCancel" + , "syncIOWaitReady" + , "sysErrorBelch" + , "sys_errlist" + , "sys_nerr" + , "system" + , "tan" + , "tanf" + , "tanh" + , "tanhf" + , "tanhl" + , "tanl" + , "taskCount" + , "tempnam" + , "tgamma" + , "tgammaf" + , "tgammal" + , "the_gc_thread" + , "threadPaused" + , "threadStableNameTable" + , "threadStablePtrTable" + , "threadStackOverflow" + , "threadStackUnderflow" + , "throwTo" + , "throwToMsg" + , "throwToSelf" + , "throwToSingleThreaded" + , "throwToSingleThreaded_" + , "thunk_selector_depth" + , "ticky_entry_ctrs" + , "ticky_slow_call_unevald" + , "time" + , "time2posix" + , "time_str" + , "timedWaitCondition" + , "timegm" + , "timelocal" + , "timeoutInMilliseconds" + , "timespec_get" + , "timezone" + , "timingsafe_bcmp" + , "tmpfile" + , "tmpnam" + , "todo_block_full" + , "top_ct" + , "totalArgumentSize" + , "traceCapCreate" + , "traceCapDelete" + , "traceCapDisable" + , "traceCapEnable" + , "traceCapsetAssignCap" + , "traceCapsetCreate" + , "traceCapsetDelete" + , "traceCapsetRemoveCap" + , "traceEventBlocksSize" + , "traceEventCreateSparkThread" + , "traceEventCreateThread" + , "traceEventGcDone" + , "traceEventGcEnd" + , "traceEventGcEndAtT" + , "traceEventGcGlobalSync" + , "traceEventGcIdle" + , "traceEventGcStart" + , "traceEventGcStartAtT" + , "traceEventGcStats" + , "traceEventGcWork" + , "traceEventHeapAllocated" + , "traceEventHeapInfo" + , "traceEventHeapLive" + , "traceEventHeapSize" + , "traceEventMemReturn" + , "traceEventMigrateThread" + , "traceEventRequestParGc" + , "traceEventRequestSeqGc" + , "traceEventRunThread" + , "traceEventSparkCreate" + , "traceEventSparkDud" + , "traceEventSparkFizzle" + , "traceEventSparkGC" + , "traceEventSparkOverflow" + , "traceEventSparkRun" + , "traceEventSparkSteal" + , "traceEventStopThread" + , "traceEventThreadWakeup" + , "traceOSProcessInfo" + , "traceSparkCounters" + , "traceTaskCreate" + , "traceTaskDelete" + , "traceTaskMigrate" + , "traceThreadLabel" + , "traceWallClockTime" + , "traverseSparkQueues" + , "traverseWeakPtrList" + , "trunc" + , "truncateRunQueue" + , "truncf" + , "truncl" + , "tryWakeupThread" + , "tzname" + , "tzset" + , "tzsetwall" + , "uint16_t" + , "uint32_t" + , "uint8_t" + , "unblockOne" + , "unblockOne_" + , "unblockUserSignals" + , "ungetc" + , "unloadNativeObj" + , "unloadObj" + , "unload_mark_needed" + , "unlockClosure" + , "unlockFile" + , "unlockpt" + , "unsetenv" + , "upd_rem_set_block_list" + , "updateNurseriesStats" + , "updateRemembSetPushClosure" + , "updateRemembSetPushClosure_" + , "updateRemembSetPushMessageThrowTo" + , "updateRemembSetPushStack" + , "updateRemembSetPushTSO" + , "updateRemembSetPushThunk" + , "updateRemembSetPushThunkEager" + , "updateRemembSetPushThunk_" + , "updateStableNameTable" + , "updateThunk" + , "updateWithIndirection" + , "update_MVAR" + , "valloc" + , "vasprintf" + , "vbarf" + , "vdebugBelch" + , "vdprintf" + , "vectorSupportGlobalVar" + , "verifyCompact" + , "verrorBelch" + , "vfprintf" + , "vfscanf" + , "vprintf" + , "vscanf" + , "vsnprintf" + , "vsprintf" + , "vsscanf" + , "vsysErrorBelch" + , "wait" + , "wait3" + , "wait4" + , "waitCondition" + , "waitForCapability" + , "waitid" + , "waitpid" + , "wakeupIOManager" + , "walk_large_bitmap" + , "warnMissingKBLibraryPaths" + , "wcstoimax" + , "wcstombs" + , "wcstoumax" + , "wctomb" + , "work_stealing" + , "workerCount" + , "xchg_ptr" + , "y0" + , "y1" + , "yieldThread" + , "yn" + , "zeroSlop" + , "zopen" + ] + ===================================== utils/hsc2hs ===================================== @@ -1 +1 @@ -Subproject commit fe3990b9f35000427b016a79330d9f195587cad8 +Subproject commit 3863f81b72d1c5877505e840fd203193c50d2e0f ===================================== utils/parse-rts-symbols/README.md ===================================== @@ -0,0 +1 @@ +# TODO ===================================== utils/parse-rts-symbols/main.py ===================================== @@ -0,0 +1,63 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p python3Packages.libclang python3 +import os +from clang.cindex import Index, CursorKind, LinkageKind, Config + +# RELATIVE TO ROOT! +HEADER_DIR = "rts/" # directory to scan + +# Recursively find all .h files +def find_headers(root): + headers = [] + for dirpath, _, filenames in os.walk(root): + for f in filenames: + if f.endswith(".h"): + headers.append(os.path.join(dirpath, f)) + return headers + +# Parse a single header +def parse_header(header_file, index): + try: + tu = index.parse(header_file, args=[f"-I{HEADER_DIR}"]) + except Exception as e: + print(f"Failed to parse {header_file}: {e}", file=sys.stderr) + return [] + + symbols = [] + + def walk(node): + for c in node.get_children(): + # Only external-linkage functions or global vars + if c.linkage == LinkageKind.EXTERNAL and \ + c.kind in (CursorKind.FUNCTION_DECL, CursorKind.VAR_DECL): # and \ + # c.visibility() != VisibilityKind.HIDDEN: # don't include #include "BeginPrivate.h" symbols + symbols.append(c.spelling) + walk(c) + + walk(tu.cursor) + return symbols + +def main(): + index = Index.create() + # If not in root directory, abort with error + if not os.path.isdir(HEADER_DIR): + print(f"Error: Directory {HEADER_DIR} does not exist. Are you running this script from the root directory as ./utils/parse-rts-symbols/main.py ?") + return + all_headers = find_headers(HEADER_DIR) + all_symbols = set() + for h in all_headers: + syms = parse_header(h, index) + all_symbols.update(syms) + + print("# This list was automatically generated by utils/parse-rts-symbols/.") + print("# Please consult the README there for information about this file.") + + for i, s in enumerate(sorted(all_symbols)): + if i == 0: + print("[ " + "\"" + s + "\"") + else: + print(", " + "\"" + s + "\"") + print("]") + +if __name__ == "__main__": + main() View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/2b16d5be235cbcdbbd50947a01edfff... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/2b16d5be235cbcdbbd50947a01edfff... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Rodrigo Mesquita (@alt-romes)