Runtime Hooks
Revision as of 18:16, 12 December 2024 by ZILtoid1991 (talk | contribs) (Added short description to associative array related runtime hooks)
This page lists runtime functions to which the compiler may automatically generate calls to in certain circumstances. This list was taken from dmd's backend/rtlsym.h.
This list is not complete and may even list functions which are no longer needed. Please help to verify this list.
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_aaApply | extern(C) | Foreach opApply over all values | rt/aaA.d | |
_aaApply2 | extern(C) | Foreach opApply over all key/value pairs | rt/aaA.d | |
_aaDelX | extern(C) | Delete entry scope const AA, return true if it was present | rt/aaA.d | |
_aaEqual | extern(C) | Compares two AAs for equality | rt/aaA.d | |
_aaGetRvalueX | extern(C) | Key lookup in AA, returns pointer to value if present (value is not mutable) | rt/aaA.d | |
_aaGetX | extern(C) | Key lookup in AA, returns pointer to value (mutable) and sets found to true if present | rt/aaA.d | |
_aaInX | extern(C) | In operator implementation | rt/aaA.d | |
_aaLen | extern(C) | Number of entries in AA | rt/aaA.d | |
_d_assocarrayliteralT | extern(C) | Construct AA from key and value pairs (deprecated?) | rt/aaA.d | |
_d_assocarrayliteralTX | extern(C) | Construct AA from key and value pairs | rt/aaA.d |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_adEq | extern(C) | array equality test | rt/adi.d | Converted to template __equals |
_adEq2 | extern(C) | array equality test | rt/adi.d | Converted to template __equals |
_adEqBit | ??? | ??? | Can't find this in druntime. Deprecated? | |
_adReverse | extern(C) | implement .reverse property (generic) | rt/adi.d | Removed from the language in v2.075 |
_adReverseChar | extern(C) | implement .reverse property (char array) | rt/adi.d | Removed from the language in v2.075 |
_adReverseWchar | extern(C) | implement .reverse property (wchar array) | rt/adi.d | Removed from the language in v2.075 |
_adSort | extern(C) | Implement .sort property (generic) | rt/qsort.d | Removed from the language in v2.075 |
_adSortChar | extern(C) | Implement .sort property (char array) | rt/adi.d | Removed from the language in v2.075 |
_adSortWchar | extern(C) | Implement .sort property (wchar array) | rt/adi.d | Removed from the language in v2.075 |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_d_throw | ??? | ??? | ||
_d_throw@4 | ??? | ??? | ||
_d_throwc | extern(C) | rt/deh2.d |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_d_unittest | extern(C) | rt/dmain2.d | ||
_d_unittest_msg | extern(C) | rt/dmain2.d | ||
_d_unittestm | extern(C) | rt/dmain2.d |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
___tls_get_addr | extern(D) | Returns the thread local address of a variable. Used to emulate thread local storage on Mac OS X. | core/thread.d | Only used on Mac OS X. |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
RTInfo | (not a function) | Used to create runtime type information which can then be obtained by the GC at runtime. | object_.d | This is a template which gets instantiated for every type. |
_aApplycd1 | extern(C) | rt/aApply.d | ||
_aApplycd2 | extern(C) | rt/aApply.d | ||
_aApplycw1 | extern(C) | rt/aApply.d | ||
_aApplycw2 | extern(C) | rt/aApply.d | ||
_aApplydc1 | extern(C) | rt/aApply.d | ||
_aApplydc2 | extern(C) | rt/aApply.d | ||
_aApplydw1 | extern(C) | rt/aApply.d | ||
_aApplydw2 | extern(C) | rt/aApply.d | ||
_aApplywc1 | extern(C) | rt/aApply.d | ||
_aApplywc2 | extern(C) | rt/aApply.d | ||
_aApplywd1 | extern(C) | rt/aApply.d | ||
_aApplywd2 | extern(C) | rt/aApply.d |
_aApplyRcd1 | extern(C) | rt/aApplyR.d | ||
_aApplyRcd2 | extern(C) | rt/aApplyR.d | ||
_aApplyRcw1 | extern(C) | rt/aApplyR.d | ||
_aApplyRcw2 | extern(C) | rt/aApplyR.d | ||
_aApplyRdc1 | extern(C) | rt/aApplyR.d | ||
_aApplyRdc2 | extern(C) | rt/aApplyR.d | ||
_aApplyRdw1 | extern(C) | rt/aApplyR.d | ||
_aApplyRdw2 | extern(C) | rt/aApplyR.d | ||
_aApplyRwc1 | extern(C) | rt/aApplyR.d | ||
_aApplyRwc2 | extern(C) | rt/aApplyR.d | ||
_aApplyRwd1 | extern(C) | rt/aApplyR.d | ||
_aApplyRwd2 | extern(C) | rt/aApplyR.d |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_d_switch_dstring | extern(C) | rt/switch_.d | Converted to template __switch | |
_d_switch_error | extern(C) | rt/dmain2.d | Converted to template __switch_error | |
_d_switch_string | extern(C) | rt/switch_.d | Converted to template __switch | |
_d_switch_ustring | extern(C) | rt/switch_.d | Converted to template __switch |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_d_assert | extern(C) | rt/dmain2.d | ||
_d_assert_msg | extern(C) | rt/dmain2.d | ||
_d_assertm | extern(C) | rt/dmain2.d |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
_d_arrayappendT | extern(C) | rt/lifetime.d | ||
_d_arrayappendcT | extern(C) | rt/lifetime.d | ||
_d_arrayappendcTX | extern(C) | rt/lifetime.d | ||
_d_arrayappendcd | extern(C) | rt/lifetime.d | ||
_d_arrayappendwd | extern(C) | rt/lifetime.d | ||
_d_arrayassign | extern(C) | rt/arrayassign.d | ||
_d_arraycast | extern(C) | rt/arraycast.d | Converted to template __ArrayCast | |
_d_arraycast_frombit | extern(C) | rt/arraycast.d | No longer exists | |
_d_arraycatT | extern(C) | rt/lifetime.d | ||
_d_arraycatnT | extern(C) | rt/lifetime.d | ||
_d_arraycopy | extern(C) | rt/arraycat.d | ||
_d_arrayctor | extern(C) | rt/arrayassign.d | ||
_d_arrayliteralT | extern(C) | rt/lifetime.d | ||
_d_arrayliteralTX | extern(C) | rt/lifetime.d | ||
_d_arraysetassign | extern(C) | rt/arrayassign.d | ||
_d_arraysetctor | extern(C) | rt/arrayassign.d | ||
_d_arraysetlengthT | extern(C) | rt/lifetime.d | ||
_d_arraysetlengthiT | extern(C) | rt/lifetime.d | ||
_d_delarray | extern(C) | rt/lifetime.d | ||
_d_delarray_t | extern(C) | rt/lifetime.d | ||
_d_newarrayU | extern(C) | Allocate an array with the garbage collector. Leave elements uninitialized | rt/lifetime.d | |
_d_newarrayT | extern(C) | Initializes to 0 (e.g `new int[]`) | rt/lifetime.d | |
_d_newarrayiT | extern(C) | Initializes based on initializer retrieved from TypeInfo (e.g `new float[]`) | rt/lifetime.d | |
_d_newarraymT | extern(C) | rt/lifetime.d | Returns a void[]. Internally, this void[] is reinterpret casted to T[]. The block returned should be sliced to take into account the length. | |
_d_newarraymTX | extern(C) | Create a new multi-dimensional array which initializes to 0 | rt/lifetime.d | new int[][](10, 20);// _d_newarraymTX(typeid(float), [10, 20]); |
_d_newarraymiT | extern(C) | rt/lifetime.d | (Deprecated?) | |
_d_newarraymiTX | extern(C) | which initializes elements based on `TypeInfo` | rt/lifetime.d | new float[][][](10, 20, 30); // _d_newarraymiTX(typeid(float), [10, 20, 30]); |
mangled name | calling convention | description | druntime definition | comment |
---|---|---|---|---|
D9invariant12_d_invariantFC6ObjectZv | extern(D) | rt/invariant.d | ||
_D9invariant12_d_invariantFC6ObjectZv | ??? | |||
_d_allocmemory | extern(C) | Allocate memory using the garbage collector. DMD uses this to allocate closures | rt/lifetime.d | |
_d_allocmemoryT | extern(C) | For allocating a single POD value (LDC Only) | rt/lifetime.d | |
_d_callfinalizer | extern(C) | rt/lifetime.d | ||
_d_callinterfacefinalizer | extern(C) | rt/lifetime.d | ||
_d_cover_register | extern(C) | rt/cover.d | ||
_d_criticalenter | extern(C) | rt/critical_.d | ||
_d_criticalexit | extern(C) | rt/critical_.d | ||
_d_delclass | extern(C) | rt/lifetime.d | ||
_d_delinterface | extern(C) | rt/lifetime.d | ||
_d_delmemory | extern(C) | rt/lifetime.d | ||
_d_dynamic_cast | extern(C) | Attempts to cast Object o to class c Returns o if successful, null if not. | rt/cast_.d | |
_d_hidden_func | extern(C) | rt/dmain2.d | ||
_d_interface_cast | extern(C) | rt/cast_.d | ||
_d_interface_vtbl | extern(C) | rt/cast_.d | ||
_d_monitor_epilog | extern(C) | rt/deh.d | ||
_d_monitor_handler | extern(C) | rt/deh.d | ||
_d_monitor_prolog | extern(C) | rt/deh.d | ||
_d_monitorenter | extern(C) | rt/deh.d | ||
_d_monitorexit | extern(C) | rt/deh.d | ||
_d_newclass | extern(C) | Create a new class instance. Allocates memory and sets fields to their initial value, but does not call a constructor | rt/lifetime.d | |
_d_newitemU | extern(C) | Leaves the item uninitialized | rt/lifetime.d | |
_d_newitemT | extern(C) | Zero initializes the item | rt/lifetime.d | |
_d_newitemiT | extern(C) | Uses a non-zero initializer from `TypeInfo` | rt/lifetime.d | |
_d_obj_cmp | extern(C) | rt/obj.d | Converted to template __cmp | |
_d_obj_eq | extern(C) | rt/obj.d | Converted to template __equals |