This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
microperl: On (at least) OS X and Linux stddef.h is needed for ptrdiff_t
[perl5.git] / README.micro
index e495cdb..c51c185 100644 (file)
@@ -1,4 +1,4 @@
-microperl is supposed to be able a really minimal perl, even more
+microperl is supposed to be a really minimal perl, even more
 minimal than miniperl.  No Configure is needed to build microperl,
 on the other hand this means that interfaces between Perl and your
 operating system are left very -- minimal.
@@ -6,10 +6,30 @@ operating system are left very -- minimal.
 All this is experimental.  If you don't know what to do with microperl
 you probably shouldn't.  Do not report bugs in microperl; fix the bugs.
 
+We assume ANSI C89 plus the following:
+- <stddef.h>, <stdlib.h>
+- rename()
+- opendir(), readdir(), closedir() (via dirent.h)
+- memchr(), memcmp(), memcpy() (via string.h)
+- (a safe) putenv() (via stdlib.h)
+- strtoul() (via stdlib.h)
+(grep for 'define' in uconfig.sh.)
+Also, Perl times() is defined to always return zeroes.
+
 If you are still reading this and you are itching to try out microperl:
 
        make -f Makefile.micro
 
+If you make changes to uconfig.sh, run
+
+       make -f Makefile.micro regen_uconfig
+
+to regenerate uconfig.h.  If your compilation platform is not 32-bit
+little-endian (like x86), you might want to try
 
+       make -f Makefile.micro patch_uconfig
 
+*before* the "make -f Makefile.micro".  This tries to minimally patch
+the uconfig.sh using your *current* Perl so that your microperl has
+the correct basic types and sizes and byteorder.