mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-17 04:20:53 +01:00
o these classes get an "enum" flag in the class files
o these classes get a class field (whose type is that same enum
class) per enum in the type, which also gets the "enum" flag
o those class fields are initialised in the class constructor
with the name of the enum and their order in the declaration
o if the enum has jumps in FPC (lowest value is not 0, or not
all values are contiguous), then we add an extra field
to hold the FPC ordinal value of the enum
o these classes get a class field valled $VALUES that contains
a reference to the aforementioned class fields in order of
declaration (= ordinal->instance mapping, JDK-mandated)
o apart from the JDK-mandated instance methods (values, valueOf),
also add FPCOrdinal (returns FPC ordinal value; same as order
of declaration in case of no jumps) instance method and FPCValueOf
(returns enum corresponding to FPC ordinal value) static class
method
o the mapping between FPC ordinals and enum instances in case of
jumps is stored in a hashmap whose size is the next prime number
greater or equal than the number of enum elements
o moved several extra JDK types to the system unit for the enum
support, and for future boxing and Java set support
o several new synthetic method identifiers to generate the enum class
methods/constructor/class constructor
o enums with jumps are ordered by FPC ordinal value in the JVM
$VALUES array so that the java.lang.Enum.doCompare() method
will properly compare them
git-svn-id: branches/jvmbackend@18616 -
|
||
|---|---|---|
| .. | ||
| dummyas.pp | ||
| fixlog.pp | ||
| fixmsg.pp | ||
| fixnasm.pp | ||
| fixtab.pp | ||
| fpc.mpw | ||
| fpc.pp | ||
| fpcsubst.pp | ||
| fpimpdef.pp | ||
| gia64reg.pp | ||
| gppc386.pp | ||
| Makefile | ||
| Makefile.fpc | ||
| mk68kreg.pp | ||
| mkarmins.pp | ||
| mkarmreg.pp | ||
| mkavrreg.pp | ||
| mkjvmreg.pp | ||
| mkmpsreg.pp | ||
| mkppcreg.pp | ||
| mkspreg.pp | ||
| mkx86ins.pp | ||
| mkx86reg.pp | ||
| msg2inc.pp | ||
| msgdif.pp | ||
| msgused.pl | ||
| ppudump.pp | ||
| ppufiles.pp | ||
| ppumove.pp | ||
| README.txt | ||
| samplecfg | ||
| usubst.pp | ||
This directory contains some utilities that are used during the
development of the Free Pascal Compiler.
msg2inc : Convert a compiler message file (errorX.msg) to .inc files to
include it as the default language in the compiler. It can
also convert the .msg to .tex for inclusion the documentation
nasmconv : Convert a Nasm insns.dat to i386tab.inc so it can be used with
the compiler
makecfg : This script will make the samplecfg for linux installations
msgdif : analyzes the differences between two msg files
msgdif errore.msg errord.msg
will print out new error msg, removed old ones
and will create a new file new.msg that will
contain the new error messages (supposing TeX comment is after
the message line itself)
removed messages are prepended by "%%% "
(they can be useful in case on error enum renaming !)