[frogs] Re: T1055: Avoid using deprecated %module-public-interface in guile initialisation. (issue1160044)

[ Thread Index | Date Index | More lilynet.net/frogs Archives ]


On 2010/05/15 19:56:47, Ian Hulin wrote:
On 2010/05/14 03:23:55, hanwenn wrote:
>
> rather than
>
>   SCM x = ..;
>   SCM y = ..;
>
>   z = foo(x);
>   call(y);
>
> do
>
>
>   SCM x = ..;
>   z = foo(x);
>
>   SCM y = ..;
>   call(y);
>
> i.e. declare vars just before their first use.

I really don't like interlacing data declarations with
executable code, and I'd have felt happier if all the
declarations were at the top of the function separate from the
code. . .  I've coded it as I have so only the relevant changes
show up, even though I personally disagree with the existing
coding style.  We obviously come from opposing schools of
programming style so if it doesn't affect the functionality
we'll have to agree to differ on this one.

Hi Ian,

If the location at which a variable is declared/initialized is so
close to its place of usage, why bother putting the declarations
at the top of a block?

IMO, it's not worth going through the trouble of separating
everything unless it's necessary.  From my experience, it
decreases code readability.  I would do it like this:

  SCM maker = ly_lily_module_constant ("make-module");
  mod = scm_call_0 (maker);

  SCM module_export_all_x = ly_lily_module_constant
("module-export-all!");
  scm_call_1 (module_export_all_x, mod);

  SCM scm_module = ly_lily_module_constant ("the-scm-module");
  ly_use_module (mod, scm_module);
  ly_use_module (mod, global_lily_module);


http://www.codereview.appspot.com/1160044/show

---
----
Join the Frogs!


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/