Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Dead code elimination is only straightforward if your language has sane naming semantics (lexical scope, static name resolution, etc). If your language does crazy stuff like allowing function lookup by the string representation of its name in the source code (e.g. JavaScript) it becomes much harder.


Which is why Google's jscompiler requires a stricter subset of JS for "advanced optimizations" including dead code elimination.


C allows you to call functions by string...

C++ also allows it, but the function names are a bit harder to guess.


> C allows you to call functions by string

please elaborate


Possibly OP meant dlopen/dlsym on itself? But that's a stretch, and not really language feature...


And functions aren't guaranteed to be included in the binary unless you pass additional compiler flags with that strategy.


Very few things are guaranteed in C. If you want to guarantee the function exists let the operating system look up the function names by string for you.


Create a string, look up the address of a function in the library. Assign the address to a function pointer, call it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: