1. 4.0a3 - Two Regular Expression Libraries? -- We need your input!

This is a long story in which I'll attempt to make as short as possible.

We originally started with embedding PCRE into Euphoria. This caused quite a bit of problems with our build system, of which we got past most. On OS X, however, to configure PCRE, it required updated autoconf and automake tools, which then caused problems with other OS X source packages being installed. I maintain another project, eFTE, which is a text editor and it has built in regular expressions. It runs on a host of platforms (Windows, Linux, OS X, OS/2, AIX, Solaris, FreeBSD, IRIX, HP/UX, SunOS and NCR that I know of) w/o any configuration at all (all standard C). I ran a few tests that showed the regular expression code from eFTE was faster than PCRE until the haystack got to be around 200k, then they were pretty equal in speed. After some debating, we decided to dump PCRE in favor of the simple drop in .c/.h file from eFTE to do our regular expressions. Things became much simpler. This was quite some time ago.

Since then, CoJaBo (on IRC, irc://irc.freenode.net#euphoria ), pounded the regex library with all sorts of valid and invalid expressions, during which, he found several that caused endless loops and segmentation faults. We, of course, tested the eFTE regex with all sorts of valid expressions and once we proved it worked, we continued on with development, which is the normal cycle. Once beta hits, tests will be greatly expanded as we hunt for bugs high and low. In this case, CoJaBo beat us to it.

So, we have fixed the problems that CoJaBo has found in eFTE's regex system, but during this phase, some were quite difficult to track down and I decided to give PCRE another look. As I read about how other tools delt with embedding PCRE, I learned of a better method, than relying on PCRE's configure system. I copied example config.h/pcre.h files, configured them by hand for each platform (not as hard as it sounds) and then created config.h.windows/pcre.h.windows, config.h.linux/pcre.h.linux, etc... Now our build system copies in the correct file and we do not rely no PCRE's config system, thus, things are easy again.


So, for 4.0a3, we released both regular expression libraries and would like your input (devs too please). Here are the pro's/con's that I know of:

In favor of PCRE:

  • Very wide acceptance, just about the standard for regular expressions.
  • Well tested (used in hundreds of products).
  • Produces helpful error messages when you enter an invalid expression.

Against PCRE:

  • Complex code that the Euphoria devs are not going to touch/modify, even in the case of a problem. We will have to wait for an official fix from the PCRE group.
  • Very large code base, it adds 171k to the binary.
  • Targeted by some hackers for finding exploits, when they do, they have access to hundreds of products.

In favor of eFTE's REGEX:

  • Very portable code.
  • Very small, adds only 15k to the binary.
  • Only 1,200 lines of code that Euphoria devs can maintain directly.
  • Not targeted by hackers to exploit.

Against eFTE's REGEX:

  • Does not support as many expression syntaxes as PCRE, but gets the majority.
  • Not as well tested as PCRE.
  • Does not produce nice error messages on an invalid syntax expression, simply returns "Invalid Expression."

I personally do not care which library we go with. With eFTE, I am going to follow suite with what Euphoria decides, i.e. if we decide on PCRE, I'm going to convert eFTE to use PCRE, if we keep eFTE's REGEXP .c/.h file, then, I'll merge changes made by Euphoria devs into eFTE and changes made by eFTE devs into Euphoria. I use to be pretty heavily weighted to eFTE's Regexp due to the simplicity of the code and the ability for us to maintain it directly, however, now I am riding the fence post and do not really care either way. The both have pros/cons and I am unsure of which is the best course to take.

Jeremy

new topic     » topic index » view message » categorize

2. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

I'm not a regex user, so I really don't care about wich one you use. I simply would prefer the one that produces a smaller interpreter.

But I don't like, using external C libraries for regex because is nice to have an interpreter 100% writed on euphoria. If we want to update eu.ex with regex support, we would need to implement regex on euphoria as part of the front end or as standar library .e file.

new topic     » goto parent     » topic index » view message » categorize

3. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

achury said...

I'm not a regex user, so I really don't care about wich one you use. I simply would prefer the one that produces a smaller interpreter.

PCRE is about 100k, while eFTE regex is about 13k.

achury said...

But I don't like, using external C libraries for regex because is nice to have an interpreter 100% writed on euphoria. If we want to update eu.ex with regex support, we would need to implement regex on euphoria as part of the front end or as standar library .e file.

These are not external, but built into the interpreter. They already work from eu.ex but are implemented by the C backend (eu.ex just forwards the call to the C backend to do the work iiuc)

new topic     » goto parent     » topic index » view message » categorize

4. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jimcbrown said...
achury said...

I'm not a regex user, so I really don't care about wich one you use. I simply would prefer the one that produces a smaller interpreter.

PCRE is about 100k, while eFTE regex is about 13k.

Correction. I am informed that PCRE is 171k. I am working with the aforementioned CoJaBo on a cross-platform external PCRE library (dll wrapper), so you can use PCRE with 4.0 no matter what.

new topic     » goto parent     » topic index » view message » categorize

5. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jimcbrown said...

Correction. I am informed that PCRE is 171k. I am working with the aforementioned CoJaBo on a cross-platform external PCRE library (dll wrapper), so you can use PCRE with 4.0 no matter what.

It's important to note that if you go the route of wrapping it externally, you then have to distribute the pcre.dll file with your application, which will add on the size anyway (to the total footprint of your app that is).

Jeremy

new topic     » goto parent     » topic index » view message » categorize

6. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jeremy said...

So, for 4.0a3, we released both regular expression libraries and would like your input...

I like the idea of a "standard." PCRE +1
I don't like the idea of having to wait on some other group for updates. PCRE -1
However, any possible changes by the Euphoria Dev Team could be accepted by PCRE, right? PCRE +1
I like the idea of wide acceptance and well tested. PCRE +2

I don't care about the size of the code base. At least, not yet. smile

I don't understand what can be exploited via PCRE, nor how it would affect Euphoria programs.

I vote for PCRE.

new topic     » goto parent     » topic index » view message » categorize

7. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

euphoric said...
jeremy said...

So, for 4.0a3, we released both regular expression libraries and would like your input...

I like the idea of a "standard." PCRE +1
I don't like the idea of having to wait on some other group for updates. PCRE -1
However, any possible changes by the Euphoria Dev Team could be accepted by PCRE, right? PCRE +1
I like the idea of wide acceptance and well tested. PCRE +2

I don't care about the size of the code base. At least, not yet. smile

I don't understand what can be exploited via PCRE, nor how it would affect Euphoria programs.

I vote for PCRE.

That's fine, but understand, the code base of PCRE is 22,416 lines of C code, the C code base of Euphoria itself is 27.241. So, PCRE is almost as much C code as Euphoria is! There is no way that the Euphoria devs are going to venture into the PCRE code, fix and submit a patch. Well, maybe "no way" is strong, but I highly, highly doubt it.

Now, about not understanding exploits. Buffer overruns are huge. This past year, there has been three patches that I know of by the debian group to stop a buffer overrun that causes the caller to be able to execute programs on the host computer. They are all very tricky. I'm not a hacker, so I do not understand it that well, but people have been able to execute a program on your computer through exploits in PCRE. For instance:

sequence name = prompt_string("Enter your name: ") 
r:regex validNameRx = r:new("[A-Z][a-z]+") 
if r:match(validNameRx, name) then 
    puts(1, "You have a valid name!\n") 
end if 

That program above, people have been able to execute commands on your computer though.

Now, don't be too afraid because buffer overruns are everywhere in about any program you have ever used. For instance, Firefox? IE? Microsoft Excel? Linux Kernel? Mutt email client? etc... It just gives you an idea of how an exploit could take place. Also, do not take that as a certain NO for PCRE, as there may be exploits in eFTE's regex library that have not been found, because it has not been targeted. Further, there may be exploits in Euphoria's C base that have not been found because it has not been targeted. I am not saying there is, but I am saying it is possible in anything.

BTW... I am with you on code size, w/in reason. 170k in todays world is an extra 1/2 second of download. It means nothing on a disk.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

8. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jeremy said...

... Buffer overruns are huge. This past year, there has been three patches that I know of by the debian group to stop a buffer overrun that causes the caller to be able to execute programs on the host computer. They are all very tricky. I'm not a hacker, so I do not understand it that well, but people have been able to execute a program on your computer through exploits in PCRE. For instance:

sequence name = prompt_string("Enter your name: ") 
r:regex validNameRx = r:new("[A-Z][a-z]+") 
if r:match(validNameRx, name) then 
    puts(1, "You have a valid name!\n") 
end if 

That program above, people have been able to execute commands on your computer though. ...

^ That, I would like to see. I have seen exploits used as an example of why not to use PCRE several times, yet noone can show me an example of one of these 3 exploits. Where are they documented in detail?

new topic     » goto parent     » topic index » view message » categorize

9. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

CoJaBo said...

^ That, I would like to see. I have seen exploits used as an example of why not to use PCRE several times, yet noone can show me an example of one of these 3 exploits. Where are they documented in detail?

CoJaBo, yes, they are. I do not store the security email's I get from Debian or FreeBSD. I address them on my system and then remove them. I am sure they are searchable online at debian's site. It's not at all out of the question that a buffer overrun can do this, it happens to thousands of products every single day. We have shown you on IRC some detailed explanations of this but none have went into such detail as reproducing code to exploit, thus you have denied their existence.

Buffer overruns are serious business and they exist in almost any C application, why is it so hard to believe? However, please do as I have said many times on IRC, search the debian security archives, it's there. They specifically have stated that a patch has been released for PCRE to prevent buffer overruns and execution of system commands. I get an email like this normally 1-2 times a week from Debian. Is it so hard to believe that it might have happened to pcre 3 times in the last year?

Jeremy

new topic     » goto parent     » topic index » view message » categorize

10. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

CoJaBo said...

^ That, I would like to see. I have seen exploits used as an example of why not to use PCRE several times, yet noone can show me an example of one of these 3 exploits. Where are they documented in detail?

Ok, I did the search for you. It was 2 last year and 1 towards the end of the previous that must have been thinking of, as we discussed this in detail a quite a few months ago. Here are the results:

dsa-1399, dsa-1499, dsa-1602.

Now, I want to take something from that text, for those who are not going to read them... Here is a direct quote:

"Tavis Ormandy of the Google Security Team has discovered several security issues in PCRE, the Perl-Compatible Regular Expression library, which potentially allow attackers to execute arbitrary code by compiling specially crafted regular expressions."

Jeremy

new topic     » goto parent     » topic index » view message » categorize

11. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

I vote for a small mantainable regexp library in the backend. If you really need PCRE power, you can wrap it easily.

Cheers,

Guillermo

new topic     » goto parent     » topic index » view message » categorize

12. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

This could be an opportunity to create a Euphoria friendly regex library.

include std/regex.e as re 
regex r = re:new( "\\\\" ) 
object result = re:find( r, "Eup\\horia" ) 
? result 
 
   -- { 
   --    {4,4} 
   -- } 

This example shows how messy a regular expression can getsearching for just one character. The problem is that \ is an escape character in both the regex and the string you are searching. If you provide a regex-library that uses, say ~ , as an escape character then a regex should become much easier to read.

For those that like Perl, then a wrapped Perl library could be obtained from the archive.

Tom

new topic     » goto parent     » topic index » view message » categorize

13. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

Tom said...

This could be an opportunity to create a Euphoria friendly regex library.

include std/regex.e as re 
regex r = re:new( "\\\\" ) 
object result = re:find( r, "Eup\\horia" ) 
? result 
 
   -- { 
   --    {4,4} 
   -- } 

This example shows how messy a regular expression can getsearching for just one character. The problem is that \ is an escape character in both the regex and the string you are searching. If you provide a regex-library that uses, say ~ , as an escape character then a regex should become much easier to read.

For those that like Perl, then a wrapped Perl library could be obtained from the archive.

This problem will occur with a wrapped PCRE as well, it has to deal with how Euphoria does the string escaping, not really the regex library in use.

You could rewrite it like this:

include std/regex.e as re 
regex r = re:new( #/\\/ ) -- /regex/ is the standard way of doing it in Perl 
object result = re:find( r, "Eup\\horia" ) 
? result 
 
   -- { 
   --    {4,4} 
   -- } 

The /
/ could be almost anything. BTW, the #/..../ is what many people consider a heredoc string, it allows things such as:

sequence email = #/ 
Hello %s, 
 
I hope this email finds you well... 
 
The Eu Dev Team 
/ 
 
puts(1, email) 

but, it has other benefits such as the above in regex's smile

Jeremy

new topic     » goto parent     » topic index » view message » categorize

14. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

Tom said...

This could be an opportunity to create a Euphoria friendly regex library.

include std/regex.e as re 
regex r = re:new( "\\\\" ) 
object result = re:find( r, "Eup\\horia" ) 
? result 
 
   -- { 
   --    {4,4} 
   -- } 

This example shows how messy a regular expression can getsearching for just one character. The problem is that \ is an escape character in both the regex and the string you are searching. If you provide a regex-library that uses, say ~ , as an escape character then a regex should become much easier to read.

For those that like Perl, then a wrapped Perl library could be obtained from the archive.

Tom

Why not just code it as ...

include std/regex.e as re 
-- Look for a back-slash character 
regex r = re:new( #'\\' ) 
object result = re:find( r, #'Eup\horia' ) 
? result 
 
   -- { 
   --    {4,4} 
   -- } 
new topic     » goto parent     » topic index » view message » categorize

15. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

I saw this thread in the developer list. I just wanted to leave some comments. There are many useful things Euphoria can and could do. Suppose I propose we add C code from a wx gui library? This will allow us to make portable gui apps in EUPHORIA. Suppose I propose we add COM support to EUPHORIA? Create shortcuts and such. What about Windows registry support? The punch line here is it is there already.

There are two ways to make a program. You can have it as one exe file or you can have an exe file and various dlls floating about the system. The former way of doing things is what we saw in the DOS days and for Linux the early distributions. There is an article about the benefits of ELF-binary format in some of the old Linux distros, see Slackware 3.0, and it is really more about the differences between having dlls instead of static linking.

Let's go with PCRE but distribute with EUPHORIA as a dynamic library wrapped into EUPHORIA. Just like wxEUPHORIA, EUCONS, and the registry library, EUPHORIA can call code in a dll instead of call its own binary and it is better because "it gives the user a faster upgrade path." Suppose, a bug is found in the wx dlls? Do you wait for another release of EUPHORIA to inherit the bug fix? NO! You upgrade the DLL ofcourse and PCRE shouldn't be any different. If developers leave PCRE in EUPHORIA users still have to wait on the PCRE guys and the EUPHORIA developers as well to release it.

That is what I thought about PCRE when it was first introduced into the svn and that is what I think of it now. I am at a loss why clever people would be doing this in such an archaic way.

Shawn Pringle

new topic     » goto parent     » topic index » view message » categorize

16. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

SDPringle said...

I saw this thread in the developer list. I just wanted to leave some comments. There are many useful things Euphoria can and could do. Suppose I propose we add C code from a wx gui library? This will allow us to make portable gui apps in EUPHORIA. Suppose I propose we add COM support to EUPHORIA? Create shortcuts and such. What about Windows registry support? The punch line here is it is there already.

The difference to me, and I believe others who decided to put regex in core, is that regex is used in a ton of applications. On the other hand, COM is not, GUI is not. Even if GUI were, there are many nice GUI libraries and which one is best? None, they all have their own benefits.

Regular Expressions can increase a programmers productivity in quite a bit of ways. They are beneficial enough that most other languages now include them as well. I am not saying that we should be like every other language, but I am saying, that many programmers have come to rely on them.

The downside to your suggestion is now that for my program to work, I must distribute my exe, as well as a gob of dll files to go along with it. This is fine for accessories, but regex was decided long ago to be an essential due to it's general use and lack of 50 different ways of doing it.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

17. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jeremy said...

The downside to your suggestion is now that for my program to work, I must distribute my exe, as well as a gob of dll files to go along with it. This is fine for accessories, but regex was decided long ago to be an essential due to it's general use and lack of 50 different ways of doing it.

First, lets recognize that is a Windows-centric issue. Linux/GNU, FreeBSD, and OS X simply don't have this issue because they will generally include the regex libs by default.

However, for regex to be part of the standard library, it must work hassle free on all platforms.

Fortunately, Windows provides a Windows-specific way of solving the issue - we can bundle those external dlls needed on Windows into exw.exe and exwc.exe when they are compiled, and then the dlls are part of the one binary that gets distributed.

The one advantage to bundling PCRE is DOS. If nothing else, we can use Mic's gendll utility to load the Windows pcre.dll from ex.exe and call its routines, so simply having PCRE as a dynamic library doesn't prevent it from being included in DOS. However, for DOS apps one would still need to distribute pcre.dll with the otherwise single binary, so this argument is valid for DOS.

new topic     » goto parent     » topic index » view message » categorize

18. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jimcbrown said...
jeremy said...

The downside to your suggestion is now that for my program to work, I must distribute my exe, as well as a gob of dll files to go along with it. This is fine for accessories, but regex was decided long ago to be an essential due to it's general use and lack of 50 different ways of doing it.

First, lets recognize that is a Windows-centric issue. Linux/GNU, FreeBSD, and OS X simply don't have this issue because they will generally include the regex libs by default.

I'll give you that, however, now on Linux, FreeBSD, OS X we have to deal with what version of PCRE are we dealing with? Thus, more complications. I am all for doing what thousands of programmers have already decided was the best way of handling it and including regex in Euphoria.

For instance, there are string libraries and math libraries, many much better than what Euphoria has. Why not strip any string processing from Euphoria and any math functions from Euphoria as well? Those libs are much better and on Linux, FreeBSD, OS X many of them are included.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

19. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

Let me further ask, what is wrong with bundling regular expressions? I see only benefit and no downsides.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

20. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

SDPringle said...

That is what I thought about PCRE when it was first introduced into the svn and that is what I think of it now. I am at a loss why clever people would be doing this in such an archaic way.

I don't understand why you think static linking is archaic. It simply solves a different problem than dynamic linking.

Matt

new topic     » goto parent     » topic index » view message » categorize

21. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jeremy said...

Let me further ask, what is wrong with bundling regular expressions? I see only benefit and no downsides.

Jeremy

One advantage to the "binding the dll as a resource" approach is that one can update the resource with a newer version of the dll when necessary (e.g. we need to update due to a security flaw in the older version). It is not necessary to recompile the interpreter .exe, or any bound programs, to do this.

new topic     » goto parent     » topic index » view message » categorize

22. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jimcbrown said...

One advantage to the "binding the dll as a resource" approach is that one can update the resource with a newer version of the dll when necessary (e.g. we need to update due to a security flaw in the older version). It is not necessary to recompile the interpreter .exe, or any bound programs, to do this.

This more I think about this, I'm for more frequent releases of Euphoria, big or small. For instance, one product I work with that I really enjoy has a 3 month cycle. New products will be released every 3 months, even if only a few bug fixes. If we manage the SVN repo right, a new relase w/fixed pcre (or any other flaw in Euphoria) should be easy to accomplish. Here's how...

When I release a version of Euphoria, I tag the svn TRUNK, for instance, http://rapideuphoria.svn.sourceforge.net/svnroot/rapideuphoria/tags

We then continue working on SVN trunk as if nothing happened. Now, we have the tag. Let's say svn trunk is 1/2 thru it's release cycle and a major flaw is found (in anything, PCRE, Euphoria std lib, Euphoria core), we tag a new version (say 4.0.1 off of tags/4.0.0) and we make the appropriate fixes to code, and run the package scripts to release 4.0.1. We then simply merge tags/4.0.1 into trunk and the changes made in 4.0.1 are then applied to our SVN trunk, where the next version of Euphoria will come from.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

23. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jeremy said...
jimcbrown said...

One advantage to the "binding the dll as a resource" approach is that one can update the resource with a newer version of the dll when necessary (e.g. we need to update due to a security flaw in the older version). It is not necessary to recompile the interpreter .exe, or any bound programs, to do this.

This more I think about this, I'm for more frequent releases of Euphoria, big or small. For instance, one product I work with that I really enjoy has a 3 month cycle. New products will be released every 3 months, even if only a few bug fixes. If we manage the SVN repo right, a new relase w/fixed pcre (or any other flaw in Euphoria) should be easy to accomplish. Here's how...

When I release a version of Euphoria, I tag the svn TRUNK, for instance, http://rapideuphoria.svn.sourceforge.net/svnroot/rapideuphoria/tags

We then continue working on SVN trunk as if nothing happened. Now, we have the tag. Let's say svn trunk is 1/2 thru it's release cycle and a major flaw is found (in anything, PCRE, Euphoria std lib, Euphoria core), we tag a new version (say 4.0.1 off of tags/4.0.0) and we make the appropriate fixes to code, and run the package scripts to release 4.0.1. We then simply merge tags/4.0.1 into trunk and the changes made in 4.0.1 are then applied to our SVN trunk, where the next version of Euphoria will come from.

Jeremy

It is not clear to me what you are saying here - that we should release a new version of Euphoria when a PCRE issue is discovered and fixed (and then propagated to update our svn) ?

This also doesn't address the point for a bound app (that you can just update the resource that holds pcre.dll rather than having to rebind the app under the new version of Euphoria), although I suppose that is a minor enough detail that we don't have to worry about it.

new topic     » goto parent     » topic index » view message » categorize

24. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jimcbrown said...

One advantage to the "binding the dll as a resource" approach is that one can update the resource with a newer version of the dll when necessary (e.g. we need to update due to a security flaw in the older version). It is not necessary to recompile the interpreter .exe, or any bound programs, to do this.

I think I'd prefer to have a euphoria version be an atomic unit. I think Jeremy mentioned the difficulty in keeping everything straight when handling bug reports. If a problem is found with the currently used version of pcre, then I think the proper thing to do would be to release a point (bugfix) release.

Matt

new topic     » goto parent     » topic index » view message » categorize

25. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

jimcbrown said...

It is not clear to me what you are saying here - that we should release a new version of Euphoria when a PCRE issue is discovered and fixed (and then propagated to update our svn) ?

Yes, and whatever other bug fixes we have at the momement.

jimcbrown said...

This also doesn't address the point for a bound app (that you can just update the resource that holds pcre.dll rather than having to rebind the app under the new version of Euphoria), although I suppose that is a minor enough detail that we don't have to worry about it.

I'd suppose if it were on a end users desktop (say a shareware/freeware program) then they would have to download, run a patch utility to do this. First, they would have to be notified of the change, etc... Seems just as easy to download a new exe/installer.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

26. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

I think a better idea is to develop drop-in IL MODULES that
can be either bound to a end-user's program or can be compiled into
to a end-user's program whichever the user chooses.

Euphoria would just have a basic structure and a standard IL MODULE
interface that everyone can use that is bug free and
not dependent on any outside code.

User's would be able to write IL MODULES and place
their IL MODULES or IL MODULE source code in the archive.

This would make the developer's job much easier because
all they would need to do is keep the IL MODULE interface
standard.

The end users would be happy because they would not have to
include a dll that they don't use.

If you want to have regex as a dll; then drop in a IL MODULE
that you wrote to interface with your latest, greatest
regex dll or write a IL MODULE in Euphoria that does regex.

It would be the user's choice about what to do and would not
require any changes or updates to the standard Euphoria
interpreter.

new topic     » goto parent     » topic index » view message » categorize

27. Re: 4.0a3 - Two Regular Expression Libraries? -- We need your input!

bernie said...

I think a better idea is to develop drop-in IL MODULES that can be either bound to a end-user's program or can be compiled into to a end-user's program whichever the user chooses.

Euphoria would just have a basic structure and a standard IL MODULE interface that everyone can use that is bug free and not dependent on any outside code.

Bernie,

Let me know what your SF user id is, and I'll set you up so that you can get this into 4.1.

Matt

new topic     » goto parent     » topic index » view message » categorize

28. Re: 4.0a3 - Two Regular Expression Libraries? -- Final Decision Made

We've tallied all the resources, considered the pros/cons all over again and have decided to keep PCRE. One of the main reasons is that it effectively adds more developers to the Euphoria project because we are not going to be wasting our developers time on enhancing/fixing our own implementation of a regular expression library when a well tested, standard regular expression library already exists.

4.0b1 (next release) will include only pcre as regex.e.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu