Avatar von TomManenor
  • TomManenor

42 Beiträge seit 05.05.2021

@Georg Nold: Rust vs. neuer GCC 11 Analyzer?

Sie schreiben in ihrem Artikel i'X Seite 43 rechts oben, daß es zu jedem Zeitpunkt immer nur einen Besitzer (Owner) für Werte geben kann, und daß, sobald der Owner den Gültigkeitsbereich (Scope) verläßt, der Wert gelöscht wird. Dazu sei nur ein Zeiger je Wert erlaubt, der Änderungen zuläßt.

Das ist aber doch bei C und lokalen Variablen ebenso, nicht? Da ist ein malloc() und free() ebenso implizit und externe Referenzen kann es nicht geben!

Und dann kommt noch eine Merkwürdigkeit, wo mir wieder der Unterschied zu C nicht klar ist:

"Statt Null-Zeigern verwendet man Option-Typen, die aus dem Enum-Typ None und Some(T) bestehen. Variablen mit einem regulären Wert sind vom Type Some(T). Statt eines Null-Werts" weist man Option-Variablen ohne Wert None zu."

Das aber ist in C auch problemlos möglich! Auch wenn der C Compiler es nicht erzwingt. Zudem macht der brandneue GCC C-Compiler ebenfalls sehr ausgiebige Checks, die dem, was der Rust Compiler checkt, doch sehr ähnlich sehen.

Daher meine Frage: Gibt es schon qualitative Vergleiche zwischen Rust und GCC 11 mit seinem neuen Analyzer oder wird hier doch überwiegend neues Obst mit altem Wein verglichen?

Danke!

-Wanalyzer-double-fclose -Wanalyzer-double-free -Wanalyzer-exposure-through-output-file -Wanalyzer-file-leak -Wanalyzer-free-of-non-heap -Wanalyzer-malloc-leak -Wanalyzer-mismatching-deallocation -Wanalyzer-possible-null-argument -Wanalyzer-possible-null-dereference -Wanalyzer-null-argument -Wanalyzer-null-dereference -Wanalyzer-shift-count-negative -Wanalyzer-shift-count-overflow -Wanalyzer-stale-setjmp-buffer -Wanalyzer-tainted-array-index -Wanalyzer-unsafe-call-within-signal-handler -Wanalyzer-use-after-free -Wanalyzer-use-of-pointer-in-stale-stack-frame -Wanalyzer-write-to-const -Wanalyzer-write-to-string-literal

Das Posting wurde vom Benutzer editiert (05.05.2021 14:12).

Bewerten
- +