home: hub: 9ficl

ref: 1591d8a423dee113d543648ab5c3ea07cfb5c55b
dir: /ReadMe.txt/

View raw version
rel 2.02 -- 17 October 1998

Changed ficlExec so that the search order really does get reset
on an ERREXIT as advertised.

marker   ( "name" -- )
forget   ( "name" -- )
forget-wid  ( wid -- )

SOURCE-ID is now equal to the (<>0) file id when loading a file 
(Win32 only), and -1 when doing EVALUATE. This means that 
REFILL now works correctly when loading a file...
Win32 LOAD command (oops) now complies with the FILE wordset
specification of FILE-INCLUDE (REFILL returns FALSE at EOF)

ficl-wordlist   ( nBins -- wid )  
    Creates a hashed wordlist with the number of bins specified.
    Best hash performance if nBins is prime!
ficl-vocabulary   ( nBins "name" -- )
    Uses ficl-wordlist to make a vocabulary with the given name
    and number of hash bins

:NONAME (bug fix) no longer pushes control marker for colon and
    exec token in wrong order.
WORDS ignores :noname (anonymous) definitions 

dictUnsmudge no longer links anonymous definitions into the hash

HIDE   ( -- wid-was )
new wordlist called HIDDEN and word HIDE for keeping execution
factors from cluttering the default namespace any worse than it 
already is... HIDE sets HIDDEN as the compile wordlist and pushes 
it onto the search order. When finished compiling execution factors,
a call to SET-CURRENT restores the previous compile wordlist. When
finished compiling words that use the execution factors, use PREVIOUS
to restore the prior search order.

Added (my current understanding of) the Johns Hopkins local syntax
in file softwords/jhlocal.fr. This is in the default version of softcore.c
instead of the previous {{ }} local syntax. That syntax is still available
in softwords/ficllocal.fr if you want it instead. Ficl's implementation
of the Johns Hopkins local syntax:
    { a b c | d -- e f }
      ^^^^^   ^    ^^ this is a comment
      |||||   \ this local is cleared initially
      \\\\\ these come off the stack in the correct order

A, b, and c are initialized off the stack in right to left order
(c gets the top of stack). D is initialized to zero. E and f are
treated as comments. The | and -- delimiters are optional. If they
appear, they must appear once only, and in the order shown.


OOP vocabulary - no longer in the search order at startup.
No longer default compile voc at startup

oo.fr 

Revised to make more extensive use of early binding for speed.

META (constant) pushes the address of METACLASS. This word is
    not immediate. Makes it easier to deal with early binding of
    class methods.

object::init now uses metaclass::get-size explicitly rather
    than object::size.

classes.fr

Added c-ptr base class for all pointer classes. derived 
    c-cellPtr, c-bytePtr, and c-wordPtr from c-ptr. These
    classes model pointers to raw scalar types.


rel 2.01
18 sep 98 -- (local) changed so that it does not leave anything 
on the stack after it runs (previously left a marker after the 
first local, consumed it after the last local). Marker is now
a static of (local).

Added {{ -- }} local syntax with variable reordering




========================================================================
       MICROSOFT FOUNDATION CLASS LIBRARY : ficlwin
========================================================================


AppWizard has created this ficlwin application for you.  This application
not only demonstrates the basics of using the Microsoft Foundation classes
but is also a starting point for writing your application.

This file contains a summary of what you will find in each of the files that
make up your ficlwin application.

ficlwin.h
    This is the main header file for the application.  It includes other
    project specific headers (including Resource.h) and declares the
    CFiclwinApp application class.

ficlwin.cpp
    This is the main application source file that contains the application
    class CFiclwinApp.

ficlwin.rc
    This is a listing of all of the Microsoft Windows resources that the
    program uses.  It includes the icons, bitmaps, and cursors that are stored
    in the RES subdirectory.  This file can be directly edited in Microsoft
	Developer Studio.

res\ficlwin.ico
    This is an icon file, which is used as the application's icon.  This
    icon is included by the main resource file ficlwin.rc.

res\ficlwin.rc2
    This file contains resources that are not edited by Microsoft 
	Developer Studio.  You should place all resources not
	editable by the resource editor in this file.

ficlwin.clw
    This file contains information used by ClassWizard to edit existing
    classes or add new classes.  ClassWizard also uses this file to store
    information needed to create and edit message maps and dialog data
    maps and to create prototype member functions.

/////////////////////////////////////////////////////////////////////////////

For the main frame window:

MainFrm.h, MainFrm.cpp
    These files contain the frame class CMainFrame, which is derived from
    CFrameWnd and controls all SDI frame features.

