This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlapi: Remove per-thread section; move to real scns
[perl5.git] / README.micro
CommitLineData
ad5a63fe 1microperl is supposed to be a really minimal perl, even more
12ae5dfc
JH
2minimal than miniperl. No Configure is needed to build microperl,
3on the other hand this means that interfaces between Perl and your
4operating system are left very -- minimal.
5
6All this is experimental. If you don't know what to do with microperl
45c2973d
NC
7you probably shouldn't. Please don't report bugs in microperl; fix the
8bugs. (Bugs reports about microperl without fixes/patches are equivalent
9to wishlist requests - they won't be discarded, but they likely won't get
10worked on either, unless they chance to coincide with someone's personal itch)
a83b6f46 11
75bd9dfb 12We assume ANSI C89 plus the following:
1e54a0f5 13- <stddef.h>, <stdlib.h>
2f42fcb0
JH
14- rename()
15- opendir(), readdir(), closedir() (via dirent.h)
59ac522e 16- memchr(), memcmp(), memcpy(), memset() (via string.h)
2f42fcb0
JH
17- (a safe) putenv() (via stdlib.h)
18- strtoul() (via stdlib.h)
19(grep for 'define' in uconfig.sh.)
20Also, Perl times() is defined to always return zeroes.
21
a83b6f46
JH
22If you are still reading this and you are itching to try out microperl:
23
24 make -f Makefile.micro
25
c13bf28c
NC
26The defaults assume a little endian LP32 platform - ie long and pointers are
2732 bits, so sizeof(long) and sizeof(void *) are 4
28If your platform is little endian LP64 - ie long and pointers are 64 bits,
29sizeof(long) and sizeof(void *) are 8, then you first need to run
30
31 make -f Makefile.micro regen_uconfig64
32
33to generate a suitable uconfig.h
34
ad5a63fe 35If you make changes to uconfig.sh, run
a83b6f46 36
ad5a63fe 37 make -f Makefile.micro regen_uconfig
12ae5dfc 38
c13bf28c
NC
39to regenerate uconfig.h. (or regen_uconfig64 if you're editing uconfig64.sh)
40
41
42If neither of the above default configs work on your platform, you might want
43to try
2eacba2f
JH
44
45 make -f Makefile.micro patch_uconfig
46
47*before* the "make -f Makefile.micro". This tries to minimally patch
48the uconfig.sh using your *current* Perl so that your microperl has
49the correct basic types and sizes and byteorder.