Regexkit.

ein objektiv-c-Framework für reguläre Ausdrücke mit der PCRE-Bibliothek für Mac OS X Cocoa und Gnustep
Jetzt downloaden

Regexkit. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD
  • Preis:
  • FREE
  • Name des Herausgebers:
  • John Engelhart
  • Website des Verlags:
  • Betriebssysteme:
  • 10.5
  • Dateigröße:
  • 1.7 MB

Regexkit. Stichworte


Regexkit. Beschreibung

Ein objektiv-c-Framework für reguläre Ausdrücke mit der PCRE-Bibliothek für Mac OS X Cocoa und Gnustep Regexkit ist ein Ziel-C-Framework für reguläre Ausdrücke: · Unterstützung für Mac OS X Cocoa und Gnustep. · Keine Unterklassifizierung erforderlich. Fügt allen NSArray-, NSDictionary-, NSset-, NSDictionary-, NSSET- und NSString-Foundation-Objekten mit einem Rich-Set von objektiv-c-Kategorienzugaben hinzu. · Unicode UTF-8 unterstützt. · Umfangreiche, hochwertige Dokumentation. · Vollquellcode mit einer BSD-Lizenz . · Verwendet die lizenzierte BSD-lizenzierte PCRE-Perl-kompatible reguläre Ausdrückungsbibliothek für den regulären Ausdrucksmotor.Imcludes Unterstützung für Mac OS X 10.5 Leopard: · 64 Bit-Support. Vorgebaut für PPC, PPC64, I386 und X86_64. · Müllkollektion aktiviert. Komplette Unterstützung für Leopards Garbage Collection-Funktion. · Integrierte Xcode 3.0-Dokumentation. Erhalten Sie Echtzeit-API-Informationen über den Forschungsassistenten. Hier sind einige wichtige Funktionen von "regexkit": · Platz für die kompilierte Form des regulären Ausdrucks für Geschwindigkeit. · Multithreading Safe, einschließlich Multiple Reader, Einzelautor-Multithread-Zugriff auf den kompilierten Regex-Cache. · Minimale Verwendung von Heap-Speicher (dh Malloc () und frei ()), wobei die meisten temporären Puffer dynamisch vom Stapel benötigt. · Verwendet die Kernstiftung direkt auf Mac OS X für zusätzliche Geschwindigkeit. Was ist neu in dieser Version: · Änderung der RKTETTYOBJECT-Makros, um eine Funktion anstelle eines Vorprozessor-Makros zu sein. Dies rasiert ~ 30k von der ausführbaren Datei oder 4-7k pro Architektur. · Eine Performance -ote hinzugefügt, wenn pcre_study den regulären Ausdruck optimieren konnte. · Xcode_cflags_ * und pcre_cflags_ * hinzugefügt, um REGEXKIT Build Settings.xcconfig zum Hinzufügen von OS-spezifischen CFLAGs in Xcode und PCRE-Quellen hinzu. · Verwenden der oben hinzugefügten neuen CFLAGs hinzugefügt -FSTACK-Protector-Ganz in die Mac OS X 10.5-Ziele. -FStack-Protector-ALL ist ein GCC-Funktion, das Apple aus späteren Releases von GCC unterstützt, die viele Stapel zertrümmern kann. · Modifizierte ProjectExportedsymbols zum Exportieren des neuen Rkerrorkey, Rkerrordomain und RKREGEXPRCRELIBRARY NString-Konstanten. · Regexkit-private Erweiterungen in NSException und NSERROR hinzugefügt, um die Erstellung lokaler Versionen von jeweils für einfache Instantienungen zu vereinfachen. · Mehrere regexkit-private Pre-Processor-Makros hinzugefügt, um die Erstellung lokaler Zeichenfolgen zu vereinfachen. Diese sind in der Natur ähnlich zu den Fundamenten NslociabsString-Familie von Makros. · Konvertierte rkconvertutf8toutf16RangeForstring und rkconvertutf16ToutF8RangeForstring auf StringBuffer-Äquivalente, sodass interne Routinen die effizienteren StringBuffer-Funktionen anrufen können. Die einfachen String-Methoden wurden Wrapper um die Stringbuffer-Funktionen. · Erstellt eine Regexkit-Privatfunktion RKLOCALIZESSTRINGFORPCRECKOMPILEErrorcode, die eine Fehlerbeschreibungszeichenfolge zurückgibt, die besser für NSERROR-Beschreibungen geeignet ist, die Endbenutzer sehen. Die lokalisierten Saiten stammen letztendlich aus der Frameworks Bündelressourcendatei pcre.strings. · Erstellt eine Regexkit-private globale Variable, rkframeworkbundle, die mit RKREGEX bei Ladezeit erstellt wird, in der die Mittel zum Zugriff auf lokalisierte Saiten bereitgestellt werden. · Erstellt eine private Funktion, die eine NSException von einem NSError auf dieselbe Weise erstellt, wie in InitWitHreGexstring: Optionen: Methode zuvor tat, da diese Methode jetzt jetzt erstellt und einen NSERROR für die meisten Fehlerbedingungen erstellt und zurückgibt. · Modified rkregex iserqual: Um direkt auf die Vergleichsobjekte-Instanzvariablen zuzugreifen, wenn er ein RKREGEX-Klassenobjekt für Geschwindigkeit ist. · Eine regexkit-private Funktion hinzugefügt, um die Anzahl der Bytes für ein utf8-codiertes Zeichen an einem bestimmten Zeiger zurückzugeben, und eine Funktion, die den Bereich für ein utf8-codiertes Zeichen an einem bestimmten Versatz eines Zeigers zurückgibt. Wenn der Offset auf die Mitte eines utf8-kodierten Zeichens zeigt, ist er bis zum Anfang des UTF8-Zeichens, der sich am angegebenen Offset befindet, wieder an den Start des UTF8-Zeichens wiederkehrt, und bestimmen Sie dann die Anzahl der Bytes, die erforderlich sind, um einen einzelnen Unicode-Codepunkt, der im UTF8-Format codiert ist, erforderlich ist. Die Verriegelungsstrategien erweitert, dass die private Framework-Sperrklasse bietet. Zuvor lieferte die Verriegelungsklasse nur eine blockierende Erfassungsstrategie. Die jetzt verfügbaren Strategien umfassen: · Versuche zum Lesen. · Versuchen Sie, das Schreiben zu schreiben. · Versuchen Sie, das Schreiben zu schreiben, dann versuchen Sie, das Lesen zu lesen. · Versuchen Sie, das Schreiben zu schreiben, und dann blockieren Sie den Erwerb zum Lesen. · Blockierung des Erwerbs zum Lesen. · Blockierung des Erwerbs zum Schreiben. · Diese Änderung wurde vorgenommen, um bestimmte Caching-Funktionen nicht zu blockieren, wenn ein Thread den angeforderten Maß an gegenseitiger Ausgrenzung für eine gemeinsame Ressource unverzüglich erwerben kann. · Fügte eine neue private Verriegelungsklasse, Rkconditionlock hinzu, die dem Kollegen des Fundaments ähnelt. Dies wurde durchgeführt, um eine schnellere Funktionsaufrufoberfläche und verbesserte Verriegelungsmethoden zusammen mit nstimeInterval basierenden relativen Zeiten anstelle der viel teureren NSDate-Objekt-basierten Zeiten bereitzustellen. Die Verwendung von NSDate-Objekten verursacht eine erhebliche Leistungsstrafe aufgrund der Objekterstellung und des Zerstörungsaufwands, um letztendlich einen doppelten Wert als Argument zu vermitteln. Durch direktes Bereitstellen eines relativen Zeitraums mit doppelt bestandenem Parameterargument, der vollständig umgangen wird. Die beiden Funktionen rkfastconditionLoce und rkfastconditionunlock bieten alle Funktionalität, die direkt aufgerufen werden können, und die objektorientierten Schnittstellenverfahren sind nur Stubs für diese beiden Funktionen. Diese Funktionen und Objekte werden nicht exportiert und sind grundsätzlich privat. · Konzern Sie viel gemeinsame Logik für die Schlösser in die beiden Funktionen rkfastmutexlock und rkfastmutexunlock. Die RKLock-Klasse wurde in diese gemeinsame Codebasis verschoben, aber vorerst bleibt RkReadWritelock unverändert. · Die von RKLock und RKCONDITIONSLOCK erstellten PTHREAD und RKCONDITIONSLOCK sind nicht mit dem PTHREAD Mutex-Attribut Pthread_Mutex_ERRORCHECK erstellt, der dazu führt, dass zusätzliche Vernunftsprüfungen, wie beispielsweise derselbe Faden, der einen verriegelten Mutex verriegelt werden sollen, einen entriegelten Mutex entriegeln, oder ein Thread, der versucht, einen Mutex zu entsperren das wurde von einem anderen Thread gesperrt. · Die im Installationsprogramm angezeigte Lizenz wurde aktualisiert, um die PCRE-Lizenz explizit aufzunehmen. · Die PCRE-Lizenz in der Lizenzdatei der Projekt-Root-Directory-Lizenz hinzugefügt. · Die Lizenzdatei in das REGEXKIT-Framework-Ziele hinzugefügt, um die Phase-Bündelressourcen-Build-Phase zu kopieren, sodass die Lizenz im Verzeichnis Frameworks vorhanden ist. · RkatomicBarrier Makros / Funktionen hinzugefügt, die eine vollständige Speichersperrei Semantik für Architekturen durchführen, in der dies einen Unterschied macht. · Änderung des Beginns und Endlock-DTrace-Sondens-Sondens-Sorts-Argumente von INT zu NSinteger, um die von Rklock und RkReadWritelock bereitgestellten Informationen abzugleichen. Die angeforderte Sperrstrategie und das erfassende endgültige Sperrniveau werden nun anstelle einer einfachen booleschen Lese- / Schreibanzeige gemeldet. · Fügte Schritte, Endlock hinzu und entsperren Sie sich, um wiedergegedkit.usdt zu entsperren. · Split der Header-Datei regexkitprivate.h in mehrere Dateien in mehrere Dateien, regexkitprivateatomic.h, regexkitPrivatTrace.h, regexkitPrivatelocalization.h, regexkitprivatEmemory.h, regexkitPrivatethreads.h, regexkitPrivatethreads.h, regexkitPrivatethreads.h, regexkitprivate.h. · RKREGEX geändert, so dass die gesamte Klasseninitialisierung in der Initialisierungsmethode erfolgt. Zuvor fand eine Initialisierung in der Lastmethode statt, die bedeutete, dass sie ausgeführt wurde, auch wenn die Klasse letztendlich nicht verwendet wurde. Bei einigen Funktionsertragspunkten wurden auch Schutzprüfungen hinzugefügt, da die Anruf einer Funktion das Initialisierungsverhalten nicht auslösen würde. · Aktualisiert generationhthtml.pl, um die Gruppen in der Konstanten-Inhaltsverzeichnis ordnungsgemäß ierieren. Bisher wurde dies manuell für jede neue Gruppe aktualisiert. · Aktualisiertes Urheberrecht für 2008. · Die Möglichkeit hinzugefügt, die Verfügbarkeit (eingeführt in Version in Version usw.) an das Dokumentationssystem mit der Datei Verfügbarkeit.SQL hinzuzufügen. Aktualisiert die Docset-Tools, um diese Informationen zu verwenden, wenn Sie die Datei der tokens.xml erstellen. · Änderung der Struktur der verschiedenen Untertests. Es gab viel Code, denn im Laufe der Zeit hatte es geschafft, in mehreren Dateien repliziert und dann im Laufe der Zeit abeinander abzutreten. Dies wurde in rktestcase.m konsolidiert, wodurch ein gemeinsames Basisobjekt erstellt, das eine Unterklasse von SEENSTESTASTCASE ist, von der die Regexkit-Einheit-Testobjekte erben. · Die Funktionalität der Mac OS X-Malloc-Statistiken entfernt von der Einheitstests NSDate-Objekt. Entfernte auch den NshighRestimeTerval-Typ und ersetzte es mit NStimeInterval, da beide vom Typ Double waren. · SortedreGexCollection.m hinzugefügt, um Tests mit der neuen Multithread-sortierten Regex-Sammelfunktionalität zu halten. Fehlerbehebung: · In regexkit.usdt wurden die Performance-Probe-Argumente für den Schweregrad und Generalstartend ausgetauscht. Dies wurde korrigiert. · Ein Typ-o in regexkit_match_timing.instrument behoben. Irgendwie wurde "% x" in B geändert, was dazu führte, dass das Instrument nicht legal ist, um nicht zu analysieren und somit in Instrumenten nicht aufzutreten. · Einige Fehler in einigen HTML-Dateien behoben, und das druck.css-Stilblatt, das dazu führen würde, dass einige Titel negativ an der druckbaren Grenze versetzt sind. · Ein Firefox-Anzeigen-Fehler in Common.css behoben, der verursachte, dass Sourcecode-Boxen nicht formatiert werden sollen. · Die RKREADWRITELOCK-Klasse würde harmlos eine falsche Zählung der Anzahl der ausfälligen Fehlerversuche aus einer maximalen Anzahl von Versuchen anzeigen. · Die RKREADWREACKOCK-Klasse würde einen internen Debugging-Zähler zweimal erhöhen, wenn er nicht in der Lage war, einen Schreibniveau-Sperre beim ersten Versuch zu erwerben. · Die RKReadWritelock-Klasse würde einen internen IVAR in Bezug auf den Lese- oder Schreibbedingungszustand des Schlosses falsch aktualisieren, unabhängig davon, ob ein PTHREAD-Fehler das Schloss daran hindert, erworben zu werden. · Änderung der RKREGEX-Halte- und Freigabeverfahren, um die RKATOMICBERRIER-Routinen zu verwenden, um eine vollständige Speichersperre durchzusetzen. Dies kann zu den Rennbedingungen auf Architekturen geführt haben, in denen dies einen Unterschied macht, wie beispielsweise die PowerPC-Architektur, und wenn mehrere CPUs versuchen, gleichzeitig denselben Speicherort zu aktualisieren. · Änderung des Rahmens internen rkregexfromstringorregex-Funktionen, so dass, wenn ein Objekt als Mitglied der RKREGEX-Klasse ermittelt wird, die in der instaniierten Regex angegebenen Optionen jedoch nicht mit den erforderlichen Optionen übereinstimmen, die Klasse der instaniierten Regex verwendet wird, um ein neues zu erstellen Rkregex mit den erforderlichen Optionen, anstatt die Basisrkregex-Klasse zu verwenden. Dies würde einen Unterschied nur auf eine Unterklasse von RKREGEX vornehmen, die den Objekterstellungsprozess überräumt. · Sourceforge Bug 1850418 - 'Error Linking unter 10.4'. Dieses Problem ist in Release-Informationen abgedeckt - Versionshinweise für 0,6.0 Beta. Update: Senden Sie diesen Fehler an Apple als Bug # 5708443. Der ursprüngliche Fehlerbericht wurde geschlossen, wie sich ordnungsgemäß verhält. Die angegebene Rechtfertigung lautet "Es ist das Gleiche für die Verknüpfung - der 10.4 basierende Linkerfehler, wenn es Dinge sieht, die es nicht in der 10.5 libassystem.dylb. (SIC)" und "In Bezug auf den zweiten Beitrag gibt es keinen Fehler Im 10.5-Linker. Es ist gut, gegen das 10.5 libsystem.dylib mit -macosx_version_min = 10.4 zu verknüpfen. Der DTrace-Abschnitt ist Teil der Implementierung von liBSYSTEM.DYLIB. Es ist nicht Teil der Schnittstelle zum DYLIB (aber der 10.4-Linker) weiß das nicht). " Um ehrlich zu sein, bin ich irgendwie zu einem Verlust, wie der Ingenieur gelang, von dem Fehler zu den Begründungen zu springen, um ihn zu schließen, wie es sich richtig verhält. · SourceForge Bug 1878659 - 'erstellt nicht auf 10,5 Systemen, die ein 10,4-Treffer erstellen. Behandelt das Bedingung von rk_requires_nil_termination. Das vorherige Bedingte, das es falsch definiert, als NS_REQUIRES_NIL_TERMINATINATION, wenn er auf einem 10,5-System baut, jedoch streng an 10.4. Definiert hinzugefügt (ns_requires_nil_termination), um die Bedingung weiter einzuschränken. Auch aktualisiert Enable_macosx_Garbage_Collection, um weiterhin mit definiert (__ objc_gc__) eingeschränkt zu sein (__ objc_gc__) und enable_dtrace_instruments, um weiterhin durch definiert (s_dtrace_dof) eingeschränkt zu sein, der in Mach-O / loader.h definiert ist. · Ein Fehler behoben, der zuerst von Doug Dickinson in der SourceForge Regexkit Forum-Nachricht 'Match / Ersetzen mit leerer Referenzzeichenfolge gemeldet wird?' Dies stellte sich als Fehler in der nsString.M-Privatfunktion Rkstringbymatchingandexpanding heraus. Diese Funktion hatte eine Optimierung, wenn, wenn keine Ersetzungen stattfanden, keine Änderungen an dem Original vorgenommen, und es könnte die ursprüngliche Zeichenfolge nicht bearbeitet, anstatt einen neuen zu erstellen. Leider hat der Fall, in dem der Regex den Anfang der Saite übereinstimmte, um zu suchten, aber die Ersatzzeichenfolge war "leer" (d. H. @ " Behoben, indem auch das endgültige NSRange der bearbeiteten Zeichenfolge überprüft, um die ursprüngliche Zeichenfolge zu suchen. Wenn ein "Match zu Beginn, aber wieder mit nichts ersetzt ist" (dh, als ob der NSRange-Speicherort von 0 auf einen Wert> 0 bewegt wurde), sind diese Bereiche anders und geben nun eine Zeichenfolge mit dem Startschnitt zurück aus. Dies kann auch ähnliche Such- und Ersetzungen erfolgen, die am Schwanzende einer Zeichenfolge stattfanden, der Fix wird jedoch auch diesen Zustand fangen.


Regexkit. Zugehörige Software