res\Toolbar.bmp
    This bitmap file is used to create tiled images for the toolbar.
    The initial toolbar and status bar are constructed in the
    CMainFrame class.  Edit this toolbar bitmap along with the
    array in MainFrm.cpp to add more toolbar buttons.

/////////////////////////////////////////////////////////////////////////////

AppWizard creates one document type and one view:

ficlwinDoc.h, ficlwinDoc.cpp - the document
    These files contain your CFiclwinDoc class.  Edit these files to
    add your special document data and to implement file saving and loading
    (via CFiclwinDoc::Serialize).

ficlwinView.h, ficlwinView.cpp - the view of the document
    These files contain your CFiclwinView class.
    CFiclwinView objects are used to view CFiclwinDoc objects.



/////////////////////////////////////////////////////////////////////////////
Other standard files:

StdAfx.h, StdAfx.cpp
    These files are used to build a precompiled header (PCH) file
    named ficlwin.pch and a precompiled types file named StdAfx.obj.

Resource.h
    This is the standard header file, which defines new resource IDs.
    Microsoft Developer Studio reads and updates this file.

/////////////////////////////////////////////////////////////////////////////
Other notes:

AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.

If your application uses MFC in a shared DLL, and your application is 
in a language other than the operating system's current language, you
will need to copy the corresponding localized resources MFC40XXX.DLL
from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
and rename it to be MFCLOC.DLL.  ("XXX" stands for the language abbreviation.
For example, MFC40DEU.DLL contains resources translated to German.)  If you
don't do this, some of the UI elements of your application will remain in the
language of the operating system.

/////////////////////////////////////////////////////////////////////////////

YOU SHOULD CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS BEFORE USING THIS PRODUCT.
IT CONTAINS SOFTWARE, THE USE OF WHICH IS LICENSED BY PALM COMPUTING, INC., A SUBSIDIARY 
OF 3COM CORPORATION (COLLECTIVELY, "3COM"), TO ITS CUSTOMERS FOR THEIR USE ONLY AS SET 
FORTH BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT,  
DO NOT USE THE SOFTWARE.  USING ANY PART OF THE SOFTWARE INDICATES THAT YOU ACCEPT THESE 
TERMS.

LICENSE:  3Com grants you a nonexclusive license to use the accompanying software program(s)
(the "Software") subject to the terms and restrictions set forth in this License Agreement.  
You are not permitted to lease or rent (except under separate mutually agreeable terms set 
forth in writing), distribute or sublicense the Software or to use the Software in a 
time-sharing arrangement or in any other unauthorized manner.  Further, no license is granted 
to you in the human readable code of the Software (source code).  Except as provided below, 
this License Agreement does not grant you any rights to patents, copyrights, trade secrets, 
trademarks, or any other rights in respect to the Software.

The Software is licensed to be used on any personal computer and/or any 3Com product, provided 
that the Software is used only in connection with 3Com products.  With respect to the Desktop 
Software, you may reproduce and provide one (1) copy of such Software for each personal computer 
or 3Com product on which such Software is used as permitted hereunder.  With respect to the 
Device Software, you may use such Software only on one (1) 3Com product.  Otherwise, the Software 
and supporting documentation may be copied only as essential for backup or archive purposes in 
support of your use of the Software as permitted hereunder.  You must reproduce and include all 
copyright notices and any other proprietary rights notices appearing on the Software on any 
copies that you make.  

NO Assignment; No Reverse Engineering:  You may transfer the Software and this License 
Agreement to another party if the other party agrees in writing to accept the terms and 
conditions of this License Agreement.  If you transfer the Software, you must at the same 
time either transfer all copies of the Software as well as  the supporting documentation 
to the same party or destroy any such materials not transferred.  Except as set forth 
above, you may not transfer or assign the Software or your rights under this License Agreement.  

Modification, reverse engineering, reverse compiling, or disassembly of the Software is 
expressly prohibited.  However, if you are a European Community ("EC") resident, information 
necessary to achieve interoperability of the Software with other programs within the meaning 
of the EC Directive on the Legal Protection of Computer Programs is available to you from 
3Com upon written request.

EXPORT RESTRICTIONS:  You agree that you will not export or re-export the Software or 
accompanying documentation (or any copies thereof) or any products utilizing the Software 
or such documentation in violation of any applicable laws or regulations of the United States 
or the country in which you obtained them.

Trade Secrets; Title:  You acknowledge and agree that the structure, sequence and organization 
of the Software are the valuable trade secrets of 3Com and its suppliers.  You agree to hold 
such trade secrets in confidence.  You further acknowledge and agree that ownership of, and 
title to, the Software and all subsequent copies thereof regardless of the form or media are 
held by 3Com and its suppliers.

