Difference between revisions of "Runtime Hooks"

From D Wiki
Jump to: navigation, search
(split out dynamic array)
Line 30: Line 30:
 
|-
 
|-
 
| _d_assocarrayliteralTX || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/aaA.d#L737  rt/aaA.d]||
 
| _d_assocarrayliteralTX || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/aaA.d#L737  rt/aaA.d]||
 +
|}
 +
 +
 +
{| class="wikitable" width="100%"
 +
|+dynamic array support
 +
|-
 +
!mangled name!!calling convention!!description!!druntime definition!!comment
 +
|-
 +
| _adCmp || extern(C)|| Compare arrays|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L415  rt/adi.d]||
 +
|-
 +
| _adCmp2 || extern(C)|| Compare arrays|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L445  rt/adi.d]|| What's the difference to _adCmp?
 +
|-
 +
| _adCmpBit || ???|| || ???|| Can't find this in druntime. Deprecated?
 +
|-
 +
| _adCmpChar || extern(C)|| Compare arrays|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L471  rt/adi.d]||
 +
|-
 +
| _adDupT || extern(C)|| Implement .dup property|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/lifetime.d#L2222  rt/lifetime.d]||
 +
|-
 +
| _adEq || extern(C)|| array equality test|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L368  rt/adi.d]||
 +
|-
 +
| _adEq2 || extern(C)|| array equality test|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L389  rt/adi.d]||
 +
|-
 +
| _adEqBit || ???|| || ???||Can't find this in druntime. Deprecated?
 +
|-
 +
| _adReverse || extern(C)|| implement .reverse property (generic)|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L236  rt/adi.d]||
 +
|-
 +
| _adReverseChar || extern(C)|| implement .reverse property (char array)|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L47  rt/adi.d]||
 +
|-
 +
| _adReverseWchar || extern(C)|| implement .reverse property (wchar array)|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L142  rt/adi.d]||
 +
|-
 +
| _adSort || extern(C)|| Implement .sort property (generic)|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/qsort.d#L43  rt/qsort.d]||
 +
|-
 +
| _adSortChar || extern(C)|| Implement .sort property (char array)|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L321  rt/adi.d]||
 +
|-
 +
| _adSortWchar || extern(C)|| Implement .sort property (wchar array)|| [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L343  rt/adi.d]||
 
|}
 
|}
  
Line 120: Line 155:
 
|-
 
|-
 
| _aApplywd2 || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/aApply.d#L227  rt/aApply.d]||
 
| _aApplywd2 || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/aApply.d#L227  rt/aApply.d]||
|-
 
| _adCmp || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L415  rt/adi.d]||
 
|-
 
| _adCmp2 || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L445  rt/adi.d]||
 
|-
 
| _adCmpBit || ???|| || ???||
 
|-
 
| _adCmpChar || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L471  rt/adi.d]||
 
|-
 
| _adDupT || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/lifetime.d#L2222  rt/lifetime.d]||
 
|-
 
| _adEq || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L368  rt/adi.d]||
 
|-
 
| _adEq2 || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L389  rt/adi.d]||
 
|-
 
| _adEqBit || ???|| || ???||
 
|-
 
| _adReverse || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L236  rt/adi.d]||
 
|-
 
| _adReverseChar || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L47  rt/adi.d]||
 
|-
 
| _adReverseWchar || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L142  rt/adi.d]||
 
|-
 
| _adSort || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/qsort.d#L43  rt/qsort.d]||
 
|-
 
| _adSortChar || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L321  rt/adi.d]||
 
|-
 
| _adSortWchar || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/adi.d#L343  rt/adi.d]||
 
 
|-
 
|-
 
| _d_allocmemory || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/lifetime.d#L87  rt/lifetime.d]||
 
| _d_allocmemory || extern(C)|| || [https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/rt/lifetime.d#L87  rt/lifetime.d]||

Revision as of 16:07, 21 January 2013

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.

hooks for associative array support
mangled name calling convention description druntime definition comment
_aaApply extern(C) rt/aaA.d
_aaApply2 extern(C) rt/aaA.d
_aaDelX extern(C) rt/aaA.d
_aaEqual extern(C) rt/aaA.d
_aaGetRvalueX extern(C) rt/aaA.d
_aaGetX extern(C) rt/aaA.d
_aaInX extern(C) rt/aaA.d
_aaLen extern(C) rt/aaA.d
_d_assocarrayliteralT extern(C) rt/aaA.d
_d_assocarrayliteralTX extern(C) rt/aaA.d


dynamic array support
mangled name calling convention description druntime definition comment
_adCmp extern(C) Compare arrays rt/adi.d
_adCmp2 extern(C) Compare arrays rt/adi.d What's the difference to _adCmp?
_adCmpBit ??? ??? Can't find this in druntime. Deprecated?
_adCmpChar extern(C) Compare arrays rt/adi.d
_adDupT extern(C) Implement .dup property rt/lifetime.d
_adEq extern(C) array equality test rt/adi.d
_adEq2 extern(C) array equality test rt/adi.d
_adEqBit ??? ??? Can't find this in druntime. Deprecated?
_adReverse extern(C) implement .reverse property (generic) rt/adi.d
_adReverseChar extern(C) implement .reverse property (char array) rt/adi.d
_adReverseWchar extern(C) implement .reverse property (wchar array) rt/adi.d
_adSort extern(C) Implement .sort property (generic) rt/qsort.d
_adSortChar extern(C) Implement .sort property (char array) rt/adi.d
_adSortWchar extern(C) Implement .sort property (wchar array) rt/adi.d
hooks for exception support
mangled name calling convention description druntime definition comment
_d_throw ??? ???
_d_throw@4 ??? ???
_d_throwc extern(C) rt/deh2.d
hooks for unit test support
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
hooks for thread support
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.
List of unsorted runtime hooks
mangled name calling convention description druntime definition comment
D9invariant12_d_invariantFC6ObjectZv extern(D) rt/invariant.d
_D9invariant12_d_invariantFC6ObjectZv ???
_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
_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
_d_allocmemory extern(C) rt/lifetime.d
_d_array_bounds extern(C) rt/dmain2.d
_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
_d_arraycast_frombit extern(C) rt/arraycast.d
_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_assert extern(C) rt/dmain2.d
_d_assert_msg extern(C) rt/dmain2.d
_d_assertm extern(C) rt/dmain2.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_delarray extern(C) rt/lifetime.d
_d_delarray_t extern(C) rt/lifetime.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) 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_newarrayT extern(C) rt/lifetime.d
_d_newarrayiT extern(C) rt/lifetime.d
_d_newarraymT extern(C) rt/lifetime.d
_d_newarraymTX ??? ???
_d_newarraymiT extern(C) rt/lifetime.d
_d_newarraymiTX ??? ???
_d_newclass extern(C) rt/lifetime.d
_d_newitemT extern(C) rt/lifetime.d
_d_newitemiT extern(C) rt/lifetime.d
_d_obj_cmp extern(C) rt/obj.d
_d_obj_eq extern(C) rt/obj.d
_d_switch_dstring extern(C) rt/switch_.d
_d_switch_error extern(C) rt/dmain2.d
_d_switch_string extern(C) rt/switch_.d
_d_switch_ustring extern(C) rt/switch_.d