Skip to content

Commit 9abb25a

Browse files
committed
Merge branch 'translate-2-6-0-rc1-to-de'
2 parents a240d57 + 3040463 commit 9abb25a

File tree

1 file changed

+197
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)