[Uim] A document tracking API/ABI compatibility change has been added to the source distribution

YamaKen yamaken at bp.iij4u.or.jp
Mon Sep 27 15:14:05 EEST 2004


Hi all,

I've committed doc/COMPATIBILITY which describes API/ABI
compatibility change for developers. Please review it.

Our uim implementation and interfaces are still altering to
become better. But the changes are patience for cooperative
developers who implements IMs or bridges.

To reduce the patience, we should describe any API/ABI change in
well-readable format. svn log is unfriendly to detect such
change.

Current revision of the document is described with one entry as
follows. Tell me any opinions.


doc/COMPATIBILITY:
----------------------------------------------------------------
This document tracks API/ABI compatibility change for convenience of
developers.

Each change consist of following fields. All fields must be required.

  - Date
    When the change committed into the repository

  - Modifier
    Who had applied the change

  - Revision
    Which revision(s) performs the change. Enumerate as comma separated
    revision numbers if performed by several commit

  - Summary
    Short description of the change

  - Affects
    Who will be suffered
    * IM developers
    * Bridge developers
    * Helper program developers

  - Related

    What issues are related to this change. Describe in free format. But if
    you refer items in the bug tracking system, describe as "bug #1450, #1451"

  - URL
    Write URL(s). Use subsequent line(s) with 2 space prefix to describe
    multiple URLs (i.e. describe one URL per line)

  - Changed
    Which functions or structs are changed. Describe one item per line with 2
    space prefix for clear view

  - Description
    Detailed description of the change

------------------------------------------------------------------------------
Date: 2004-09-27
Modifier: YamaKen
Revision: 1304
Summary: Context object integration
Affects: IM developers
Related: bug #1450
URL: http://freedesktop.org/pipermail/uim/2004-September/000641.html
Changed:
  im-commit
  im-commit-raw
  im-set-encoding
  im-clear-preedit
  im-pushback-preedit
  im-update-preedit
  im-clear-mode-list
  im-pushback-mode-list
  im-update-mode-list
  im-update-prop-label
  im-update-prop-list
  im-update-mode
  im-activate-candidate-selector
  im-select-candidate
  im-shift-page-candidate
  im-deactivate-candidate-selector
  im-request-surrounding
  im-delete-surrounding
  *-init-handler
  *-release-handler
  *-mode-handler
  *-press-key-handler
  *-release-key-handler
  *-reset-handler
  *-get-candidate-handler
  *-set-candidate-index-handler
  *-prop-handler
Description:
  This change integrates following 3 context objects into one.

  - id
  - context
  - im-specific-context

  Although some reasons to distinguish the objects exist for API implementor,
  all 3 context objects semantically mean same 'this input context' for
  IM-implementors. So we should show the context object as unified one for
  IM-implementors to eliminate complexity and confusion.

  Scheme procedures has been changed as follows.

  - To generate the integrated context object, use define-record with pseudo
    inheritance (i.e. concatenate context-rec-spec with your own context
    rec-spec). See anthy.scm for example

  - im-* procedures now accepts the integrated Scheme-side context object as
    first argument. It also accepts 'id' as backward compatibility, but not
    recommended

  - *-init-handler (such as anthy-init-handler) now accepts additional 'im'
    argument. And it must return an integrated context object. The object must
    be initialized with 'id' and 'im' arguments which passed to this
    handler. See anthy-init-handler for example

  - All other *-*-handler has been changed to accept the integrated context
    object as first argument instead of 'id'
------------------------------------------------------------------------------


-------------------------------
YamaKen  yamaken at bp.iij4u.or.jp



More information about the uim mailing list