diff options
author | Nicholas Clark <nick@ccl4.org> | 2012-03-30 17:01:39 +0200 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2012-04-24 10:51:55 +0200 |
commit | 8c422da5418e4ef5c4c9bb634fc7c518d97f0b8c (patch) | |
tree | 53aff17fe75e4a033334776d7da41145782da2e4 /Porting/todo.pod | |
parent | 5ca9d8f086c5569a14a792ee55c75478496f2a8f (diff) | |
download | perl-8c422da5418e4ef5c4c9bb634fc7c518d97f0b8c.tar.gz |
Update the todo entry for makedef.pl duplicating C conditional compilation.
makedef.pl has been refactored to read from embed.fnc directly, cutting out
the embed.pl middleman. Correct the header filename - it's "intrpvar.h",
not "interpvar.h".
Diffstat (limited to 'Porting/todo.pod')
-rw-r--r-- | Porting/todo.pod | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/Porting/todo.pod b/Porting/todo.pod index c410c050a4..20ca5e7d54 100644 --- a/Porting/todo.pod +++ b/Porting/todo.pod @@ -114,17 +114,16 @@ Ilya observed that use POSIX; eats memory like there's no tomorrow, and at various times worked to cut it down. There is probably still fat to cut out - for example POSIX passes Exporter some very memory hungry data structures. -=head2 embed.pl/makedef.pl - -There is a script F<embed.pl> that generates several header files to prefix -all of Perl's symbols in a consistent way, to provide some semblance of -namespace support in C<C>. Functions are declared in F<embed.fnc>, variables -in F<interpvar.h>. Quite a few of the functions and variables -are conditionally declared there, using C<#ifdef>. However, F<embed.pl> -doesn't understand the C macros, so the rules about which symbols are present -when is duplicated in F<makedef.pl>. Writing things twice is bad, m'kay. -It would be good to teach C<embed.pl> to understand the conditional -compilation, and hence remove the duplication, and the mistakes it has caused. +=head2 makedef.pl and conditional compilation + +The script F<makedef.pl> that generates the list of exported symbols on +platforms which need this. Functions are declared in F<embed.fnc>, variables +in F<intrpvar.h>. Quite a few of the functions and variables are conditionally +declared there, using C<#ifdef>. However, F<makedef.pl> doesn't understand the +C macros, so the rules about which symbols are present when is duplicated in +the Perl code. Writing things twice is bad, m'kay. It would be good to teach +F<.pl> to understand the conditional compilation, and hence remove the +duplication, and the mistakes it has caused. =head2 use strict; and AutoLoad |