UNITED STATES Government Legend:  

The Software is commercial in nature and developed solely at private expense.  The Software 
is delivered as "Commercial Computer Software" as defined in DFARS 252.227-7014 (June 1995) 
or as a commercial item as defined in FAR 2.101(a) and as such is provided with only such 
rights as are provided in this License Agreement, which is 3Com's standard commercial license 
for the Software.  Technical data is provided with limited rights only as provided in 
DFAR 252.227-7015 (Nov. 1995) or FAR 52.227-14 (June 1987), whichever is applicable.

TERM AND TERMINATION:  This License Agreement is effective until terminated.  You may 
terminate it at any time by destroying the Software and documentation together with 
all copies and merged portions in any form.  It will also terminate immediately if 
you fail to comply with any term or condition of this License Agreement.  Upon such 
termination you agree to destroy the Software and documentation, together with all copies 
and merged portions in any form.

GOVERNING LAW:  This License Agreement shall be governed by the laws of the State of 
California as such laws are applied to agreements entered into and to be performed 
entirely within California between California residents and by the laws of the United 
States.  You agree that the United Nations Convention on Contracts for the International 
Sale of Goods (1980) is hereby excluded in its entirety from application to this License Agreement.

NO WARRANTY:  THE SOFTWARE AND ALL RELATED DOCUMENTATION ARE PROVIDED ON AN "AS IS" BASIS 
AND ALL RISK IS WITH YOU.  BECAUSE THE SOFTWARE AND DOCUMENTATION ARE PROVIDED TO YOU FREE 
OF CHARGE, 3COM MAKES NO WARRANTIES, TERMS, OR CONDITIONS, EXPRESS, IMPLIED OR STATUTORY, 
AS TO ANY MATTER WHATSOEVER.  IN PARTICULAR, ANY AND ALL WARRANTIES, TERMS OR CONDITIONS 
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD PARTIES 
RIGHTS ARE EXPRESSLY EXCLUDED.  FURTHER, 3COM MAKES NO REPRESENTATIONS, WARRANTIES, TERMS 
OR CONDITIONS THAT THE SOFTWARE AND DOCUMENTATION PROVIDED ARE FREE OF ERRORS OR VIRUSES 
OR THAT THE SOFTWARE AND DOCUMENTATION ARE SUITABLE FOR YOUR INTENDED USE.   

LIMITATION OF LIABILITY:  IN NO EVENT SHALL 3COM OR ITS SUPPLIERS BE LIABLE TO YOU OR ANY 
OTHER PARTY FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES, LOSS OF DATA OR DATA 
BEING RENDERED INACCURATE, LOSS OF PROFITS OR REVENUE, OR INTERRUPTION OF BUSINESS IN 
ANY WAY ARISING OUT OF OR RELATED TO THE USE OR INABILITY TO USE THE SOFTWARE AND/OR 
DOCUMENTATION, REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT 
(INCLUDING NEGLIGENCE), STRICT PRODUCT LIABILITY OR OTHERWISE, EVEN IF ANY REPRESENTATIVE 
OF 3COM OR ITS SUPPLIERS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  NOTHING IN 
THIS AGREEMENT SHALL HAVE THE EFFECT OF LIMITING OR EXCLUDING 3COM'S LIABILITY FOR DEATH 
OR PERSONAL INJURY CAUSED BY ITS OWN  NEGLIGENCE.  THIS DISCLAIMER OF LIABILITY FOR DAMAGES 
WILL NOT BE AFFECTED BY ANY FAILURE OF THE SOLE AND EXCLUSIVE REMEDIES HEREUNDER.

DISCLAIMER:   Some countries, states, or provinces do not allow the exclusion or 
limitation of implied warranties or the limitation of incidental or consequential 
damages for certain products supplied to consumers or the limitation of liability 
for personal injury, so the above limitations and exclusions may be limited in their 
application to you.  When the implied warranties are not allowed to be excluded in 
their entirety, they will be limited to the duration of the applicable written 
warranty.  This warranty gives you specific legal rights which may vary depending 
on local law.

SEVERABILITY:  In the event any provision of this License Agreement is found to be 
invalid, illegal or unenforceable, the validity, legality and enforceability of any 
of the remaining provisions shall not in any way be affected or impaired and a valid, 
legal and enforceable provision of similar intent and economic impact shall be 
substituted therefor.

ENTIRE AGREEMENT:  This License Agreement sets forth the entire understanding and 
agreement between you and 3Com, supersedes all prior agreements, whether written or 
oral, with respect to the Software, and may be amended only in a writing signed by 
both parties.