Regexkit.

Um quadro Objective-C para expressões regulares usando a biblioteca PCRE para Mac OS X Cacau e Gnustep
Baixe Agora

Regexkit. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • BSD
  • Preço:
  • FREE
  • Nome do editor:
  • John Engelhart
  • Site do editor:
  • Sistemas operacionais:
  • 10.5
  • Tamanho do arquivo:
  • 1.7 MB

Regexkit. Tag


Regexkit. Descrição

Um quadro objetivo-C para expressões regulares usando a biblioteca PCRE para Mac OS X Cacau e Gnustep Regexkit é um quadro objetivo-C para expressões regulares: · Suporte para Mac OS X Cacau e Gnustep. · Nenhuma sub-classificação necessária. Adiciona suporte regular de expressão a todos os objetos NSARRAY, NSDictionary, NSSet e NSSting Foundation com um conjunto rico de adições de categoria Objective-C. · Unicode UTF-8 suportado. · Documentação extensa, alta qualidade. · Código fonte completo com uma licença BSD . · Usa a biblioteca regular de expressões regulares licenciadas da BSD para o mecanismo de expressão regular.Inclui suporte para o Mac OS X 10.5 Leopard: · Suporte de 64 bits. Pré-construído para PPC, PPC64, I386 e X86_64. · Coleta de lixo ativada. Suporte completo para o recurso de coleta de lixo de leopardos. · Documentação integrada do Xcode 3.0. Obtenha informações de API em tempo real através do assistente de pesquisa. Aqui estão algumas características principais de "regexkit": · Cache a forma compilada da expressão regular por velocidade. · Multithreading Seguro, incluindo vários leitores, acesso único de escritor multithreaded ao cache de regex compilado. · Faz uso mínimo de armazenamento de heap (ou seja, malloco () e livre ()), alocando a maioria das necessidades de amortecedor temporário dinamicamente da pilha. · Usa Fundação Core diretamente no Mac OS X para velocidade adicional. O que há de novo nesta versão: · Modificou as macros rkprettyobject para ser uma função em vez de uma macro pré-processador. Isso raspa ~ 30k fora do executável ou 4-7k por arquitetura. · Adicionado um performâneo se Pcre_study pudesse otimizar a expressão regular. · Adicionado xcode_cflags_ * e pcre_cflags_ * para configuração de compilação de regexkit.xcconfig para adicionar cflags específicos específicos para fontes de Xcode e Pcre. · Usando os novos CFLAGS adicionados acima, adicionado -Fstack-Protector-Tudo aos alvos Mac OS X 10.5. -fstack-Protector-All é um recurso GCC que a Apple recuou de lançamentos posteriores do GCC que podem pegá-lo. · ProjectExportsymbols modificado para exportar as constantes New Rkerrorkey, Rkerrordomain e RkregexPcrelibrary NSString. · Adicionado regexkit extensões privadas à NSException e Nserror para simplificar a criação de versões localizadas de cada uma para instanciações simples. · Adicionado várias macros de pré-processador privado de regexkit para simplificar a criação de strings localizadas. Estes são semelhantes na natureza para fundações nsslocalizedstring família de macros. · Convertido RKConvertutF8ToutF16RangoForstring e RKConvertF16ToutF8RangeForstring para os equivalentes stringbuffer, de modo que as rotinas internas possam chamar as funções stringbuffer mais eficientes. Os métodos de string simples se tornaram invólucros em torno das funções StringBuffer. · Criado uma função de regexkit privada rklocalizedstringforpcrecompileErRorCode que retorna uma descrição de erro String que é mais adequada para descrições nserror que terminam os usuários vêem. As strings localizadas vêm do arquivo Pcre. · Criado uma variável global privada de regexkit, rkframeworkbundle que é criada pelo rkregex no tempo de carregamento que fornece os meios para acessar as cadeias localizadas. · Criado uma função privada que cria uma NSException de um NSError da mesma forma que o InitWithRegeXstring: Opções: o método anteriormente fez desde que esse método agora cria e retorna um NSError para a maioria das condições de erro. · RkreGex modificado ISEQUAL: Para acessar diretamente as variáveis de instância de objetos de comparação se for um objeto de classe RkRegex para velocidade. · Adicionado uma função privada de REGEXKIT para retornar o número de bytes para um caractere codificado UTF8 em um determinado ponteiro e uma função que retorna o intervalo para um caractere codificado UTF8 em um determinado compensado. Se o deslocamento apontar para o meio de um caractere codificado UTF8, ele será de volta ao início do caractere UTF8 que está no deslocamento fornecido e determinar o número de bytes necessários para representar um único ponto de código Unicode codificado no formato UTF8. Expandiu as estratégias de bloqueio que a classe de travamento privado da estrutura fornece. Anteriormente, a classe de bloqueio forneceu apenas uma estratégia de bloqueio. Estratégias agora disponíveis incluem: · Tente ler. · Tente escrever. · Tente escrever e tente ler. · Tente escrever, então bloqueie adquirir para ler. · Bloqueio adquirir para leitura. · Bloqueio adquirir para escrever. · Esta mudança foi feita para permitir que certas funções de cache sejam não bloqueadas quando um thread não conseguir adquirir o grau solicitado de exclusão mútua para um recurso compartilhado imediatamente. · Adicionado uma nova classe de bloqueio privado, o RKConditionclock, que é semelhante à sua contraparte das fundações. Isso foi feito para fornecer uma interface de chamada de função mais rápida e metodologias de travamento aprimoradas, juntamente com os tempos relativos baseados em NSTimeInterval, em vez dos tempos baseados em objetos nsdate muito mais caros. O uso de objetos NSDate incorre em uma penalidade significativa de desempenho por causa da criação de objetos e sobrecarga de destruição para transmitir um valor duplo como um argumento. Ao fornecer diretamente um argumento parente de parâmetro passado duplo tempo, que a sobrecarga é completamente contornada. As duas funções rkastconditionlock e rkastconditionunlock fornecem toda a funcionalidade, que pode ser chamada diretamente, e os métodos de interface orientado a objetos são apenas stubs para essas duas funções. Essas funções e objetos não são exportados e são privados em estrutura. · Consolidou muita lógica comum para os bloqueios nas duas funções RKFastMutexlock e RKFastMutExunlock. A classe Rklock foi movida para esta base de código comum, mas por enquanto, Rkreadwritelock permanece inalterado. · Os mutexes Pthread criados por rklock e rkconditionlock não são criados com o atributo Pthread mux pthread_mutex_errorcheck que faz com que as verificações extras de sanidade sejam executadas, como a mesma linha bloqueando um mutex bloqueado, desbloqueando um mutex desbloqueado ou um thread tentando desbloquear um mutex que foi bloqueado por um fio diferente. · Atualizou a licença exibida no instalador para incluir a licença Pcre explicitamente. · Adicionado a licença PCRE ao arquivo de licença do diretório raiz do projeto. · Adicionado o arquivo de licença ao regexkit Framework Tirks Copiar recursos de criação de recursos de pacote para que a licença esteja presente no diretório de recursos do Frameworks. · Adicionado macros / funções RKatomicBarrier que executam semântica de barreira de memória total para arquiteturas onde isso faz diferença. · Alterou o Beginlock e o Endlock DTRACE investem o segundo argumento do INT TO NSINTEGER para corresponder às informações agora fornecidas por Rklock e Rkreadwritelock. A estratégia de bloqueio solicitada e o nível final de bloqueio adquirido agora é relatado em vez de uma simples indicação de leitura / gravação booleana. · Adicionado Beginlock, Endlock e Desbloquear para REGEXKIT.USDT. · Dividir o arquivo de cabeçalho regexkitprivate.h em vários arquivos, regexkitprivateatomic.h, regexkitprivatedtrace.h, regexkitprivatelocalization.h, regexkitprivatememory.h, regexkitprivatethreads.h, e nsstringprivate.h. · Mudou o RkreGEX para que toda a inicialização da turma ocorra no método inicialize. Anteriormente, alguma inicialização ocorreu no método de carga que significava que foi executado mesmo se a classe não foi usada. Também adicionou verificações de proteção em alguns pontos de entrada de função, uma vez que chamar uma função não acionaria o comportamento inicializar. · Atualizado GenerateHtml.pl para iterar adequadamente sobre os grupos na entrada da tabela de conteúdo das constantes. Anteriormente, isso foi atualizado manualmente para cada novo grupo. · Copyright atualizado para 2008. · Adicionado a capacidade de especificar a disponibilidade (introduzida em, reprovada, removida na versão, etc) para o sistema de documentação com a disponibilidade de arquivos.SQL. Atualizou as ferramentas do DocSet para usar essas informações ao criar o arquivo tokens.xml. · Alterou a estrutura dos vários testes unitários. Havia muito código que, ao longo do tempo, conseguiram ser replicados em vários arquivos e depois desviar-se ao longo do tempo. Isso foi consolidado em RktestCase.m, que cria um objeto base comum que é uma subclasse de sentença de que os objetos de teste de unidade de regexkit herdam. · Removido a funcionalidade de estatísticas do Mac OS X Malloc na unidade Testes NSDate Object. Também removeu o tipo NShighrestimeInterval e o substituiu por nstimeInterval como ambos eram do tipo duplo. · Adicionado SortedReGexCollection.m para manter os testes relacionados à nova funcionalidade de coleta de regex classificada multithread. Correções de bugs: · Em regexkit.usdt, os argumentos da sonda performancenote para gravidade e generalstend foram trocados. Isso foi corrigido. · Corrigido um tipo-o em regexkit_match_timing.instrument. De alguma forma, "% X" foi alterado para B que fez com que o instrumento não seja legal para analisar e, portanto, não apareceu em instrumentos.App. · Corrigido alguns erros em alguns arquivos HTML e a folha de estilo print.css que faria com que alguns títulos fossem compensados negativamente após a borda imprimível. · Corrigido um erro de exibição do Firefox em common.css que causou caixas de sourcecode a não serem formatadas. · A classe RkreadwritLock exibiria inútil uma contagem incorreta do número de erros espúrias tentativas de um número máximo de tentativas. · A classe RkreadwritLock iria incrementar inérgemente um contador de depuração interna duas vezes se não pudesse adquirir um bloqueio de nível de escrita na primeira tentativa. · A classe RkreadwritLock atualizaria incorretamente um ivar interno em relação à condição de leitura ou gravação da trava, independentemente de um erro de Pthread impedido ou não o bloqueio de ser adquirido. · Alterado os métodos rkregex retenção e liberação para usar as rotinas RKatomicBarrier para impor uma barreira de memória completa. Isso pode ter levado a condições de raça em arquiteturas em que isso faz diferença, como a arquitetura PowerPC, e quando várias CPUs estão tentando atualizar o mesmo local de memória simultaneamente. · Alterou a estrutura interna RkregexFromstringorregex funções para que, quando um objeto é determinado como membro da classe RkreGex, mas as opções especificadas no regex instanciadas não correspondem às opções necessárias, a classe do regex instanciada é usada para criar um novo Rkregex com as opções necessárias em vez de usar a classe Base RkreGex. Isso faria a diferença apenas para uma subclasse de rkregex que supera o processo de criação de objetos. · SourceForge Bug 1850418 - 'Erro vinculando abaixo de 10,4'. Esta questão é abordada na informação de liberação - Notas de versão para 0.6.0 beta. Atualização: reenvie este bug para a Apple como bug # 5708443. O relatório de bug original foi fechado como se comporta corretamente. A justificativa dada é "é a mesma para vincular - os erros de ligação baseados em 10.4 quando vê as coisas que não entende no 10,5 libsistema.dylb. (SIC)" e "em relação ao segundo post, não há bug No linker 10.5. Tudo bem vinculará o 10.5 libsistema.dylib com -macosx_version_min = 10.4. A seção DTRace faz parte da implementação do libsystem.dylib. Não faz parte da interface ao Dylib (mas o linker 10.4 não sabe disso). " Para ser honesto, tenho uma perda quanto a como o engenheiro conseguiu saltar do bug para as justificativas dadas para fechá-lo como se comporta corretamente. · SourceForge Bug 1878659 - 'não constrói em 10.5 sistemas construindo um alvo 10.4'. Corrigido o condicionado de rk_requires_nil_termination. A condição anterior incorretamente redefiniu-a como ns_requires_nil_termination ao criar um sistema 10.5, mas destinado a estritamente 10.4. Adicionado definido (ns_requires_nil_termination) para restringir ainda mais o condicional. Atualizado também Ativar_macosx_Garbage_Collection Para ser restrito ainda com definido (__ objc_gc__) e enable_dtrace_instrumation para ser restrito por definido (s_dtrace_dof), que é definido no Mach-O / Loader.h. · Corrigido um bug relatado pela primeira vez por Doug Dickinson na mensagem FORUM FORUM SURAÇÃOFORGE REGEXKIT '' Match / Substitua por uma seqüência de referência vazia? '. Isso acabou por ser um bug no nsstring.m função privada rkstringbymatchingExpanding. Esta função tinha uma otimização em que se nenhuma substituição ocorresse, nenhuma alteração foi feita para o original, e poderia retornar a string original un-editada em vez de criar um novo. Infelizmente o caso em que o regex corresponde ao início da string para ser pesquisado, mas a string de substituição estava "vazia" (isto é, @ ""), isso apareceu como se nenhuma alteração ocorra, já que nenhuma substituição era necessária. Corrigido também verificando o NSRANGE final da string editada contra a string original para pesquisar. Se uma partida no início, mas substitua por nada 'acontece agora (ou seja, como se a localização do NSRANGE tivesse movido de 0 para um valor> 0), essas faixas serão diferentes e agora corretamente retornarão corretamente uma string com o corte inicial fora. Isso também pode ter afetado pesquisas e substituições semelhantes que ocorreram no final da cauda de uma string, mas a correção também vai pegar essa condição.


Regexkit. Software Relacionado

Refactorit.

Refactorit - ferramenta abrangente de refatoração direcionada nas necessidades dos desenvolvedores corporativos ...

151 8.2 MB

Download