Ruby ist eine plattformübergreifende, frei verteilte, funktionsreiche und Open-Source-Befehlszeilensoftware, die von Grund auf entwickelt wurde, um Entwicklern, die Anwendungen in Ruby erstellen möchten, eine leistungsfähige Programmiersprache zu bieten .
Funktionen, viele Funktionen
Zu den wichtigsten Merkmalen gehören eine einfache Syntax, die von Ada und Eiffel inspiriert wurde, betriebssystemunabhängiges Threading, Ausnahmebehandlungsfunktionen zur Fehlerbehandlung, zahlreiche Operatoren, eine reine und vollständige objektorientierte Sprache sowie Unterstützung für das Hinzufügen von Methoden zu einer Klasse / p>
Darüber hinaus bietet Ruby nur eine einzige Vererbung, echte Closures, Blöcke in seiner Syntax, einen echten Mark-and-Sweep-Garbage-Collector, Unterstützung für das Schreiben von C-Extensions, Integer, Unterstützung für das dynamische Laden von Erweiterungsbibliotheken, und das tut es nicht brauche variable Deklarationen.
Erste Schritte mit Ruby
Die Installation der Ruby-Programmiersprache auf einem GNU / Linux-Betriebssystem ist eine sehr einfache Aufgabe, da das Paket direkt von den Haupt-Software-Repositories auf allen wichtigen Distributionen heruntergeladen werden kann. Verwenden Sie die integrierte Software Center App, um es zu installieren.
Alternativ kann die neueste Version mit dem Quellpaket installiert werden, das kostenlos auf Softoware verteilt wird. Laden Sie es einfach herunter und speichern Sie es in Ihrem Home-Verzeichnis, extrahieren Sie das Archiv und navigieren Sie zum Speicherort der extrahierten Archivdateien in einer Terminalemulator-App (z. B. cd /home/softoware/ruby-2.2.0).
Führen Sie das & lsquo; ./ configure & rsquo; Befehl zum Konfigurieren des Projekts (Sie können den Befehl & lsquo; ./ configure --help & rdquo; verwenden, um verfügbare Optionen zum Optimieren von Ruby für eine bestimmte Hardwarearchitektur anzuzeigen). Führen Sie dann das & quot; machen & rsquo; Befehl, es zu kompilieren und die & sdquo; sudo make install & rsquo; Befehl, um es zu installieren.
Unterstützt unter GNU / Linux, Windows, Mac OS X, BeOS und OS / 2
Ruby ist eine plattformübergreifende Software, die auf allen GNU / Linux-Distributionen sowie auf jedem UNIX-ähnlichen Betriebssystem, einschließlich Mac OS X, BeOS, OS / 2 und Microsoft Windows, erfolgreich eingesetzt werden kann. Es ist kompatibel mit 32-Bit- und 64-Bit-Computerplattformen.
Was ist neu in dieser Version:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.5.0:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.4.2:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.4.1:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.4.0:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.3.3:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.3.1:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.3.0:
- Eine gefrorene Zeichenfolge Literal Pragma wird eingeführt. Mit Ruby 2.1 wurde "str" .freeze optimiert, um die Objektzuordnung zu reduzieren. Ruby 2.3 führt eine neue magische Kommentar- und Befehlszeilenoption ein, um alle String-Literale in den Quelldateien einzufrieren. Zusätzlich zum Debuggen können Sie ermitteln, wo das Objekt erstellt wird "nicht gefrorene Zeichenfolge ändern". Fehler von --debug = Befehlszeile-Option für eingefrorene Zeichenfolgenliterale.
- Ein sicherer Navigationsoperator (sogenannter lonely operator) &., der bereits in C #, Groovy und Swift existiert, wird eingeführt, um die Handhabung von Objekten wie obj & .foo zu erleichtern. Array # dig und Hash # dig werden ebenfalls hinzugefügt. Beachten Sie, dass sich dies wie ein Versuch verhält! von Active Support, die speziell nur nil behandeln.
- Der Edelstein did_you_mean ist gebündelt. Der Edelstein did_you_mean zeigt die Kandidaten für NameError und NoMethodError an, um das Debugging zu erleichtern.
- RubyVM :: InstructionSequence # to_binary und .load_from_binary werden als experimentelles Feature eingeführt. Mit diesen Funktionen können wir ein ISeq (Bytecode) Vorkompilierungssystem erstellen.
- Es enthält auch viele Leistungsverbesserungen, zum Beispiel überdenken die Methodeneingabedatenstruktur, führen eine neue Tabellendatenstruktur ein, optimieren den Proc # -Aufruf, optimieren die Codeebene für die Objektzuordnung und den Methodenaufrufcode, die Datenstruktur der intelligenteren Instanzvariablen, Socket und I / O erlauben die Verwendung von "Ausnahme:" Schlüsselwörter für leistungsstarke nicht blockierende E / A und so weiter.
Was ist neu in Version 2.2.3:
- Diese Version enthält den Sicherheitsupdate für eine RubyGems-Domäne Sicherheitsanfälligkeit für die Namensüberprüfung CVE-2015-3900 Anforderungs-Hijacking-Schwachstelle in RubyGems 2.4.6 und früher
Was ist neu in Version 2.2.2:
- Diese Version enthält den Sicherheitsupdate für eine OpenSSL-Erweiterung Sicherheitsanfälligkeit bei der Überprüfung des Hostnamens.
Was ist neu in Version 2.2.0:
- VM (Methodencache)
- RGenGC (Siehe die RubyKaigi-Präsentation und die RubyConf 2013-Präsentation von ko1)
- Verfeinerungen # 8481 # 8571
- Syntaxänderungen:
- Dezimal / Komplexes Literal # 8430
- defs Rückgabewert # 3753
- Bignum:
- verwende GMP # 8796
- Zeichenfolge # scrub # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 und RubyGems 2.2.0
- "literal" .freeze ist jetzt optimiert # 9042
- füge Ausnahme # cause # 8257 hinzu
- aktualisiert Bibliotheken wie BigDecimal, JSON, NKF, Rake, RubyGems und RDoc
- entferne Flüche # 8584
Was ist neu in Version 2.0.0-p0:
- Kernfunktionen der Sprache:
- Schlüsselwortargumente, die dem API-Design Flexibilität verleihen
- Modul # prepend, was eine neue Möglichkeit ist, eine Klasse zu erweitern
- Ein Literal% i, das leicht ein Array von Symbolen erstellt
- __ dir__, die den Namen der Datei zurückgibt, die gerade ausgeführt wird
- Die UTF-8-Standardcodierung, die viele magische Kommentare als unzulässig erklärt
- Integrierte Bibliotheken:
- Enumerable # faul und Enumerator :: Lazy, für (möglicherweise unendlichen) Lazy Stream
- Enumerator # size und Range # size für die Lazy-Size-Auswertung
- #to_h, das ist eine neue Konvention für die Umwandlung in Hash
- Onigmo, das ist eine neue Regexp-Engine (eine Abzweigung von Oniguruma)
- Asynchrone Ausnahmebehandlungs-API
- Debug-Unterstützung:
- DTrace-Unterstützung, die Laufzeitdiagnose in der Produktion ermöglicht
- TracePoint, eine verbesserte Tracing-API
- Leistungsverbesserungen:
- GC-Optimierung durch Bitmap-Markierung
- Kernel # erfordert eine Optimierung, die den Rails-Start sehr schnell macht
- VM-Optimierung wie Methodenversand
- Optimierung des Float-Betriebs
Was ist neu in Version 1.9.3-p392:
- Diese Version enthält Sicherheitsupdates zu gebündeltem JSON und REXML:
- Sicherheitsanfälligkeit bezüglich Denial-of-Service und unsichere Objekterstellung in JSON (CVE-2013-0269)
- Entity-Erweiterung DoS-Schwachstelle in REXML (XML-Bombe)
- Und einige kleine Bugfixes sind ebenfalls enthalten.
Was ist neu in Version 1.9.3-p385:
- Diese Version enthält einen Sicherheitsupdate zu Bundle RDoc.
Was ist neu in Version 1.9.3-p384:
- Diese Version enthält einen Sicherheitsupdate zu Bundle RDoc.
Was ist neu in Version 1.9.3-p286:
- $ SAFE-Sicherheitslücke wegen Exception # to_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Unbeabsichtigte Dateierstellung durch Einfügen eines ungültigen NUL-Zeichens
- andere viele Fehlerbehebungen.
Kommentare nicht gefunden