History is littered with hundreds of conflicts over the future of a community, group, location or business that were "resolved" when one of the parties stepped ahead and destroyed what was there. With the original point of contention destroyed, the debates would fall to the wayside. Archive Team believes that by duplicated condemned data, the conversation and debate can continue, as well as the richness and insight gained by keeping the materials. Our projects have ranged in size from a single volunteer downloading the data to a small-but-critical site, to over 100 volunteers stepping forward to acquire terabytes of user-created data to save for future generations.
The main site for Archive Team is at archiveteam.org and contains up to the date information on various projects, manifestos, plans and walkthroughs.
This collection contains the output of many Archive Team projects, both ongoing and completed. Thanks to the generous providing of disk space by the Internet Archive, multi-terabyte datasets can be made available, as well as in use by the Wayback Machine, providing a path back to lost websites and work.
Our collection has grown to the point of having sub-collections for the type of data we acquire. If you are seeking to browse the contents of these collections, the Wayback Machine is the best first stop. Otherwise, you are free to dig into the stacks to see what you may find.
The Archive Team Panic Downloads are full pulldowns of currently extant websites, meant to serve as emergency backups for needed sites that are in danger of closing, or which will be missed dearly if suddenly lost due to hard drive crashes or server failures.
To use ArchiveBot, drop by #archivebot on EFNet. To interact with ArchiveBot, you issue commands by typing it into the channel. Note you will need channel operator permissions in order to issue archiving jobs. The dashboard shows the sites being downloaded currently.
There is a dashboard running for the archivebot process at http://www.archivebot.com.
ArchiveBot's source code can be found at https://github.com/ArchiveTeam/ArchiveBot.
# -*- rdoc -*- | |
= NEWS for Ruby 2.2.0 | |
This document is a list of user visible feature changes made between | |
releases except for bug fixes. | |
Note that each entry is kept so brief that no reason behind or | |
reference information is supplied with. For a full list of changes | |
with all sufficient information, see the ChangeLog file. | |
== Changes since the 2.1.0 release | |
=== Language changes | |
* nil/true/false | |
* nil/true/false objects are frozen. [Feature #8923] | |
* Hash literal | |
* Symbol key followed by a colon can be quoted. [Feature #4276] | |
* default argument | |
fixed a very longstanding bug that an optional argument was not | |
accessible in its default value expression. [Bug #9593] | |
=== Core classes updates (outstanding ones only) | |
* Binding | |
* New methods: | |
* Binding#local_variables | |
* Binding#receiver | |
* Dir | |
* New methods: | |
* Dir#fileno | |
* Enumerable | |
* New methods: | |
* Enumerable#slice_after | |
* Enumerable#slice_when | |
* Extended methods: | |
* min, min_by, max and max_by supports optional argument to return | |
multiple elements. | |
* Float | |
* New methods: | |
* Float#next_float | |
* Float#prev_float | |
* File | |
* New methods: | |
* File.birthtime | |
* File#birthtime | |
* File::Stat | |
* New methods: | |
* File::Stat#birthtime | |
* GC | |
* GC.latest_gc_info returns :state to represent current GC status. | |
* Improvements | |
* Introduce incremental marking for major GC. [Feature #10137] | |
* IO | |
* Improvements | |
* IO#nonblock_read and IO#nonblock_write for pipes on Windows are supported. | |
* Kernel | |
* New methods: | |
* Kernel#itself | |
* Improvements | |
* Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when | |
there is no corresponding catch block, instead of ArgumentError. | |
* Process | |
* Extended method: | |
* Process execution methods such as Process.spawn opens the file in write | |
mode for redirect from [:out, :err]. | |
* String | |
* New methods: | |
* String#unicode_normalize | |
* String#unicode_normalize! | |
* String#unicode_normalized? | |
* Symbol | |
* Improvements | |
* Most symbols which are returned by String#to_sym and | |
String#intern are GC-able. | |
* Method | |
* New methods: | |
* Method#curry([arity]) returns a curried Proc. | |
* Method#super_method returns a Method of superclass, which would be called | |
when super is used. | |
=== Core classes compatibility issues (excluding feature bug fixes) | |
* Enumerable | |
* Enumerable#slice_before's state management deprecated. | |
* Enumerable#chunk's state management deprecated. | |
* GC | |
* incompatible changes: | |
* Rename GC.stat entries. [Feature #9924] | |
See https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing | |
* IO | |
* incompatible changes: | |
* When flushing file IO with IO#flush, you cannot assume that the metadata | |
of the file is updated immediately. On some platforms (especially | |
Windows), it is delayed until the filesystem load is decreased. | |
Use IO#fsync if you want to guarantee updating metadata. | |
* Math | |
* incompatible changes: | |
* Math.log now raises Math::DomainError instead of returning NaN if the | |
base is less than 0, and returns NaN instead of -infinity if both of | |
two arguments are 0. | |
* Math.atan2 now returns values like as expected by C99 if both two | |
arguments are infinity. | |
* Proc | |
* incompatible changes: | |
* ArgumentError is no longer raised when lambda Proc is passed as a | |
block, and the number of yielded arguments does not match the formal | |
arguments of the lambda, if just an array is yielded and its length | |
matches. | |
* Process | |
* Process execution methods such as Process.spawn opens the file in write | |
mode for redirect from [:out, :err]. | |
Before Ruby 2.2, it was opened in read mode. | |
=== Stdlib updates (outstanding ones only) | |
* Continuation | |
* callcc is obsolete. use Fiber instead. | |
* Digest | |
* Digest() should now be thread-safe. If you have a problem with | |
regard to on-demand loading under a multi-threaded environment, | |
preload "digest/*" modules on boot or use this method instead of | |
directly referencing Digest::*. | |
* Digest::HMAC has been removed just as previously noticed. | |
* DL | |
* DL has been removed from stdlib. Please use Fiddle instead! | |
* Etc | |
* New methods: | |
* Etc.uname | |
* Etc.sysconf | |
* Etc.confstr | |
* IO#pathconf | |
* Etc.nprocessors | |
* Find, Pathname | |
* Extended methods: | |
* find method accepts "ignore_error" keyword argument. | |
* Matrix | |
* New methods: | |
* Matrix#first_minor(row, column) returns the submatrix obtained | |
by deleting the specified row and column. | |
* Matrix#cofactor(row, column) returns the (row, column) cofactor | |
which is obtained by multiplying the first minor by (-1)**(row + column). | |
* Matrix#adjugate returns the adjugate of the matrix. | |
* hstack and vstack are new instance and class methods to stack matrices | |
horizontally and vertically. | |
* Matrix#laplace_expansion(row_or_column: num) returns the laplace_expansion | |
along the +num+ -th row or column. | |
* Vector.basis(size:, index:) returns the specified basis vector. | |
* Unary - and + added for Vector and Matrix. | |
* Vector#cross_product generalized to arbitrary dimensions. | |
* Vector#dot and #cross are aliases for #inner_product and #cross_product. | |
* Vector#angle_with returns the angle with its argument | |
* New instance and class method independent? to test linear independence. | |
* Pathname | |
* Pathname#/ is aliased to Pathname#+. | |
* New methods: | |
* Pathname#birthtime | |
* Rake | |
* Updated to Rake 10.4.0. For full release notes see: | |
http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0 | |
* RubyGems | |
* Updated to RubyGems 2.4.2. For full release notes see: | |
http://docs.seattlerb.org/rubygems/History_txt.html#label-2.4.2+%2F+2014-10-01 | |
* TSort | |
* TSort.tsort_each, TSort.each_strongly_connected_component and | |
TSort.each_strongly_connected_component_from returns an enumerator if | |
no block given. | |
* XMLRPC | |
* Added new parser class named LibXMLStreamParser. | |
=== Stdlib compatibility issues (excluding feature bug fixes) | |
* lib/mathn.rb | |
* Show deprecated warning [Feature #10169] | |
* ext/date/lib/date/format.rb | |
* Removed because it's empty file. | |
* Digest | |
* Digest::HMAC has finally ceased to exist. Use OpenSSL::HMAC or an external gem instead. | |
* time.rb | |
* Time.parse, Time.strptime, Time.rfc2822, Time.xmlschema may produce | |
fixed-offset Time objects. | |
It is happen when usual localtime doesn't preserve the offset from UTC. | |
* Time.httpdate produces always UTC Time object. | |
* Time.strptime raises ArgumentError when no date information. | |
* lib/rational.rb | |
* Removed because it is deprecated from 2009. | |
* lib/complex.rb | |
* Removed because it is deprecated from 2009. | |
* lib/prettyprint.rb | |
* Removed PrettyPrint#first? | |
* lib/minitest/*.rb | |
* Removed because it conflicts to minitest 5. [Feature #9711] | |
* lib/test/**/*.rb | |
* Removed because it conflicts to minitest 5, and it was just an wrapper | |
of minitest 4. [Feature #9711] | |
* lib/uri | |
* support RFC 3986. [Feature #2542] | |
* GServer | |
* GServer is extracted to gserver gem. It's unmaintain code. | |
* Logger | |
* Logger::Application is extracted to logger-application gem. It's unmaintain code. | |
* ObjectSpace (after requiring "objspace") | |
* ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE). | |
[Bug #8984] | |
* Prime | |
* incompatible changes: | |
* Prime.prime? now returns false for negative numbers. This method | |
should not be used to know the number is composite or not. [Bug #7395] | |
* Psych | |
* Removed Psych::EngineManager [Bug #8344] | |
=== Built-in global variables compatibility issues | |
=== C API updates | |
* Deprecated APIs removed. [Feature #9502] | |
Check_SafeStr -> SafeStringValue | |
rb_check_safe_str -> SafeStringValue | |
rb_quad_pack -> rb_integer_pack | |
rb_quad_unpack -> rb_integer_unpack | |
rb_read_check : access struct FILE internal. no replacement. | |
rb_struct_iv_get : internal function. no replacement. | |
struct rb_blocking_region_buffer : internal type. no replacement. | |
rb_thread_blocking_region_begin -> rb_thread_call_without_gvl family | |
rb_thread_blocking_region_end -> rb_thread_call_without_gvl family | |
TRAP_BEG -> rb_thread_call_without_gvl family | |
TRAP_END -> rb_thread_call_without_gvl family | |
rb_thread_select -> rb_thread_fd_select | |
struct rb_exec_arg : internal type. no replacement. | |
rb_exec : internal function. no replacement. | |
rb_exec_arg_addopt : internal function. no replacement. | |
rb_exec_arg_fixup : internal function. no replacement. | |
rb_exec_arg_init : internal function. no replacement. | |
rb_exec_err : internal function. no replacement. | |
rb_fork : internal function. no replacement. | |
rb_fork_err : internal function. no replacement. | |
rb_proc_exec_n : internal function. no replacement. | |
rb_run_exec_options : internal function. no replacement. | |
rb_run_exec_options_err : internal function. no replacement. | |
rb_thread_blocking_region -> rb_thread_call_without_gvl family | |
rb_thread_polling -> rb_thread_wait_for | |
rb_big2str0 : internal function. no replacement. | |
rb_big2ulong_pack -> rb_integer_pack | |
rb_gc_set_params : internal function. no replacement. | |
rb_io_mode_flags -> rb_io_modestr_fmode | |
rb_io_modenum_flags -> rb_io_oflags_fmode | |
* struct RBignum is hidden. [Feature #6083] | |
Use rb_integer_pack and rb_integer_unpack instead. | |
* struct RRational is hidden. [Feature #9513] | |
Use rb_rational_num and rb_rational_den instead. | |
* rb_big_new and rb_big_resize takes a size_t instead of long. | |
* rb_num2long returns a long instead of SIGNED_VALUE. | |
* rb_num2ulong returns an unsigned long instead of VALUE. | |
* st hash table uses power-of-two sizes for speed [Feature #9425]. | |
Lookups are 10-25% faster if using appropriate hash functions. | |
However, weaknesses in hash distribution can no longer be masked | |
by prime number-sized tables, so extensions may need to tweak | |
hash functions to ensure good distribution. | |
* rb_sym2str() added. This is almost same as `rb_id2str(SYM2ID(sym))` | |
but not pinning a dynamic symbol. | |
* rb_str_cat_cstr() added. This is same as `rb_str_cat2()`. | |
* `rb_str_substr()` and `rb_str_subseq()` will share middle of a string, | |
but not only the end of a string, in the future. Therefore, result | |
strings may not be NUL-terminated, `StringValueCStr()` is needed | |
calling to obtain a NUL-terminated C string. | |
* rb_tracepoint_new() supports new internal events accessible only from C: | |
* RUBY_INTERNAL_EVENT_GC_ENTER | |
* RUBY_INTERNAL_EVENT_GC_EXIT | |
r47528 | |
* rb_hash_delete() now does not call the block given to the current method. | |
* rb_extract_keywords() and rb_get_kwargs() exported. See README.EXT | |
for details. | |
=== Build system updates | |
* jemalloc is optionally supported via `./configure --with-jemalloc` | |
jemalloc may be suitable when system malloc is slow or prone | |
to fragmentation. [Feature #9113] | |
=== Implementation changes | |
* GC | |
* Most symbols which are returned by String#to_sym and | |
String#intern are GC-able [Feature #9634] | |
* Introduce incremental marking for major GC. [Feature #10137] | |
* Enable lazy sweep on GC caused by malloc(). | |
* VM | |
* Use frozen string literals for Hash#[] and Hash#[]= | |
* Fast keyword arguments passing [Feature #10440] | |
* Allow to receive huge splatted array by a rest argument | |
[Feature #10440] | |
* Process | |
* Process creation methods, such as spawn(), uses vfork() system call. | |
vfork() is faster than fork() when the parent process uses huge memory. |