home *** CD-ROM | disk | FTP | other *** search
/ PC Consument 1998 January / PCC11998.bin / demos / euphor.exe / TROUBLE.DOC < prev    next >
Encoding:
Text File  |  1997-03-20  |  6.3 KB  |  176 lines

  1.  
  2.     Euphoria Trouble-Shooting Guide
  3.     -------------------------------
  4.    
  5.    If you get stuck, here are some things you can do:
  6.    
  7.       1. type: GURU
  8.          followed by some keywords associated with your problem.
  9.          For example, 
  10.              guru declare global include
  11.       
  12.       2. Check the list of common problems (below).
  13.        
  14.       3. Read the relevant parts of the documentation, i.e. REFMAN.DOC
  15.          or LIBRARY.DOC.
  16.       
  17.       4. Try running your program with the statements:
  18.              
  19.              with trace
  20.              trace(1)
  21.          
  22.          at the top of your main .ex file so you can see what's going on.
  23.        
  24.       5. Post a message on the Euphoria mailing list (see WEB.DOC).
  25.  
  26.    
  27.    Here are some commonly reported problems (P:) and their solutions (S:). 
  28.  
  29.  
  30. P: How do I read/write ports?
  31.  
  32. S: Get Jacques Deschenes' collection of machine-level and DOS system 
  33.    routines from the Euphoria Web page. See his file "ports.e".
  34.  
  35.  
  36. P: I'm having trouble running a graphics program. I hit control-break
  37.    and now my system seems to be dead.
  38.  
  39. S: Some graphics programs will not run unless you start them from DOS or from a 
  40.    full-screen window under Windows. Sometimes you have to edit the program 
  41.    source to use a lower resolution graphics mode, such as mode 18.
  42.    
  43.    You should stop a program using the method that the program documentation 
  44.    recommends. If you abort a program with control-C or control-Break you may 
  45.    find that your screen is left in a funny graphics mode using funny colors. 
  46.    When you type something, it may be difficult or even impossible to read 
  47.    what you are typing. The system may even appear dead, when in fact it is 
  48.    not.
  49.    
  50.    Try the following DOS commands, in the following order, until you 
  51.    clear things up:
  52.         
  53.             1. type:  cls
  54.                Even when you can't see any keystrokes echoed on the screen
  55.                this may clear the screen for you.
  56.             
  57.             2. type:  ex
  58.                The Euphoria interpreter will try to restore a normal text
  59.                mode screen for you.
  60.             
  61.             3. type:  exit   
  62.            If you are running under Windows, this will terminate the
  63.            DOS session for you.
  64.         
  65.         4. type:  Control-Alt-Delete
  66.            This will let you kill the current DOS session under Windows,
  67.            or will soft-reboot your computer if you are running under
  68.            DOS.
  69.         
  70.         5. If all else fails, power your computer off and back on.
  71.            You should immediately run SCANDISK or CHKDSK when
  72.            the system comes back up.
  73.  
  74.  
  75. P: When I run my program from the editor and I hit control-C, the program dies
  76.    with an operating system error.
  77.  
  78. S: This is a known problem. Run your program from the command-line, outside
  79.    the editor, if you might have to hit control-c or control-break.
  80.    
  81.  
  82. P: When I run my program there are no errors but nothing
  83.    happens.
  84.  
  85. S: You probably forgot to call your main procedure. You need
  86.    a top-level statement that comes after your main procedure
  87.    to call the main procedure and start execution. 
  88.  
  89.  
  90. P: I'm trying to call a routine documented in library.doc, but it keeps
  91.    saying the routine has not been declared.
  92.  
  93. S: Did you remember to include the necessary .e file from the
  94.    euphoria\include directory? If the syntax of the routine says 
  95.    for example, "include graphics.e", then your program must have 
  96.    "include graphics.e" (without the quotes) before the place where you
  97.    first call the routine.
  98.  
  99.  
  100. P: I have an include file with a routine in it that I want to call,
  101.    but when I try to call the routine it says the routine has not 
  102.    been declared. But it *has* been declared.
  103.  
  104. S: Did you remember to define the routine with "global" in front
  105.    of it in the include file? Without "global" the routine is
  106.    not visible outside of its own file.
  107.  
  108.  
  109. P: After inputting a string from the user with gets(), the next line that
  110.    comes out on the screen does not start at the left margin.
  111.  
  112. S: Your program should output a new-line character
  113.    e.g. puts(SCREEN, '\n') after you do a gets(). It does
  114.    not happen automatically.
  115.  
  116.  
  117. P: It says I'm attempting to redefine my for-loop variable.
  118.  
  119. S: For-loop variables are declared automatically. Apparently you
  120.    already have a declaration with the same name earlier in
  121.    your routine or your program. Remove that earlier declaration
  122.    or change the name of your loop variable.
  123.  
  124.  
  125. P: I get the message "unknown escape character" on a line where I am 
  126.    trying to specify a file name.
  127.  
  128. S: *Do not* say "C:\TMP\MYFILE". You need to say "C:\\TMP\\MYFILE".
  129.    Backslash is used for escape characters such as \n or \t.
  130.    To specify a single backslash in a string you need to type \\.
  131.    
  132.  
  133. P: I'm trying to use mouse input in a SVGA graphics mode but it just
  134.    doesn't work.
  135.  
  136. S: DOS does not support mouse input in modes beyond graphics mode 18
  137.    (640x480 16 color). DOS 7.0 (part of Windows 95) does seem to let
  138.    you at least read the x-y coordinate and the buttons in high
  139.    resolution modes, but you may have to draw your own mouse pointer
  140.    in the high-res modes. See Peter Blue's solution on the Euphoria
  141.    Web page.
  142.  
  143.  
  144. P: I'm trying to print a string using printf but only the first
  145.    character comes out.
  146.  
  147. S: See the printf description in library.doc. You may need to put
  148.    braces around your string so it is seen as a single value to
  149.    be printed, e.g. you wrote: 
  150.        
  151.        printf(1, "Hello %s", mystring)
  152.    
  153.    where you should have said:
  154.        
  155.        printf(1, "Hello %s", {mystring})
  156.  
  157.  
  158. P: It complains about my routine declaration, saying "a type is expected here".
  159.  
  160. S: When declaring subroutine parameters, Euphoria requires you
  161.    provide an explicit type for each parameter. e.g.
  162.        procedure foo(integer x, y) -- WRONG
  163.        procedure foo(integer x, integer y) -- RIGHT
  164.    In all other contexts it is ok to make a list:
  165.        atom a, b, c, d, e
  166.        
  167.  
  168. P: I'm declaring some variables in the middle of a routine and it gives
  169.    me a syntax error.
  170.  
  171. S: All of your private variable declarations must come at the beginning
  172.    of your subroutine, before any executable statements. (At the
  173.    top-level of a program, outside of any routine, it is ok to declare 
  174.    variables anywhere.)
  175.  
  176.