diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-04-11 09:13:11 +0000 |
---|---|---|
committer | <> | 2014-04-23 12:05:38 +0000 |
commit | 6af3fdec2262dd94954acc5e426ef71cbd4521d3 (patch) | |
tree | 9be02de9a80f7935892a2d03741adee44723e65d /libstdc++-v3/scripts | |
parent | 19be2b4342ac32e9edc78ce6fed8f61b63ae98d1 (diff) | |
download | gcc-tarball-6af3fdec2262dd94954acc5e426ef71cbd4521d3.tar.gz |
Imported from /home/lorry/working-area/delta_gcc-tarball/gcc-4.7.3.tar.bz2.gcc-4.7.3
Diffstat (limited to 'libstdc++-v3/scripts')
-rwxr-xr-x | libstdc++-v3/scripts/create_testsuite_files | 2 | ||||
-rwxr-xr-x | libstdc++-v3/scripts/extract_symvers.in | 3 | ||||
-rw-r--r-- | libstdc++-v3/scripts/extract_symvers.pl | 5 | ||||
-rwxr-xr-x | libstdc++-v3/scripts/make_graph.py | 444 | ||||
-rwxr-xr-x | libstdc++-v3/scripts/make_graphs.py | 160 | ||||
-rw-r--r-- | libstdc++-v3/scripts/run_doxygen | 27 |
6 files changed, 109 insertions, 532 deletions
diff --git a/libstdc++-v3/scripts/create_testsuite_files b/libstdc++-v3/scripts/create_testsuite_files index f4a0bcd80e..a427eef2db 100755 --- a/libstdc++-v3/scripts/create_testsuite_files +++ b/libstdc++-v3/scripts/create_testsuite_files @@ -32,7 +32,7 @@ cd $srcdir # This is the ugly version of "everything but the current directory". It's # what has to happen when find(1) doesn't support -mindepth, or -xtype. dlist=`echo [0-9][0-9]*` -dlist="$dlist abi backward ext performance tr1 decimal" +dlist="$dlist abi backward ext performance tr1 tr2 decimal" find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01 find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02 cat $tmp.01 $tmp.02 | sort > $tmp.1 diff --git a/libstdc++-v3/scripts/extract_symvers.in b/libstdc++-v3/scripts/extract_symvers.in index a2ff3c40a4..99dd11152a 100755 --- a/libstdc++-v3/scripts/extract_symvers.in +++ b/libstdc++-v3/scripts/extract_symvers.in @@ -52,6 +52,9 @@ SunOS) ${readelf} ${lib} |\ sed -e 's/ \[<other>: [A-Fa-f0-9]*\] //' -e '/\.dynsym/,/^$/p;d' |\ egrep -v ' (LOCAL|UND) ' |\ + sed -e 's/ <processor specific>: / <processor_specific>:_/g' |\ + sed -e 's/ <OS specific>: / <OS_specific>:_/g' |\ + sed -e 's/ <unknown>: / <unknown>:_/g' |\ awk '{ if ($4 == "FUNC" || $4 == "NOTYPE") printf "%s:%s\n", $4, $8; else if ($4 == "OBJECT" || $4 == "TLS") diff --git a/libstdc++-v3/scripts/extract_symvers.pl b/libstdc++-v3/scripts/extract_symvers.pl index 2bac1cd564..5585abffb2 100644 --- a/libstdc++-v3/scripts/extract_symvers.pl +++ b/libstdc++-v3/scripts/extract_symvers.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2010 Free Software Foundation, Inc. +# Copyright (C) 2010, 2011 Free Software Foundation, Inc. # # This file is part of the GNU ISO C++ Library. This library is free # software; you can redistribute it and/or modify it under the @@ -108,6 +108,7 @@ while (<ELFDUMP>) { die "unhandled symbol:\n$_" if ($bind !~ /^(GLOB|WEAK)/ or $oth !~ /[DP]/); # Adapt to readelf type naming convention. + $type = "NOTYPE" if ($type eq "NOTY"); $type = "OBJECT" if ($type eq "OBJT"); # Use correct symbol type. @@ -116,7 +117,7 @@ while (<ELFDUMP>) { close ELFDUMP or die "elfdump error"; foreach $symbol (keys %type) { - if ($type{$symbol} eq "FUNC") { + if ($type{$symbol} eq "FUNC" || $type{$symbol} eq "NOTYPE") { push @lines, "$type{$symbol}:$symbol\@\@$version{$symbol}\n"; } elsif ($type{$symbol} eq "OBJECT" and $size{$symbol} == 0) { push @lines, "$type{$symbol}:$size{$symbol}:$version{$symbol}\n"; diff --git a/libstdc++-v3/scripts/make_graph.py b/libstdc++-v3/scripts/make_graph.py index 61e18be476..8daba6ecc6 100755 --- a/libstdc++-v3/scripts/make_graph.py +++ b/libstdc++-v3/scripts/make_graph.py @@ -3,9 +3,6 @@ import string import sys import re -import os -import platform -import commands from Numeric import * from pychart import * from xml.dom import minidom @@ -14,22 +11,6 @@ class exception: pass -def comp_platform_info(compiler): - ret = '<ul>\n' - so = commands.getstatusoutput('cat /proc/cpuinfo | grep \'cpu MHz\'') - if so[0] == 0: - ret += '<li>CPU speed - %s</li>\n' % so[1] - so = commands.getstatusoutput('cat /proc/meminfo | grep \'MemTotal\'') - if so[0] == 0: - ret += '<li>Memory - %s</li>\n' % so[1] - ret += '<li>Platform - %s</li>\n' % platform.platform() - so = commands.getstatusoutput(compiler + ' --version') - if so[0] == 0: - ret += '<li>Compiler - %s</li>\n' % so[1] - ret += '</ul>\n' - return ret - - class res: """ A 'structure' representing the results of a test. @@ -85,7 +66,7 @@ class res_getter: label = string.strip(label) return label - def __parse_res_sets(self, f_name, cntnr_list): + def __parse_result_sets(self, f_name, cntnr_list): tst_dat = minidom.parse(f_name) x_label = self.__get_label(tst_dat, 'x_name') y_label = self.__get_label(tst_dat, 'y_name') @@ -112,7 +93,7 @@ class res_getter: def get(self, res_dir, test_name): cntnr_list = self.__test_to_container_res_sets[test_name] f_name = res_dir + '/' + self.__test_to_f_names[test_name] - parsed = self.__parse_res_sets(f_name, cntnr_list) + parsed = self.__parse_result_sets(f_name, cntnr_list) x_label = parsed[0] y_label = parsed[1] cntnr_descs = parsed[2] @@ -121,18 +102,18 @@ class res_getter: return res(x_label, y_label, cntnr_list, cntnr_descs, res_sets) -class png_maker: +class image_maker: """ - This class creates a png file from a result set. + This class creates a svg file from a result set. """ class __style_chooser: def __init__(self): self.native_re = re.compile(r'n_(?:.*?)') - self.native_tick_mark_0 = tick_mark.Circle(size = 4) - self.native_tick_mark_1 = tick_mark.Square(size = 4) - self.native_line_style_0 = line_style.T(color = color.black, width=2) - self.native_line_style_1 = line_style.T(color = color.black, width=2) + self.native_tick_mark_0 = tick_mark.blackdtri + self.native_tick_mark_1 = tick_mark.blackdia + self.native_line_style_0 = line_style.gray50_dash1 + self.native_line_style_1 = line_style.gray50_dash2 self.mask_re = re.compile(r'mask(?:.*?)') self.mod_re = re.compile(r'mod(?:.*?)') @@ -186,8 +167,8 @@ class png_maker: sys.stderr.write(cntnr + '\n') raise exception - # mask / mod - if cntnr.find('lc_1div8_1div') <> -1: + # mask / mod + if cntnr.find('lc_1div8_1div') <> -1: if cntnr.find('mask') <> -1: # mask if self.lc_1div8_1div2_re.search(cntnr): @@ -198,24 +179,24 @@ class png_maker: if self.lc_1div8_1div1_re.search(cntnr): if cntnr.find('nsth') <> -1: tm = tick_mark.dia - else: + else: tm = tick_mark.circle3 - else: - # mod + else: + # mod if self.lc_1div8_1div2_re.search(cntnr): if cntnr.find('nsth') <> -1: tm = tick_mark.tri else: - tm = tick_mark.square + tm = tick_mark.square if self.lc_1div8_1div1_re.search(cntnr): if cntnr.find('nsth') <> -1: - tm = tick_mark.dtri - else: - tm = tick_mark.star + tm = tick_mark.dtri + else: + tm = tick_mark.star if self.mcolc_1div2_re.search(cntnr): tm = tick_mark.circle3 - + return (tm, line_style.T(color = clr, width = 2)) @@ -227,350 +208,107 @@ class png_maker: return self.__mmap_re.sub('\nmmap_\n', cntnr) def make(self, res, of_name): - theme.output_format = 'png' - theme.output_file = of_name + print of_name + + # theme settings + theme.debug_level = 3 + theme.output_format = 'svg' theme.scale_factor = 2 -# theme.default_font_size = 5 + theme.default_line_width = 0.5 + theme.default_font_size = 8 theme.use_color = 1 theme.reinitialize() + + # canvas settings + f = file(of_name, "w") + can = canvas.init(f, "svg") + + # axes y_tick_interval = self.__get_y_tics(res) - xaxis = axis.X(format = '/a90/hL%d', + xaxis = axis.X(format = "/6/i/a-90{}%d", tic_interval = 200, - label = res.x_label) - yaxis = axis.Y(format = '%.2e', - tic_interval = y_tick_interval, - label = res.y_label) + label = res.x_label, label_offset = (0, -20)) + yaxis = axis.Y(format = "/6/i/a0{}%.2e", + tic_interval = y_tick_interval, tic_label_offset = (-25, 0), + label = res.y_label, label_offset = (-15, 0)) + + # legend legend_lines = len(res.cntnr_list) - legend_vloc = 50 + (legend_lines * 10) - ar = area.T(x_axis = xaxis, y_axis = yaxis, - legend = legend.T(loc=(0,-legend_vloc), - frame_line_style=None, - inter_row_sep=2), - size=(240,110)) + legend_vloc = 80 + (legend_lines * 10) + legend_hloc = -0 + lg = legend.T(loc=(legend_hloc,-legend_vloc), + frame_line_style = None, inter_row_sep = 2) + + # plot datasets + ar = area.T(x_axis = xaxis, y_axis = yaxis, legend = lg, size = (240,110), x_range = (0, 2200)) plot_list = [] for cntnr in res.cntnr_list: style = self.__sc.choose(cntnr) - print cntnr - pl = line_plot.T(label = self.__container_label_name(cntnr), - data = res.res_sets[cntnr], - tick_mark = style[0], - line_style = style[1]) + pl = line_plot.T(label = self.__container_label_name(cntnr), + data = res.res_sets[cntnr], + tick_mark = style[0], + line_style = style[1]) plot_list.append(pl) + for plot in plot_list: ar.add_plot(plot) - ar.draw() + # render image + ar.draw(can) + can.close() - def __get_y_tics(self, res): + + def __get_y_max_min(self, res): mx = 0 + nx = 0 for cntnr in res.cntnr_list: m = max(d[1] for d in res.res_sets[cntnr]) mx = max(m, mx) - return mx / 5 - - - -def make_tt(s): - return '<tt>' + s + '</tt>' - -def make_b(s): - return '<b>' + s + '</b>' - -def make_ttb(s): - return '<tt><b>' + s + '</b></tt>' - -def make_i(s): - return '<i>' + s + '</i>' - -def make_pb_ds_class_href(c_name): - return '<a href = "' + c_name + '.html">' + make_tt(c_name) + '</a>\n' - -def build_value_to_pb_ds_class_href(s_desc): - value = s_desc.attributes['value'].value - ret = make_pb_ds_class_href(value) - return ret - -class hash_desc_to_html_builder: - def build_specific_comb_hash_fn(self, s_desc): - comb_hash_fn_desc = s_desc.getElementsByTagName('Comb_Hash_Fn')[0] - ret = make_tt('Comb_Hash_Fn') - ret = ret + ' = ' - ret = ret + build_value_to_pb_ds_class_href(comb_hash_fn_desc) - return ret - - def __build_nom_denom(self, s_desc): - nom_denom = s_desc.attributes['nom'].value + '/' + s_desc.attributes['denom'].value - return make_i(nom_denom) - - def __build_lc_trigger_desc(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + make_i('α<sub>min</sub>') - ret = ret + ' = ' + self.__build_nom_denom(s_desc.getElementsByTagName('alpha_min')[0]) - ret = ret + ' and ' + make_i('α<sub>max</sub>') - ret = ret + ' = ' + self.__build_nom_denom(s_desc.getElementsByTagName('alpha_max')[0]) - return ret - - def build_specific_resize_policy(self, s_desc): - ret = make_tt('Resize_Policy') - ret = ret + ' = ' - resize_policy_desc = s_desc.getElementsByTagName('Resize_Policy')[0] - ret = ret + build_value_to_pb_ds_class_href(resize_policy_desc) - ret = ret + ' with ' + make_tt('Size_Policy') - ret = ret + ' = ' - size_policy_desc = resize_policy_desc.getElementsByTagName('Size_Policy')[0] - ret = ret + build_value_to_pb_ds_class_href(size_policy_desc) - ret = ret + ', and ' + make_tt('Trigger_Policy') - ret = ret + ' = ' - trigger_policy_desc = resize_policy_desc.getElementsByTagName('Trigger_Policy')[0] - if trigger_policy_desc.attributes['value'].value == 'hash_load_check_resize_trigger': - ret = ret + self.__build_lc_trigger_desc(trigger_policy_desc) - else: - raise exception - return ret - - -class cc_hash_desc_to_html_builder: - def __init__(self): - self.__hash_builder = hash_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + 'with ' + self.__hash_builder.build_specific_comb_hash_fn(s_desc) - ret = ret + ', and ' + self.__hash_builder.build_specific_resize_policy(s_desc) - return ret + n = min(d[1] for d in res.res_sets[cntnr]) + nx = min(n, nx) + return (mx, nx) + def __get_x_max_min(self, res): + mx = 0 + nx = 0 + for cntnr in res.cntnr_list: + m = max(d[0] for d in res.res_sets[cntnr]) + mx = max(m, mx) + n = min(d[0] for d in res.res_sets[cntnr]) + nx = min(n, nx) + return (mx, nx) -class gp_hash_desc_to_html_builder: - def __init__(self): - self.__hash_builder = hash_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + self.__hash_builder.build_specific_comb_hash_fn(s_desc) - ret = ret + ', ' + self.__hash_builder.build_specific_resize_policy(s_desc) - ret = ret + ', and ' + make_tt('Probe_Fn') - ret = ret + ' = ' - probe_fn = s_desc.getElementsByTagName('Probe_Fn')[0].attributes['value'].value - ret = ret + make_pb_ds_class_href(probe_fn) - return ret - - -class basic_tree_like_desc_to_html_builder: - def build_tag(self, s_desc): - ret = make_tt('Tag') - ret = ret + ' = ' - tag_desc = s_desc.getElementsByTagName('Tag')[0] - ret = ret + build_value_to_pb_ds_class_href(tag_desc) - return ret - - def build_node_update(self, s_desc): - ret = make_tt('Node_Update') - ret = ret + ' = ' - node_update_desc = s_desc.getElementsByTagName('Node_Update')[0] - ret = ret + build_value_to_pb_ds_class_href(node_update_desc) - return ret - - -class basic_tree_desc_to_html_builder: - def __init__(self): - self.__tree_like_builder = basic_tree_like_desc_to_html_builder() + def __get_y_tics(self, res): + mx = 0 + for cntnr in res.cntnr_list: + m = max(d[1] for d in res.res_sets[cntnr]) + mx = max(m, mx) + return mx / 5 - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + self.__tree_like_builder.build_tag(s_desc) - ret = ret + ', and ' + self.__tree_like_builder.build_node_update(s_desc) - return ret +def main(test_infos_f_name, res_dir, doc_dir): + xmls_dat = minidom.parse(test_infos_f_name) + for test in xmls_dat.getElementsByTagName('test'): -class basic_trie_desc_to_html_builder: - def __init__(self): - self.__tree_like_builder = basic_tree_like_desc_to_html_builder() - - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + self.__tree_like_builder.build_tag(s_desc) - ret = ret + ', and ' + self.__tree_like_builder.build_node_update(s_desc) - return ret - -class lu_desc_to_html_builder: - def build(self, s_desc): - ret = build_value_to_pb_ds_class_href(s_desc) - ret = ret + ' with ' + make_tt('Update_Policy') - ret = ret + ' = ' - update_policy_desc = s_desc.getElementsByTagName('Update_Policy')[0] - ret = ret + build_value_to_pb_ds_class_href(update_policy_desc) - return ret - - -class std_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - return make_tt(value.replace('std_', 'std::')) - - -class std_tr1_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - ret = make_tt(value.replace('std_tr1_', 'std::tr1::')) - ret = ret + ' with ' + make_tt('cache_hash_code') - ret = ret + ' = ' - cache_hash_code = s_desc.getElementsByTagName('cache_hash_code')[0].attributes['value'].value - ret = ret + make_ttb(cache_hash_code) - return ret - -class gnucxx_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - return make_tt(value.replace('__gnucxx_', '__gnucxx::')) - -class stdext_desc_to_html_builder: - def build(self, s_desc): - value = s_desc.attributes['value'].value - return make_tt(value.replace('stdext_', 'stdext::')) - -class npq_desc_to_html_builder: - def build(self, vector): - if vector: - under = make_tt('std::vector') - else: - under = make_tt('std::deque') - - return make_tt('std::priority_queue') + ' adapting ' + under - -class binary_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('binary_heap_tag') - return ret - -class thin_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('thin_heap_tag') - return ret - -class binomial_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('binomial_heap_tag') - return ret - -class rc_binomial_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('rc_binomial_heap_tag') - return ret - -class pairing_heap_desc_to_html_builder: - def build(self, s_desc): - ret = make_pb_ds_class_href('priority_queue') - ret = ret + ' with ' + make_tt('Tag') - ret = ret + ' = ' + make_pb_ds_class_href('pairing_heap_tag') - return ret - -class legend_desc_builder: - """ - Returns a string corresponding to a specific container type. - """ - def __init__(self): - self.__cc_hash_builder = cc_hash_desc_to_html_builder() - self.__gp_hash_builder = gp_hash_desc_to_html_builder() - self.__basic_tree_builder = basic_tree_desc_to_html_builder() - self.__basic_trie_builder = basic_trie_desc_to_html_builder() - self.__lu_builder = lu_desc_to_html_builder() - self.__std_builder = std_desc_to_html_builder() - self.__std_tr1_builder = std_tr1_desc_to_html_builder() - self.__gnucxx_builder = gnucxx_desc_to_html_builder() - self.__stdext_builder = stdext_desc_to_html_builder() - self.__npq_builder = npq_desc_to_html_builder() - self.__thin_heap_builder = thin_heap_desc_to_html_builder() - self.__thin_heap_builder = thin_heap_desc_to_html_builder() - self.__binary_heap_builder = binary_heap_desc_to_html_builder() - self.__binomial_heap_builder = binomial_heap_desc_to_html_builder() - self.__rc_binomial_heap_builder = rc_binomial_heap_desc_to_html_builder() - self.__pairing_heap_builder = pairing_heap_desc_to_html_builder() - - def __build_specific(self, s_desc): - type = s_desc.attributes['value'].value - - if type == 'thin_heap': - return self.__thin_heap_builder.build(s_desc) - if type == 'binary_heap': - return self.__binary_heap_builder.build(s_desc) - if type == 'binomial_heap': - return self.__binomial_heap_builder.build(s_desc) - if type == 'rc_binomial_heap': - return self.__rc_binomial_heap_builder.build(s_desc) - if type == 'pairing_heap': - return self.__pairing_heap_builder.build(s_desc) - if type == 'cc_hash_table': - ret = self.__cc_hash_builder.build(s_desc) - elif type == 'gp_hash_table': - ret = self.__gp_hash_builder.build(s_desc) - elif type == 'tree': - ret = self.__basic_tree_builder.build(s_desc) - elif type == 'trie': - ret = self.__basic_trie_builder.build(s_desc) - elif type == 'list_update': - ret = self.__lu_builder.build(s_desc) - elif type == 'std::priority_queue_vector': - return self.__npq_builder.build(True) - elif type == 'std::priority_queue_deque': - return self.__npq_builder.build(False) - elif type == 'std_set' or type == 'std_map' or type == 'std_multimap': - return self.__std_builder.build(s_desc) - elif type == 'std_tr1_unordered_set' or type == 'std_tr1_unordered_map': - return self.__std_tr1_builder.build(s_desc) - elif type == 'stdext_hash_set' or type == 'stdext_hash_map' or type == 'stdext_hash_multimap': - return self.__stdext_builder.build(s_desc) - elif type == '__gnucxx_hash_set' or type == '__gnucxx_hash_map' or type == '__gnucxx_hash_multimap': - return self.__gnucxx_builder.build(s_desc) - else: - sys.stderr.write('cannot recognize %s\n' % type) - raise exception - return ret - - - def build(self, desc): - s_descs = desc.getElementsByTagName('type') - if s_descs.length == 0: - print desc.toxml() - raise exception - ret = '' - count = 0 - for s_desc in s_descs: - if count > 0: - ret = ret + ', mapping each key to ' - ret = ret + self.__build_specific(s_desc) - count = count + 1 - return ret - - -def main(doc_dir, res_dir, test_infos_f_name, test_name, build_name): - res_gtr = res_getter(test_infos_f_name) - res = res_gtr.get(res_dir, test_name) - png_mkr = png_maker() - png_of_name = doc_dir + '/' + test_name + '_' + build_name + '.png' - print png_of_name - png_mkr.make(res, png_of_name) + # parse results + test_name = test.attributes['name'].value + res_gtr = res_getter(test_infos_f_name) + res = res_gtr.get(res_dir, test_name) + # generate image + image_mkr = image_maker() + svg_of_name = doc_dir + '/pbds_' + test_name + '.svg' + image_mkr.make(res, svg_of_name) if __name__ == "__main__": """ - This module takes 6 parameters from the command line: - Docs directory - Results directory + This module takes 3 parameters from the command line: Tests info XML file name - Test name - Build name - Compiler name + Test results directory + Image output directory """ - usg = "make_graph.py <doc_dir> <res_dir> <test_info_file> <test_name> <build_name>\n" - if len(sys.argv) != 6: + usg = "make_graph.py <test_info_file> <res_dir> <image_dir>\n" + if len(sys.argv) != 4: sys.stderr.write(usg) raise exception - main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5]) + main(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/libstdc++-v3/scripts/make_graphs.py b/libstdc++-v3/scripts/make_graphs.py deleted file mode 100755 index e230e7a998..0000000000 --- a/libstdc++-v3/scripts/make_graphs.py +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/python - -import sys -import commands -import re -from xml.dom import minidom -from BeautifulSoup import BeautifulSoup -import make_graph - -class exception: - pass - -res_div_re = re.compile('(.*?)_res_div') -settings_div_re = re.compile('(.*?)_settings_div') - - -gray_border_div_str = '<div style = "border-style: dotted; border-width: 1px; border-color: lightgray">' -space_div_str = '<div style = "width: 100%; height: 20px">' - - - -def logical_build_from_build(build): - if build == 'gcc': - return 'g++' - if build == 'msvc': - return 'msvc++' - if build == 'local': - return 'local' - sys.stderr.write(build) - raise exception - - -def img_title_from_origs(label, title, base_build_ref, build_name, logical_build_name): - title = title.replace('_tt_', '<tt>') - title = title.replace('_455tt_', '</tt>') - title = title.replace('_b_', '<b>') - title = title.replace('_455b_', '</b>') - title = title.replace('_456', ',') - title = title.replace('_457', '[]') - title = title.replace('_', ' ') - return '%s: %s - <a href = "%s_performance_tests.html#%s">%s</a>' % ( - label, - title, - base_build_ref, - build_name, - logical_build_name) - - -def make_png(src_dir, doc_dir, res_dir, tests_info_xml_f_name, build_name, test_name): - cmd_str = '%s/scripts/make_graph.py %s %s %s %s %s' % ( - src_dir, doc_dir, - res_dir, - tests_info_xml_f_name, - test_name, - build_name) - # Must start a new process for pychart - otherwise pngs overlap. - so = commands.getstatusoutput(cmd_str) - if(so[0] != 0): - sys.stderr.write(cmd_str + '\n') - sys.stderr.write(so[1] + '\n') - sys.exit(-1) - - -def make_png_str(label, test_name, build): - ret = '<h6 class="c1">' - ret += '<a name="%s" id= "%s">' % (label, label) - ret += '<img src="%s" ' % (test_name + '_' + build + '.png') - ret += 'alt="no image" />' - ret += '</a></h6>' - return ret - -def process_html(html_f_name, src_dir, build_dir, htmls_xml_f_name, tests_info_xml_f_name, build_name, compiler_name): - doc_dir = src_dir + "/doc/html/ext/pb_ds" - res_dir = build_dir - html_f = open(doc_dir + '/' + html_f_name) - soup = BeautifulSoup(html_f.read()) - html_f.close() - platform_comp_re = re.compile('platform_comp_%s' % build_name) - for d in soup('div'): - try: - settings_m = settings_div_re.match(d['id']) - res_m = res_div_re.match(d['id']) - except: - settings_m = None - res_m = None - - if settings_m: - build = settings_m.groups()[0] - if build == build_name: - logical_build_name = logical_build_from_build(build) - info = gray_border_div_str - info += '<h3><a name = "%s"><u>%s</u></a></h3>' % (build, logical_build_name) - info += make_graph.comp_platform_info(compiler_name) - info += '</div>%s</div>' % space_div_str - d.contents = info - elif res_m: - label = res_m.groups()[0] - d = d.divTag - - build = d['id'].replace('%s_' % label, '') - - if build == build_name: - logical_build_name = logical_build_from_build(build) - d = d.divTag - test_name = d['id'].replace('%s_' % label, '') - d = d.divTag - base_build_ref = d['id'].replace('%s_' % label, '') - d = d.divTag - title = d['id'].replace('%s_' % label, '') - img_title = img_title_from_origs(label, title, base_build_ref, build, logical_build_name) - - make_png(src_dir, doc_dir, res_dir, tests_info_xml_f_name, build_name, test_name) - png_str = make_png_str(label, test_name, build) - content = gray_border_div_str - content += png_str - content += img_title -# content += make_graph.legend(doc_dir, res_dir, tests_info_xml_f_name, test_name, build_name) - content += '</div>%s</div>' % space_div_str - d.contents = content - - return soup - - - -if __name__ == "__main__": - """ - Doc dir - This module takes 6 parameters from the command line: - Source directory - Build directory - HTMLs XML file name - Tests info XML file name - Build name - Compiler name - """ - - usg = "make_graph.py <src_dir> <build_dir> <htmls_xml_f_name> <tests_info_xml_f_name> <build_name> <compiler_name>\n" - - if len(sys.argv) != 7: - sys.stderr.write(usg) - raise exception - - src_dir = sys.argv[1] - build_dir = sys.argv[2] - htmls_xml_f_name = sys.argv[3] - tests_info_xml_f_name = sys.argv[4] - build_name = sys.argv[5] - compiler_name = sys.argv[6] - doc_dir = src_dir + "/doc/html/ext/pb_ds" - htmls_dat = minidom.parse(htmls_xml_f_name) - for html in htmls_dat.getElementsByTagName('html'): - html_f_name = html.attributes['name'].value - - new_soup = process_html(html_f_name, src_dir, build_dir, htmls_xml_f_name, tests_info_xml_f_name, build_name, compiler_name) - - html_f = open(doc_dir + '/' + html_f_name, 'w') - html_f.write(str(new_soup)) - html_f.close() - - diff --git a/libstdc++-v3/scripts/run_doxygen b/libstdc++-v3/scripts/run_doxygen index e227ce17b9..45b3f4a066 100644 --- a/libstdc++-v3/scripts/run_doxygen +++ b/libstdc++-v3/scripts/run_doxygen @@ -261,14 +261,14 @@ for f in $problematic; do # this is also slow, but safe and easy to debug oldh=`sed -n '/fC#include </s/.*<\(.*\)>.*/\1/p' $f` newh=`echo $oldh | ./stdheader` - sed "s=${oldh}=${newh}=" $f > TEMP + sed 's=${oldh}=${newh}=' $f > TEMP mv TEMP $f done rm stdheader # Some of the pages for generated modules have text that confuses certain -# implementations of man(1), e.g., Linux's. We need to have another top-level -# *roff tag to /stop/ the .SH NAME entry. +# implementations of man(1), e.g. on GNU/Linux. We need to have another +# top-level *roff tag to /stop/ the .SH NAME entry. problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3` #problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3' @@ -313,6 +313,10 @@ for f in *__detail_*; do newname=`echo $f | sed 's/__detail_/__detail::/'` mv $f $newname done +for f in *__gnu_pbds_detail_*; do + newname=`echo $f | sed 's/detail_/detail::/'` + mv $f $newname +done for f in *__parallel_*; do newname=`echo $f | sed 's/__parallel_/__parallel::/'` mv $f $newname @@ -321,20 +325,16 @@ for f in *__profile_*; do newname=`echo $f | sed 's/__profile_/__profile::/'` mv $f $newname done -for f in *__atomic0_*; do - newname=`echo $f | sed 's/__atomic0_/__atomic0::/'` - mv $f $newname -done -for f in *__atomic2_*; do - newname=`echo $f | sed 's/__atomic2_/__atomic2::/'` - mv $f $newname -done # Then, clean up other top-level namespaces. for f in std_tr1_*; do newname=`echo $f | sed 's/^std_tr1_/std::tr1::/'` mv $f $newname done +for f in std_tr2_*; do + newname=`echo $f | sed 's/^std_tr2_/std::tr2::/'` + mv $f $newname +done for f in std_*; do newname=`echo $f | sed 's/^std_/std::/'` mv $f $newname @@ -365,11 +365,6 @@ for f in __cxxabiv1_*; do done # Then piecemeal nested classes -for f in *__future_base_*; do - newname=`echo $f | sed 's/__future_base_/__future_base::/'` - mv $f $newname -done - # Generic removal bits, where there are things in the generated man |