GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
B::Stackobj(3) User Contributed Perl Documentation B::Stackobj(3)

B::Stackobj - Stack and type annotation helper module for the CC backend

        use B::Stackobj;

A simple representation of pp stacks and lexical pads for the B::CC compiler. All locals and function arguments get type annotated, for all B::CC ops which can be optimized.

For lexical pads (i.e. my or better our variables) we currently can force the type of variables according to a magic naming scheme in "load_pad" in B::CC.

    my $<name>_i;    IV integer
    my $<name>_ir;   IV integer in a pseudo register
    my $<name>_d;    NV double

Future ideas are type qualifiers as attributes

  B<num>, B<int>, B<register>, B<temp>, B<unsigned>, B<ro>

such as in

        our int $i : unsigned : ro;
        our num $d;

Type attributes for sub definitions are not spec'ed yet. Ctypes attributes and objects should also be recognized, such as "c_int" and "c_double".

my vs our: Note that only our attributes are resolved at compile-time, my attributes are resolved at run-time. So the compiler will only see type attributes for our variables.

See "load_pad" in B::CC and types.

TODO: Represent on this stack not only PADs,SV,IV,PV,NV,BOOL,Special and a SV const, but also GV,CV,RV,AV,HV, esp. AELEM and HELEM. Use B::Stackobj::Const.

Malcolm Beattie "MICB at cpan.org" (retired), Reini Urban "rurban at cpan.org"
2018-11-12 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.