4 ms·
I saw this technique, namely using gcc's labels-as-values extension to efficiently implement threaded code, in gForth. The developers of gForth originally chose
by listic 18y ago
I saw this technique, namely using gcc's labels-as-values extension to efficiently implement threaded code, in gForth. The developers of gForth originally chose gcc back in 1992 because it had such a neat feature that allowed to implement threaded code efficiently. Unfortunately for gForth, somewhere along the way gcc developers changed something and gForth took massive perfomance hit (2 or 3 times slowdown) gForth developers tried to negotiate with gcc team, but they didn't seem to be interested to do additional work seemingly needed only for one application (gForth). The gForth developers couldn't afford to fork gcc either (gcc is too big; too much work)
I guess the moral of the story should be: beware of such speedups that come from nonstandard technology you cannot control.
The whole story is from my memory, as I cannot find the source right now.
- anewaccountname 18y agoseems like a candidate for inline assembly.
- listic 18y agosure, but what if you might not want to use inline assembly i.e. for easier portability across platforms. Forths before used it all the way, but gForth didn't want to.
- deleted 18y ago[deleted]