home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l217 / 1.ddi / READ.ME < prev    next >
Encoding:
Text File  |  1990-03-26  |  16.2 KB  |  432 lines

  1.  
  2.                  WELCOME TO PDC PROLOG VERSION 3.2
  3.                  ----------------------------------
  4.  
  5.   This README file contains necessary information about PDC
  6.   Prolog Version 3.2 that is not included in the documentation at
  7.   this time.  Please read this file in its entirety and refer to
  8.   it if you have any questions.
  9.  
  10. TABLE OF CONTENTS
  11. -----------------
  12.  1.  How to contact technical support
  13.  2.  Installing PDC Prolog 3.2
  14.  3.  Mistakes/additions to the manual
  15.  4.  System limits
  16.  
  17.  
  18. 1.  HOW TO CONTACT TECHNICAL SUPPORT
  19. ------------------------------------
  20.   If you have any problems, please read this file and the PDC
  21.   Prolog manuals first. If you still have a question and need
  22.   assistance, help is available from the following sources provided
  23.   you are a registered user (to register, simply send in the User
  24.   Registration Card enclosed, or complete the "regcard" file enclosed
  25.   and send it through E-Mail):
  26.  
  27.     1.  Check with your local software dealer or users' group.
  28.  
  29.     2.  Type GO PCVENB on the CompuServe bulletin board system
  30.         and access the messages/libraries as appropriate. You may
  31.         also send mail to the PDC from there (see the sysop
  32.         roster for correct ID).
  33.  
  34.     3.  Send your message through MCI MAIL to
  35.  
  36.             PDC-Atlanta (for North America)
  37.             PDC-Copenhagen (for outside North America).
  38.  
  39.     4.  Write to us at the following address:
  40.  
  41.         In North America:
  42.             Prolog Development Center
  43.             568 14th Street N.W.
  44.             Atlanta, GA 30318.
  45.  
  46.         Outside North America
  47.             Prolog Development Center,
  48.             H.J. Holstvej 5A,
  49.             DK - 2605 Brondby, Copenhagen,
  50.             Denmark.
  51.  
  52.     5.  If you have an urgent problem that can't wait and you are a
  53.         registered user, you may call the PDC at
  54.  
  55.             +1 (404) 873-1366 (PDC in Atlanta, for North America)
  56.             +45 36 72 10 22 (PDC in Copenhagen, for outside North America).
  57.  
  58.         Please have the following information ready before calling:
  59.  
  60.           a.  Serial number on your original distribution disk.
  61.               Please have your serial number ready or we will be unable
  62.               to process your call.
  63.  
  64.           b.  Product version number.  The version number is printed on
  65.               the distribution disks.
  66.  
  67.           c.  Computer brand and model, and the brands and model numbers
  68.               of any additional hardware.
  69.  
  70.           d.  Operating system and version number. (The version number
  71.               can be determined by typing VER at the OS prompt.)
  72.  
  73.           e.  Contents of your AUTOEXEC.BAT file.
  74.  
  75.           f.  Contents of your CONFIG.SYS file.
  76.  
  77.         Not all of the above may be required, but it may help us to
  78.         identify the origin of your problem. However, please note that
  79.         it will frequently prove impossible to diagnose a problem on the
  80.         telephone, for which reason written (mail or E-mail) communication
  81.         is the preferred method.
  82.  
  83.     In any case, before contacting us, please try to isolate the problem
  84.     and if possible try to see if the problem persists if the machine's
  85.     configuration is changed or if the program is moved to another machine.
  86.  
  87.  
  88.  
  89. 2.  INSTALLING PDC PROLOG 3.2
  90. ------------------------------
  91.  
  92. Simply run the "install" program. This runs in both real mode (DOS) and
  93. protected mode (OS/2). You will then be prompted for the name of the directory
  94. in which to install the PDC Prolog system; if requested, the installation
  95. program will create the directory for you. From there on, follow the prompts
  96. to install the parts of the system and example programs you want. The
  97. installation program tells you how much disk space is needed for each
  98. component.
  99.  
  100. If you install everything, you will end up with the following directory
  101. setup (assuming you specified installation in a directory named c:\psys):
  102.  
  103. c:\psys\            Main directory, containing compiler(s),
  104.                 libraries(s) and associated files.
  105. c:\psys\include\        Header files, defining compile-time constants.
  106. c:\psys\foreign\tc\        Turbo C interface.
  107. c:\psys\foreign\msc\        Microsoft C interface.
  108. c:\psys\foreign\msc2\        Microsoft C interface for OS/2 (OS/2 only).
  109. c:\psys\bgi\            BGI drivers and library.
  110. c:\psys\programs\        Various demonstration programs.
  111. c:\psys\programs\pie\        Prolog Inference Engine (C&M in PDC Prolog)
  112. c:\psys\programs\pipes\        Message pipes (OS/2 only).
  113. c:\psys\programs\register\    External database system.
  114. c:\psys\answers\        Answers to exercises.
  115. c:\psys\examples\               Examples from the User's Guide.
  116. c:\psys\refexamp\               Examples from the Reference Guide.
  117.  
  118.  
  119. SPECIAL NOTE FOR THE OS/2 VERSION:
  120.  
  121. As PDC Prolog includes standard predicates directly accessing hardware
  122. ports, the OS/2 version requires Input/Output privileges. If you
  123. get the message
  124.  
  125. SYS0197: Microsoft Operating System/2 is not presently
  126. configured to run this application.
  127.  
  128. when you start the Prolog system, it means your OS/2 is not configured to
  129. allow this. In that case, add a line of the form
  130.  
  131. IOPL=YES
  132.  
  133. to the "config.sys" file in the root of drive C and reboot the system.
  134.  
  135. The OS/2 linker is executed as a child process by the PDC Prolog system
  136. when you compile to an executable file, and the Prolog system automatically
  137. supplies it with the linker definition file called "link2.def" from the
  138. Prolog system's home directory. However, if you create a program
  139. containing calls to the "port_byte" standard predicate, you need to tell
  140. the linker that parts of the program require IOPL. In this case, replace
  141. the contents of "link2.def" with the contents of "linkiopl.def", also found
  142. in the Prolog system's home directory.
  143.  
  144.  
  145. 3.  CHANGES, CORRECTIONS AND ADDITIONS TO THE MANUALS
  146. -----------------------------------------------------
  147.  
  148. The default keyboard setup is PROLOG.CFG, which by and large is compatible
  149. with Turbo Prolog 2.0. However, we have provided two other setups--
  150. MULTMATE.CFG, which is compatible with MultiMate, and SPRINT.CFG,
  151. which is compatible with Sprint. Feel free to use whichever you like,
  152. but note that the Sprint setup is by far the most consistent and coherent.
  153. Therefore, it's recommended that new users (and also users of previous
  154. versions, for that matter) use this one rather than either of the other two.
  155. Regrettably, the BRIEF-compatible setup mentioned in the manual could not
  156. be realized in this version.
  157.  
  158. ----------
  159.  
  160. stlnremove as described in the User's Guide is not implemented in the
  161. system. Predicates like "edit" will instead remove the status line themselves.
  162.  
  163. Be aware that status lines are now turned on by default in an .EXE, but
  164. this can be turned off with the "stlnstatus/1" predicate.
  165.  
  166. ----------
  167.  
  168. The appendix on changes from previous versions does not mention the C
  169. interface. Compilation should now be done with underbars on, and
  170. linking is rather different. You should see the separate chapter on
  171. foreign language interface as well as the FOREIGN subdirectory
  172. distributed with the system. However, please note that an extra parameter
  173. (not described in the manual) is required on the DOS versions of
  174. the main initialization function. See the files 'tcmain.c' and/or
  175. 'mscmain.c' in the foreign\tc and foreign\msc subdirectories, respectively.
  176.  
  177. ----------
  178.  
  179. If there are duplicates in a B+ tree, key_search(i,i,i,i) (i.e., where both
  180. the key and the ref are input arguments) will find an arbitrary match
  181. (though note that in this case duplicates means same key AND same ref),
  182. while key_search(i,i,i,o) will find the first match.
  183.  
  184. ----------
  185.  
  186. The first application key in the Integrated Environment is defined as
  187. Paste prototype (Ctrl-F1 in PROLOG.CFG).
  188.  
  189. ----------
  190.  
  191. Edit paste buffer is implemented for the editor. The assigned key can
  192. be inspected under the "Miscellaneous" entry in the editor popup menu.
  193.  
  194. ----------
  195.  
  196. Searching (in the editor) is now case-insensitive.
  197.  
  198. ----------
  199.  
  200. A new standard predicate, "setfilesize(File)" (not documented in the manual),
  201. allows explicit truncation or expansion of an open file, by setting its
  202. physical allocation to the current position of the file pointer. It has
  203. two posiible run-time errors (in addition to errors originating from the
  204. OS):
  205.  
  206. 1103 Attempt to assign output device to a file that is not in writemode.
  207. 1104 The file isn't open.
  208.  
  209. ----------
  210.  
  211. Note that when executing in a text-moded Presentation Manager window in OS/2,
  212. Ctrl-Break has no effect; use Ctrl-C instead. This problem stems from PM,
  213. not the Prolog system.
  214.  
  215. Also note that, if executing the DOS version in the DOS box in OS/2,
  216. Ctrl-Break may hang the entire machine and you may be unable to switch
  217. back to OS/2. Workaround: If you're running OS/2, use the OS/2 version.
  218.  
  219. ----------
  220.  
  221. It may be a bit confusing that the keyboard setup menu has entries for
  222. "Save file", "Load file" and "Pick file" in two different submenus.
  223. The reason is that these keys appear both in the "Files" pull-down menu
  224. and as global hot keys working everywhere in the integrated environment.
  225. In generated .EXE files only the "Files" menu is present.
  226.  
  227. ----------
  228.  
  229. The Files/New menu choice will not ask for a new file name,
  230. but instead start with an empty text.
  231.  
  232. ----------
  233.  
  234. The "GOTO LINE" and "GOTO POSITION" editor functions allow the numbers
  235. to be terminated by a normal carriage return.
  236.  
  237. ----------
  238.  
  239. Error messages for "readdevice" in the Reference Guide should be:
  240.   1102 Attempt to assign input device to a file that is not in readmode.
  241.   1104 The file isn't open.
  242.  
  243. ----------
  244.  
  245. Error messages for "writedevice" in the Reference Guide should be:
  246.   1103 Attempt to assign output device to a file that is not in writemode.
  247.   1104 The file isn't open.
  248.  
  249. ----------
  250.  
  251. The manual incorrectly states that the predicate "existfile" will give a
  252. run-time error if the file name includes a nonexistent path. This is not the
  253. case; existfile will fail if either the file itself or the path doesn't exist.
  254.  
  255. ----------
  256.  
  257. Flushing a printer will always close and reopen it. This is in
  258. order to force a true flush when printer output is spooled, either locally
  259. or through a network. On the other hand, closing or opening the standard
  260. printer ("LPT1" or "PRN", handle 4) currently has no effect in DOS.
  261.  
  262. In this connection, it should be observed that users of previous versions
  263. who have used a hack to get at the real file handle for Prolog files are
  264. in for a surprise. Although the same code will work, flushing a file on
  265. DOS versions less than 3.30 causes the file to be closed and reopened
  266. in the same position. There is, therefore, no guarantee that the file handle
  267. for a particular Prolog file remains the same after a call to the "flush"
  268. standard predicate.
  269.  
  270. ----------
  271.  
  272. The manual incorrectly states that this file contains information regarding
  273. extended screen text modes selectable from the integrated environment.
  274. However, all relevant information is found in the Reference Guide.
  275.  
  276. ----------
  277.  
  278. The procedure described in the manual for generating a Microsoft-compatible
  279. Prolog library is not needed any more. Both DOS and OS/2 Prolog libraries are
  280. compatible with both TLINK and LINK.
  281.  
  282. ----------
  283.  
  284. The manual incorrectly states that the standard predicate "osversion" strips
  285. leading and trailing zeroes. This is not the case; the operating system
  286. version returned by the OS is converted AS IS to a string representation.
  287.  
  288. ----------
  289.  
  290. For command-line compilation there is a link-only option implemented as:
  291.     prolog -cl FileName
  292.  
  293. ----------
  294.  
  295. The biggest database number you can use in the predicate "str_ref" is ~3FFFFFF.
  296. Otherwise the predicate will complain about an invalid value.
  297.  
  298. ----------
  299.  
  300. If you use Microsoft C you have to use the BYTE alignment option (-Zp1).
  301. Please see the example under FOREIGN\MSC.
  302.  
  303. ----------
  304.  
  305. As opposed to the previous versions, the dialog window uses the editor rather
  306. than a fancy line-input routine, and you should use PASTE to recall the
  307. previous goal. You can also use the cursor keys to go back and re-enter
  308. previous goals. You should note that the editor is entered in word-wrapping
  309. mode.
  310.  
  311. ----------
  312.  
  313. New predicates for handling the cursor are:
  314.  
  315. cursorsync:
  316.         Following "foreign" update of the cursor (e.g., when redirecting output
  317.     to stdout), the Prolog system has no way of knowing that the cursor
  318.         has moved, and will hence write new prompts, etc., in the wrong place.
  319.     Calling cursorsync will synchronize the Prolog system's cursor to
  320.         wherever the cursor is on screen, but, if the new position is outside
  321.     the current window, it will be forced inside.
  322.  
  323. cursorstate(on/off):
  324.     Normally the Prolog System turns the cursor on and off automatically,
  325.     whenever needed. However, calling cursorstate(off) turns the cursor
  326.     permanently off, and it remains under manual control until
  327.     cursorstate(on) is called, putting the cursor control back into
  328.     "automatic" mode. Note that you assume all responsibility for
  329.     displaying the cursor at the correct time if you turn it off.
  330.     cursorstate(on) may be called at any time, also without being
  331.         preceded by a call to cursorstate(off). In that case, it has the effect
  332.     of synchronizing the OS cursor with Prolog's cursor.
  333. ----------
  334.  
  335. In addition to the "edit/16" standard predicate, there is a new "edit/20"
  336. predicate (not described in the manual) where the extra parameters after
  337. those applying to edit/16 are:
  338.  
  339.   integer EscOnCr        % 1 means carriage return will terminate editor
  340.   integer FileOperations % 0 means the file menu operations will be inactive
  341.   string  Help           % Allows extra information to be popped up
  342.   string  StatLine       % Status line
  343.  
  344. ----------
  345.  
  346. There is a new standard predicate to set the text in the editor application
  347. key menu, called "applicationkey(KeyNo,String)", where KeyNo >= 1 and KeyNo <= 8
  348. and the length of the string <= 20.
  349.  
  350. ----------
  351.  
  352. There are special programming errors that can cause Prolog programs to
  353. crash the computer under DOS and cause a protection violation under OS/2.
  354. These are:
  355.  
  356.   - Mixing up the global declarations in a project.
  357.   - Using different domains for storing and retrieving terms for the
  358.     external database or in the OS/2 message system.
  359.   - Referring to invalid database reference numbers.
  360.   - Accessing nonexistent memory in memword, membyte and ptr_dword.
  361.  
  362. If you experience a problem, you should make sure you haven't fallen foul
  363. of any of these, or the final one:
  364.  
  365. Do not use term_delete on the ref following a ref returned by chain_terms.
  366. chain_terms is nondeterministic, and doing so will invalidate the entry
  367. chain_terms would return when backtracked into. The result is a run-time
  368. error or, at worst, a protection violation in OS/2.
  369.  
  370. ----------
  371.  
  372. Finally, see the NEWS.PRO example in the programs subdirectory for a quick
  373. demonstration of many of the new features.
  374.  
  375.  
  376.  
  377. 4.  SYSTEM LIMITS
  378. -------------------
  379. The limits shown apply to both DOS and OS/2, unless otherwise indicated.
  380.  
  381.  
  382. Compilation:
  383.  
  384. Domains in a single source module (including database domains) : 228
  385.  
  386. Alternatives in a domain declaration: 250
  387.  
  388. Subgoals in a clause: 100 (OS/2: 250)
  389.  
  390. Clauses in a predicate 400 (OS/2: 1,000)
  391.  
  392. Database predicates in a database section: 250
  393.  
  394. Local variables, including arguments, in a clause: 250
  395.  
  396. Arguments to a predicate or domain alternative: 50
  397.  
  398. Length of identifiers: 250
  399.  
  400. Length of constant strings in source code: 250
  401.  
  402. Left-hand alternatives in a domain declaration: 20
  403.  
  404. Total number of include files: 50
  405.  
  406. Nesting of conditional compilation: 25
  407.  
  408. Predicates in a single source module, incl. all flow variants: 674 (OS/2: 2,735)
  409.  
  410.  
  411. At run-time there are many different limits, often dependent upon system
  412. resources, which may vary from time to time. The most important are outlined
  413. below.
  414.  
  415. Windows: 50 (OS/2: 100)
  416.  
  417. Files: OS limit / domain alternatives(250).
  418.  
  419. unreadchar (internal kbd buffer): 127
  420.  
  421. readln (length of input line in kbd mode): 250
  422.  
  423. Memory
  424.     DOS: available memory.
  425.     OS/2: available memory / swap space,
  426.               with the additional limits of
  427.               GStack: No more than 2,000 segments (the size of each may vary)
  428.               Heap  : No more than 2,000 segments (each with gross size 64K,
  429.                       suballocated as far as possible)
  430.               Trail : 64K
  431.               Stack : 64K
  432.