|
From: Jeremy C. <je...@co...> - 2008-05-26 02:36:38
|
We've had hundreds of emails discussing this, I have narrowed it down to two very simple examples. Please vote stating #1 or #2. This vote is only for calling functions of internal/external on the same name. This has nothing to do with the override discussions. Note, the difference is highlighted with "!!!!!" ============================================= #1... the current method -- ftp.e global function open(...) -- myprog.ex include ftp.e as ftp open(...) ------- ftp.e's open() !!!!! eu:open(...) ---- internal open() ftp:open(...) --- ftp.e's open() ============================================= #2... my proposed method -- ftp.e global function open(...) -- myprog.ex include ftp.e as ftp open(...) ------- internal open() !!!!! eu:open(...) ---- internal open() ftp:open(...) --- ftp.e's open() ============================================= A very short explanation of #2. when Euphoria sees the first open() call, it realizes that there are no other global open() functions that are defined with no namespace. It chooses the internal open() then. The ftp.e's open() was defined inside of the "ftp" namespace, thus there should be no conflict. #1 will break code as soon as someone begins to use the standard library. They will be required to go back and prefixed all functions that are overloaded with "eu:". #2 will not break any existing code, even after standard library includes are used. The program will continue to work as normal. Please vote that you agree with #1 or #2. Jeremy Cowgar |