summaryrefslogtreecommitdiff
path: root/pod/perltodo.pod
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2006-07-15 16:14:32 +0300
committerH.Merijn Brand <h.m.brand@xs4all.nl>2006-07-15 11:53:36 +0000
commitd130778686fc2c04eb7d731512df9e71304d5573 (patch)
tree74953202209cd3371cc54464d6300b2dea41d77a /pod/perltodo.pod
parent59bea8cf0bba843bea2b2a6c959c3fd1cf5e3075 (diff)
downloadperl-d130778686fc2c04eb7d731512df9e71304d5573.tar.gz
various safety/portability tweaks
Message-ID: <44B8C008.4030300@iki.fi> p4raw-id: //depot/perl@28578
Diffstat (limited to 'pod/perltodo.pod')
-rw-r--r--pod/perltodo.pod18
1 files changed, 10 insertions, 8 deletions
diff --git a/pod/perltodo.pod b/pod/perltodo.pod
index a675b7a77e..6bf9d1f4cb 100644
--- a/pod/perltodo.pod
+++ b/pod/perltodo.pod
@@ -163,11 +163,6 @@ 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.
-
-
-
-
-
=head1 Tasks that need a little sysadmin-type knowledge
Or if you prefer, tasks that you would learn from, and broaden your skills
@@ -308,10 +303,10 @@ arranges for building C<miniperl> for TARGET machine, so this C<miniperl> is
assumed then to be copied to TARGET machine and used as a replacement of full
C<perl> executable.
-This should be done litle differently. Namely C<miniperl> should be built for
+This could be done little differently. Namely C<miniperl> should be built for
HOST and then full C<perl> with extensions should be compiled for TARGET.
-
-
+This, however, might require extra trickery for %Config: we have one config
+first for HOST and then another for TARGET.
=head1 Tasks that need a little C knowledge
@@ -493,9 +488,16 @@ system() accepts a LIST syntax (and a PROGRAM LIST syntax) to avoid
running a shell. readpipe() (the function behind qx//) could be similarly
extended.
+=head2 strcat(), strcpy(), strncat(), strncpy(), sprintf(), vsprintf()
+Maybe create a utility that checks after each libperl.a creation that
+none of the above (nor sprintf(), vsprintf(), or *SHUDDER* gets())
+ever creep back to libperl.a.
+ nm libperl.a | ./miniperl -alne '$o = $F[0] if /:$/; print "$o $F[1]" if $F[0] eq "U" && $F[1] =~ /^(?:strn?c(?:at|py)|v?sprintf|gets)$/'
+Note, of course, that this will only tell whether B<your> platform
+is using those naughty interfaces.
=head1 Tasks that need a knowledge of the interpreter