acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN unconditionally.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobb8e29e4f13926e451245222d4bac0756b96ded93
1 2015-01-29  Matthias Klose  <doko@ubuntu.com>
3         * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
4         unconditionally.
5         * configure: Regenerate.
7 2015-01-29  Caroline Tice  <cmtice@google.com>
9         Committing VTV Cywin/Ming patch for Patrick Wollgast
10         * configure: Regenerate.
11         * libsupc++/Makefile.in: Regenerate.
12         * src/Makefile.in: Regenerate.
14 2015-01-29  Jonathan Wakely  <jwakely@redhat.com>
16         * include/bits/atomic_base.h: Use __always_inline__ instead of
17         always_inline.
18         * include/bits/atomic_futex.h: Likewise.
19         * include/bits/c++config: Use __abi_tag__ instead of abi_tag.
20         * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Use
21         __packed__ instead of packed.
22         * include/std/shared_mutex: Use __unused__ instead of unused.
23         * testsuite/17_intro/headers/c++1998/all_attributes.cc: New.
24         * testsuite/17_intro/headers/c++200x/all_attributes.cc: New.
25         * testsuite/17_intro/headers/c++2014/all_attributes.cc: New.
27 2015-01-28  Caroline Tice  <cmtice@google.com>
29         Committing VTV Cywin/Ming patch for Patrick Wollgast
30         * acinclude.m4: Define VTV_CYGMIN.
31         * libsupc++/Makefile.am: Add vtv_sources only to libsupc___la_SOURCES
32         and libsupc__convenience_la_SOURCES if VTV_CYGMIN is not set.
33         * libsupc++/vtv_stubs.cc: Add none weak declaration of every function
34         for Cygwin and MinGW.
35         * src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES, if
36         VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS,
37         libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set.
39 2015-01-28  Jonathan Wakely  <jwakely@redhat.com>
41         PR libstdc++/64828
42         * libsupc++/Makefile.am: Compile del_opvs.cc as C++14.
43         * libsupc++/Makefile.in: Regenerate.
44         * src/c++11/Makefile.in: Regenerate.
46 2015-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48         * testsuite/lib/libstdc++.exp (v3_target_compile): Remove
49         check for unsupported.
50         (v3_target_compile_as_c): Likewise.
52 2015-01-28  Richard Biener  <rguenther@suse.de>
54         PR libstdc++/64798
55         * libsupc++/eh_alloc.cc (struct allocated_entry): Align
56         data member.
57         (pool::allocate): Adjust allocation size and alignment to
58         that change.
59         (pool::free): Adjust pointer offsetting.
61 2015-01-27  Jonathan Wakely  <jwakely@redhat.com>
63         PR libstdc++/64368
64         * include/std/shared_mutex (shared_timed_mutex::try_lock_for,
65         shared_timed_mutex::try_lock_until): Only define when POSIX thread
66         timeouts option is supported.
67         (shared_timed_mutex::try_shared_lock_for,
68         shared_timed_mutex::try_shared_lock_until): Likewise.
70 2015-01-26  Jonathan Wakely  <jwakely@redhat.com>
72         PR libstdc++/64368
73         * config/locale/gnu/numeric_members.cc (numpunct<char>::~numpunct(),
74         numpunct<wchar_t>::~numpunct()): Do not set _M_data->_M_grouping.
75         * src/c++11/cxx11-shim_facets.cc (numpunct_shim): Remove _M_grouping
76         and use cache's _M_grouping field.
77         (__numpunct_fill_cache): Likewise.
78         (__moneypunct_fill_cache): Improve comments.
80 2015-01-26  Jonathan Wakely  <jwakely@redhat.com>
82         * testsuite/23_containers/set/operations/2.cc: Add test for
83         non-transparent comparison function.
85 2015-01-25  Oleg Endo  <olegendo@gcc.gnu.org>
87         PR target/29366
88         * config/cpu/sh/atomicity.h (__exchange_and_add, __atomic_add): 
89         Remove SH4A inline asm and lock based implementations and use the
90         defaults from ext/atomicity.h.
92 2015-01-23  Jonathan Wakely  <jwakely@redhat.com>
94         * config/abi/pre/gnu.ver: Tighten GLIBCXX_3.4 patterns to not match
95         new std::string constructors for byname facets.
97 2015-01-22  Richard Biener  <rguenther@suse.de>
99         PR libstdc++/64535
100         * libsupc++/eh_alloc.cc: Include new.
101         (bitmask_type): Remove.
102         (one_buffer): Likewise.
103         (emergency_buffer): Likewise.
104         (emergency_used): Likewise.
105         (dependents_buffer): Likewise.
106         (dependents_used): Likewise.
107         (class pool): New custom fixed-size arena, variable size object
108         allocator.
109         (emergency_pool): New global.
110         (__cxxabiv1::__cxa_allocate_exception): Use new emergency_pool.
111         (__cxxabiv1::__cxa_free_exception): Likewise.
112         (__cxxabiv1::__cxa_allocate_dependent_exception): Likewise.
113         (__cxxabiv1::__cxa_free_dependent_exception): Likewise.
115 2015-01-22  Tim Shen  <timshen@google.com>
117         PR libstdc++/64680
118         * include/bits/regex.h (basic_regex<>::basic_regex,
119         basic_regex<>::operator=, basic_regex<>::imbue): Conform to the
120         standard interface.
121         * testsuite/28_regex/basic_regex/assign/char/cstring.cc: New testcase.
123 2015-01-22  Tim Shen  <timshen@google.com>
125         PR libstdc++/64649
126         * include/bits/regex.tcc (regex_traits<>::lookup_collatename,
127         regex_traits<>::lookup_classname): Correctly narrow input chars.
128         * testsuite/28_regex/traits/wchar_t/user_defined.cc: New testcase.
130 2015-01-21  Jonathan Wakely  <jwakely@redhat.com>
132         * config/abi/pre/gnu.ver: Use [jmy] for size_t parameters.
134 2015-01-21  Jonathan Wakely  <jwakely@redhat.com>
136         * testsuite/29_atomics/atomic/64658.cc: Test stored value.
138 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
140         * doc/xml/manual/status_cxx2011.xml: Remove stray dbhtml tags.
141         * doc/xml/manual/status_cxx2014.xml: Update status.
142         * doc/html/manual/status.html: Regenerate.
144 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
146         PR libstdc++/64650
147         * include/experimental/optional (bad_optional_access): Add default
148         constructor.
149         * testsuite/experimental/optional/requirements.cc: Test for default
150         constructor.
152 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
154         * include/bits/stl_map.h (map::find<>, map::count<>,
155         map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
156         member function templates to perform heterogeneous lookup.
157         * include/bits/stl_multimap.h (multimap::find<>, multimap::count<>,
158         multimap::lower_bound<>, multimap::upper_bound<>,
159         multimap::equal_range<>): Likewise.
160         * include/bits/stl_multiset.h (multiset::find<>, multiset::count<>,
161         multiset::lower_bound<>, multiset::upper_bound<>,
162         multiset::equal_range<>): Likewise.
163         * include/bits/stl_set.h (set::find<>, set::count<>,
164         set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise.
165         * include/bits/stl_tree.h (_Rb_tree::_S_lower_bound_tr,
166         _Rb_tree::_S_upper_bound_tr, _Rb_tree::_M_find_tr,
167         _Rb_tree::_M_count_tr, _Rb_tree::_M_lower_bound_tr,
168         _Rb_tree::_M_upper_bound_tr, _Rb_tree::_M_equal_range_tr): Likewise.
169         * testsuite/23_containers/map/operations/2.cc: New.
170         * testsuite/23_containers/multimap/operations/2.cc: New.
171         * testsuite/23_containers/multiset/operations/2.cc: New.
172         * testsuite/23_containers/set/operations/2.cc: New.
174 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
176         * config/abi/pre/gnu.ver: Export new constructors.
177         * include/bits/codecvt.h (codecvt_byname): Add string constructor.
178         (codecvt_byname<char16_t>, codecvt_byname<char32_t>): Define explicit
179         specializations and declare explicit instantiations.
180         * include/bits/locale_classes.h (locale, collate_byname): Add string
181         constructors.
182         * include/bits/locale_facets.h (ctype_byname, numpunct_byname):
183         Likewise.
184         * include/bits/locale_facets_nonio.h (time_get_byname,
185         time_put_byname, moneypunct_byname, messages_byname): Likewise.
186         * src/c++11/codecvt.cc (codecvt_byname<char16_t>,
187         codecvt_byname<char32_t>): Define explicit instantiations.
188         * src/c++11/locale-inst.cc (time_put_byname, codecvt_byname):
189         Instantiate string constructors.
190         (ctype_byname): Define string constructor.
191         * testsuite/22_locale/codecvt_byname/1.cc: New.
192         * testsuite/22_locale/collate_byname/1.cc: New.
193         * testsuite/22_locale/ctype_byname/2.cc: New.
194         * testsuite/22_locale/messages_byname/1.cc: New.
195         * testsuite/22_locale/moneypunct_byname/1.cc: New.
196         * testsuite/22_locale/numpunct_byname/1.cc: New.
198 2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
200         PR libstdc++/64658
201         * include/std/atomic (atomic_init): Define.
202         * testsuite/29_atomics/atomic/64658.cc: New.
204 2015-01-19  Tim Shen  <timshen@google.com>
206         PR libstdc++/64649
207         * include/bits/regex.tcc (regex_traits<>::lookup_collatename,
208         regex_traits<>::lookup_classname): Support forward iterators.
209         * testsuite/28_regex/traits/char/lookup_classname.cc: New testcases.
210         * testsuite/28_regex/traits/char/lookup_collatename.cc: New testcase.
212 2015-01-19  Tim Shen  <timshen@google.com>
214         PR libstdc++/64584
215         PR libstdc++/64585
216         * include/bits/regex.h (basic_regex<>::basic_regex,
217         basic_regex<>::assign, basic_regex<>::imbue,
218         basic_regex<>::swap, basic_regex<>::mark_count): Drop NFA after
219         imbuing basic_regex; Make assign() transactional against exception.
220         * include/bits/regex_compiler.h (__compile_nfa<>): Add back
221         __compile_nfa SFINAE.
222         * include/std/regex: Adjust include order to avoid __compile_nfa
223         forward declaration.
224         * testsuite/28_regex/basic_regex/assign/char/string.cc: New testcase.
225         * testsuite/28_regex/basic_regex/imbue/string.cc: New testcase.
227 2015-01-19  Ville Voutilainen  <ville.voutilainen@gmail.com>
228             Jonathan Wakely  <jwakely@redhat.com>
230         * include/bits/range_access.h (begin, end): Use _GLIBCXX14_CONSTEXPR
231         on overloads for arrays.
232         (cbegin, cend, rbegin, rend, crbegin, crend): New.
233         * testsuite/24_iterators/range_access_cpp14.cc: New.
235 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
237         PR libstdc++/64646
238         * include/bits/stl_algo.h (__is_permutation): Also test for reaching
239         end of the second range.
240         * testsuite/25_algorithms/is_permutation/64646.cc: New.
242 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
244         * doc/xml/manual/status_cxx2011.xml: Remove note about offsetof.
245         * doc/html/manual/status.html: Regenerate.
247 2015-01-18  Jonathan Wakely  <jwakely@redhat.com>
249         * include/bits/atomic_futex.h: Use mutex and condition_variable when
250         atomic int is not lock-free. Make member variables private.
251         * src/c++11/futex.cc: Likewise.
253         * src/c++11/futex.cc: Fix order of includes and preprocessor condition.
255 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
257         PR libstdc++/64638
258         * include/bits/atomic_futex.h: Use appropriate config macros for
259         availability of std::mutex, std::condition and std::chrono.
261 2015-01-17  Ville Voutilainen  <ville.voutilainen@gmail.com>
262             Jonathan Wakely  <jwakely@redhat.com>
264         * doc/xml/manual/status_cxx2011.xml: Update C++11 status.
265         * doc/html/*: Regenerate.
267 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
269         DR 488
270         PR libstdc++/58357
271         * include/bits/algorithmfwd.h (rotate): Return an iterator.
272         * include/bits/stl_algo.h (rotate, __rotate): Likewise.
273         * testsuite/25_algorithms/rotate/dr488.cc: New.
274         * testsuite/25_algorithms/rotate/check_type.cc: Adjust function type.
275         * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
276         2.cc: Likewise.
277         * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/
278         pod.cc: Likewise.
280 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
282         PR libstdc++/60940
283         * include/bits/atomic_base.h: Remove atomic integral typedefs as
284         synonyms for __atomic_base<int> etc.
285         * include/std/atomic: Make atomic_int a synonym for atomic<int> and
286         likewise for all atomic integral types.
287         * testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New.
288         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
290 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
292         PR libstdc++/56785
293         * include/std/tuple (_Tuple_impl): Remove zero-element specialization
294         and define one-element specialization.
295         * testsuite/20_util/tuple/56785.cc: New.
297 2015-01-17  Jonathan Wakely  <jwakely@redhat.com>
299         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc:
300         Remove unused header.
301         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
302         Likewise.
303         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
304         Likewise.
306 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
308         * include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New.
309         * include/std/locale: Include new header.
310         * include/Makefile.am: Add it.
311         * include/Makefile.in: Regenerate.
312         * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New.
313         * testsuite/22_locale/conversions/string/1.cc: New.
314         * testsuite/22_locale/conversions/string/2.cc: New.
315         * testsuite/22_locale/conversions/string/requirements/typedefs.cc: New.
316         * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
317         New.
319 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
321         * config/abi/pre/gnu.ver: Export new symbols.
322         * include/Makefile.am: Add codecvt.
323         * include/Makefile.in: Regenerate.
324         * include/std/codecvt: New header.
325         * src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base,
326         __codecvt_utf8_utf16_base): Define specializations.
327         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New.
328         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New.
329         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
330         New.
332 2015-01-16  Torvald Riegel  <triegel@redhat.com>
334         * src/c++11/futex.cc: New file.
335         * include/bits/atomic_futex.h: New file.
336         * include/std/future (__future_base::_State_baseV2): Use
337         atomic_futex_unsigned instead of mutex+condvar.
338         * src/c++11/futex.cc: Likewise.
339         * include/Makefile.am: Add atomic_futex.h.
340         * include/Makefile.in: Likewise.
341         * src/c++11/Makefile.am: Add futex.cc.
342         * src/c++11/Makefile.in: Likewise.
344 2015-01-16  Jonathan Wakely  <jwakely@redhat.com>
346         * acinclude.m4: Fix typo in comment.
347         * configure: Regenerate.
348         * include/bits/codecvt.h (codecvt<char16_t, char, mbstate_t>,
349         codecvt<char16_t, char, mbstate_t>): Declare specializations.
350         * include/bits/locale_facets.h: Reserve space for new specializations.
351         * src/c++11/Makefile.am: Add codecvt.cc.
352         * src/c++11/Makefile.in: Regenerate.
353         * src/c++11/codecvt.cc: New.
354         * src/c++98/Makefile.am: Compile locale_init.cc and localename.cc
355         with -std=gnu++11.
356         * src/c++98/Makefile.in: Regenerate.
357         * src/c++98/locale_init.cc: Initialize new codecvt specializations.
358         * src/c++98/localename.cc: Likewise.
359         * config/abi/pre/gnu.ver: Exports for new codecvt specializations.
360         * testsuite/22_locale/codecvt/utf8.cc: New.
361         * testsuite/22_locale/locale/cons/unicode.cc: Check that new
362         specializations are installed in locale objects.
364 2015-01-16  Torvald Riegel  <triegel@redhat.com>
366         * include/std/shared_mutex (shared_timed_mutex): Add POSIX-based
367         implementation.
369 2015-01-13  Jonathan Wakely  <jwakely@redhat.com>
371         PR libstdc++/64571
372         * config/abi/pre/gnu.ver: Export fstream functions using new string.
374 2015-01-12  Jonathan Wakely  <jwakely@redhat.com>
376         PR libstdc++/64560
377         * src/c++11/cxx11-shim_facets.cc (locale::facet::_M_sso_shim): Check
378         for RTTI support.
380         PR libstdc++/64553
381         * src/c++11/cxx11-shim_facets.cc: Check for wchar_t support.
383 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
385         * doc/xml/manual/parallel_mode.xml: Update for libgomp being
386         renamed from "GNU OpenMP Runtime Library" to "GNU Offloading and
387         Multi Processing Runtime Library".
389 2015-01-09  Jonathan Wakely  <jwakely@redhat.com>
391         PR libstdc++/64476
392         * include/bits/stl_uninitialized.h (uninitialized_copy): Fix
393         is_assignable arguments.
394         * testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc:
395         New.
397 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
399         * libsupc++/unwind-cxx.h: Revert previous commit.
401 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
403         * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.
405 2015-01-09  Tim Shen  <timshen@google.com>
407         PR libstdc++/64239
408         * include/bits/regex.h (match_results<>::swap): Use std::swap
409         instead of swap.
410         * include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
411         Likewise.
412         * testsuite/28_regex/match_results/swap.cc: New testcase.
414 2015-01-08  Jonathan Wakely  <jwakely@redhat.com>
416         PR libstdc++/60132
417         * include/std/type_traits (has_trivial_default_constructor,
418         has_trivial_copy_constructor, has_trivial_copy_assign): Add deprecated
419         attribute.
420         * testsuite/20_util/has_trivial_copy_assign/requirements/
421         explicit_instantiation.cc: Use -Wno-deprecated.
422         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
423         Likewise.
424         * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
425         * testsuite/20_util/has_trivial_copy_constructor/requirements/
426         explicit_instantiation.cc: Likewise.
427         * testsuite/20_util/has_trivial_copy_constructor/requirements/
428         typedefs.cc: Likewise.
429         * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
430         * testsuite/20_util/has_trivial_default_constructor/requirements/
431         explicit_instantiation.c: Likewise.
432         * testsuite/20_util/has_trivial_default_constructor/requirements/
433         typedefs.cc: Likewise.
434         * testsuite/20_util/has_trivial_default_constructor/value.cc:
435         Likewise.
436         * testsuite/20_util/pair/requirements/dr801.cc: Replace deprecated
437         trait.
438         * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
439         * testsuite/util/testsuite_common_types.h: Likewise.
441 2015-01-08  Jonathan Wakely  <jwakely@redhat.com>
443         * include/bits/hashtable_policy.h: Use __bool_constant.
445 2015-01-07  Jonathan Wakely  <jwakely@redhat.com>
447         * libsupc++/Makefile.am: Compile del_ops.cc as C++14.
448         * libsupc++/Makefile.in: Regenerate.
450 2015-01-06  Jonathan Wakely  <jwakely@redhat.com>
452         * config/abi/pre/gnu.ver: Fix version conflict for std::locale::name().
454 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
456         Update copyright years.
458 2015-01-04  Jonathan Wakely  <jwakely@redhat.com>
460         PR libstdc++/64483
461         * testsuite/18_support/exception_ptr/64241.cc: Use
462         dg-require-atomic-builtins.
464 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
466         * testsuite/21_strings/basic_string/modifiers/64422.cc: Fix copyright
467         date.
469 2015-01-02  Tim Shen  <timshen@google.com>
471         PR libstdc++/64475
472         * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Copy the
473         iterator, since the original one shouldn't be mutated.
475 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
477         PR libstdc++/64422
478         * src/c++98/misc-inst.cc (string::erase): Add missing overloads.
479         (string::insert): Likewise.
480         (string::replace): Likewise.
481         (wstring::erase): Likewise.
482         (wstring::insert): Likewise.
483         (wstring::replace): Likewise.
484         * testsuite/21_strings/basic_string/modifiers/64422.cc: New testcase.
486 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
488         PR libstdc++/64468
489         * doc/doxygen/user.cfg.in: Set correct TAB_SIZE.
491 2015-01-02  Jonathan Wakely  <jwakely@redhat.com>
493         PR libstdc++/64438
494         * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
495         Revert removal of dg-require-string-conversions.
496         * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
497         Likewise.
498         * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
499         Likewise.
500         * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
501         Likewise.
502         * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
503         Likewise.
504         * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
505         Likewise.
506         * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
507         Likewise.
508         * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
509         Likewise.
510         * testsuite/21_strings/basic_string/numeric_conversions/char/
511         stoull.cc: Likewise.
512         * testsuite/21_strings/basic_string/numeric_conversions/char/
513         to_string.cc: Likewise.
515 Copyright (C) 2015 Free Software Foundation, Inc.
517 Copying and distribution of this file, with or without modification,
518 are permitted in any medium without royalty provided the copyright
519 notice and this notice are preserved.