zfp_genesis 1 ------------------------------------------------------------------------------
zfp_genesis 2 ------------------------------------------------------------------------------
zfp_genesis 3 -- You do not have, nor can you ever acquire the right to use, copy or --
zfp_genesis 4 -- distribute this software ; Should you use this software for any purpose, --
zfp_genesis 5 -- or copy and distribute it to anyone or in any manner, you are breaking --
zfp_genesis 6 -- the laws of whatever soi-disant jurisdiction, and you promise to --
zfp_genesis 7 -- continue doing so for the indefinite future. In any case, please --
zfp_genesis 8 -- always : read and understand any software ; verify any PGP signatures --
zfp_genesis 9 -- that you use - for any purpose. --
zfp_genesis 10 -- --
zfp_genesis 11 -- See also http://trilema.com/2015/a-new-software-licensing-paradigm . --
zfp_genesis 12 ------------------------------------------------------------------------------
zfp_genesis 13 ------------------------------------------------------------------------------
zfp_genesis 14
zfp_genesis 15 -- This package provides the interfaces for proper handling of restriction
zfp_genesis 16 -- No_Standard_Allocators_After_Elaboration. It is used only by programs
zfp_genesis 17 -- which use this restriction.
zfp_genesis 18
zfp_genesis 19 package System.Elaboration_Allocators is
zfp_genesis 20 pragma Preelaborate;
zfp_genesis 21
zfp_genesis 22 procedure Mark_Start_Of_Elaboration;
zfp_genesis 23 -- Called right at the start of main elaboration if the program activates
zfp_genesis 24 -- restriction No_Standard_Allocators_After_Elaboration. We don't want to
zfp_genesis 25 -- rely on the normal elaboration mechanism for marking this event, since
zfp_genesis 26 -- that would require us to be sure to elaborate this first, which would
zfp_genesis 27 -- be awkward, and it is convenient to have this package be Preelaborate.
zfp_genesis 28
zfp_genesis 29 procedure Mark_End_Of_Elaboration;
zfp_genesis 30 -- Called when main elaboration is complete if the program has activated
zfp_genesis 31 -- restriction No_Standard_Allocators_After_Elaboration. This is the point
zfp_genesis 32 -- beyond which any standard allocator use will violate the restriction.
zfp_genesis 33
zfp_genesis 34 procedure Check_Standard_Allocator;
zfp_genesis 35 -- Called as part of every allocator in a program for which the restriction
zfp_genesis 36 -- No_Standard_Allocators_After_Elaboration is active. This will raise an
zfp_genesis 37 -- exception (Program_Error with an appropriate message) if it is called
zfp_genesis 38 -- after the call to Mark_End_Of_Elaboration.
zfp_genesis 39
zfp_genesis 40 end System.Elaboration_Allocators;