# OpenEuphoria Manual

## Euphoria v4.1

routine or constant name search

| Up |  |  | TOC | Index
<< 8 API Reference | < 9.43 Version 2.0 March 25, 1998 | Up: 9 Release Notes | 9.45 Version 2.0 Alpha November 5, 1997 > | 10 Index >>

## 9.44 Version 2.0 Beta February 26, 1998

- The WIN32 interpreter, exw.exe, is now a true WIN32 GUI program. In 2.0 alpha it was a WIN32 `console` program that was always associated with a `console` or DOS-window. A DOS-style console window will now be created only if your program needs one. exw will automatically create a new console window the first time your program writes to the screen, reads from the keyboard, or calls any library routine that requires a console to work. The console will disappear automatically when your program finishes execution.
- A new library routine, free_console(), will immediately delete the console window if you currently have one.
- The Complete Edition of Euphoria now provides a -scramble option of bind and shroud to improve the security of programs that you distribute.
- You can now pass Euphoria atoms to C routines as 64-bit C double type floating-point arguments, and you can receive a floating-point result back from a C function.
- exw.exe (beta) runs 10 to 15% faster than exw.exe (alpha) (based on sieve.ex, shell.ex, etc.). The WATCOM C compiler was doing a bad job of optimizing a critical section of the interpreter when building exw.exe, but was producing excellent code when building ex.exe. With some trivial changes to the interpreter C code, WATCOM now produces excellent code for both platforms.
- The average program now has 60K more memory available before having to use the swap file.
- The limit on the size of a single procedure, function or type has been eliminated.
- The limit on the size of a single top-level statement has been eliminated.
- The limit on the total number of include files that can make up a program has been increased to 256 from 150.
- Some optimizations were added. The following general forms of expression are now faster:

    2 * x
        x * 2
        1 + x

where x can be any expression, and have type atom or sequence.

- There is a new documentation file, perform.doc with lots of tips for performance-obsessed programmers.
- If you call a C routine using c_func(), but you linked the C routine using define_c_proc() you will get an error message. Similarly, if you call it using c_proc(), but you linked it using define_c_func() you'll get an error message. This restriction was documented, but not actually enforced in 2.0 alpha. Some programs written for the alpha release will have to be corrected.
- You will now see the actual name of the C or Euphoria routine that you were attempting to call, when you get an error message from call_proc(), call_func(), c_proc(), or c_func().
- A new -clear_routines option of bind and shroud will leave the names of all routines unshrouded. This is necessary if your program calls routine_id(). You'll be warned if you use routine_id() and do not choose this option. (Registered users can use -scramble together with -clear_routines to restore a high level of shrouding.)
- If a name conflict arises with a global symbol, the shrouder will now warn you, and then choose a new name. It used to abort with a message.
- It is no longer possible to trace or profile shrouded code.
- A new demo program, hash.ex, was added to euphoria\demo.
- freq.ex was moved from euphoria\bin to euphoria\demo and renamed as tree.ex.
- A new documentation file, bind.doc describes all the features of bind.bat and shroud.bat. The previous description in refman.doc has been shrunk.
- The file overview.doc gives a quick overview of all documentation files.
- The description of get_mouse() in library.doc discusses the problem of 320-wide graphics modes (you must divide the x coordinate value by 2).

| Up |  |  | TOC | Index
<< 8 API Reference | < 9.43 Version 2.0 March 25, 1998 | Up: 9 Release Notes | 9.45 Version 2.0 Alpha November 5, 1997 > | 10 Index >>