Re: [python] V jakém jazyce je napsán modul re

2007-04-04 Tema obsahu Jan Martinek
Jan Kundrát wrote:
 Jan Martinek wrote:
 Jak to tedy vlastně je?
 
 Podivej se na importy v jednotlivych modulech (a dale pokracuj
 rekurzivne). Posleze dojdes az k modulu _sre a ejhle:
 
 import _sre
 _sre
 module '_sre' (built-in)
 
 Hezky vecer,
 -jkt
 

Ahá! No jasně, máš pravdu. Já jsem si chtěl ušetřit práci a myslel jsem 
si, že to přechytračím. Pustil jsem python, natáhl modul re a vzápětí 
pustil
find /usr/lib64/python2.4/ -amin -1
abych se podíval, který modul se otvíral méně než před minutou. No a 
jaksi mi nedošlo, že to může být built-in ;-)
No a když jsem viděl _tolik_ pythonovského kódu v sre*, tak jsem se 
vyděsil, že je v tom napsaný celý modul. Díky.

Jan Martinek
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] V jakém jazyce je napsán modul re

2007-04-03 Tema obsahu Jan Martinek
Zdravím,

zajímalo by mě, jestli je modul pro regulární výrazy re napsán v Céčku 
nebo v Pythonu. Většinou je možné se dočíst, že je napsaný v C, nicméně 
nejsem schopen najít odpovídající knihovnu. Asi se špatně dívám, ale 
re.py, sre.py, sre_compile.py, sre_constants.py a sre_parse.py jsou 
čistě v pythonu a nic binárního nenatahují.

Svou rychlostí (při jednoduché substituci) několikanásobně zaostává 
například za Perlem, což by tomu odpovídalo.

Naproti tomu, zastaralý a zavrhovaný (obsolete, deprecated) modul 
regex je nejspíš určitě psaný v C a zkompilovaný (na mém počítači) do
/usr/lib64/python2.4/lib-dynload/regex.so
a je výrazně rychlejší než novější modul re.

Jak to tedy vlastně je?

Jan Martinek
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] V jakém jazyce je napsán modul re

2007-04-03 Tema obsahu Jan Matejka
 Svou rychlostí (při jednoduché substituci) několikanásobně 
 zaostává například za Perlem, což by tomu odpovídalo.

Kdysi jsem porovnával rychlost pythonového hledání v řetezci pomocí
string.find a kompilovaného regulárního výrazu a výsledek byl zhruba stejný.

Tipnul bych si, že ve tvých testech jsi v pythonu nepoužíval kompilovaný
regulární výraz (kompiloval se při každém volání). Tím, že v Perlu jsou
regulární výrazy součástí jazyka, tak má interpretr možnost je zkompilovat
před spuštěním programu.

Jan Matějka

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python