From jan@swi.psy.uva.nl  Sat Oct 21 17:58:44 2000
Received: from gollem.swi.psy.uva.nl (root@gollem [145.18.152.30])
	by swi.psy.uva.nl (8.9.3/8.9.3) with ESMTP id RAA27591;
	Sat, 21 Oct 2000 17:58:44 +0200 (MET DST)
Received: (from jan@localhost)
	by gollem.swi.psy.uva.nl (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id RAA19919;
	Sat, 21 Oct 2000 17:59:32 +0200
Date: Sat, 21 Oct 2000 17:59:32 +0200
Message-Id: <200010211559.RAA19919@gollem.swi.psy.uva.nl>
From: Jan Wielemaker <jan@swi.psy.uva.nl>
Subject: Re: The status of fonts in Logic Programming
To: Wlngg@aol.com, prolog@swi.psy.uva.nl
In-Reply-To: Wlngg@aol.com's message of Fri, 20 Oct 2000 11:16:45 EDT
Phone: +31 - 20 - 525 6121

> Could you please shed light for me on the status of fonts (if they have any) 
> in Logic Programming.
> 
> I am speaking from the perspective of a writing system that has a 
> multi-layered font system to cater, within the framework of the ASCII / ANSI 
> standard, for the large size of its character set (>256 characters).

Not sure I understand the question correctly.  SWI-Prolog doesn't do graphics
and thus doesn't care about fonts.  Character-sets are a different issue and
I think you want info in those.

SWI-Prolog internally used 8-bit characters.  It uses classification for parsing
purposed based on hard-coded ASCII and for application purposed based on the
C-library.  For short, in practice you can deal only with 8-bit character sets
that share the lower 128 characters with ASCII.

You could process data in UTF-8 encoding, though full support would require
some changes to the functions converting between character-codes and atoms
as well as some changes to input handing (get_code/[1,2], get_char/[1,2] and
friends).  This is the route planned, though there is no plan when to start
on this.

UTF-8 is also the route taken by SICStus and most Unix applications.
It provides smooths operation in 8-bit character environments.

Adding support for unicode would be an alternative.  Probably this too would
be rather simple, a matter of using the proper type and changing calls to
system calls that require string-arguments.  There aren't a lot of those.

If you are interested, it is possible to sponsor developments.

	Hope this is the info you were looking for

		--- Jan

