1 2011-02-07 Gerald Pfeifer <gerald@pfeifer.com>
3 * doc/xml/faq.xml: Adjust link to bug database.
4 Remove old item on broken header files.
6 2011-02-04 Benjamin Kosnik <bkoz@redhat.com>
8 * include/bits/regex_error.h (__throw_regex_error): Not inline.
9 * src/functexcept.cc: Add definition.
10 * config/abi/pre/gnu.ver: Export.
12 2011-02-04 Ralf Corsépius <ralf.corsepius@rtems.org>
14 * crossconfig.m4 (GLIBCXX_CROSSCONFIG): Add *-rtems*.
15 * configure: Regenerate.
17 2011-02-01 Paolo Carlini <paolo.carlini@oracle.com>
20 * include/bits/atomic_0.h (_ATOMIC_STORE_, _ATOMIC_MODIFY_,
21 _ATOMIC_CMPEXCHNG_): Rename __v -> __w, and __m -> __n, to
24 2011-02-01 Benjamin Kosnik <bkoz@redhat.com>
27 * config/os/hpux/os_defines.h: Remove use of macros on namespace.
29 2011-02-01 Benjamin Kosnik <bkoz@redhat.com>
31 * scripts/run_doxygen: Allow doxygen 1.7.0 again.
32 * doc/doxygen/user.cfg.in (PDF_HYPERLINKS): Re-enable.
33 (COMPACT_LATEX): Enable.
35 * include/profile/impl/profiler_container_size.h: Adjust doxygen markup.
36 * include/profile/impl/profiler_hash_func.h: Same.
37 * include/bits/hashtable.h: Same.
38 * include/backward/auto_ptr.h: Same.
39 * include/backward/strstream: Same.
40 * include/backward/backward_warning.h: Same.
41 * include/backward/binders.h: Same.
43 2011-02-01 Gerald Pfeifer <gerald@pfeifer.com>
45 * doc/xml/manual/debug.xml: Use GDB instead of gdb.
46 Adjust link to GDB manual.
48 2011-01-31 Benjamin Kosnik <bkoz@redhat.com>
50 * include/bits/c++config (_GLIBCXX_DEPRECATED): To
51 _GLIBCXX_USE_DEPRECATED.
52 (_GLIBCXX_DEPRECATED_ATTR): To _GLIBCXX_DEPRECATED.
53 * doc/xml/manual/using.xml: Same.
54 * include/std/memory: Same.
55 * include/std/streambuf: Same.
56 * include/bits/shared_ptr.h: Same.
57 * include/bits/unique_ptr.h: Same.
58 * include/bits/shared_ptr_base.h: Same.
59 * include/bits/stl_function.h: Same.
60 * include/tr1/shared_ptr.h: Same.
61 * include/backward/auto_ptr.h: Same.
62 * include/backward/binders.h: Same.
64 2011-01-31 Paolo Carlini <paolo.carlini@oracle.com>
66 * doc/html/ext/lwg-active.html: Update to Revision D73.
67 * doc/html/ext/lwg-closed.html: Likewise.
68 * doc/html/ext/lwg-defects.html: Likewise.
69 * doc/xml/manual/intro.xml: Update status of issues 408, 539, 865.
71 2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
73 PR libstdc++/36104 part four
74 * include/bits/c++config (_GLIBCXX_STD): Remove.
75 (_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
76 (_GLIBCXX_P): Now _GLIBCXX_STD_A.
77 (_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
78 _GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
79 (_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
80 _GLIBCXX_INLINE_PROFILE): Remove.
81 (_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
82 (_GLIBCXX_END_NAMESPACE): Remove.
83 (_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
84 (_GLIBCXX_END_NESTED_NAMESPACE): Remove.
85 (_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
86 (_GLIBCXX_END_NAMESPACE_ALGO): Add.
87 (_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
88 (_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
89 (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
90 (_GLIBCXX_END_NAMESPACE_VERSION): Add.
91 (_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
92 (_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
93 (_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
94 * include/*: Use new macros for namespace scope.
98 * src/Makefile.am (sources): Remove debug_list.cc, add
99 compatibility-debug_list-2.cc.
100 (parallel_sources): Remove parallel_list.cc, add
101 compatibility-parallel_list-2.cc.
102 (compatibility-parallel_list-2.[o,lo]): New rule.
103 * src/Makefile.in: Regenerate.
104 * src/debug_list.cc: Remove.
105 * src/parallel_list.cc: Remove.
106 * src/compatibility-list-2.cc: New.
107 * src/compatibility-debug_list-2.cc: New.
108 * src/compatibility-parallel_list-2.cc: New.
110 * doc/doxygen/user.cfg.in: Adjust macros.
112 * testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
113 * testsuite/20_util/declval/requirements/1_neg.cc: Same.
114 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
115 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
116 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
117 * testsuite/20_util/forward/c_neg.cc: Same.
118 * testsuite/20_util/forward/f_neg.cc: Same.
119 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
120 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
121 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
122 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
123 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
124 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
125 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
126 * testsuite/23_containers/deque/requirements/dr438/
127 constructor_1_neg.cc: Same.
128 * testsuite/23_containers/deque/requirements/dr438/
129 constructor_2_neg.cc: Same.
130 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
131 * testsuite/23_containers/forward_list/capacity/1.cc: Same.
132 * testsuite/23_containers/forward_list/requirements/dr438/
134 * testsuite/23_containers/forward_list/requirements/dr438/
135 constructor_1_neg.cc: Same.
136 * testsuite/23_containers/forward_list/requirements/dr438/
137 constructor_2_neg.cc: Same.
138 * testsuite/23_containers/forward_list/requirements/dr438/
140 * testsuite/23_containers/list/capacity/29134.cc: Same.
141 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
142 * testsuite/23_containers/list/requirements/dr438/
143 constructor_1_neg.cc: Same.
144 * testsuite/23_containers/list/requirements/dr438/
145 constructor_2_neg.cc: Same.
146 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
147 * testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
148 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
149 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
150 * testsuite/23_containers/vector/requirements/dr438/
151 constructor_1_neg.cc: Same.
152 * testsuite/23_containers/vector/requirements/dr438/
153 constructor_2_neg.cc: Same.
154 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
155 * testsuite/25_algorithms/sort/35588.cc: Same.
156 * testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
157 * testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
158 * testsuite/ext/profile/mutex_extensions_neg.cc: Same.
159 * testsuite/ext/profile/profiler_algos.cc: Same.
160 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
161 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
162 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
163 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
164 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
166 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
168 * doc/xml/manual/abi.xml: Adjust link to C++ ABI specification.
169 Improve description of one such reference.
171 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
173 * doc/xml/manual/codecvt.xml: Fix link to The Austin Common
174 Standards Revision Group.
175 * doc/xml/manual/locale.xml: Ditto.
176 * doc/xml/manual/messages.xml: Ditto.
177 * doc/xml/manual/using_exceptions.xml: Ditto.
179 2011-01-28 Paolo Carlini <paolo.carlini@oracle.com>
181 * include/bits/atomic_base.h: Do not include <stddef.h>.
182 (kill_dependency): Uglify ret.
184 2011-01-26 Johannes Singler <singler@kit.edu>
186 * include/parallel/numeric (inner_product, partial_sum):
187 Qualify subsequent call with __gnu_parallel instead of
188 _GLIBCXX_STD_P to reenable parallel execution without ambiguity.
189 * include/parallel/algobase.h (equal): Likewise.
190 * include/parallel/algo.h (find_first_of, search_n, merge,
191 nth_element, partial_sort, max_element, min_element): Likewise.
192 * testsuite/25_algorithms/headers/algorithm/
193 parallel_algorithm_mixed1.cc (main): Add respective test cases.
194 * testsuite/25_algorithms/headers/algorithm/
195 parallel_algorithm_mixed2.cc (main): Likewise.
196 * testsuite/26_numerics/headers/numeric/
197 parallel_numeric_mixed1.cc (main): Likewise.
198 * testsuite/26_numerics/headers/numeric/
199 parallel_numeric_mixed2.cc (main): Likewise.
201 2011-01-24 Graham Reed <greed@pobox.com>
204 * config/os/aix/ctype_inline.h (ctype<char>::is): Use _M_table if
207 2011-01-24 Johannes Singler <singler@kit.edu>
210 * include/parallel/losertree.h
211 (_LoserTree<>::__delete_min_insert):
212 Do not qualify swap with std:: for value type,
213 but include a using directive instead.
214 (_LoserTreeUnguarded<>::__delete_min_insert): Likewise.
215 * include/parallel/balanced_quicksort.h (__qsb_divide):
216 Use std::iter_swap instead of std::swap.
217 (__qsb_local_sort_with_helping): Likewise.
218 * include/parallel/partition.h (__parallel_partition):
219 Likewise. (__parallel_nth_element): Likewise.
221 2011-01-24 Johannes Singler <singler@kit.edu>
224 * include/parallel/multiway_merge.h (_UnguardedIterator):
225 Remove useless "mutable" from reference declaration.
227 2011-01-21 Benjamin Kosnik <bkoz@redhat.com>
229 * include/bits/c++config (_GLIBCXX_EXPORT_TEMPLATE): Remove.
230 * include/debug/safe_sequence.h: Same.
231 * include/debug/safe_iterator.h: Same.
232 * include/std/forward_list: Same.
233 * include/std/deque: Same.
234 * include/std/list: Same.
235 * include/std/random: Same.
236 * include/std/streambuf: Same.
237 * include/std/fstream: Same.
238 * include/std/istream: Same.
239 * include/std/string: Same.
240 * include/std/ostream: Same.
241 * include/std/sstream: Same.
242 * include/ext/vstring.h: Same.
243 * include/bits/basic_ios.h: Same.
244 * include/bits/locale_classes.h: Same.
245 * include/bits/locale_facets.h: Same.
246 * include/bits/valarray_array.h: Same.
247 * include/bits/locale_facets_nonio.h: Same.
248 * include/tr1/random: Same.
250 2011-01-20 Jonathan Wakely <jwakely.gcc@gmail.com>
252 * doc/xml/manual/diagnostics.xml: Replace note about C++0x concepts.
254 2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
256 PR libstdc++/36104 part three
257 * src/hashtable_c++0x.cc: Adjust namespace macros.
258 * testsuite/util/testsuite_rvalref.h: Don't forward declare hash.
259 * config/abi/pre/gnu-versioned-namespace.ver: Update.
261 2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
263 * include/ext/pb_ds/detail/resize_policy/
264 hash_load_check_resize_trigger_imp.hpp: Adjust assert condition.
265 * include/ext/pb_ds/detail/pat_trie_/
266 constructors_destructor_fn_imps.hpp: Same.
267 * include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp: Format.
268 * include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp: Same.
269 * include/ext/pb_ds/detail/debug_map_base.hpp: Use never_adjustor.
271 * testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Adjust
272 iterations downward when testing in debug mode.
273 * testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
274 * testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
275 * testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
276 * testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
277 * testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
278 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Use SIZE,
279 reduce in debug mode.
281 2011-01-19 Benjamin Kosnik <bkoz@redhat.com>
283 PR libstdc++/36104 part two
284 * include/bits/hashtable.h: Revert to non-nested macro usage.
285 * include/bits/hashtable_policy.h: Same.
287 2011-01-19 Graham Reed <greed@pobox.com>
290 * src/bitmap_allocator.cc (free_list::_M_get): Lock mutex.
292 2011-01-18 Benjamin Kosnik <bkoz@redhat.com>
294 * doc/xml/images/confdeps.png: Regenerate.
296 * include/std/chrono (duration): Mark copy constructor constexpr.
297 * testsuite/20_util/duration/cons/constexpr.cc: Add test.
299 2011-01-18 Paolo Carlini <paolo.carlini@oracle.com>
301 * include/bits/unique_ptr.h (default_delete<>::default_delete()):
302 Declare defaulted per DR 1517.
303 * testsuite/util/testsuite_common_types.h
304 (constexpr_defaulted_default_constructible): Add.
305 * testsuite/20_util/default_delete/cons/constexpr.cc: Use it.
307 2011-01-17 Paolo Carlini <paolo.carlini@oracle.com>
309 * include/bits/stl_queue.h (queue<>::swap, priority_queue<>::swap):
311 * include/bits/stl_stack.h (stack<>::swap): Likewise.
313 2011-01-16 Paolo Carlini <paolo.carlini@oracle.com>
316 * testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc:
317 Only test wregex when _GLIBCXX_USE_WCHAR_T is defined.
319 2011-01-16 Paolo Carlini <paolo.carlini@oracle.com>
322 * testsuite/18_support/numeric_limits/lowest.cc:
323 Only test wchar_t when _GLIBCXX_USE_WCHAR_T is defined.
325 2011-01-16 Paolo Carlini <paolo.carlini@oracle.com>
328 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
329 Only test std::wstring when _GLIBCXX_USE_WCHAR_T is defined.
331 2011-01-16 François Dumont <francois.cppdevs@free.fr>
333 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc: Move
334 to this. Use _neg suffix.
335 * testsuite/23_containers/forward_list/debug/erase_after1.cc: ...from
337 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
339 * testsuite/23_containers/forward_list/debug/erase_after2.cc: Same.
340 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
342 * testsuite/23_containers/forward_list/debug/erase_after3.cc: Same.
343 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
345 * testsuite/23_containers/forward_list/debug/erase_after4.cc: Same.
346 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
348 * testsuite/23_containers/forward_list/debug/erase_after5.cc: Same.
349 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
351 * testsuite/23_containers/forward_list/debug/erase_after6.cc: Same.
352 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
354 * testsuite/23_containers/forward_list/debug/erase_after7.cc: Same.
355 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
357 * testsuite/23_containers/forward_list/debug/erase_after8.cc: Same.
358 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
360 * testsuite/23_containers/forward_list/debug/erase_after9.cc: Same.
361 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
363 * testsuite/23_containers/forward_list/debug/insert_after1.cc: Same.
364 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
366 * testsuite/23_containers/forward_list/debug/insert_after2.cc: Same.
367 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
369 * testsuite/23_containers/forward_list/debug/insert_after3.cc: Same.
370 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
372 * testsuite/23_containers/forward_list/debug/splice_after1.cc: Same.
373 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
375 * testsuite/23_containers/forward_list/debug/splice_after2.cc: Same.
376 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
378 * testsuite/23_containers/forward_list/debug/splice_after3.cc: Same.
379 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
381 * testsuite/23_containers/forward_list/debug/splice_after4.cc: Same.
383 2011-01-14 Benjamin Kosnik <bkoz@redhat.com>
386 * include/Makefile.am (bits_sup_headers, stamp-bits-sup): New.
387 * include/Makefile.in: Regenerate.
388 * libsupc++/Makefile.am (std_HEADERS, bits_HEADERS): New.
389 (install-stdHEADERS, install-bitsHEADERS): New.
390 * libsupc++/Makefile.in: Regenerate.
392 * include/bits/c++config: Update for inline namespaces.
393 * libsupc++/cxxabi-forced.h: To...
394 * libsupc++/cxxabi_forced.h: ...this.
395 * libsupc++/hash_bytes.h: Separate file.
396 * libsupc++/typeinfo: Use it.
397 * libsupc++/exception: Adjust for bits subdirectory.
398 * libsupc++/eh_aux_runtime.cc: Same.
399 * libsupc++/eh_ptr.cc: Same.
400 * libsupc++/new_op.cc: Same.
401 * libsupc++/exception_defines.h: Same.
402 * libsupc++/nested_exception.h: Same.
403 * libsupc++/eh_terminate.cc: Same.
404 * libsupc++/vec.cc: Same.
405 * libsupc++/vterminate.cc: Same.
406 * libsupc++/exception_ptr.h: Same.
407 * libsupc++/eh_personality.cc: Same.
408 * libsupc++/eh_call.cc: Same.
409 * libsupc++/new_opnt.cc: Same.
410 * libsupc++/hash_bytes.cc: Same.
411 * config/cpu/arm/cxxabi_tweaks.h: Same.
412 * config/cpu/generic/cxxabi_tweaks.h: Same.
413 * libsupc++/cxxabi.h: Same. Consolidate _GLIBCXX_NOTHROW defines.
414 * include/std/bitset: Same.
415 * include/ext/vstring.tcc: Same.
416 * include/bits/hashtable.h: Same.
417 * include/bits/functional_hash.h: Same.
418 * include/bits/hashtable_policy.h: Same.
419 * include/bits/basic_string.h: Same.
420 * include/bits/istream.tcc: Same.
421 * include/bits/ostream.tcc: Same.
422 * include/bits/algorithmfwd.h: Same.
423 * include/bits/basic_string.tcc: Same.
424 * include/bits/ostream_insert.h: Same.
425 * include/bits/fstream.tcc: Same.
426 * include/bits/functexcept.h: Same.
428 * doc/doxygen/user.cfg.in: Adjust names.
430 * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers.
432 2011-01-14 Paolo Carlini <paolo.carlini@oracle.com>
434 * testsuite/25_algorithms/is_permutation/check_type.cc: Minor
436 * testsuite/25_algorithms/is_permutation/1.cc: Cosmetic changes.
438 2011-01-13 Paolo Carlini <paolo.carlini@oracle.com>
440 * testsuite/25_algorithms/is_permutation/check_type.cc: New.
441 * testsuite/25_algorithms/is_permutation/requirements/
442 explicit_instantiation/2.cc: Likewise.
443 * testsuite/25_algorithms/is_permutation/requirements/
444 explicit_instantiation/pod.cc: Likewise.
445 * testsuite/25_algorithms/is_permutation/1.cc: Likewise.
447 2011-01-13 John Lakos <jlakos@bloomberg.net>
448 Pablo Halpern <phalpern@halpernwightsoftware.com>
449 Paolo Carlini <paolo.carlini@oracle.com>
451 * include/bits/stl_algo.h (is_permutation): Add, per N3068.
452 * include/bits/algorithmfwd.h: Add.
454 2011-01-13 Jonathan Wakely <jwakely.gcc@gmail.com>
457 * config/os/bsd/netbsd/ctype_base.h: Use new macros based on version.
459 2011-01-11 Paolo Carlini <paolo.carlini@oracle.com>
461 * aclocal.m4: Regenerate.
463 2011-01-06 Paolo Carlini <paolo.carlini@oracle.com>
466 * src/placeholders.cc: New.
467 * src/Makefile.am: Adjust.
468 * src/Makefile.in: Regenerate.
469 * include/std/functional (placeholders::_1, _2, ..., _29): Declare
471 * config/abi/pre/gnu.ver: Export.
473 2011-01-05 François Dumont <francois.cppdevs@free.fr>
475 * include/debug/safe_base.h (_Safe_iterator_base::_M_unlink): New.
476 * include/src/debug.cc: Use latter
477 * include/debug/forward_list (forward_list<>::_M_swap): Fix to
478 correctly handle before_begin iterators.
479 * testsuite/23_containers/forward_list/debug/swap.cc: Remove now
480 useless _GLIBCXX_DEBUG checks.
482 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
485 * configure.ac (AC_CHECK_FILE): Replaced by test -f.
486 * configure: Regenerated.
488 2011-01-03 Paolo Carlini <paolo.carlini@oracle.com>
491 * config/abi/pre/gnu.ver: Export std::bad_function_call symbols.
494 Copyright (C) 2011 Free Software Foundation, Inc.
496 Copying and distribution of this file, with or without modification,
497 are permitted in any medium without royalty provided the copyright
498 notice and this notice are preserved.