Skip to content

Commit b272b60

Browse files
committed
Translate 2.6.0-rc2 release (de)
1 parent f145587 commit b272b60

File tree

1 file changed

+198
-0
lines changed

1 file changed

+198
-0
lines changed
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.6.0-rc2 veröffentlicht"
4+
author: "naruse"
5+
translator: "Marvin Gülker"
6+
date: 2018-12-15 00:00:00 +0000
7+
lang: de
8+
---
9+
10+
Wir freuen uns, die Freigabe von Ruby 2.6.0-rc2 ankündigen zu können.
11+
12+
Ruby 2.6.0-rc2 ist die zweite Vorschau auf Ruby 2.6.0. Der RC2 wird
13+
veröffentlicht, um die Paketierung von Bundler 1.17 anstelle von 2.0
14+
zu testen. Daneben enthält die Vorschau einige neue Features sowie
15+
Performanzverbesserungen, beispielsweise:
16+
17+
## JIT
18+
19+
Ruby 2.6 führt erstmals einen JIT-Compiler _(Just in Time Compiler)_ ein.
20+
21+
Der JIT-Compiler soll die allgemeine Performanz aller Ruby-Programme
22+
verbessern. Rubys JIT-Compiler arbeitet anders als herkömmliche
23+
JIT-Compiler für andere Programmiersprachen, denn er schreibt C-Code
24+
auf die Festplatte und startet dann einen gewöhnlichen
25+
C-Compiler-Prozess, um Maschinencode zu erzeugen. Siehe dazu auch:
26+
[Die Funktionsweise von MJIT von Wladimir Makarow](https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization).
27+
28+
Um den JIT zu benutzen, geben Sie `--jit` als Kommandozeilenoption
29+
oder in der Umgebungsvariablen `$RUBYOPT` an. Bei Angabe von
30+
`--jit-verbose=1` werden Informationen über die laufende
31+
JIT-Kompilation ausgegeben. Siehe auch `ruby --help` für weitere
32+
Optionen.
33+
34+
Diese Veröffentlichung soll Ihnen Gelegenheit geben, zu überprüfen, ob
35+
der JIT auf Ihrer Plattform funktioniert. Außerdem soll eine Prüfung
36+
auf Sicherheitsprobleme noch vor der Freigabe von 2.6 ermöglicht
37+
werden. Der JIT-Compiler wird derzeit nur unterstützt, wenn Ruby mit
38+
GCC, Clang oder Microsoft VC++ gebaut wird und der Compiler auch
39+
während des Programmablaufs verfügbar ist. Ansonsten können Sie ihn
40+
momentan leider nicht verwenden.
41+
42+
Mit Stand Ruby 2.6.0-rc2 haben wir eine 1,7-fache Verbesserung
43+
der Performanz gegenüber Ruby 2.5 bei einem CPU-intensiven,
44+
nicht-trivialen Belastungstest namens Optcarrot <https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208>
45+
festgestellt. Wir werden darüber hinaus auch die Performanz von
46+
speicherhungrigen Anwendungen wie solchen auf Rails-Basis verbessern.
47+
48+
Machen Sie sich bereit für eine neue Ära von Rubys Performanz.
49+
50+
## RubyVM::AbstractSyntaxTree [Experimentell]
51+
52+
Ruby 2.6 führt das Modul `RubyVM::AbstractSyntaxTree` ein.
53+
54+
Dieses Modul verfügt über die Methoden `parse`, die den als String
55+
übergenen Ruby-Code verarbeitet und eine Liste von Knoten des ASTs
56+
_(Abstract Syntax Tree)_ zurückgibt, und `parse_file`, die die
57+
übergebene Ruby-Quelldatei auf ähnliche Weise verarbeitet und
58+
ebenfalls AST-Knoten zurückgibt.
59+
60+
Weiterhin wird die ebenfalls experimentelle Klasse `RubyVM::AbstractSyntaxTree::Node`
61+
eingeführt. Mithilfe von `Node`-Objekten können die Positionsinformationen und
62+
Angaben über Kindknoten ermittelt werden. Eine Kompatibilität der
63+
Struktur von AST-Knoten kann derzeit nicht gewährleistet werden.
64+
65+
## Neue Features
66+
67+
* Neuer alias `then` für `Kernel#yield_self`. [[Feature #14594]](https://bugs.ruby-lang.org/issues/14594)
68+
69+
* `else` ohne `rescue` verursacht einen Syntaxfehler. [EXPERIMENTELL][[Feature #14606]](https://bugs.ruby-lang.org/issues/14606)
70+
71+
* Konstantennamen können auch mit Großbuchstaben außerhalb des
72+
ASCII-Zeichensatzes beginnen. [[Feature #13770]](https://bugs.ruby-lang.org/issues/13770)
73+
74+
* Endlos-Range [[Feature #12912]](https://bugs.ruby-lang.org/issues/12912)
75+
76+
Es wird ein Endlos-Range `(1..)` eingeführt, der über kein Ende
77+
verfügt. Typische Anwendungsfälle sehen wie folgt aus:
78+
79+
ary[1..] # identisch zu ary[1..-1] ohne magische -1
80+
(1..).each {|index| ... } # Endlosschleife ab Index 1
81+
ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... }
82+
83+
* `Binding#source_location` hinzugefügt. [[Feature #14230]](https://bugs.ruby-lang.org/issues/14230)
84+
85+
Diese Methode gibt ein 2-Element-Array mit den Bestandteilen
86+
`__FILE__` und `__LINE__` zurück, die beschreiben, an welcher Stelle
87+
im Quelltext ein Binding definiert wurde. Dieselbe Information
88+
konnte bisher über `eval("[__FILE__, __LINE__]", binding)` ermittelt
89+
werden, allerdings planen wir, dieses Verhalten so zu ändern, dass
90+
`Kernel#eval` den Definitionsort eines `binding` ignoriert [[Bug
91+
#4352]](https://bugs.ruby-lang.org/issues/4352). Nutzern wird
92+
deshalb empfohlen, auf diese neu eingeführte Methode umzusteigen.
93+
94+
* Option `:exception` zu `Kernel.#system` hinzugefügt. Diese Option
95+
führt dazu, dass #system statt `false` zurückzugeben einen Fehler
96+
verursacht. [[Feature #14386]](https://bugs.ruby-lang.org/issues/14386)
97+
98+
* Einmal-Modus _(oneshot mode)_
99+
hinzugefügt. [[Feature#15022]](https://bugs.ruby-lang.org/issues/15022)
100+
* Anstelle von „wie oft wurde eine bestimmte Zeile ausgeführt“,
101+
prüft dieser Modus, „ob jede Zeile wenigstens einmal oder gar
102+
nicht ausgeführt wurde“. Der entsprechende Hook wird für jede
103+
Zeile höchstens einmal ausgeführt. Nach seinem Abschluss wird die
104+
entsprechende Flagge entfernt, d.h. das Programm läuft danach
105+
ohne geschwindigkeitsrelevante Einschränkungen.
106+
* Schlüsselwortargument `:oneshot_lines` zu Coverage.start
107+
hinzugefügt.
108+
* Schlüsselwortargumente `:stop` und `:clear` zu Coverage.result
109+
hinzugefügt. Wenn `clear` wahr ist, setzt es den Zähler auf Null
110+
zurück. Wenn `:stop` wahr ist, wird die Abdeckungsmessung
111+
ausgeschaltet.
112+
* `Coverage.line_stub` hinzugefügt. Es handelt sich um eine einfache
113+
Hilfsfunktion, die eine kurze Zusammenfassung der Zeilenabdeckung
114+
des übergebenen Quellcodes erzeugt.
115+
* `FileUtils#cp_lr` hinzugefügt. [[Feature #4189]](https://bugs.ruby-lang.org/issues/4189)
116+
117+
## Performanzverbesserungen
118+
119+
* `Proc#call` beschleunigt, weil wir uns nicht mehr um `$SAFE` kümmern
120+
müssen. [[Feature #14318]](https://bugs.ruby-lang.org/issues/14318)
121+
122+
Mithilfe des `lc_fizzbuzz`-Benchmarks, das sehr häufig `Proc#call`
123+
benutzt, haben wir eine 1,4-fache Beschleunigung gemessen. [[Bug #10212]](https://bugs.ruby-lang.org/issues/10212)
124+
125+
* `block.call` beschleunigt, wenn `block` als Block-Parameter
126+
übergeben wird. [[Feature #14330]](https://bugs.ruby-lang.org/issues/14330)
127+
128+
Bereits Ruby 2.5 verbessert die Performanz bei der Übergabe von
129+
Blöcken. [[Feature #14045]](https://bugs.ruby-lang.org/issues/14045)
130+
Mit Ruby 2.6 wird auch der Aufruf von übergebenen Blöcken
131+
beschleunigt, sodass wir im Mikro-Benchmark eine 2,6-fache
132+
Beschleunigung messen konnten.
133+
134+
* Es wird ein flüchtiger Heap _(transient heap, theap)_
135+
eingeführt [[Bug #14858]](https://bugs.ruby-lang.org/issues/14858) [[Feature #14989]](https://bugs.ruby-lang.org/issues/14989). Dabei handelt es sich um
136+
einen automatisch verwalteten Freispeicher für kurzlebige Objekte im
137+
Speicher, auf welche von bestimmten Klassen (Array, Hash, Object und
138+
Struct) verwiesen wird. Dies führt beispielsweise dazu, dass die
139+
Erstellung kleiner und kurzlebiger Hash-Objekte doppelt so schnell
140+
ist. Im RDoc-Belastungstest haben wir eine 6- bis 7-prozentige
141+
Performanzverbesserung festgestellt.
142+
143+
## Sonstige bemerkenswerte Änderungen seit 2.5
144+
145+
* `$SAFE` ist ein prozess-globaler Zustand und kann wieder auf `0` gesetzt
146+
werden. [[Feature #14250]](https://bugs.ruby-lang.org/issues/14250)
147+
148+
* Die Übergabe von `safe_level` an `ERB.new` ist als veraltet
149+
markiert worden. Die Parameter `trim_mode` und `eoutvar` wurden in
150+
Schlüsselwortargumente geändert. [[Feature #14256]](https://bugs.ruby-lang.org/issues/14256)
151+
152+
* Ruby unterstützt jetzt Unicode in Version 11. Es ist geplant, die
153+
Versionen 12 und 12.1 in zukünftigen TEENY-Veröffentlichungen von
154+
Ruby 2.6 zu unterstützen.
155+
156+
* RubyGems 3.0.0.beta3 aufgenommen. Die Optionen `--ri` und `--rdoc`
157+
wurden entfernt. Benutzen Sie stattdessen `--document` und
158+
`--no-document`.
159+
160+
* [Bundler](https://github.com/bundler/bundler) wird standardmäßig
161+
mitgeliefert.
162+
163+
Siehe die [NEWS](https://github.com/ruby/ruby/blob/v2_6_0_rc2/NEWS)
164+
oder die [Commit-Logs](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc2)
165+
für weitere Details.
166+
167+
Mit diesen Änderungen wurden
168+
[6411 Dateien geändert, 228864 Einfügungen(+), 97600 Löschungen(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc2)
169+
seit Ruby 2.5.0!
170+
171+
Viel Spaß mit der Programmierung mit Ruby 2.6.0-rc2!
172+
173+
## Download
174+
175+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc2.tar.gz>
176+
177+
SIZE: 16723556 bytes
178+
SHA1: a4d7f8c8c3584a60fe1a57d03d80162361fe3c78
179+
SHA256: 9c0245e96379246040f1fd0978f8e447e7f47cdccbdaffdb83302a995276b62b
180+
SHA512: 789f608f93db6e12835911f3105d9abe2fabb67cd22dc3bafdff38716ac56974925738e7f7788ebef5bdf67b6fd91f84a4ee78a3e5d072cfc8ee0972de737b08
181+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc2.zip>
182+
183+
SIZE: 20643747 bytes
184+
SHA1: c1a2898949d929dd952880f1c1c2bac2ef2609b4
185+
SHA256: e8a446cf1f2ffc14483604de0a5e12c2578dd2f672ae87798ca2bbb9b7b73899
186+
SHA512: 2d06feae13f485f5da59574672b14d03881ed532d652648f94e2435f5d81df623b5ef532b8ba8e0b9bc4ee6baf7c0328a5610eab753a9020a0fea2673254c76c
187+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc2.tar.bz2>
188+
189+
SIZE: 14581998 bytes
190+
SHA1: 94bbee97de4955e67effb7f512c58300617a3a09
191+
SHA256: b3d03e471e3136f43bb948013d4f4974abb63d478e8ff7ec2741b22750a3ec50
192+
SHA512: 9bfbe83fd3699b71bae2350801d8c967eb128e79b62a9d36fc0f011b83c53cab28a280939f4cc9f0a28f9bf02dce8eea30866ca4d06480dc44289400abf580ba
193+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc2.tar.xz>
194+
195+
SIZE: 11908088 bytes
196+
SHA1: 13a7f06d832dc28989e3e4321490a6ba528ed023
197+
SHA256: d620b3d87b3190867304067f3ce77f5305f7ec1b2e73b09c17710c97c028986d
198+
SHA512: a3dc43c0bc70dfdb9ff0d18b5b9797bbf332524f5d3bbb7940cf4e32286ca715808acfd11ebf3cdbe358a2466b7c6b5be3a7a784af7eb95c071fe1f8b4ab1261

0 commit comments

Comments
 (0)