// clay -no-exceptions -shared -asm hw.clay // as hw.s -o hw.o // // link /nodefaultlib /entry:mainCRTStartup /align:16 hw.o /out:hw.exe kernel32.lib /merge:.data=.text /merge:.dtors=.text /subsystem:console // 848 bytes (896) // // polink /nodefaultlib /entry:mainCRTStartup /align:16 hw.o /out:hwp.exe kernel32.lib /merge:.data=.text /merge:.dtors=.text // 640 bytes (688) // numbers in parens with exitprocess call import win32.*; external mainCRTStartup() { WriteFile( GetStdHandle(UInt(-11)), RawPointer(cstring("Hello World\n")), DWORD(12), LPDWORD(0), LPOVERLAPPED(0) ); ExitProcess(0u); }