[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Eval options macro: backward compatibility?

From: Han-Wen Nienhuys
Subject: Eval options macro: backward compatibility?
Date: Fri, 19 Jan 2007 16:24:15 +0100
User-agent: Thunderbird (X11/20061219)


what is the status of the eval options structure wrt binary compatibility?

Right now, it says

 scm_t_option scm_evaluator_trap_table[] = {
  { SCM_OPTION_BOOLEAN, "traps", 0, "Enable evaluator traps." },
  { SCM_OPTION_BOOLEAN, "enter-frame", 0, "Trap when eval enters new frame." },
  { SCM_OPTION_BOOLEAN, "apply-frame", 0, "Trap when entering apply." },
  { SCM_OPTION_BOOLEAN, "exit-frame", 0, "Trap when exiting eval or apply." },
  { SCM_OPTION_SCM, "enter-frame-handler", (unsigned long)SCM_BOOL_F, "Handler 
for enter-frame traps." },
  { SCM_OPTION_SCM, "apply-frame-handler", (unsigned long)SCM_BOOL_F, "Handler 
for apply-frame traps." },
  { SCM_OPTION_SCM, "exit-frame-handler", (unsigned long)SCM_BOOL_F, "Handler 
for exit-frame traps." }

this order is awkward when a new trap option has to be added.

The problematic thing is that this is exported to GUILE users, through

  #define SCM_ENTER_FRAME_P      scm_evaluator_trap_table[1].val

in eval.h

I would like to change this order, and if possible move this out of
the global namespace.  Are there any objections? It would break binary
compatibility with apps that inspect options by looking at
scm_evaluator_trap_table directly, but I believe those are broken

 Han-Wen Nienhuys - address@hidden -

reply via email to

[Prev in Thread] Current Thread [Next in Thread]