NEWS für Ruby 1.9.2
Dieses Dokument ist eine Liste der für Benutzer sichtbaren Funktionsänderungen zwischen den Versionen, mit Ausnahme von Fehlerbehebungen.
Beachten Sie, dass jeder Eintrag so kurz gehalten ist, dass kein Grund oder Referenzinformationen angegeben werden. Eine vollständige Liste der Änderungen mit allen ausreichenden Informationen finden Sie in der Datei ChangeLog.
Änderungen seit der Version 1.9.1
Bibliotheksaktualisierungen (nur herausragende)
-
eingebaute Klassen
-
-
neue Methoden
-
erweiterte Methode
-
Array#{uniq,uniq!,product} kann einen Block entgegennehmen.
-
-
-
-
neue Methode
-
-
-
neue Methode
-
-
-
neue Kodierungen
-
Big5
-
Big5-UAO
-
ISO-2022-JP-KDDI
-
SJIS-DoCoMo
-
SJIS-KDDI
-
SJIS-SoftBank
-
UTF8-DoCoMo
-
UTF8-KDDI
-
UTF8-SoftBank
-
-
neue Methode
-
ascii_compatible?
-
-
-
-
neue Methoden
-
erweiterte Methode
-
with_index akzeptiert ein optionales Argument, das die Startindexnummer angibt, standardmäßig 0.
-
-
inkompatible Änderungen
-
rewind ruft nun die Methode "rewind" des eingeschlossenen Objekts auf, falls definiert.
-
next löscht die Position am Ende nicht mehr.
-
-
-
-
Verwendet die Kodierung der Locale
-
ENV.[]=löst bei Fehler Errno::{EINVAL,ENOMEM} usw. aus. -
neue Methoden
-
-
-
neue Konstanten
-
Float::INFINITY
-
Float::NAN
-
-
neue Methode
-
-
-
neue Methoden
-
-
GC::Profiler
-
neue Methode
-
GC::Profiler.total_time
-
-
-
-
neue Methoden
-
-
-
neue Methoden
-
IO#codepoints
-
erweiterte Methode
-
IO.pipekann einen Block entgegennehmen.
-
-
neue Module
-
IO::WaitWritableSie werden verwendet, um nicht-blockierende Ausnahmen zu erweitern.
-
-
-
neue Methode
-
-
-
neue Methoden
-
Kernel#respond_to_missing?
-
Kernel#singleton_class
-
-
erweiterte Methode
-
Kernel#respond_to? kann verwendet werden, um nicht implementierte Methoden zu erkennen. Zum Beispiel gibt Process.respond_to?(:fork) unter Windows false zurück.
-
-
inkompatible Änderungen
-
Kernel#instance_eval übergibt den Empfänger.
-
Kernel#`(„…`) ..usw.Unter Windows wird das aktuelle Verzeichnis nicht mehr implizit dem Standard-Befehlssuchpfad vorangestellt, wie auf anderen Plattformen.
-
-
-
-
neue Methode
-
-
Method
-
neue Methode
-
-
-
neue Methode
-
-
-
erweiterte Methoden
-
Float() unterstützt das hexadezimale Gleitkommaformat.
-
printf() unterstützt das Format %a/%A.
-
-
-
-
neue Methode
-
erweiterte Methode
-
Proc#source_locationgibt den Speicherort zurück, auch wenn der Empfänger eine durch attr_reader / attr_writer / attr_accessor definierte Methode ist.
-
-
-
Process
-
erweiterte Methode
-
Process.spawnakzeptiert [:child, FD] als Umleitungsziel.
-
-
-
Random(neue Klasse zur Generierung von Pseudozufallszahlen) -
-
neue Methode
-
-
-
erweiterte Methoden
-
string[regexp, name] wird für benannte Erfassungen unterstützt.
-
-
-
-
neue Methoden
-
-
-
erweiterte Features
-
Die time_t-Beschränkung wurde entfernt, um Daten vor 1901 und nach 2038 darzustellen. Der proleptische gregorianische Kalender wird für alte Daten verwendet.
-
Time.newhat optionale Argumente zur Angabe des Datums mit Zeitzonenversatz. -
Time#getlocal,Time#localtimehaben ein optionales Zeitzonenversatz-Argument.
-
-
neue Methoden
-
inkompatible Änderung
-
Das Jahresargument von
Time.{utc,gm,local,mktime} wird nun als Wert selbst interpretiert. Zum Beispiel bedeutetTime.utc(99)das Jahr 99 n. Chr. und nicht 1999 n. Chr.
-
-
-
-
neue Methode
-
-
-
digest
-
neue Methoden
-
DIGEST::HMAC (digest/hmac) wurde als veraltet markiert, da es nicht beabsichtigt war, dass die experimentelle Bibliothek in die endgültige Version von 1.9.1 aufgenommen wird. Bitte verwenden Sie stattdessen
OpenSSL::HMAC.
-
-
rss
-
0.2.4 -> 0.2.7.
-
RSS::Maker.make
-
löst eine Ausnahme aus, gibt aber kein nil zurück, wenn das Erstellen des Feeds fehlschlägt.
-
benötigt einen Block.
-
-
RSS::Maker.[]
-
neue Methode zur Rückgabe der Maker-Klasse.
-
-
RSS::Maker.supported?(version)
-
neue Methode zur Überprüfung, ob die angegebene Version unterstützt wird.
-
-
RSS::Maker: item.guid.permanent_link?
-
neuer Alias von item.guid.isPermaLink
-
-
RSS::Maker: item.guid.permanent_link=
-
neuer Alias von item.guid.isPermaLink=
-
-
-
DL
-
Verwendet nun libffi als Backend, falls verfügbar. Das bedeutet, DL funktioniert auf mehr Plattformen.
-
-
Fiddle
-
Ein leichtgewichtiger Wrapper für libffi.
-
-
-
Ein Wrapper für libyaml.
-
-
-
Update auf
JSON1.1.9
-
-
REXML
-
REXML::Document.entity_expansion_limit=
Neue Methode zur Festlegung des Entitätserweiterungs-Limits. Standardmäßig ist das Limit auf 10000 gesetzt. Details finden Sie unter folgender URL.
www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/
-
-
RDoc
-
Aktualisiert auf RDoc 2.5.8
-
-
RubyGems
-
Aktualisiert auf RubyGems 1.3.7
-
-
logger
-
Importierte Upstream-Version (logger/1.2.7)
-
löst keine Ausnahme aus, selbst wenn das Schreiben des Logs fehlschlägt.
-
löst keine ShiftingError aus, wenn eine alte Datei bereits existiert. (Es wird keine ShiftingError mehr ausgelöst, nur eine Warnung)
-
-
-
matrix
-
API-Änderung zur strengen Einhaltung mathematischer Definitionen
-
Matrizen müssen nun rechteckig sein.
-
trace, regular?, singular? sind nur für quadratische Matrizen definiert
-
Unterstützung für leere Matrizen
-
Alle ganzzahligen Matrizen haben nun die richtige Determinante (ebenfalls eine ganze Zahl)
-
-
Matrix und Vector enthalten
Enumerable. -
neue Methoden
-
Matrix.build
-
Matrix.empty
-
Matrix#conj
-
Matrix#conjugate
-
Matrix#each
-
Matrix#each_with_index
-
Matrix#empty?
-
Matrix#imag
-
Matrix#imaginary
-
Matrix#real
-
Matrix#real?
-
Matrix#rect
-
Matrix#rectangular
-
-
-
net/http
-
net/https zusammengeführt.
-
-
open3
-
pty
-
openssl
-
scanf
-
unterstützt das Format %a/%A.
-
-
socket
-
inkompatible Änderungen
-
{recvfrom,recvfrom_nonblock,accept,accept_nonblock,sysaccept} gibt eine Absenderadresse als
Addrinfo-Objekt anstelle einer binären sockaddr-Zeichenkette zurück.Addrinfo#to_sgibt die alte binäre sockaddr-Zeichenkette zurück. -
BasicSocket#getsockoptgibt einSocket::Option-Objekt anstelle einer binären Zeichenkette zurück.Socket::Option#to_sgibt die alte binäre Zeichenkette zurück. -
Socket.do_not_reverse_lookupist nun standardmäßig aktiviert.
-
-
neue Klasse
-
neue Methoden
-
erweiterte Methoden
-
Socket.news drittes Argument ist nun optional. -
Socket.pairs drittes Argument ist nun optional. -
Socket.pairundUNIXSocket.pairkönnen einen Block entgegennehmen. -
BasicSocket#send,UDPSocket#send,Socket.getnameinfo,Socket#bindund Socket#{connect,connect_nonblock} akzeptieren einAddrinfo-Objekt als sockaddr. -
BasicSocket#getsockoptakzeptiert einSocket::Option-Objekt. -
Socket.getaddrinfound IPSocket#{addr,peeraddr} akzeptieren ein optionales Argument zum Ein- und Ausschalten der Rückwärtssuche. -
Konstantennamen können ebenso akzeptiert werden wie Konstantenwerte. z.B.
Socket.new(:PF_INET, :SOCK_STREAM, 0) Die Konstantenamen können ohne das Präfix angegeben werden. z.B.Socket.new(:INET, :STREAM, 0)-
Protokoll-/Adressfamilie
-
Socket-Typ
-
Socket-Option Protokollebene
-
Socket-Option Name
-
shutdowns Argument
-
-
-
-
stringio
-
neue Methoden
-
StringIO#read_nonblock
-
StringIO#write_nonblock
-
-
-
Pfadname
-
neue Methoden
-
erweiterte Methoden
-
Pathname#realpathundPathname#realdirpathnehmen ein optionales basedir-Argument entgegen.
-
-
-
Readline
-
neue Methoden
-
Readline.set_screen_size
-
Readline.get_screen_size
-
-
erweiterte Methoden
-
Readline.completion_proc= akzeptiert nil. nil bedeutet, die Standard-Vervollständigungsprozedur zu verwenden.
-
-
-
set
-
neue Methoden
-
-
time
-
inkompatible Änderungen
-
Time.parselöst bei fehlenden Datumsinformationen eineArgumentErroraus.
-
-
-
thread
-
erweiterte Methode
-
ConditionVariable#wait nimmt ein Timeout-Argument entgegen.
-
-
-
securerandom
-
neue Methoden
-
SecureRandom.urlsafe_base64
-
-
-
-
neue Methoden
-
veraltete Methoden
-
URI.decode
-
URI.encode
-
URI.escape
-
URI.unescape
-
-
-
etc
-
neue Methoden
-
-
zlib
-
rbconfig
-
neue Methoden
-
Sprachänderungen
-
Regexp-Eigenschaften (p{}) ignorieren nun Unterstriche, Leerzeichen und Groß-/Kleinschreibung, sodass p{ol chiki} dasselbe ist wie p{Ol_Chiki} -
Regexp unterstützen nun Unicode 5.2 (neue Zeichen und Skripte)
-
d, s und w sind nun nur ASCII; verwenden Sie POSIX-Klammerklassen und p{} für Unicode-Semantik
-
$: enthält nicht mehr das aktuelle Verzeichnis, verwenden Sie require_relative
-
Es ist verboten,
Symbolmit ungültiger Kodierung zu haben.
Kompilierungsoptionen
-
–program-prefix und –program-suffix wirken sich nicht mehr auf die Namen von Shared Objects oder Pfade zu Bibliotheken aus.
Verwenden Sie –with-rubylibprefix=‘${libruby}/${RUBY_INSTALL_NAME}’ und –with-soname=‘${RUBY_INSTALL_NAME}’ für das gleiche Ergebnis wie bei Ruby 1.9.1.
-
–with-arch wird für universelle Binärdateien hinzugefügt, anstelle der Option –enable-fat-binary.
Kompatibilitätsprobleme (ausgenommen Feature-Fehlerbehebungen)
* Enumerator#rewind * Socket#recvfrom * Socket#recvfrom_nonblock * Socket#accept * Socket#accept_nonblock * Socket#sysaccept * BasicSocket#getsockopt * Time.utc * Time.gm * Time.local * Time.mktime * Time.parse * --program-prefix and --program-suffix * --enable-fat-binary * $: See above. * Digest::HMAC Deprecated. See above.