4 ms·
I dont get how the C macro with the endless C loop can be called from within scheme, just asis. Without any registration. Is this a chez speciality, or am I mis
by rurban 2y ago
I dont get how the C macro with the endless C loop can be called from within scheme, just asis. Without any registration. Is this a chez speciality, or am I missing something?
- nneonneo 2y agoIf I had to guess, they’re probably just expanding the Scheme code into C code during compilation. Also: it isn’t an endless C loop; do{/statements/}while(0) is a common macro idiom for a block of code that requires a trailing semicolon, i.e. one that behaves syntactically like a normal (void) function call. It only runs once because the condition is false.
- gus_massa 2y agoI'm somewhat lost in the details, but IIUC, you are confused for the "use" of the macro in the file mkgs.ss The fist part of that file is a transpiler, that transpile it's second half from pseudo-scheme to c, and then the c version includes the definition of the macro and uses it https://github.com/cisco/ChezScheme/blob/fc577f234171af808599d05984623eb3c1886919/s/mkgc.ss#L6-L11 https://github.com/cisco/ChezScheme/blob/fc577f234171af80859...