HELP XNEWS.V13_9                                            Oct 1990

For most recent news please see HELP *NEWS, *XNEWS

1990
Oct 26 (Aaron Sloman)
    --- Version 13.9 At last. Very nearly ready for general release.
    See HELP * XPOP for information on getting started, and an overview
    of available documentation.

Jul 3 (Roger Evans)
    --- Version 13.81 interim release. Some users will see an
    interim release of Xpop numbered 13.81. This release is in a
    transitory state and may be missing some features and have features
    which will not be in v14. The main points to note are:

    1)  the representation of widgetclasses has changed. Since
    widgetclasses were generally considered opaques anyway, this should
    not affect many users. However the following routines have
    disappeared and have not been replaced by any functional equivalents
    (yet):

        iswidget_class
        iscomposite_widget_class
        widget_class_name
        widget_class_superclass
        widget_class_resources
        widget_class_actions

    2) The coercion type for widgetclasses, [widgetclass], (as
    used in external_load) has disappeared and been replaced by the
    implicit access procedure XptImportWidgetClass. NOTE HOWEVER, that
    XptImportWidgetClass can currently ONLY be used in the contetx of
    external loads (this will be changed for V14). General advice: don't
    use it directly, stay with xt_load_wc (in the compatibility lib) for
    now.

    3)  bobcat version no longer uses timer for its asynchronous IO
    stuff (it uses the virtual timer instead), and so, among other
    things, won't keep stopping whenever you mishap!

    4) garbage collector feedback does not work properly for bobcats.
    Also spontaneous destruction of widgets (via garbage collection,
    window manager etc.) throw the garbage collector into a dizzy spin.
    Don't do it - keep hold of your widgets and destroy them explicitly
    with fast_XtDestroyWidget if necessary.

Jun 27 (Aaron Sloman)
    --- LIB RC_MOUSE extended to allow user-assignable
        rc_rubber_function for use with colour displays.
        TEACH RC_GRAPHIC extended with colour and context examples.
Jun 22 (Aaron Sloman)
    --- The RC_GRAPHIC package has been extended with LIB * RC_CONTEXT
    to simplify switching between different windows.

Jun 1 (Roger Evans)
    --- The following libraries have been moved out of the main
    x/pop/lib directory into x/pop/compat. These libraries are obsolete
    and should be avoided where possible. They will be retained in
    V.14 for the convenience of users of pre-release Xpop, but are
    likely to disappear in V.15.

            external_data_ptr.p             xt_check_live_widget.p
            external_field_val.p            xt_check_widget.p
            external_subscr.p               xt_check_widget_class.p
            fast_XtCreateManagedWidget.p    xt_dummy_event.p
            islive_widget.p                 xt_font.p
            sys_trace_var.p                 xt_load_wc.p
            vedxgotomouse.p                 xt_new_shell.p
            xt_arglist.p                    xt_shadow.p
            xt_async.p                      xt_value.p
            xt_check_exlinkbase.p           xt_windows.p

    To access these libraries, load LIB * XT_COMPAT, which will put the
    appropriate directory in your lib lists etc.

May 27 (Aaron Sloman)
    --- A first draft HELP * XPOP has been created. Updated 27 May.

May 24 (Aaron Sloman)
    --- HELP * XPOP_NEWS moved to the main help directory

    --- The "RC" (Relative Co-ordinates) graphics package added to the
    Xpop library providing the following
        LIB * RC_GRAPHIC
        LIB * RC_ROTATE_XY
        LIB * RC_MOUSE
        LIB * RC_DRAWGRAPH
        LIB * RC_SET_SCALE
    These are all described fully in HELP * RC_GRAPHIC and an
    interactive introduction is available in TEACH * RC_GRAPHIC
    The package will probably be extended especially with additional
    facilities for interaction with the mouse.

    --- In order to facilitate access to the macro definitions, the
    following new files have been created in $usepop/pop/x/pop/lib/
        PopCore.ph PopGraphic.ph PopPixmap.ph
    and the definitions removed from the corresponding .p files
    The same thing has been done with $usepop/pop/x/pop/lib/xlib files
        XConstants.ph  XCoords.ph XDrawingPrimitives.ph

    --- The HELP * PopGraphic file has been corrected and extended, and
    the files LIB * PopGraphic, * PopPixmap, and * PopCore altered so
    that instead of applying -intof- to their numeric co-ordinates they
    check whether they are integers in the correct range. This means
    users will now have to round non-integer arguments where integers
    are needed.

May 23 (Aaron Sloman)
    --- LIB * POPXLIB extended to set up -popincludelist- so that
    Xpop programs can just do things like include PopGraphic.ph
    without having to specify a proper path name. Also LIB * XLIB
    (See HELP *INCLUDE)


