305 |
4. Incremental changes for improving the evaluator |
4. Incremental changes for improving the evaluator |
306 |
================================================== |
================================================== |
307 |
|
|
308 |
|
* get rid of the builtin "acros" and "macros". These two kinds of syntax |
309 |
|
transformers are dynamically executed whenever the corresponding code is |
310 |
|
executed (see above). Thus, they can never be separated from the execution |
311 |
|
phase. Therefore, with support for these transformers, no separation of |
312 |
|
memoization and execution would be possible. |
313 |
|
|
314 |
|
This change means to remove the following functions from guile: |
315 |
|
- scm_makacro (C function) |
316 |
|
- procedure->syntax (scheme function) |
317 |
|
- scm_makmacro (C function) |
318 |
|
- procedure->macro (scheme function) |
319 |
|
|
320 |
|
The following functions would become pointless and could also be removed: |
321 |
|
- scm_macro_type (C function) |
322 |
|
- macro-type (scheme function) |
323 |
|
- SCM_MACRO_TYPE (C macro) |
324 |
|
|
325 |
|
The signature of the following functions could be simplified: |
326 |
|
- scm_make_synt (C function) |
327 |
|
- SCM_SYNTAX (C macro) |
328 |
|
|
329 |
* split the functionality of scm_lookupcar into the following subtasks: |
* split the functionality of scm_lookupcar into the following subtasks: |
330 |
a) a function to transform a symbol into its memoized form: |
a) a function to transform a symbol into its memoized form: |
331 |
static SCM symbol2memoized_symbol (SCM symbol, SCM environment); |
static SCM symbol2memoized_symbol (SCM symbol, SCM environment); |