Regexkit

Een objectief-C-raamwerk voor reguliere uitdrukkingen met behulp van de PCE-bibliotheek voor Mac OS X COCOA en GNUSTEP
Download nu

Regexkit Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD
  • Prijs:
  • FREE
  • Naam uitgever:
  • John Engelhart
  • Uitgever website:
  • Besturingssystemen:
  • 10.5
  • Bestandsgrootte:
  • 1.7 MB

Regexkit Tags


Regexkit Beschrijving

Een Objective-C kader voor reguliere expressies met behulp van de PCRE Library voor Mac OS X Cocoa en GNUstep RegexKit is een Objective-C kader voor reguliere expressies: · Ondersteuning voor Mac OS X Cocoa en GNUstep. · Geen sub-classing vereist. Naadloos voegt ondersteuning voor reguliere expressies om alle NSArray, NSDictionary, NSSet en NSString Foundation objecten met een rijke set van Objective-C categorie toevoegingen. · Unicode UTF-8 ondersteund. · Uitgebreide, hoge kwaliteit documentatie. · Volledige broncode met een BSD-licentie . · Maakt gebruik van de BSD-licentie PCRE Perl Compatible Regular Expressions bibliotheek voor de reguliere expressie engine.Includes ondersteuning voor Mac OS X 10.5 Leopard: · 64 bit ondersteuning. Pre-gebouwd voor ppc, ppc64, i386 en x86_64. · Garbage Collection ingeschakeld. Volledige ondersteuning voor Leopards Garbage Collection functie. · Geïntegreerde Xcode 3.0 documentatie. Get real-time API informatie via het Research Assistant. Hier zijn een aantal belangrijke eigenschappen van "RegexKit": · Caches de gecompileerde vorm van de reguliere uitdrukking voor snelheid. · Multithreading veilig, waaronder meerdere lezer, enkele schrijver multithreaded toegang tot de gecompileerde regex cache. · Maakt minimaal gebruik van heap opslag (dwz malloc () en gratis ()) in plaats toewijzen meeste tijdelijke buffer moet dynamisch uit de stapel. · Maakt gebruik van Core Foundation rechtstreeks op Mac OS X voor extra snelheid. Wat is er nieuw in deze release: · Gewijzigd het RKPrettyObject macros om een functie in plaats van een preprocessor macro zijn. Dit scheert ~ 30K uit het uitvoerbare bestand of 4-7K per architectuur. · Toegevoegd een PerformanceNote als pcre_study in staat zijn om de reguliere expressie te optimaliseren was. · Toegevoegde XCODE_CFLAGS_ * en PCRE_CFLAGS_ * tot RegexKit Build Settings.xcconfig OS specifieke CFLAGS toe te voegen aan Xcode en PCRE gebouwd bronnen. · Met behulp van de nieuwe CFLAGS boven toegevoegd, voegde -fstack-protector-all naar de Mac OS X 10.5 doelen. -fstack-protector-all is een GCC functie die Apple backported uit latere versies van GCC dat veel stack smashes kunt vangen. · Gewijzigd projectExportedSymbols aan de nieuwe RKErrorKey, RKErrorDomain en RKRegexPCRELibrary NSString constanten exporteren. · Toegevoegd RegexKit private uitbreidingen NSException en NSError te vereenvoudigen het creëren van gelokaliseerde versies van elk voor eenvoudige instantiaties. · Toegevoegd meerdere RegexKit private pre-processor macro's te vereenvoudigen het creëren van gelokaliseerde tekenreeksen. Deze zijn vergelijkbaar in de natuur Foundations NSLocalizedString familie van macro's. · Converted RKConvertUTF8ToUTF16RangeForString en RKConvertUTF16ToUTF8RangeForString om StringBuffer equivalenten, zodat interne routines kon het efficiënter StringBuffer functies aanroepen. De vlakte reeks methoden werden wikkels rond de StringBuffer functies. · Gemaakt een RegexKit privéaangelegenheid RKLocalizedStringForPCRECompileErrorCode dat het rendement van een omschrijving van de fout string die beter geschikt is voor NSError beschrijvingen die eindgebruikers te zien. De gelokaliseerde tekenreeksen uiteindelijk komen uit de kaders bundel bronbestand pcre.strings. · Gemaakt een RegexKit private globale variabele, RKFrameworkBundle die is gemaakt door RKRegex tijdens het laden dat de middelen biedt om de toegang gelokaliseerde tekenreeksen. · Gemaakt van een eigen functie die een NSException uit een NSError creëert op dezelfde manier dat initWithRegexString: options: methode eerder deed, omdat die methode nu creëert en een NSError keert terug voor de meeste fouten omstandigheden. · Gewijzigd RKRegex IsEqual: om direct toegang te krijgen tot de vergelijking instantie variabelen voorwerpen als het een RKRegex klasse object voor snelheid. · Toegevoegd een RegexKit prive-functie om het aantal bytes terug te keren voor een UTF8 gecodeerd karakter op een gegeven pointer, en een functie die de rendementen van het bereik voor een UTF8 gecodeerd teken op een gegeven offset van een pointer. Indien de offset punten naar het midden van een UTF8 gecodeerde teken, zal het terug naar het begin van de UTF8 teken dat de positie springen, dan bepaalt het aantal bytes vereist om een enkel Unicode code point gecodeerd in UTF8 formaat vertegenwoordigen. Breidde het vergrendelen van strategieën die het kader private vergrendeling klasse voorziet. Eerder de vergrendelende stand uitsluitend bedoeld als een blokkerende verwerven strategie. Strategieën nu beschikbaar zijn onder andere: · Probeer om te lezen. · Probeer voor het schrijven. · Probeer voor het schrijven, probeer dan om te lezen. · Probeer voor het schrijven, dan blokkeren verwerven voor het lezen. · Het blokkeren verwerven voor het lezen. · Het blokkeren verwerven voor het schrijven. · Deze wijziging is aangebracht om bepaalde caching functies toe aan non-blocking zijn wanneer een thread niet in staat is om de gevraagde mate van wederzijdse uitsluiting onmiddellijk te verwerven voor een gedeelde bron. · Toegevoegd een nieuwe particuliere vergrendeling klasse, RKConditionLock, die vergelijkbaar is met de fundamenten tegenhanger. Dit werd gedaan om een hogere functie call interface en verbeterde vergrendeling methodologieën, samen met NSTimeInterval gebaseerd relatieve tijden in plaats van de veel duurdere NSDate object gebaseerd tijden. Met behulp van NSDate objecten loopt een aanzienlijke prestatieverbeteringen boete vanwege het object schepping en vernietiging overhead om uiteindelijk over te brengen van een dubbele waarde als argument. Door het direct verstrekken van een relatieve tijd dubbele doorgegeven parameter argument is dat de overhead volledig omzeild. De twee functies RKFastConditionLock en RKFastConditionUnlock bieden alle functionaliteit die direct kunnen worden genoemd, en de object georiënteerde interfacemethoden zijn stubs voor deze twee functies. Deze functies en objecten worden niet geëxporteerd en zijn kader privé. · Geconsolideerde veel gemeenschappelijke logica voor de sluizen in de twee functies RKFastMutexLock en RKFastMutexUnlock. De RKLock klasse werd verplaatst naar deze gemeenschappelijke code base, maar voorlopig, RKReadWriteLock blijft ongewijzigd. · De pthread mutexen door RKLock en RKConditionLock worden niet gemaakt met de pthread mutex attribuut PTHREAD_MUTEX_ERRORCHECK die extra sanity controles worden uitgevoerd, zoals dezelfde draadborgmiddel een vergrendelde mutex, ontsluiten een ontgrendeld mutex of een thread probeert een mutex ontgrendelen oorzaken dat werd vergrendeld door een andere thread. · Bijgewerkt de licentie weergegeven in het installatieprogramma om de PCRE licentie expliciet op te nemen. · Toegevoegd de PCRE licentie voor het project root directory licentiebestand. · Toegevoegd de licentie-bestand naar de RegexKit Framework richt Copy Bundle Resources bouwfase, zodat de licentie aanwezig is in de frameworks Resources directory is. · Toegevoegde RKAtomicBarrier macro's / functies die vol geheugen barrière semantiek uit te voeren voor architecturen, waar dit een verschil maakt. · Veranderde de BeginLock en EndLock dtrace probes tweede argument van int naar NSInteger om de informatie nu door RKLock en RKReadWriteLock passen. De vergrendeling strategie aangevraagd en de uiterste slotniveau verworven worden nu gerapporteerd in plaats van een eenvoudige boolean lees / schrijf-indicatie. · Toegevoegde BeginLock, EndLock en Unlock te RegexKit.usdt. · Splits de header-bestand RegexKitPrivate.h in meerdere bestanden, RegexKitPrivateAtomic.h, RegexKitPrivateDTrace.h, RegexKitPrivateLocalization.h, RegexKitPrivateMemory.h, RegexKitPrivateThreads.h en NSStringPrivate.h. · Veranderd RKRegex zodat alle van de klasse initialisatie vindt plaats in de initialize methode. Voorheen sommige initialisatie vond plaats in de belasting methode wat betekende dat het werd uitgevoerd, zelfs als de klasse uiteindelijk niet werd gebruikt. Ook toegevoegd guard controles aan een bepaalde functie binnenkomst punten sinds het aanroepen van een functie niet zou leiden tot de initialize gedrag. · Bijgewerkt generateHTML.pl om goed te herhalen over de groepen in de Constants Inhoudsopgave binnenkomst. Voorheen werd dit handmatig bijgewerkt voor elke nieuwe groep. · Bijgewerkt Copyright 2008. · De mogelijkheid toegevoegd om de beschikbaarheid te specificeren (geïntroduceerd in, deprecated in, verwijderd versie, etc) om het documentatiesysteem met het bestand availability.sql. Bijgewerkt de docset tools waarmee u deze informatie gebruiken bij het maken van de Tokens.xml bestand. · Veranderde de structuur van de verschillende unit tests. Er was een stuk van de code die na verloop van tijd had weten te krijgen herhaald in verschillende bestanden en vervolgens uit elkaar drijven in de tijd. Dit werd versterkt bij RKTestCase.m, die een gemeenschappelijke basis object dat een subklasse van SenTestCase de RegexKit unit test erven van objecten creëert. · Verwijderde de Mac OS X malloc statistieken functionaliteit van het apparaat test NSDate object. Tevens verwijderd de NSHighResTimeInterval soort en vervangen NSTimeInterval zowel waren van het type double. · Toegevoegde sortedRegexCollection.m te pakken testen met betrekking tot de nieuwe multithreaded naargelang regex collectie functionaliteit. Bugfixes: · In RegexKit.usdt, de PerformanceNote sonde argumenten voor de ernst en generalStartEnd werden verwisseld. Dit werd gecorrigeerd. · Vast een type-o RegexKit_match_timing.instrument. Een of andere manier, "% x" werd veranderd in b waarin het instrument veroorzaakt aan niet legaal te ontleden en dus niet te zien in Instruments.app. · Vast een aantal fouten in sommige HTML-bestanden en het print.css style sheet dat enkele titels zou veroorzaken negatief worden gecompenseerd langs de afdrukbare grens. · Bevestigde een Firefox-display bug in common.css die ervoor zorgde dat broncode dozen niet worden geformatteerd. · De rkreadwritelock-klasse zou een onjuiste telling van het aantal valse fouten van een maximaal aantal pogingen tonen. · De rkreadwritelock-klasse zou een onschadelijk een interne foutopsporingsteller verhogen als het niet in staat was om een schrijfvergrendeling bij de eerste poging te verwerven. · De RKREEDWRITELOCK-klasse zou een interne IVAR ten onrechte bijwerken met betrekking tot de lees- of schrijfconditie van het slot, ongeacht of er geen pthread-fout heeft voorkomen dat het slot is verkregen. · Veranderde de RKREGEX behouden en vrijgeven van methoden om de rkatomicbarier-routines te gebruiken om een volledige geheugenbarrière te handhaven. Dit heeft mogelijk geleid tot racecondities op architecturen waarin dit een verschil maakt, zoals de PowerPC-architectuur en wanneer meerdere CPU's proberen tegelijkertijd dezelfde geheugenlocatie bij te werken. · Gewijzigd de interne RKREGEXFROMSREGEX-functies, zodat wanneer een object wordt vastgesteld dat een lid van de RKREGEX-klasse is, maar de opties die zijn opgegeven in het Instantion Begeleider niet overeenkomen met de vereiste opties, wordt de klasse van de Instantion Bedield Regex gebruikt om een nieuw te maken Rkregex met de vereiste opties in plaats van de klasse Base Rkregex te gebruiken. Dit zou alleen een verschil maken voor een subklasse van RKREGEX die het proces voor het maken van objecten overschrijden. · SourceForge BUG 1850418 - 'Foutlinking onder 10.4'. Dit probleem is bedekt met ontgrendelingsinformatie - Release-notities voor 0.6.0 bèta. UPDATE: Dien deze bug opnieuw in op Apple als bug # 5708443. Het originele bugrapport was gesloten als gedraagt zich correct. De rechtvaardiging is "het is hetzelfde voor het koppelen - de 10,4-gebaseerde linkerfouten wanneer het dingen ziet die het niet begrijpt in de 10,5 libsystem.dylb. (SIC)" en "Met betrekking tot de tweede post is er geen bug in de 10.5 linker. Het is prima om te koppelen tegen de 10,5 libsystem.dylib met -macosx_version_min = 10.4. De DTRACE-sectie maakt deel uit van de implementatie van Libsystem.Dylib. Het maakt geen deel uit van de interface naar de Dylib (maar de 10,4 linker weet dat niet). " Om eerlijk te zijn, ik ben een beetje op een verlies hoe de ingenieur erin slaagde te springen van de bug naar de rechtvaardigingen die zijn gegeven om het te sluiten als gedraagt zich correct. · SourceForge BUG 1878659 - 'Bouwt niet op 10,5 systemen die een 10,4 doelwit bouwen'. Fixed de voorwaardelijke van RK_REQUIRES_NIL_TERMINION. De vorige voorwaardelijke afhankelijk heeft het verkeerd gedefinieerd als NS_REQUIRESS_NIL_TERMINATION bij het bouwen op een 10,5-systeem, maar strikt gericht op 10.4. Toegevoegde gedefinieerde (NS_REQUIRES_NIL_TERMINATION) om de voorwaardelijke te beperken. Ook bijgewerkt enable_macosx_garbage_collection om verder te worden beperkt met gedefinieerde (__ objc_gc__) en enable_dtrace_instrumentation om verder te worden beperkt door gedefinieerde (S_DTRACE_DOF), die is gedefinieerd in Mach-O / loader.h. · Een bug opgelost die voor het eerst wordt gerapporteerd door Doug Dickinson in het SourceForge Regexkit Forum-bericht 'Match / Vervang met lege referentiestring?'. Dit bleek een bug te zijn in de NSSSTRING.M Private Function RkStringbymatchingAnDexpanding. Deze functie had een optimalisatie waarbij als er geen vervanging plaatsvond, er geen wijzigingen zijn aangebracht in het origineel, en het kon de oorspronkelijke reeks niet-bewerkt retourneren in plaats van een nieuwe te maken. Helaas het geval waar de regex overeenkwam met het begin van de reeks te zoeken, maar de vervangende reeks was 'leeg' (d.w.z. @ ""), dit verscheen alsof er geen veranderingen plaatsvonden, omdat er geen vervanging nodig waren. Opgelost door ook het definitieve nsrange van de bewerkte string tegen de originele string te controleren om te zoeken. Als een 'match aan het begin, maar vervang bij niets' gebeurt (dat wil zeggen, alsof de NSRANGE-locatie van 0 naar een waarde> 0) is verhuisd, zullen deze reeksen anders zijn en zullen nu correct een tekenreeks retourneren met de startgesneden uit. Dit kan ook een vergelijkbare zoekopdracht en vervangingen hebben beïnvloed die plaatsvonden op het uiteinde van een string, maar de fix zal die voorwaarde ook vangen.


Regexkit Gerelateerde software

Refactorit

Refactorit - uitgebreid refactoring tool gericht op de behoeften van bedrijfsontwikkelaars ...

151 8.2 MB

Downloaden