Comment #0 by verylonglogin.reg — 2013-07-13T08:45:08Z
This code used to work allowing usage of stuff like `min` where no D runtime functions are used:
---
import std.algorithm;
extern(C) void main()
{ }
---
Current OPTLINK output:
---
OPTLINK (R) for Win32 Release 8.00.13
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_arrayappendT
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D12TypeInfo_Aya6__initZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_throwc
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std3utf12isValidDcharFNaNbNfwZb
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std3utf12UTFException7__ClassZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_newclass
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std3utf7__arrayZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std3utf12UTFException6__ctorMFNaNfAyakAyakC6object9ThrowableZC3std3utf12UTFException
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std3utf6encodeFNaNfKG4awZk
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std4conv7__arrayZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std6format7__arrayZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std5array7__arrayZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_allocmemory
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D16TypeInfo_Pointer6__vtblZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D15TypeInfo_Struct6__vtblZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_newitemT
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D4core6memory2GC6qallocFNaNbkkZS4core6memory8BlkInfo_
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D4core6memory2GC6extendFNaNbPvkkZk
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_arraycopy
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std6format15FormatException6__ctorMFNaNbNfAyaAyakC6object9ThrowableZC3std6format15FormatException
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std6format15FormatException7__ClassZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D11TypeInfo_Aa6__initZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __d_arraysetcapacity
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std4conv13ConvException6__ctorMFNaNbNfAyaAyakZC3std4conv13ConvException
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std4conv13ConvException7__ClassZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std4conv21ConvOverflowException6__ctorMFNaNbNfAyaAyakZC3std4conv21ConvOverflowException
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std4conv21ConvOverflowException7__ClassZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std5ascii7isDigitFNaNbNfwZb
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined __adDupT
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D14TypeInfo_Array6__vtblZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D10TypeInfo_a6__initZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D14TypeInfo_Const6__vtblZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D9Exception7__ClassZ
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D6object9Exception6__ctorMFNaNbNfAyaAyakC6object9ThrowableZC9Exception
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std9exception7bailOutFNaNfAyakxAaZv
Release\test_d2.obj(test_d2)
Error 42: Symbol Undefined _D3std9algorithm12__ModuleInfoZ
--- errorlevel 36
---
(`betterC` flag removes one undefined symbol)
This forces one to copy/paste all the functionality for runtime-less applications.