summaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: 916f6ba2f4a2e48b60357d4e9f47ff3834a0d959 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
2005-07-26  Frank Ch. Eigler  <fche@redhat.com>

	Support %{ embedded-c %}
	* staptree.h (embeddedcode): New statement subtype.  Stub support in
	visitors.
	* staptree.cxx: Ditto.
	* parse.cxx: Parse %{ / %}.  Accept "_" as identifier leading char.
	(parse_probe): Simplify calling convention.
	* elaborate.h: Store embedded code.
	* elaborate.cxx: Pass it.
	* translate.cxx: Transcribe it.  Return some dropped module init/exit
	code.
	* Makefile.am: Add buildok/buildko tests.
	* Makefile.in: Regenerated.
	* main.cxx: Return EXIT_SUCCESS/FAILURE even for weird rc.
	* testsuite/parseok/nine.stp: Test _identifiers.
	* testsuite/transko/*.stp: Tweak to force -p3 rather than -p2 errors.
	* testsuite/semok/transko.stp: ... and keep it that way in the future.
	* testsuite/parse*/*: Some new tests for %{ %}.
	* testsuite/build*/*: New tests for -p4.

2005-07-26  Martin Hunt  <hunt@redhat.com>

	* Makefile.am (AM_CPPFLAGS): Set PKGLIBDIR correctly.

2005-07-26  Martin Hunt  <hunt@redhat.com>	
	* systemtap.spec.in: Stpd goes in libexec/systemtap.
	* Makefile.am (libexecdir): Set to libexecdir/systemtap.
	* aclocal.m4, Makefile.in: Regenerated	

2005-07-25  Roland McGrath  <roland@redhat.com>

	* configure.ac: Don't define PKGLIBDIR and PKGDATADIR here.
	* Makefile.am (AM_CPPFLAGS): New variable, use -D here instead.
	(dist-hook): Don't remove ChangeLog files.
	(install-data-local): Don't install docs, just runtime stuff.
	(rpm, clean-local): Use make variables instead of @substitution@s.
	* configure, config.in, aclocal.m4, Makefile.in: Regenerated

2005-07-22  Graydon Hoare  <graydon@redhat.com>

	* translate.cxx (itervar): New class.
	(*::visit_foreach_loop): Implement.
	Various bug fixes.
	* staptree.cxx (deep_copy_visitor::*): Copy tok fields.
	* elaborate.cxx (lvalue_aware_traversing_visitor):
	(mutated_map_collector):
	(no_map_mutation_during_iteration_check): New classes.
	(semantic_pass_maps): New function to check map usage.
	(semantic_pass): Call it.
	* testsuite/transok/eight.stp: Test 'foreach' loop translation.
	* testsuite/semko/{thirteen,fourteen,fifteen}.stp:
	Test prohibited forms of foreach loops.

2005-07-21  Martin Hunt  <hunt@redhat.com>

	* Makefile.am (EXTRA_DIST): Add systemtap.spec.
	(install-data-local): Install docs and probes.
	(docs): New target.
	(rpm): New target.

	* configure.ac: Set initial version to 0.1.1.
	(pkglibdir): Set to libexec.

	* Makefile.in: Regenerated.

2005-07-20  Graydon Hoare  <graydon@redhat.com>

	* elaborate.{cxx,h} (find_array): Remove.
	(find_scalar): Rename to find_var, add array support.
	* staptree.{cxx,h} (vardecl::compatible_arity): New method.
	* translate.cxx: Refactor, add array read/write support.
	* testsuite/transok/three.stp: Uncomment array uses.
	* testsuite/transok/seven.stp: New test of array r/w.

2005-07-20  Frank Ch. Eigler  <fche@redhat.com>

	* tapsets.cxx (*::emit_[de]registrations): Add logic for probe
	lifecycle control (session_state).
	* translate.cxx (emit_common_header,emit_module_{init,exit}): Ditto.
	(visit_*): Use per-context errorcount.

2005-07-19  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (dist-hook): Complete the resulting tarball.
	* Makefile.in: Regenerated.

2005-07-19  Frank Ch. Eigler  <fche@redhat.com>

	* translate.cxx (emit_module_init/exit, translate_pass): Conform
	to newer runtime startup/shutdown hooks.

2005-07-15  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (install-data-local): Correct typo.
	* buildrun.cxx (compile_pass): Ditto.
	* main.cxx (main): Print errors if passes 4 or 5 fail.

2005-07-14  Frank Ch. Eigler  <fche@redhat.com>

	* buildrun.cxx (compile_pass, run_pass): Get closer to a working
	test_mode.
	* translate.cxx (emit_module_init, emit_common_header): Ditto.
	(translate_pass): Ditto.

2005-07-14  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (stpd): Install in $pkglibdir.
	(runtime): Copy to $pkgdatadir.
	* configure.ac: Pass along pkgdatadir and pkglibdir.
	* main.cxx: Default runtime_path from pkgdatadir.
	* buildrun.cxx (run_pass): Correct stpd directory.
	* Makefile.in, configure, config.in: Regenerated.

2005-07-12  Graydon Hoare  <graydon@redhat.com>

	* elaborate.cxx
	(semantic_pass_symbols): Only enter body if non-null.
	(semantic_pass_types): Likewise.
	(semantic_pass): Pass session to register_standard_tapsets.
	* translate.cxx
	(builtin_collector): New struct.
	(hookup_builtins): New function.
	(translate_pass): Only translate functions with bodies.
	(c_unparser::emit_common_header): Likewise, and call hookup_builtins.
	* tapsets.hh (builtin_function): New class.
	(register_standard_tapsets): Change parameter to session.
	* tapsets.cc (bultin_function::*): Implement class.
	(register_standard_tapsets): Register printk, log, warn.
	* testsuite/transok/six.stp: New test.

2005-07-12  Frank Ch. Eigler  <fche@redhat.com>

	* buildrun.cxx (compile_pass): Make non-verbose mode quieter.
	(run_pass): Spawn stpd for dirty work.
	* Makefile.am: Also build stpd into libexecdir.
	* configure.ac: Pass LIBEXECDIR.
	* Makefile.in, configure, config.in: Regenerated.
	* AUTHORS: Update.

2005-07-11  Graydon Hoare  <graydon@redhat.com>

	* staptree.cxx (require): Generally handle null pointers in src.
	(deep_copy_visitor::visit_if_statement): Revert fche's change.

2005-07-11  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx (parse_literal): Compile cleanly on 64-bit host.
	* staptree.cxx (deep_copy_visitor::visit_if_statement): Don't
	freak on a null if_statement.elseblock.

2005-07-07  Graydon Hoare  <graydon@redhat.com>

	* staptree.{h,cxx} (deep_copy_visitor): New visitor.
	* elaborate.cxx
	(derived_probe::derived_probe):
	(alias_expansion_builder::build): Use it.
	* testsuite/semok/fifteen.stp: New test which relies on deep copy.

2005-07-07  Frank Ch. Eigler  <fche@redhat.com>

	* Makefile.am (dist): Package up the source tree, including
	testsuite and runtime.
	* main.cxx: Use clog instead of cerr for logging messages.
	* buildrun.cxx: Ditto.
	(compile_pass): Add -Iruntime/user for test mode.
	* translate.cxx (*): Commonalize test/real mode output.
	* Makefile.in: Regenerated.

2005-07-05  Graydon Hoare  <graydon@redhat.com>

	* elaborate.{h,cxx}: Revert previous changes.
	* tapsets.{h,cxx}: Adapt to verbose as a member of session.
	* elaborate.cxx (alias_expansion_builder::build): Avoid copying
	locals between alias definition and use.
	* testsuite/semok/{twelve,thirteen,fourteen}.stp: New tests.
	* staptree.cxx (probe_alias::printsig): Print equals sign.

2005-07-05  Frank Ch. Eigler  <fche@redhat.com>

	* elaborate.h (systemtap_session): Add more command-line arguments.
	* staptree.h (verbose): Bad global, no donut.
	* elaborate.cxx: Temporarily disable verbose variable access.
	* main.cxx: Support more arguments, build/run passes.  Revamp
	temporary file generation and partial-pass output generation.
	* tapsets.cxx, translate.cxx: Emit just enough extra punctuation
	and fluff to make generated probe pass -Werror.
	* buildrun.cxx, buildrun.h: New files for passes 4/5.  Partial
	support for build pass, nothing on probe execution yet.
	* testsuite/transok/*.stp: Force just -p3, now that -p4/5 exist.
	* Makefile.am, Makefile.in: Corresponding changes.

2005-07-04  Graydon Hoare  <graydon@redhat.com>

	* elaborate.h (symresolution_info::current_derived_probe): New field.
	(symresolution_info::current_probe): Change type.
	* elaborate.cxx (semantic_pass_symbols): Add passes for resolving
	locals in pre-derivation base probes and pre-expansion aliases.
	(symresolution_info::visit_symbol):
	(symresolution_info::find_scalar): Update to match new field.

2005-06-27  Graydon Hoare  <graydon@redhat.com>

	* staptree.{h,cxx} (probe_alias): New structure.
	* parse.{h,cxx} (parser::parse): Parse probes or probe aliases.
	(parser::parse_probe): Likewise.
	* tapsets.{h,cxx}:
	(derived_probe_builder):
	(match_key):
	(match_node):
	(alias_derived_probe): Move from here,
	* elaborate.{h,cxx}: to here.
	* elaborate.h (systemtap_session::pattern_root): New member.
	(register_library_aliases): New function.
	* tapsets.cxx: Build one dwarf_derived_probe per target address.

2005-06-23  Graydon Hoare  <graydon@redhat.com>

	* tapsets.cxx
	(probe_type): New enum.
	(probe_spec): New struct.
	(dwarf_derived_probe): Reorganize a bit, interpret .return.
	(query_statement): Translate addresses back to module space.
	(probe_entry_function_name):
	(probe_entry_struct_kprobe_name):
	(foreach_dwarf_probe_entry):
	(declare_dwarf_kernel_entry):
	(deregister_dwarf_kernel_entry):
	(register_dwarf_kernel_entry):
	(register_dwarf_module):
	(declare_dwarf_module_entry):
	(deregister_dwarf_module_entry):
	(register_dwarf_module_entry): New functions.
	(dwarf_derived_probes::emit_probe_entries):
	(dwarf_derived_probes::emit_registrations):
	(dwarf_derived_probes::emit_deregistrations): Implement.

2005-06-21  Frank Ch. Eigler  <fche@redhat.com>

	* config.in, configure: Regenerated.
	* tapsets.cxx: Make dwarf code conditional on new elfutils header.

2005-06-20  Graydon Hoare  <graydon@redhat.com>

	* configure.ac: Scan for libdwfl.
	* staptree.h (verbose): New global.
	* main.cxx (usage, main): Implement -v option.
	* tapsets.cxx (dwflpp): New struct.
	(query_statement): New function.
	(query_function): New function.
	(query_cu): New function.
	(query_module): New function.
	(dwarf_derived_probe): Implement primary forms.

2005-06-14  Graydon Hoare  <graydon@redhat.com>

	* tapsets.h: New file.
	(derived_probe_builder): Callback for making derived probes.
	(match_key): Component of pattern-matching tree.
	(match_node): Other component of pattern-matching tree.
	* tapsets.cxx: Add pattern-matching system for probes.
	(alias_derived_probe): Skeleton for alias probes.
	(dwarf_derived_probe): Skeleton for dwarf probes.
	(register_standard_tapsets): Registry for standard tapsets.

2005-06-13  Frank Ch. Eigler  <fche@redhat.com>

	Start separating out translator-side probe point recognition.
	* tapsets.cxx: New file.
	(be_derived_probe): Support for begin/end probes.
	(derive_probe): Ditto.  Reject anything unrecognized.
	* translator.cxx: Move out old code.
	* Makefile.am: Add new source file.
	* testsuite/semok/*: Switch to begin/end probes only.

2005-06-08  Frank Ch. Eigler  <fche@redhat.com>

	systemtap/916
	Implement all basic scalar operators, including modify-assignment.
	* parse.cxx (lexer): Allow multi-character lookahead in order to
	scan 1/2/3-character operators.
	(parse_boolean_or/and/xor/shift): New routines.
	* translate.cxx (visit_assignment, visit_binary_expression,
	visit_*_crement): Generally rewrote.
	(visit_*): Added more parentheses in output.
	(emit_module_init): Initialize globals.
	* staptree.h, elaborate.cxx, elaborate.h: Remove exponentiation.
	* main.cxx (main): Add an end-of-line to output file.
	* testsuite/*: Several new tests.

2005-06-05  Frank Ch. Eigler  <fche@elastic.org>

	Implement for/next/continue/break/while statements.
	* staptree.h: Declare new 0-arity statement types.  Tweak for_loop.
	* parse.cxx: Parse them all.
	* translate.cxx (c_unparser): Maintain break/continue label stack.
	(visit_for_loop, *_statement): New implementations.
	* elaborate.*, staptree.cxx: Mechanical changes.
	* testsuite/parseok/ten.stp, semko/twelve.stp, transko/two.stp,
	transok/five.stp: New tests.

2005-06-03  Frank Ch. Eigler  <fche@elastic.org>

	* elaborate.cxx (find_*): Remove arity checks from here ...
	* staptree.cxx (set_arity): Put arity match assertion here.
	* testsuite/semko/{six,nine}.stp: Confirm logic.
	* testsuite/transko/one.stp: First translation-time ko test.

2005-06-03  Frank Ch. Eigler  <fche@redhat.com>

	* TODO: Removed entries already represented in bugzilla.
	* elaborate.cxx: Rewrite type inference for several operators.
	* main.cxx (main): For -p2 runs, print types of function/probe locals.
	* parse.cxx (scan): Identify more two-character operators.
	(parse_comparison): Support the whole suite.
	* translate.cxx (visit_unary_expression, logical_or_expr,
	logical_and_expr, comparison,ternary_expression): New support.
	* testsuite/parseok/semok.stp: Clever new test.
	* testsuite/transok/four.stp: New test.
	* testsuite/*: Some tweaked tests for syntax changes.

2005-06-03  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx (scan): Support C and C++ comment styles.
	* testsuite/parseok/four.stp: Test them some ...
	* testsuite/parseko/nine.stp: ... and some more.

2005-06-02  Frank Ch. Eigler  <fche@redhat.com>

	* translate.cxx (visit_concatenation, visit_binary_expression):
	New basic implementation.
	(*): Reduce emitted whitespace and remove `# LINE "FILE"' lines.

2005-06-02  Frank Ch. Eigler  <fche@redhat.com>

	Parse foreach construct.  Added fuller copyright notices throughout.
	* staptree.h (foreach_loop): New tree node type.
	* staptree.cxx: Print it, visit it, love it, leave it.
	* parse.cxx: Parse it.
	(parse_stmt_block): Don't require ";" separators between statements.
	(parse_array_in): Use [] as index group operator instead of ().
	* elaborate.cxx (visit_foreach_loop): New code.
	* translate.cxx: Slightly tighten errorcount/actioncount handling.
	* main.cxx: Accept "-" as script file name standing for stdin.
	(visit_arrayindex): Switch to simpler set_arity call.
	* configure.ac: Generate DATE macro.
	* Makefile.in, configure, config.in: Regenerated.
	* testsuite/*: New/updated tests for syntax changes, foreach ().

2005-05-30  Frank Ch. Eigler  <fche@redhat.com>

	More fully parse & elaborate "expr in array" construct.
	* staptree.h (array_in): Make this unary.  Update .cxx to match.
	* parse.cxx (parse_array_in): Rewrite.
	(parse_symbol_plain): Removed.  Update .h to match.
	* elaborate.cxx (typeresolution_info::visit_array_in): New function.
	(find_array): Tentatively, accept arity=0.
	* translate.cxx (c_unparser::c_assign): New functions to eliminate
	much ugly duplication.  Use throughout.
	(visit_symbol): Correct function formal argument search.
	(c_tmpcounter*::visit): Add missing recursion in several functions.
	* testsuite/*: Add new tests for array-in construct.  Add the
	first "transok" test.
	* Makefile.am: Add transok tests.
	* Makefile.in: Regenerated.

2005-05-26  Frank Ch. Eigler  <fche@redhat.com>

	* translate.cxx: Traverse trees just for common-header generation,
	to emit explicit temp variables into context.  Switch to explicit
	"frame" pointer in generated function/probe bodies.  Initialize
	locals in function bodies.  Rename "test_unparser" to "c_unparser"
	throughout.

2005-05-24  Frank Ch. Eigler  <fche@redhat.com>

	* elaborate.cxx (find_array): Support automagic tapset globals.
	* testsuite/semok/nine.stp: Test it.
	* staptree.cxx (stapfile print): List globals.

2005-05-24  Frank Ch. Eigler  <fche@redhat.com>

	* testsuite/semlib/*: New tapset library chunks for "-I" testing.
	* testsuite/semok/eight.stp, nine.stp: New tests.

2005-05-22  Frank Ch. Eigler  <fche@elastic.org>

	* Makefile.am (gcov): New target to generate test-coverage data from
	a testsuite run.
	* Makefile.in: Regenerated.

2005-05-20  Frank Ch. Eigler  <fche@redhat.com>

	Many changes throughout.  Partial sketch of translation output.
	* elaborate.*: Elaboration pass.
	* translate.*: Translation pass.
	* staptree.*: Simplified for visitor concept.
	* main.cxx: Translator mainline.
	* *test.cxx: Removed.
	* testsuite/*: Some new tests, some changed for newer syntax.

2005-05-05  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx (parse): Add helper methods.
	(lexer::scan, parse_assignment): Parse "<<<" operator.  Fix assignment
	associativity.
	(parse_symbol): Permit function with empty arg list.
	(parse_global, parse_statement, parse_functiondecl): Expect
	unconsumed leading keyword.
	(parse_global): Don't use ";" termination.
	* parse.h: Corresponding changes.
	* staptree.cxx (binary_expression::resolve_types): Fix <<<
	type inference.
	(translator_output): Improve pretty-printing.
	(*): Add general visitors to statement/expression types.
	* staptree.h: Corresponding changes.  Tweak symresolution_info fields.
	Add semantic_error class.
	* semtest.cxx: Adapt to this.
	* testsuite/parseok/two.stp, semok/*.stp: Adapt to syntax changes.

2005-03-15  Frank Ch. Eigler  <fche@redhat.com>

	* semtest.cxx: Print probe signatures properly.
	* staptree.cxx (probe::printsig): New function.

2005-03-15  Frank Ch. Eigler  <fche@redhat.com>

	* TODO: New file.  Include some probe-point-provider syntax examples.
	* parse.cxx (lexer::scan, parser::parse_literal): Support hex, octal
	numbers via strtol.
	(parse_probe, parse_probe_point): Modify for dotted syntax.
	* staptree.cxx: Ditto.
	* parsetest.cxx, semtest.cxx: Print parse/sem results even if
	.stp files were given on command line.
	* parse.h, staptree.h: Rename probe_point_spec -> probe_point.
	* runtest.sh: New test-runner front-end script.
	* Makefile.am: Use it for TESTS_ENVIRONMENT.
	* testsuite/*: Update probe point syntax.  Add a bunch of new tests.

2005-03-04  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx (scan): Support '$' characters in identifiers.
	(parse_symbol): Support thread-> / process-> shorthand.
	* staptree.cxx (symresolution_info::find): Split up into
	find_scalar, find_array, find_function.
	(resolve_symbols): Call the above for symbol/arrayindex/functioncall.
	(find_scalar): Add stub support for synthetic builtin variables.
	* staptree.h: Corresponding changes.
	* testsuite/*: Some new tests.

2005-03-03  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx (parse_assignment): Assert lvalueness of left
	operand.
	* staptree.h (expression): Add is_lvalue member.
	* staptree.cxx (functioncall::resolve_types): Don't crash on
	formal-vs-actual argument count mismatch.
	(*): Add some is_lvalue stub functions.
	* testsuite/*: Some new tests.

2005-03-01  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx: Implement left-associativity for several types of
	operators.  Add some more statement types.  Parse functions.
	Be able to print tokens.  Simplify error generating functions.
	Save tokens in all parse tree nodes.
	* parse.h: Corresponding changes.
	* staptree.cxx: Move tree-printing functions here.  Add many
	new functions for symbol and type resolution.
	* staptree.h: Corresponding changes.
	* semtest.cxx: New semantic analysis pass & test driver.
	* testsuite/sem*/*: New tests.
	* parsetest.cxx: Separated parse test driver.
	* testsuite/parse*/*: Adapt tests to parsetest driver.
	* Makefile.am: Build semtest.  Run its tests.
	* Makefile.in: Regenerated.

2005-02-11  Frank Ch. Eigler  <fche@redhat.com>

	* parse.cxx, parse.h: New files: parser.
	* staptree.h: New file: semantic object declarations.
	* staptree.cxx: New dummy driver file.