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

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

Serving Software Downloads in 956 Categories, Downloaded 50.321.906 Times

B::Utils 0.30

  Date Added: January 13, 2010  |  Visits: 670

B::Utils

Report Broken Link
Printer Friendly Version


Product Homepage
Download (98 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
USER REVIEWS
More Reviews or Write Review


B::UTILS RELATED
Database Tools  -  poptasticDB database access functions for Scripts 1.0v0.4
The poptasticDB database access functions are a set of PHP functions libraries designed to provide cross platform database support for PHP applications from a common programmers interface.They are free open source software released under the GNU...
20.48 KB  
Programming  -  PyRoe 1.0
PyRoe project is a "static partial linker" for small helper Python libraries. PyRoe links a Python script with its helper libraries into self-contained Python executable (PyRoe capsule). Pyroe HOWTO Assume that your main module is called...
4.1 KB  
Utilities  -  Net-SNMP 5.4.1
Net-SNMP project provides tools and libraries relating to the Simple Network Management Protocol. Installation: The `configure shell script attempts to guess correct values for various system-dependent variables used during compilation. It...
3.81 MB  
Communication  -  Parallel to Series 1.0
This program is simple and fast that is used to convert from parallel to serialyou can use it as a functionparallel2series(information);
10 KB  
Site Search Tools  -  FreeWebLinkSubmitter 1.2.3
Free Web Link Submitter is a freeware program to POST submit your data, URL or other information. The program includes simple database that allows you to submit your web site to the Internet's biggest search engines and directories and request...
498.71 KB  
Networking Tools  -  Television Online 1.0
Television Online is a program very simple to use that it works to complete screen, and in which we will be able to enjoy channels of Television in direct, distributed everywhere. The program is updated from its own server reason why new channels...
616 KB  
Integration Tools  -  Vaistine 2.0.2.8
This program - a simple tool to process your images directory (say pictures be obtained via fax, a family album, or just images from Web sites). The program automatically pulls all the images in the current directory. The program then cut...
30 KB  
Programming  -  devkitPro 1.5.7
This project is for homebrew console development tools based on the gnu compiler collection with additional tools and libraries to aid programming each supported console. The windows variants are built with MinGW.
444.26 KB  
Communication Tools  -  phpStickyBoard 0.0.10.rc1
phpStickyBoard aimed at creating a forum program in simple, quick and easy-to-use interfaces. Security(of structure, contents) is concerned as the most important.
11.06 MB  
Modules  -  AutarTimonial 1.1.0
This is my first Joomla extension to learn Joomla extension programming.It's a simple and easy-to-use testimonials component.Visitors can add testimonial in the front-end with a simple form. You can manage it in the back-end (add, modify, delete,...
839.68 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
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  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 4.0.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
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