Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.541.626 Times

B::Utils 0.30

  Date Added: January 13, 2010  |  Visits: 470


Report Broken Link
Printer Friendly Version

Product Homepage
Download (70 downloads)

B::Utils is a helper functions for op tree manipulation. SYNOPSIS use B::Utils; These functions make it easier to manipulate the op tree. FUNCTIONS all_starts all_roots Returns a hash of all of the starting ops or root ops of optrees, keyed to subroutine name; the optree for main program is simply keyed to __MAIN__. Note: Certain "dangerous" stashes are not scanned for subroutines: the list of such stashes can be found in @B::Utils::bad_stashes. Feel free to examine and/or modify this to suit your needs. The intention is that a simple program which uses no modules other than B and B::Utils would show no addition symbols. This does not return the details of ops in anonymous subroutines compiled at compile time. For instance, given $a = sub { ... }; the subroutine will not appear in the hash. This is just as well, since theyre anonymous... If you want to get at them, use... anon_subs() This returns an array of hash references. Each element has the keys "start" and "root". These are the starting and root ops of all of the anonymous subroutines in the program. $op->oldname Returns the name of the op, even if it is currently optimized to null. This helps you understand the stucture of the op tree. $op->kids Returns an array of all this ops non-null children, in order. $op->first $op->last $op->other Normally if you call first, last or other on anything which is not an UNOP, BINOP or LOGOP respectivly it will die. This leads to lots of code like: $op->first if $op->can(first); B::Utils provides every op with first, last and other methods which will simply return nothing if it isnt relevent. $op->parent Returns the parent node in the op tree, if possible. Currently "possible" means "if the tree has already been optimized"; that is, if were during a CHECK block. (and hence, if we have valid next pointers.) In the future, it may be possible to search for the parent before we have the next pointers in place, but itll take me a while to figure out how to do that. $op->previous Like $op->next, but not quite. walkoptree_simple($op, &callback, [$data]) The B module provides various functions to walk the op tree, but theyre all rather difficult to use, requiring you to inject methods into the B::OP class. This is a very simple op tree walker with more expected semantics. The &callback is called at each op with the op itself passed in as the first argument and any additional $data as the second. All the walk functions set $B::Utils::file and $B::Utils::line to the appropriate values of file and line number in the program being examined. Since only COPs contain this information it may be unavailable in the first few callback calls. walkoptree_filtered($op, &filter, &callback, [$data]) This is much the same as walkoptree_simple, but will only call the callback if the filter returns true. The filter is passed the op in question as a parameter; the opgrep function is fantastic for building your own filters. walkallops_simple(&callback, [$data]) This combines walkoptree_simple with all_roots and anon_subs to examine every op in the program. $B::Utils::sub is set to the subroutine name if youre in a subroutine, __MAIN__ if youre in the main program and __ANON__ if youre in an anonymous subroutine. walkallops_filtered(&filter, &callback, [$data]) Same as above, but filtered..

Requirements: No special requirements
Platforms: Linux
Keyword: Butils First Functions Helper Functions Libraries Op Program Programming Simple Tree
Users rating: 0/10

License: Freeware Size: 44.03 KB
More Reviews or Write Review

Libraries  -  AA Helper Library 0.1
AA Helper Library is a basic library of helper functions for AAlib. Inspiration that started this is AAJM, when I implemented circles and lines. More or less on a whim, I turned it into a more convincing project. Yes, Im fully aware of the...
18.43 KB  
Libraries  -  gtk-Xt 0.3
gtk-Xt provides helper functions to use Xt (X Toolkit Intrinsics) together with GTK.. Get G-Inspector at Fast, secure and free downloads from the largest Open Source applications and software directory. G-Inspector is a GLib(GTK+)...
204.8 KB  
Libraries  -  gtk-Qt 0.3
gtk-Qt provides helper functions to use Qt together with GTK.. Get G-Inspector at Fast, secure and free downloads from the largest Open Source applications and software directory. G-Inspector is a GLib(GTK+) object/class inspector.
204.8 KB  
Libraries  -  Image::PBMlib 1.05
Image::PBMlib Perl module contains helper functions for PBM/PGM/PPM image file formats. SYNOPSIS use Image::PBMlib; ... open(PPM, "< image.ppm")... my $ref = readppmheader(*PPM); my @pixels = readpixels_raw(*PPM, $$ref{type},...
6.14 KB  
Libraries  -  Rose::DateTime 0.532
Rose::DateTime is a Perl module with DateTime helper functions and objects. SYNOPSIS use Rose::DateTime::Util qw(:all); $now = parse_date(now); $then = parse_date(12/25/2001 6pm); $date_text = format_date($then, "%D at %T %p"); ......
11.26 KB  
Programming  -  gtk-FOX 0.3
gtk-FOX project provides helper functions to use FOX toolkit together with GTK.. Get G-Inspector at Fast, secure and free downloads from the largest Open Source applications and software directory. G-Inspector is a GLib(GTK+)...
215.04 KB  
Programming  -  gtk-FLTK 0.3
gtk-FLTK project provides helper functions to use FLTK together with GTK.. Get G-Inspector at Fast, secure and free downloads from the largest Open Source applications and software directory. G-Inspector is a GLib(GTK+)...
215.04 KB  
Libraries  -  Text::MicroMason::Functions 1.992
Text::MicroMason::Functions Perl module contains Function Exporter for Simple Mason Templates. SYNOPSIS Use the execute function to parse and evalute a template: use Text::MicroMason::Functions qw( execute ); print execute($template,...
69.63 KB  
Development Editors  -  gtk-FLTK 0.3
gtk-FLTK provides helper functions to use FLTK together with GTK.
215.04 KB  
Development Editors  -  gtk-FOX 0.3
gtk-FOX provides helper functions to use FOX toolkit together with GTK.
215.04 KB  
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB  
Libraries  -  App::SimpleScan::Substitution::Line 2.02
App::SimpleScan::Substitution::Line is a line with optional fixed variable values. SYNOPSIS my $line = App::SimpleScan::Substitution::Line->new(" this "); # Use only this value when substituting " ". $line->fix(substituite =>...
54.27 KB