This is the mail archive of the systemtap-cvs@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

src ./ChangeLog ./staptree.h ./staptree.cxx ./ ...


CVSROOT:	/cvs/systemtap
Module name:	src
Changes by:	graydon@sourceware.org	2005-11-14 04:39:48

Modified files:
	.              : ChangeLog staptree.h staptree.cxx parse.h 
	                 parse.cxx elaborate.h elaborate.cxx 
	                 translate.cxx 
Added files:
	testsuite/buildok: printf.stp 

Log message:
	2005-11-13  Graydon Hoare  <graydon@redhat.com>
	
	* staptree.h (struct indexable): New struct.
	(classify_indexable): New function.
	(classify_const_indexable): New function.
	(struct symbol): Implement indexable.
	(struct arrayindex): Take indexable as base.
	(struct foreach_loop): Take indexable as base.
	(struct print_format): New struct.
	(enum stat_component_type): New enum.
	(struct stat_op): New struct.
	(enum historgram_type): New enum.
	(struct hist_op): New struct.
	(struct visitor)
	(struct traversing_visitor)
	(struct throwing_visitor)
	(struct deep_copy_visitor): Add new visitor methods.
	(require): Specialize for indexable*.
	
	* staptree.cxx (print_format::*)
	(stat_op::*)
	(hist_op::*)
	(indexable::*)
	(traversing_visitor::*)
	(throwing_visitor::*)
	(deep_copy_visitor::*)
	(classify_indexable)
	(classify_const_indexable): Implement
	(deep_copy_visitor::*): Update to use indexables.
	
	* parse.h (parser::parse_indexable): New method.
	(parser::parse_hist_op_or_bare_name): New method.
	
	* parse.cxx (lexer::scan): Accept @ in identifiers.
	(parser::parse_array_in)
	(parser::parse_foreach_loop): Call parse_indexable.
	(parser::parse_hist_op_or_bare_name): Implement.
	(parser::parse_indexable): Implement.
	(parser::parse_symbol): Accept printf, stat_ops, hist_ops.
	
	* elaborate.h (struct typeresolution_info): Add methods for
	visiting print_format, stat_op, hist_op.
	
	* elaborate.cxx (symbol_fetcher): New class.
	(get_symbol_within_expression): New function.
	(get_symbol_within_indexable): New function.
	(mutated_var_collector): Replace mutated_map_collector.
	(no_var_mutation_during_iteration_check): Replace
	no_map_mutation_during_iteration_check.
	(semantic_pass_vars): Replace semantic_pass_maps.
	(semantic_pass): Update call accordingly.
	(symresolution_info::*) Add new visitors, teach about indexables
	(typeresolution_info::*) Likewise.
	
	* translate.cxx
	(c_unparser::getiter): Take symbol, not foreach_loop.
	(c_unparser::*) Add new visitors, teach about indexables.
	(c_tmpcounter::*)
	(delete_statement_operand_visitor::visit_arrayindex)
	(c_tmpcounter_assignment::*)
	(c_unparser_assignment::*): Likewise.
	(hist_op_downcaster): New struct.
	(expression_is_hist_op): New function.
	
	* testsuite/buildok/printf.stp: New test for print_format.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ChangeLog.diff?cvsroot=systemtap&r1=1.227&r2=1.228
http://sourceware.org/cgi-bin/cvsweb.cgi/src/staptree.h.diff?cvsroot=systemtap&r1=1.28&r2=1.29
http://sourceware.org/cgi-bin/cvsweb.cgi/src/staptree.cxx.diff?cvsroot=systemtap&r1=1.33&r2=1.34
http://sourceware.org/cgi-bin/cvsweb.cgi/src/parse.h.diff?cvsroot=systemtap&r1=1.16&r2=1.17
http://sourceware.org/cgi-bin/cvsweb.cgi/src/parse.cxx.diff?cvsroot=systemtap&r1=1.31&r2=1.32
http://sourceware.org/cgi-bin/cvsweb.cgi/src/elaborate.h.diff?cvsroot=systemtap&r1=1.22&r2=1.23
http://sourceware.org/cgi-bin/cvsweb.cgi/src/elaborate.cxx.diff?cvsroot=systemtap&r1=1.38&r2=1.39
http://sourceware.org/cgi-bin/cvsweb.cgi/src/translate.cxx.diff?cvsroot=systemtap&r1=1.69&r2=1.70
http://sourceware.org/cgi-bin/cvsweb.cgi/src/testsuite/buildok/printf.stp.diff?cvsroot=systemtap&r1=NONE&r2=1.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]