April 30 (Ian Rogers)
   --- Integrated Jon Meyer's PD Poplog Widget Set with the main system.
       Amongst other things this meant deleting the old widget set and
       some of its' support libraries. See HELP * XPOPINDEX for a list
       of currently available facilities, and TEACH * XPOP for an
       introduction to this system.

1989

January 11 (Ian Rogers)
    --- Installed Xpop into the masters
August 8 (Roger Evans)
    RELEASE 9
    --- Xpop now supports X11R3 as well as X11R2. However the Xt
        interface remains as it was under R2 (ie the new toolkit
        features in R3 are not yet supported). There are now multiple
        binary directories names <Xversion>.<architecture> (eg
        X11R2.sun3. Most of the explicit X startup scripts have been
        removed - sites are expected to do this themselves. System
        configuration is controlled by three environment variables:
        $Xpop (root of Xpop tree), $Xpopbin (binary directory) $Xroot
        (root of X11 system) - see README file for more details.

        The HP widget set (and hence the demo), are not yet available
        under R3.
    --- As well as the basic xpop executable, there are three
        alternative entry points into the system: xpop11, xved and
        xprolog. Each of these starts up xpop in pop/ved/prolog
        respectively and creates a 'logo' widget. In R2 this is an HP
        button widget and has a ved files menu attached to left mouse
        button, in R3 it is a PopGraphic widget (with no menu).
    --- A new system constant -XtVersion- is exported, whose value is
            <X version no.> * 10000 + <X release no>
        (ie 11002 or 11002, currently). It is the approved way of
        testing (a) whether you are in Xpop (eg with #_IF DEF XtVersion)
        and (b) which version you are running.
    --- -fast_XtCallAction- now actually exists!
    --- Error handling is now slightly improved - Xlib low level errors
        are caught as well as Xt errors.
March 8 (Roger Evans)
    --- Changed name of executable to xpop (was Xpop) to bring it into
        line with X Windows conventions.

    --- -xt_load_wc- now knows about a new group of widgets - the
        keyword "pop" accesses the Poplog widget set. Currently this
        only contains one widgetclass, a simple graphics plane called
        "PopGraphic". See HELP *PopGraphic, HELP *xt_graphic. See
        HELP *xt_pwm for graphics PWM compatibility routines.

        -xt_load_wc- also accepts, within a list of widgetclass names,
        a LIST in place of a name. This is taken to be the spec for
        non-widgetclass data for external_load (eg other external
        procedures) to be loaded at the same time.

    --- -pop_reprompt_read- no longer exists - the system handles
        reprompting after interrupt properly now so it is not needed

    --- Widgets have -fast_XtDestroyWidget- as their default destroy
        actions so they get destroyed when they become garbage. The only
        exception is the first shell widget (returned by
        -fast_XtInitialize-). The system maintains a pointer to this
        widget and never lets it be destroyed (-fast_XtDestroyWidget-
        will mishap if you try and destroy it explicitly). This is
        because the X toolkit falls over if you destroy the first
        widget!

    --- A collection of new libraries have been added, mainly to support
        the new graphics plane widget PopGraphic. These are:

            PopGraphic.p    - load widget class and associated routines
            xt_check_widget.p - check for valid widget
            xt_check_live_widget.p - check for live widget
            xt_check_widget_class.p - check for valid widget class
            xt_windows.p    - widgets as free-standing windows
            xt_graphic.p    - high level support for PopGraphic widget
            xt_pwmgfx.p     - limited pwm compatibility for graphics

    --- The demo system now has a PopGraphic widget in it.

January 25 (Roger Evans)
    --- Threw out some nasty garbage collector-related bugs.
    --- Demo saved image now uses -sys_lock_system-
    --- System now has a default .uwmrc file ($Xpop/bin/uwmrc.default)
        which is used by the default .xstart file if there is no
        $HOME/.uwmrc

January 16 (Roger Evans)
    --- RELEASE 6
        SunOS 4 release (SunOs 3 no longer supported).
        Directory structure slightly changed: $Xpop/bin now replaces
        $Xpop/com and $Xpop/pop. New shell command Xved starts Xpop in
        Ved. NB: -external_invoke- code mentioned below is not yet fully
        tested!


1988

December 15 (Roger Evans)
    --- New procedures -external_invoke- and -fast_external_invoke-
        for calling external procedures - an alternative to
        -external_apply-. See HELP *external_invoke.

October 31 (Roger Evans)
    --- $Xroot now points to the X11 installation directory, rather than
        the virtual root directory. See $Xpop/README

September 14 (Roger Evans)
    --- There is now a simple demonstration system in $Xpop/demo. See
        HELP *xpop_demo for details.

    --- Changes to the callback mechanism - widget argument is now the
        Poplog widget record, -fast_XtAddCallback- allows you to specify
        coercion type for the call arg. It is now possible to raise two
        instances of the same callback, and interaction with the GC is
        better. See HELP *xt_callbacks.

September 13 (Roger Evans)
    --- Bug in -external_write_shadow- fixed: now clears out old dynamic
        references before rewriting shadow.

    --- LIB xt_value no longer creates garbage every time it is used.

    --- New library LIB hp_menu for creating popup menus. See SHOWLIB
        *hp_menu

September 12 (Roger Evans)
    --- -external_shadow- no longer takes optional eb, off arguments, so
        that it will now behave when given an external block.
        -external_shadow_over- provides the former extended
        functionality. See HELP *external_shadow

    --- LIB xt_value now accepts an optional coercion type for the
        result (eg "string"). See SHOWLIB *xt_value

    --- New global variable -external_alloc_perm- controls the initial
        setting of the permanence flag in external_alloc. See HELP
        *external_block. Lib xt_shadow also uses this flag to decide
        whether to copy strings.

September 9 (Roger Evans)
    --- Widget records now contain children and popup lists and so
        you only need to keep hold of the root widget to avoid the rest
        becoming garbage. They also become 'dead' when the widget is
        destroyed.
    --- Widget classes now read their names from the external widget
        record when its not already known.

September 5 (Roger Evans)
    --- OverrideShell and TransientShell widget classes now built-in.
        Added fast_XtCreateManagedWidget as a library.

September 2 (Roger Evans)
    --- fsub_ei (etc.) procedures withdrawn. New libraries LIB
        external_field_val and LIB external_subscr can be used to obtain
        similar functionality.

    --- New vm instructions: to complement sysFIELD_VAL there is now a
        sysSUBSCR, which plants code to subscript into a vector of
        arbitrary type, taking vector and subscript from the stack. Also
        sysEXT_FIELD_VAL and sysEXT_SUBSCR plant code for corresponding
        operations for external class objects. Updater versions are also
        provided See HELP *external_vm.

    --- Bug fix: a bug in the handling of the 'external' coercion type
        has been fixed - previously it tended to fall over if used after
        a garbage collection.

August 31 (Roger Evans)
    --- System now includes -sys_destroy_action- for allocating destroy
        actions to objects. External blocks get -external_free- as their
        default destroy action.

August 8 (Roger Evans)
    --- Coercion of external data changed completely.
        -external_coerce_...- routines withdrawn in favour of
        -external_coerce- (see HELP *external_coerce). -external_apply-
        and -external_load- modified to use new coercion.
        -XtNewWidgetClass- now redundant and so withdrawn, LIB
        xt_load_widget modified to accommodate
    --- New routine -fast_XtCallAction- added. See HELP *xt_core.

July 15 (Roger Evans)
    --- New routine -fast_XtFetchAction- added. See HELP *xt_core.
    --- Added libraries:

            xt_dummy_event.p - contains an intvec for use as an event
            sys_trace_var.p - utility for tracing updates to variables
            hp_toggle_var.p - library for creating a toggle widget
                              synchronised with a boolean variable.
            hp_scroll.p     - example hp scrollbar widget

July 14 (Roger Evans)
    --- Exported XtConvert as -fast_XtConvert-. See HELP *xt_core.
    --- Added libraries:

            recordclass.p   - allows declaration of external
                              recordclasses
            xt_font.p       - creating font records from font names

July 13 (Roger Evans)
    --- Added HP widget set to list of know sets in LIB xt_load_wc.
    --- Exported XtSetSensitive as -fast_XtSetSensitive-
    --- added variable -xt_garbage_widget-. If this variable contains a
        widget then Poplog makes it (and any children) insensitive for
        the duration of garbage collections.

July 11 (Roger Evans)
    --- Added some simple libraries - do SHOWLIB for more info:

            vedsunxterm.p   - Ved customisation for xterm

            xt_load_wc.p    - loading widget_classes
            xt_new_shell.p  - creating top-level 'shell' widgets
            xt_arglist.p    - support for specifying arglists
            xt_value.p      - accessing/updating individual resources
            xt_async.p      - controlling asynchronous event handling
            xt_check_exlinkbase.p - boring utility
            xt_shadow.p     - useful variant of external_shadow

            athena_scroll.p - simple example athena widget

    --- Exported Xroot in Xstartup script - used by libraries to locate
    widget libraries etc.

--- C.all/help/xnews.v13_9
--- Copyright University of Sussex 1990. All rights reserved. ----------
