Skip to content

Commit d867919

Browse files
author
Marvin Gülker
committed
Translate 2.6.0-preview1 release post (de)
1 parent f61e942 commit d867919

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.6.0-preview1 veröffentlicht"
4+
author: "naruse"
5+
translator: "Marvin Gülker"
6+
date: 2018-02-24 00:00:00 +0000
7+
lang: de
8+
---
9+
10+
Wir freuen uns, die Veröffentlichung von Ruby 2.6.0-preview1
11+
bekanntgeben zu können.
12+
13+
Ruby 2.6.0-preview1 ist die erste Vorschau auf Ruby 2.6.0. Sie wird
14+
dieses Mal besonders früh veröffentlicht, weil sie ein besonders
15+
wichtiges neues Feature enthält: den JIT.
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 Umgsbungsvariable `$RUBYOPT` an. Bei Angabe von
30+
`--jit-verbose=1` werden Informationen über die durchgeführte
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 oder Clang gebaut wird und der Compiler auch während des
39+
Programmablaufs verfügbar ist. Ansonsten können Sie ihn momenten leider
40+
nicht verwenden.
41+
42+
Zum jetzigen Zeitpunkt (2.6.0-preview1) bereiten wir lediglich die
43+
Infrastruktur für den JIT vor und es wurden nur wenige Optimierungen
44+
eingebaut. Zwar kann man in Mikro-Benchmarks einige potenzielle
45+
Verbesserungen feststellen, jedoch ist diese Veröffentlichung absolut
46+
ungeeignet, um die finale Performanz von Rubys JIT-Compiler zu
47+
bestimmen. Dies gilt insbesondere für umfangreiche Programme wie
48+
Rails-Anwendungen.
49+
50+
Wir erwarten, dass durch die geplante Aufnahme von Methoden-Inlining
51+
in den JIT-Compiler Rubys Performanz erheblich verbessert wird.
52+
53+
Im Übrigen planen wir, mehr Plattformen zu unterstützen. Nächstes Ziel
54+
in dieser Hinsicht ist die Unterstützung von Visual Studio.
55+
56+
Machen Sie sich bereit für eine neue Ära von Rubys Performanz.
57+
58+
## Neue Features
59+
60+
* `Random.bytes` hinzugefügt [Feature #4938]
61+
* `Binding#source_location` hinzugefügt [Feature #14230]
62+
63+
Diese Methode gibt ein 2-Element-Array mit den Bestandteilen
64+
`__FILE__` und `__LINE__` zurück, die beschreiben, an welcher Stelle
65+
im Quelltext ein Binding definiert wurde. Dieselbe Information
66+
konnte bisher über `eval("[__FILE__, __LINE__]", binding)`
67+
ermittelt werden, allerdings planen wir, dieses Verhalten so zu
68+
ändern, dass `Kernel#eval` den Definitionsort eines `binding`
69+
ignoriert [Bug #4352]. Nutzern wird deshalb empfohlen, auf diese neu
70+
eingeführte Methode umzusteigen.
71+
72+
* Option `:exception` zu `Kernel.#system` hinzugefügt. Diese Option
73+
führt dazu, dass #system statt `false` zurückzugeben einen Fehler
74+
verursacht [Feature #14386].
75+
76+
## Performanzverbesserungen
77+
78+
* `Proc#call` beschleunigt, weil wir uns nicht mehr um `$SAFE` kümmern
79+
müssen. [Feature #14318]
80+
81+
Mithilfe des `lc_fizzbuzz`-Benchmarks, das sehr häufig `Proc#call`
82+
benutzt, haben wir eine 1,4-fache Beschleunigung gemessen. [Bug #10212]
83+
84+
* `block.call` beschleunigt, wenn `block` als Block-Parameter
85+
übergeben wird. [Feature #14330]
86+
87+
Bereits Ruby 2.5 verbessert die Performanz bei der Übergabe von
88+
Blöcken. [Feature #14045]
89+
Mit Ruby 2.6 wird auch der Aufruf von übergebenen Blöcken
90+
beschleunigt, sodass wir im Mikro-Benchmark einer 2,6-fache
91+
Beschleunigung messen konnten.
92+
93+
## Sonstige bemerkenswerte Änderungen seit 2.5
94+
95+
* `$SAFE` ist ein prozess-globaler Zustand und kann wieder auf `0` gesetzt
96+
werden. [Feature #14250]
97+
98+
* Die Übergabe von `safe_level` an `ERB.new` ist als veraltet
99+
markiert worden. Die Parameter `trim_mode` und `eoutvar` wurden in
100+
Schlüsselwortargumente umgesetzt. [Feature #14256]
101+
102+
* RubyGems 2.7.6 aufgenommen.
103+
104+
Siehe die [NEWS](https://github.com/ruby/ruby/blob/v2_6_0_preview1/NEWS)
105+
oder die [Commit-Logs](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview1)
106+
für weitere Details.
107+
108+
Mit diesen Änderungen wurden
109+
[1115 Dateien geändert, 23023 Einfügungen(+), 14748 Löschungen(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_preview1)
110+
seit Ruby 2.5.0!
111+
112+
Am heutigen 24. Februar ist Rubys 25. Geburtstag.
113+
Herzlichen Glückwunsch Ruby, und viel Spaß mit der Programmierung mit
114+
Ruby 2.6.0-preview1!
115+
116+
## Download
117+
118+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.gz>
119+
120+
SIZE: 16082501 bytes
121+
SHA1: 94b4a2f5f992dc9855364284e9c64316bf129c90
122+
SHA256: 2023c42676d9237481e1a97157d5e2ecc10db5e320d5b9cf872ec1d293265d61
123+
SHA512: 004696c4f087333ba7cb2285418dcce70f399966ae8fed817aab9759fd2d75beb088c4aeb294fcd4260112e8422f490cd4dbdfce402d73f96bb679b8bb3e1607
124+
125+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.zip>
126+
127+
SIZE: 19807007 bytes
128+
SHA1: 24d76f67bf913348eca783a2ecf6f3faf37299ae
129+
SHA256: 6c883927e80430cf07f2d90728d6c2c71164223f378a48ebf964d3b66319f623
130+
SHA512: 1e7f318cec1b7875fd9891df671078de7585b556695a2a85708483ddcacfd6e0b63b70ec2535e92ff981b4f72063721ed552df49688e066666fcd7ae520ae667
131+
132+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.bz2>
133+
134+
SIZE: 14104578 bytes
135+
SHA1: 9f0fb79643a4673a839b0c8496eccc6e1dbd022d
136+
SHA256: 8bd6c373df6ee009441270a8b4f86413d101b8f88e8051c55ef62abffadce462
137+
SHA512: d9cb270529a97670d54f43a0236fab072714e715c39277dab70b7a1843ec818e6700e47e1384c7256f9e0ae41ab2c0b768a0de38a5ecf4f4fff5da6ef5ad4944
138+
139+
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.xz>
140+
141+
SIZE: 11423984 bytes
142+
SHA1: bbbc89d760cdaadbca3cbff587295864edeff0af
143+
SHA256: 1d99139116e4e245ce543edb137b2a8873c26e9f0bde88d8cee6789617cc8d0e
144+
SHA512: d12ff29778d8d940344619881b4d8247c2fb6b44ac2b2dbddb7078828e893cfac9a5a95b5588f0afdbed52bdb6dea95cff1b9ce3ad47dfa62209e97dab8810b6

0 commit comments

Comments
 (0)