Réégiment

Un cadre Objective-C pour des expressions régulières utilisant la bibliothèque PCRE pour Mac OS X Cocoa et Gnustep
Télécharger maintenant

Réégiment Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • BSD
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • John Engelhart
  • Site Internet de l'éditeur:
  • Systèmes d'exploitation:
  • 10.5
  • Taille du fichier:
  • 1.7 MB

Réégiment Mots clés


Réégiment La description

Un cadre objectif-C d'expressions régulières utilisant la bibliothèque PCRE pour Mac OS X Cocoa et Gnustep Regexkit est un cadre Objective-C pour les expressions régulières: · Support pour Mac OS X Cocoa et Gnustep. · Aucune sous-classement requise. Ajout de manière transparente un support d'expression régulier à tous les objets de fondation Nsarray, Nsdictionary, NsSet et Nstring, avec un ensemble riche d'ajouts de catégorie Objective-C. · Unicode UTF-8 soutenu. · Documentation étendue et de haute qualité. · Code source complet avec une licence BSD . · Utilise la bibliothèque d'expressions ordinaires compatibles PCRE PCRE PCRE PRL BSD pour le moteur d'expression régulier.Inclut la prise en charge de Mac OS X 10.5 Leopard: · Support 64 bits. Pré-construit pour PPC, PPC64, I386 et X86_64. · Collection des ordures activée. Support complet pour la fonction de collecte des ordures Léopards. · Documentation Xcode 3.0 intégrée. Obtenez des informations sur l'API en temps réel via l'assistant de recherche. Voici quelques caractéristiques essentielles de "Regexkit": · Cache la forme compilée de l'expression régulière de la vitesse. · Coffre-fort multithreading, y compris plusieurs lecteurs, écrivain unique Accès multithreaded au cache Regex compilé. · Donne une utilisation minimale de stockage en tas (c.-à-d., MALLOC () et GRATUIT ()), au lieu de cela, la plupart des tampons temporaires ont besoin de dynamiquement de la pile. · Utilise Core Foundation directement sur Mac OS X pour une vitesse supplémentaire. Quoi de neuf dans cette version: · Modifiez les macros RKPrettyObject pour être une fonction au lieu d'une macro de préprocesseur. Cela rase ~ 30k de l'exécutable, ou 4-7K par architecture. · Ajout d'une performanceCenote si pCre_Study a pu optimiser l'expression régulière. · Ajouté xcode_cflags_ * et pcre_cflags_ * sur Regexkit Build Params.xcconfig Pour ajouter des CFLAGS spécifiques à OS aux sources construites Xcode et PCRE. · Utilisation des nouveaux CFLAGS ajoutés ci-dessus, ajouté -fstack-protector-tous aux cibles Mac OS X 10.5. -fstack-protector-tout est une caractéristique de la GCC que Apple a rassemblé des versions ultérieures de GCC pouvant attraper de nombreux Stack Smashes. · ProjectSPortDsymboles modifiés pour exporter les nouvelles constantes RkerrorkeKey, Rkerrandomain et RKregeXpCrelibary Nstring. · Ajout des extensions privées Regexkit à Nstexception et NSError pour simplifier la création de versions localisées de chacune d'instanciations simples. · Ajout de plusieurs macros de pré-processeur privés Regexkit pour simplifier la création de chaînes localisées. Celles-ci sont de nature similaire aux fondations de la famille des macros. · Converti RKConvertutF8Toutf16RangeForString et RKConverTF16Toutf8RangeForString vers des équivalents StringBuffer afin que les routines internes puissent appeler les fonctions StressBuffer plus efficaces. Les méthodes de chaîne ordinaire sont devenues des emballages autour des fonctions Stringbuffer. · Création d'une fonction privée Regexkit RklocalizedStringForpCompileErrorCode qui renvoie une chaîne de description d'erreur mieux adaptée aux descriptions de Nserror que les utilisateurs finaux voient. Les chaînes localisées proviennent finalement du fichier de ressource Funds Bundle PCRE.Strings. · Création d'une variable globale privée Regexkit, RKFrameworkBundle créée par RKREGEX à la charge de charge qui fournit les moyens d'accéder aux chaînes localisées. · Création d'une fonction privée qui crée une nsexception d'une NSError de la même manière que INITWithreGexString: Options: méthode précédemment faite depuis cette méthode crée et renvoie une NSError pour la plupart des conditions d'erreur. · Modifié RKREGEX ISEAIX: Pour accéder directement aux variables d'instance d'objets de comparaison s'il s'agit d'un objet de classe RKREGEX pour la vitesse. · Ajout d'une fonction privée Regexkit pour renvoyer le nombre d'octets pour un caractère codé UTF8 à un pointeur donné et une fonction qui renvoie la plage d'un caractère codé UTF8 à un décalage donné d'un pointeur. Si le décalage pointe au milieu d'un caractère codé UTF8, il sauverra jusqu'au début du caractère UTF8 qui est au décalage donné, puis déterminez le nombre d'octets requis pour représenter un seul point de code Unicode codé dans le format UTF8. Élargi les stratégies de verrouillage que la classe de verrouillage privée-cadre fournit. Auparavant, la classe de verrouillage n'a fourni qu'une stratégie d'acquisition de blocage. Les stratégies désormais disponibles incluent: · Essayez de lire. · Essayez d'écrire. · Essayez d'écrire, puis essayez de lire. · Essayez d'écrire, puis bloquez l'acquisition de lecture. · Blocage d'acquisition de lecture. · Blocage d'acquisition d'écriture. · Cette modification a été faite pour permettre à certaines fonctions de mise en cache d'être non bloquantes lorsqu'un thread est incapable d'acquérir le degré demandé d'exclusion mutuelle pour une ressource partagée immédiatement. · Ajout d'une nouvelle classe de verrouillage privée, RKConDeLock, qui est similaire à son contrepartie de fondations. Cela a été fait pour fournir une interface d'appel de fonction plus rapide et une méthodologie de verrouillage améliorée, ainsi que des heures relatives basées sur NSTIMINTERVAL au lieu des temps basés sur les objectifs NSDate beaucoup plus coûteux. L'utilisation d'objets NSDate entraîne une pénalité de performance significative en raison de la création d'objets et de la destruction des frais généraux pour transmettre une double valeur à titre d'argument. En fournissant directement un argument de paramètre à double interruption de temps par rapport, que les frais généraux sont complètement contournés. Les deux fonctions RKFastConditionlock et RKFastConDItionnLLock fournissent toutes les fonctionnalités qui peuvent être appelées directement, et les méthodes d'interface orientées objet sont des talons de ces deux fonctions. Ces fonctions et objets ne sont pas exportés et sont privés-cadre. · Consolidation de la logique commune pour les écluses des deux fonctions RKFastMutExlock et RKFastMutExunlock. La classe RKLock a été déplacée vers cette base de code commun, mais pour le moment, Rkreadwritelock reste inchangé. · Les mutiles Pthread créés par RKLOCK et RKCONDIMLOCLOCK ne sont pas créés avec l'attribut Pthread Mutex Pthread_MuTex_errorcheck qui provoque une vérification supplémentaire de la santé mentale, telle que le même thread verrouillant un mutex verrouillé, déverrouillant un mutex déverrouillé ou une tentative de filetage pour déverrouiller un mutex. qui a été verrouillé par un fil différent. · Mise à jour de la licence affichée dans l'installateur pour inclure explicitement la licence PCRE. · Ajout de la licence PCRE au fichier de licence de répertoire racine du projet. · Ajout du fichier de licence dans la phase de construction de ressources de Regexkit Framework Targets Copy Bundle Copy Bundy, de sorte que la licence est présente dans le répertoire des ressources de cadres. · Ajout de macros / fonctions Rkatomicbarrier qui effectuent une sémantique complète de barrière de mémoire pour les architectures où cela fait une différence. · Modifié le Début et Endlock Dtrace sondes Second Argument de Int vers NsInteger pour correspondre aux informations désormais fournies par RKLock et RKREDEDWRITELOCK. La stratégie de verrouillage demandée et le niveau de verrouillage final acquis sont désormais signalés au lieu d'une simple indication de lecture booléenne / écriture. · Ajout de Début, Endlock et déverrouillez à Regexkit.USDT. · Divisez le fichier d'en-tête Regexkitprivate.h en plusieurs fichiers, regexkitprivateatomic.h, regexkitprivatedtrace.h, regexkitprivatetelocalisation.h, regexkitprivatememory.h, regexkitprivatethreads.h et nsstringprivate.h. · Modifié RKREGEX afin que toute l'initialisation de la classe ait lieu dans la méthode d'initialisation. Auparavant, une initialisation a eu lieu dans la méthode de charge qui signifiait qu'il a été exécuté même si la classe était finalement utilisée. Ajout également des vérifications de garde à certains points de saisie de fonction, car appeler une fonction ne déclencherait pas le comportement d'initialisation. · Mise à jour généralehtml.pl pour bien itération sur les groupes dans la table des constantes Table des matières. Auparavant, cela a été mis à jour manuellement pour chaque nouveau groupe. · Copyright mis à jour pour 2008. · Ajout de la possibilité de spécifier la disponibilité (introduite dans, obsolète, supprimée en version, etc.) au système de documentation avec la disponibilité du fichier.SQL. Mise à jour des outils Docset pour utiliser ces informations lors de la création du fichier Tokens.xml. · Modifié la structure des différents tests d'unités. Il y avait beaucoup de code que, au fil du temps, avait réussi à être répliqué dans plusieurs fichiers, puis de dériver au fil du temps. Ceci a été consolidé dans RKTestCase.M, qui crée un objet de base commun qui est une sous-classe de la sentestesCase que les objets de test de l'unité Regexkit héritent de. · Suppression de la fonctionnalité des statistiques MALL OS X MALLOC de l'unité Tests de l'unité Nsdate Object. Également supprimé le type NshighrestimeInterval et l'a remplacé par NStMeInterval, les deux étaient de type double. · Ajout de SDTEDREGEXCollection.M Pour contenir des tests liés à la nouvelle fonctionnalité de collecte de regex triée multithreadée. Corrections de bugs: · Dans Regexkit.USDT, les arguments de la sonde performancorte pour la gravité et le généralStartend ont été échangés. Ceci a été corrigé. · Correction d'un type-o dans Regexkit_match_timing.Instrument. D'une manière ou d'une autre, "% x" a été changée en B qui a causé l'instrument de ne pas être légal pour analyser et ne figure donc pas dans des instruments.app. · Correction des erreurs dans certains fichiers HTML et la feuille de style Print.css qui entraînerait une compensation négative de certains titres après la frontière imprimable. · Correction d'un bogue d'affichage Firefox en commun.css qui a provoqué un format Sourcecode de ne pas être formaté. · La classe RkreadWeLock afficherait sans danger un nombre incorrect du nombre d'erreurs parasites tente d'un nombre maximal de tentatives. · La classe RKREDEDWELOCK incrémenterait sans danger un compteur de débogage interne deux fois s'il était incapable d'acquérir une serrure de niveau d'écriture lors de la première tentative. · La classe RKREDeadWheLock mettrait à jour à moindre mise à jour d'un ivar interne concernant la condition de lecture ou d'écriture de la serrure, que l'on puisse ou non une erreur Pthread empêchait le verrou d'être acquis. · Modifié le RKREGEX Conserver et relâcher les méthodes pour utiliser les routines Rkatomicbarrier pour appliquer une barrière de mémoire complète. Cela peut avoir conduit à des conditions de course sur des architectures dans lesquelles cela fait une différence, telle que l'architecture PowerPC, et lorsque plusieurs processeurs tentent de mettre à jour simultanément la même position de mémoire. · Modification des fonctions internes rkregexfromstringorregeex de manière à ce que, lorsqu'un objet est déterminé à être membre de la classe RKREGEX, mais les options spécifiées dans le regex instancié ne correspondent pas aux options requises, la classe de la regex instanciée est utilisée pour créer un nouveau. RKREGEX avec les options requises au lieu d'utiliser la classe de base RKREGEX. Cela ne ferait une différence que pour une sous-classe de RKREGEX qui a surchargé le processus de création d'objets. · Bogue Sourceforge 1850418 - «Erreur lors du lien entre 10.4». Ce problème est couvert dans les informations relatives à la libération - Notes de publication pour 0,6,0 bêta. MISE À JOUR: SUPPLÉMENTÉE DE CET BOGE À Apple en tant que BOGUE # 5708443. Le rapport de bogue d'origine était fermé comme se comporte correctement. La justification donnée est "c'est la même chose pour la liaison - les erreurs de liaison à base de 10.4 lorsqu'elles voit des choses qu'il ne comprend pas dans le 10.5 libsystem.dylb. (Sic)" et "en ce qui concerne le deuxième poste, il n'y a pas de bug Dans la liaison 10.5. Il convient de lier contre le 10.5 libsystem.dylib avec -macosx_version_min = 10.4. La section DTrace fait partie de la mise en uvre de libsystem.dylib. Il ne fait pas partie de l'interface avec le dylib (mais la liaison de 10,4 ne sait pas ça). " Pour être honnête, je suis une sorte de perte de la manière dont l'ingénieur a réussi à sauter de l'insecte aux justifications fournies pour la clôture correctement. · Bug Sourceforge 1878659 - «Ne construit pas sur 10.5 Systems Création d'une cible de 10.4». Correction du conditionnel de rk_requires_nil_termination. Le conditionnel précédent le redéfinit de manière incorrecte comme ns_requires_nil_termination lors de la construction d'un système de 10.5, mais ciblant strictement 10.4. Ajouté défini (ns_requires_nil_termination) pour restreindre davantage le conditionnel. Également mis à jour enable_macosx_garbage_collection pour être restreint en outre avec défini (__ objc_gc__) et activé_dtrace_instrumentation d'être restreint en outre à être restreint par définis (S_DTRACE_DOF), qui est défini dans Mach-O / Loader.h. · Correction d'un bogue d'abord signalé par Doug Dickinson dans le message Forum Sourceforge Regexkit 'Match / Remplacer par une chaîne de référence vide?'. Cela s'est avéré être un bogue dans la fonction privée NSString.m Fonction privée RkstringbymatchingandExpanding. Cette fonction avait une optimisation où, si aucun remplacement n'a eu lieu, aucun changement n'a été apporté à l'original, et cela pourrait renvoyer la chaîne d'origine non modifiée au lieu de créer une nouvelle. Malheureusement, le cas où la regex correspondait au début de la chaîne à rechercher, mais la chaîne de remplacement était "vide" (c'est-à-dire "(c'est-à-dire" "), il est apparu comme si aucun changement n'a eu lieu, car aucun remplacement n'était nécessaire. Correction en vérifiant également la finale Nsrange de la chaîne éditée contre la chaîne d'origine à la recherche. Si une correspondance au début, mais remplacez-la de rien 'se produit maintenant (c'est-à-dire comme si l'emplacement Nsrange avait déplacé de 0 à une valeur> 0), ces gammes seront différentes et renvoyeront maintenant correctement une chaîne avec la coupe de départ désactivé. Cela a peut-être également effectué des recherches similaires et remplies qui a eu lieu sur la queue d'une chaîne, mais le correctif attrapera également cette maladie.


Réégiment Logiciels associés

File

FileLIB - Plug-in RealBasic pour accéder aux autorisations de fichier UNIX ...

151 594 KB

Télécharger