summaryrefslogtreecommitdiff
path: root/t/porting/regen.t
Commit message (Collapse)AuthorAgeFilesLines
* Eliminate global.sym, as makedef.pl can generate it internally.Nicholas Clark2011-08-251-1/+1
| | | | | | | | global.sym was a file listing the exported symbols, generated by regen/embed.pl from embed.fnc and regen/opcodes, which was only used by makedef.pl Move the code that generates global.sym from regen/embed.pl to makedef.pl, and thereby eliminate the need to ship a 907 line generated file.
* Generate magic_names in dump.c using mg_vtable.pl.Nicholas Clark2011-06-111-1/+1
|
* Create a lookup table for magic vtables from magic type, PL_magic_data.Nicholas Clark2011-06-111-1/+1
| | | | | | | | | | | Use it to eliminate the large switch statement in Perl_sv_magic(). As the table needs to be keyed on magic type, which is expressed as C character constants, the order depends on the compiler's character set. Frustratingly, EBCDIC variants don't agree on the code points for '~' and ']', which we use here. Instead of having (at least) 4 tables, get the local runtime to sort the table for us. Hence the regen script writes out the (unsorted) mg_raw.h, which generate_uudmap sorts to generate mg_data.h
* Generate the definitions for magic vtables from data in a regen script.Nicholas Clark2011-06-111-1/+1
| | | | | | | | | | | Previously perl.h contained a long section of MGVTBL_SET() macros declaring the core's various magic vtables. Convert the information into data structures in a new script regen/mg_table.pl, and use this to generate a new file mg_vtable.h, included by perl.h This is the first step in reducing the number of places that data relating to magic vtables is declared (and has to be kept in sync), and will allow more flexibility in parts of the core's implementation.
* Add regen/uconfig_h.pl to regenerate uconfig.hNicholas Clark2011-03-281-1/+1
| | | | | | | | Most of the work is done by config_h.SH, but the wrapper is needed to add the digest lines, so that t/porting/regen.t can verify that it's up to date. I think that we need to take the "digest" approach, rather than "build to a temporary file during testing", as we can't rely on a working Unix shell on all platforms, and we couldn't even be sure that we get the skip list correct.
* Skip t/porting/regen.t on VMS.Craig A. Berry2011-03-221-0/+4
| | | | | The output of regen.pl is slightly different than on Unix. Could probably be ported with a moderate effort.
* Merge perl_keyword.pl into regen/keywords.pl, to generate keywords.[ch]Nicholas Clark2011-01-241-2/+2
| | | | | | | | | | Prepend + or - in front of all the keyword names in __DATA__ to mark weak and strong keywords, needed for keyword.c As keywords.c needs Devel::Tokenizer::C 0.05, not a core module (and not a common module either) we can no longer run it as part of regen.pl. So store the sha256 of the source in the generated files, and use this in to check that they are not stale (in t/porting/regen.t)
* regen/mk_PL_charclass.pl can test that l1_char_class_tab.h is up to date.Nicholas Clark2011-01-241-2/+3
|
* t/porting/regen.t can test that regcharclass.h is up to date.Nicholas Clark2011-01-231-3/+4
| | | | | As regen/regcharclass.pl uses regen_lib.pl and rename_if_different(), all that is needed is to pass it --tap on the command line.
* t/porting/regen.t can test that META.yml is up to date.Nicholas Clark2011-01-231-1/+2
| | | | | | | | | | As Porting/makemeta uses regen_lib.pl and rename_if_different(), all that is needed is to pass it --tap on the command line. t/porting/regen.t now tests that all files mentioned in the release managers guide are up to date (and tests will fail if they are not), hence there is now no need for the release manager to explicitly test that generated files are not stale.
* Store the SHA-256 of the source in files generated by regen_perly.plNicholas Clark2011-01-231-1/+31
| | | | | | | bison isn't available everywhere, so we can't simply re-run regen_perly.pl to verify that perly.{act,h,tab} are up to date. So instead store the SHA-256 of the input files, and extend t/porting/regen.t to check that the input files haven't been changed subsequently.
* regen/overload.pl should use rename_if_different() for lib/overload/numbers.pmNicholas Clark2011-01-231-1/+1
| | | | | | It was the only file generated by any of the regen/*.pl scripts which was always written out directly, instead of first creating a temporary file, and only moving that if successfully generated (and different).
* A test to check that regen.pl doesn't need running.Nicholas Clark2010-09-281-0/+23
We can't run regen.pl as part of the build, as we'd end up with a circular dependency between the headers and miniperl.