This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
For microperl, add uconfig64.sh, with values suitable for an LP64 platform.
[perl5.git] / README.micro
1 microperl is supposed to be a really minimal perl, even more
2 minimal than miniperl.  No Configure is needed to build microperl,
3 on the other hand this means that interfaces between Perl and your
4 operating system are left very -- minimal.
5
6 All this is experimental.  If you don't know what to do with microperl
7 you probably shouldn't.  Do not report bugs in microperl; fix the bugs.
8
9 We assume ANSI C89 plus the following:
10 - <stddef.h>, <stdlib.h>
11 - rename()
12 - opendir(), readdir(), closedir() (via dirent.h)
13 - memchr(), memcmp(), memcpy(), memset() (via string.h)
14 - (a safe) putenv() (via stdlib.h)
15 - strtoul() (via stdlib.h)
16 (grep for 'define' in uconfig.sh.)
17 Also, Perl times() is defined to always return zeroes.
18
19 If you are still reading this and you are itching to try out microperl:
20
21         make -f Makefile.micro
22
23 The defaults assume a little endian LP32 platform - ie long and pointers are
24 32 bits, so sizeof(long) and sizeof(void *) are 4
25 If your platform is little endian LP64 - ie long and pointers are 64 bits,
26 sizeof(long) and sizeof(void *) are 8, then you first need to run
27
28         make -f Makefile.micro regen_uconfig64
29
30 to generate a suitable uconfig.h
31
32 If you make changes to uconfig.sh, run
33
34         make -f Makefile.micro regen_uconfig
35
36 to regenerate uconfig.h.  (or regen_uconfig64 if you're editing uconfig64.sh)
37
38
39 If neither of the above default configs work on your platform, you might want
40 to try
41
42         make -f Makefile.micro patch_uconfig
43
44 *before* the "make -f Makefile.micro".  This tries to minimally patch
45 the uconfig.sh using your *current* Perl so that your microperl has
46 the correct basic types and sizes and byteorder.