
From shap@eros-os.org Mon Sep 17 14:25:58 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HIPwv01311
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 14:25:58 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id OAA00998
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 14:17:55 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HIPuv01306
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 14:25:56 -0400
Message-ID: <058901c13fa6$4a166ff0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <capidl@eros-os.org>
Date: Mon, 17 Sep 2001 14:26:38 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0586_01C13F84.C2DD23B0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] list kickstart
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_0586_01C13F84.C2DD23B0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

This is a welcome message purely to populate the archive.

------=_NextPart_000_0586_01C13F84.C2DD23B0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>This is a welcome message purely to =
populate the=20
archive.</FONT></DIV></BODY></HTML>

------=_NextPart_000_0586_01C13F84.C2DD23B0--


From shap@eros.cs.jhu.edu Mon Sep 17 15:12:03 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HJC3v02104
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 15:12:03 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id PAA01175
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 15:04:00 -0400
From: shap@eros.cs.jhu.edu
Received: (from shap@localhost)
	by eros.cs.jhu.edu (8.11.0/8.11.0) id f8HJC3i02099
	for capidl@eros-os.org; Mon, 17 Sep 2001 15:12:03 -0400
Date: Mon, 17 Sep 2001 15:12:03 -0400
Message-Id: <200109171912.f8HJC3i02099@eros.cs.jhu.edu>
To: capidl@eros-os.org
Subject: [capidl] cvs commit: capidl makerules.mk makevars.mk Makefile SymTab.cxx gram.y lex.l
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

shap        01/09/17 15:12:03

  Modified:    .        Makefile SymTab.cxx gram.y lex.l
  Added:       .        makerules.mk makevars.mk
  Log:
  Cleaned up checkin for in-progress UNIX capidl implementation

Revision  Changes    Path
1.2       +7 -8      capidl/Makefile

Index: Makefile
===================================================================
RCS file: /cvs/capidl/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Makefile	2001/09/17 18:43:23	1.1
+++ Makefile	2001/09/17 19:12:02	1.2
@@ -19,11 +19,9 @@
 #
 
 
-# Utility to convert a linux a.out file to a domain image file.
-default: package
+default: all
 
-EROS_SRC=../../../..
-include $(EROS_SRC)/build/lib/make/makevars.mk
+include makevars.mk
 
 
 TARGETS=capidl
@@ -32,13 +30,14 @@
 #OPTIM=-O
 OPTIM=-g
 OBJECTS= gram.o lex.o SymTab.o
-INC=	-I$(EROS_ROOT)/cross/include $(XENV_INCLUDE)
-LIBS=	$(EROS_ROOT)/cross/lib/liberos.a $(EROS_ROOT)/cross/lib/libdisk.a
-LIBS+=	$(EROS_ROOT)/cross/lib/libzlib.a
+OBJECTS += Intern.o App.o AppPath.o AppExit.o AppFile.o Diag.o
+INC=	-I.
+LIBS=
 OTHER_LIBS=	-lbfd -liberty -lgmp
 DIRS=
+VPATH=.:applib
 
-include $(EROS_SRC)/build/lib/make/makerules.mk
+include makerules.mk
 
 all: $(TARGETS)
 



1.2       +2 -3      capidl/SymTab.cxx

Index: SymTab.cxx
===================================================================
RCS file: /cvs/capidl/SymTab.cxx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SymTab.cxx	2001/09/17 18:43:23	1.1
+++ SymTab.cxx	2001/09/17 19:12:02	1.2
@@ -23,9 +23,8 @@
 /* GNU multiple precision library: */
 #include <gmp.h>
 
-#include <eros/target.h>
-#include <erosimg/Intern.hxx>
-#include <erosimg/Diag.hxx>
+#include <applib/Intern.hxx>
+#include <applib/Diag.hxx>
 #include "SymTab.hxx"
 
 Symbol *GlobalScope = 0;	/* scope for global symbols */



1.2       +3 -6      capidl/gram.y

Index: gram.y
===================================================================
RCS file: /cvs/capidl/gram.y,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gram.y	2001/09/17 18:43:23	1.1
+++ gram.y	2001/09/17 19:12:02	1.2
@@ -79,12 +79,9 @@
 /* GNU multiple precision library: */
 #include <gmp.h>
 
-#include <eros/target.h>
-#include <erosimg/Intern.hxx>
-#include <erosimg/App.hxx>
-#include <erosimg/ErosImage.hxx>
-#include <erosimg/StrBuf.hxx>
-
+#include <applib/App.hxx>
+#include <applib/Intern.hxx>
+#include <applib/StrBuf.hxx>
 #include "SymTab.hxx"
 #include "ParseType.hxx"
 



1.2       +2 -6      capidl/lex.l

Index: lex.l
===================================================================
RCS file: /cvs/capidl/lex.l,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- lex.l	2001/09/17 18:43:23	1.1
+++ lex.l	2001/09/17 19:12:02	1.2
@@ -27,12 +27,8 @@
 /* GNU multiple precision library: */
 #include <gmp.h>
 
-#include <eros/target.h>
-#include <erosimg/Intern.hxx>
-
-#include <eros/target.h>
-#include <erosimg/App.hxx>
-#include <erosimg/ErosImage.hxx>
+#include <applib/Intern.hxx>
+#include <applib/App.hxx>
 
 #include "SymTab.hxx"
 #include "ParseType.hxx"



1.1                  capidl/makerules.mk

Index: makerules.mk
===================================================================
#
# Copyright (C) 2001, Jonathan S. Shapiro.
#
# This file is part of the EROS Operating System.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#


unexport DIRS
unexport ETAGDIRS
unexport GENERATED
unexport CLEANLIST

# The following variables depend on things set in the makefile:
GCCFLAGS=$(CFLAGS) $(OPTIM) $(INC) $(DEF)
GPLUSFLAGS=-fdefault-inline -fno-implicit-templates $(OPTIM) $(GPLUS_OPTIM) $(INC) $(DEF)

ifndef CLEANDIRS
CLEANDIRS=$(DIRS)
endif


SEDHACK=sed 's,'$*'\.o[ :]*,'$@' &,g'
DEP_SEDHACK=sed 's,^[^:]*:[:]*,'$@' &,g'
#DEP_SEDHACK=sed 's,'$*'\.o[ :]*,'$@' &,g'

C_DEP=@$(GCC) $(GCCFLAGS) $(GCCWARN) -E -M $< | $(DEP_SEDHACK) > $@
CXX_DEP=@$(GPLUS) $(GPLUSFLAGS) $(GPLUSWARN) -E -M $< | $(DEP_SEDHACK) > $@
ASM_DEP=@$(GPLUS) $(GCCFLAGS) -E -M $< | $(DEP_SEDHACK) > $@

C_BUILD=$(GCC) $(GCCFLAGS) $(GCCWARN) -c $<
CXX_BUILD=$(GPLUS) $(GPLUSFLAGS) $(GPLUSWARN) -c $<
ASM_BUILD=$(GPLUS) $(GCCFLAGS) -c $< -o $@
#
# OLD autodependency rules -- retained for the time being.
#

# use GPLUS to allow C++ style comments:
#.S.m:
#	@$(GPLUS) $(GCCFLAGS) -E -M $< | $(SEDHACK) > $@
#
#.s.m:
#	@echo "Please rewrite .s file as .S file"
#
#.c.m:
#	@$(GCC) $(GCCFLAGS) $(GCCWARN) -E -M $< | $(SEDHACK) > $@
#
#
#.cxx.m:
#	@$(GPLUS) $(GPLUSFLAGS) $(GPLUSWARN) -E -M $< | $(SEDHACK) > $@


.%.m: %.S
	@$(GPLUS) $(GCCFLAGS) -E -M $< | $(SEDHACK) > $@

.%.m: %.s
	@echo "Please rewrite .s file as .S file"

.%.m: %.c
	@$(GCC) $(GCCFLAGS) -E -M $< | $(SEDHACK) > $@


.%.m: %.cxx
	@$(GPLUS) $(GPLUSFLAGS) $(GPLUSWARN) -E -M $< | $(SEDHACK) > $@

#
# Object construction rules
#

.S.o:
	$(GPLUS) $(GCCFLAGS) -c $< -o $@

.c.o:
	$(GCC) $(GCCFLAGS) $(GCCWARN) -c $<

.cxx.o:
	$(GPLUS) $(GPLUSFLAGS) $(GPLUSWARN) -c $<

# Rules to process XML files to produce HTML:
.xml.html:
	$(XSLT) -o $@ $(EROS_SRC)/doc/www/DTD/html-doc.xslt $<

.%.xml.m: %.xml
	@echo "$(<:.xml=.html): $< $(EROS_SRC)/doc/www/DTD/html-doc.xslt" > $@

.ltx.dvi:
	latex $<
	latex $<

.fig.gif:
	@if [ \! -x $(NETPBMDIR)/ppmtogif ]; then\
		echo "ERROR: Please set the NETPBMDIR environment variable to identify"; \
		echo "       the location of the NetPBM directory."; \
		exit 1;\
	fi
	fig2dev -L ppm $< $*.ppm
	$(NETPBMDIR)/ppmtogif -t '#ffffff' $*.ppm > $@
	-rm -f $*.ppm

.PHONEY : depend nodepend recursive-depend all recursive-all install recursive-install clobber walk clean do-clean recursive-clean world

world:
	$(MAKE) -C $(EROS_SRC) $(MAKERULES) install

depend: recursive-depend DEPEND
recursive-depend:
ifneq "$(DIRS)" ""
	@for i in $(DIRS); do \
		if [ -d "$$i" ]; then\
			$(MAKE) -C $$i $(MAKERULES) depend; \
			if [ $$? -ne 0 ]; then\
				echo "*** RECURSIVE BUILD STOPS ***";\
				exit 1;\
			fi; \
		fi; \
	done
endif

all: recursive-all
recursive-all:
ifneq "$(DIRS)" ""
	@for i in $(DIRS); do \
		if [ -d "$$i" ]; then\
			$(MAKE) -C $$i $(MAKERULES) all; \
			if [ $$? -ne 0 ]; then\
				echo "*** RECURSIVE BUILD STOPS ***";\
				exit 1;\
			fi; \
		fi; \
	done
endif

install: recursive-install
recursive-install:
ifneq "$(DIRS)" ""
	@for i in $(DIRS); do \
		if [ -d "$$i" ]; then\
			$(MAKE) -C $$i $(MAKERULES) install; \
			if [ $$? -ne 0 ]; then\
				echo "*** RECURSIVE BUILD STOPS ***";\
				exit 1;\
			fi; \
		fi; \
	done
endif

# The following hack fixes up directory dependencies, and ALSO ensures
# that the .m files will be rebuilt when appropriate:
DEPEND: $(patsubst %.o,.%.m,$(OBJECTS)) $(patsubst %.xml,.%.xml.m,$(wildcard *.xml))
#	@if [ -n "$(OBJECTS:.o=.m)" ]; then\
#		cat *.m | sed "s, $(EROS_ROOT), \$$(EROS_ROOT),g" > DEPEND; \
#	fi
#	@touch DEPEND    # in case no .m files
#	@-rm -f *.m



#local-depend: 
#	@sed -e '/^### Output of make depend:/,$$d' Makefile > new.Makefile
#	@echo "### Output of make depend:" >> new.Makefile
#	@if [ -n "$(OBJECTS:.o=.m)" ]; then\
#		cat *.m | sed "s, $(EROS_ROOT), \$$(EROS_ROOT),g" >> new.Makefile; \
#	fi
#	@-rm -f *.m
#	@mv Makefile old.Makefile
#	@mv new.Makefile Makefile
#	@-rm -f old.Makefile

all install: DEPEND

nodepend:
	-find . -name '*.m' -exec rm {} \;
	-find . -name '.*.m' -exec rm {} \;
	-find . -name 'DEPEND' -exec rm {} \;

## The following piece of idiocy works around the fact that the
## autodependency files may refer to stuff that has been cleaned,
## and that this can therefore perversely cause the clean target to
## fail.
clean: nodepend
	$(MAKE) $(MAKERULES) do-clean

do-clean: recursive-clean
	-rm -f *.o *.m core *~ new.Makefile  ".#"*
	-rm -f .*.m sysgen.map $(TARGETS) TAGS
	-rm -f *.dvi *.blg *.aux *.log *.toc $(CLEANLIST)

recursive-clean:
ifneq "$(CLEANDIRS)" ""
	@for i in $(CLEANDIRS); do \
		if [ -d "$$i" ]; then\
			$(MAKE) -C $$i $(MAKERULES) do-clean; \
			if [ $$? -ne 0 ]; then\
				echo "*** RECURSIVE BUILD STOPS ***";\
				exit 1;\
			fi; \
		fi; \
	done
endif

## The following piece of idiocy works around the fact that the
## autodependency files may refer to stuff that has been clobbered,
## and that this can therefore perversely cause the clobber target to
## fail.
clobber:
	@echo "Clobber target now obsolete: use clean instead"
	$(MAKE) $(MAKERULES) clean

ifdef ETAGDIRS
ETAGEXPAND=$(patsubst %,%/*.c,$(ETAGDIRS))
ETAGEXPAND+=$(patsubst %,%/*.cxx,$(ETAGDIRS))
ETAGEXPAND+=$(patsubst %,%/*.hxx,$(ETAGDIRS))
ETAGEXPAND+=$(patsubst %,%/*.h,$(ETAGDIRS))

ASM_ETAGEXPAND+=$(patsubst %,%/*.S,$(ETAGDIRS))

ETAGFILES=$(wildcard $(ETAGEXPAND))
ASM_ETAGFILES=$(wildcard $(ASM_ETAGEXPAND))
unexport ETAGEXPAND
unexport ETAGFILES
unexport ASM_ETAGEXPAND
unexport ASM_ETAGFILES

#	--regex='/^struct[ \t]+\([A-Za-z0-9_]+\)[ \t]*:[ \t]*public[ \t]+\([A-Za-z0-9_]+\)/:public \1 \2/' \
#	--regex='/^class[ \t]+\([A-Za-z0-9_]+\)[ \t]*:[ \t]*public[ \t]+\([A-Za-z0-9_]+\)/:public \1 \2/' \

tags: local-tags recursive-tags
local-tags:
	etags \
	--regex='/^struct[ \t]+\([A-Za-z0-9_]+\)[ \t]*:[ \t]*public[ \t]+\([A-Za-z0-9_]+\)/:public \1 \2/' \
	--regex='/^class[ \t]+\([A-Za-z0-9_]+\)[ \t]*:[ \t]*public[ \t]+\([A-Za-z0-9_]+\)/:public \1 \2/' \
	   $(ETAGFILES)
ifneq ($(ASM_ETAGFILES),)
	etags --append --lang=none \
		--regex='/^\(ENTRY\|GEXT\)([A-Za-z0-9_\.]+)/' \
		$(ASM_ETAGFILES)
endif
else
tags: recursive-tags
endif
recursive-tags:
ifneq "$(DIRS)" ""
	@for i in $(DIRS); do \
		if [ -d "$$i" ]; then\
			$(MAKE) -C $$i $(MAKERULES) tags; \
			if [ $$? -ne 0 ]; then\
				echo "*** RECURSIVE BUILD STOPS ***";\
				exit 1;\
			fi; \
		fi; \
	done
endif

generated: $(GENERATED) recursive-generated
recursive-generated:
ifneq "$(DIRS)" ""
	@for i in $(DIRS); do \
		if [ -d "$$i" ]; then\
			$(MAKE) -C $$i $(MAKERULES) generated; \
			if [ $$? -ne 0 ]; then\
				echo "*** RECURSIVE BUILD STOPS ***";\
				exit 1;\
			fi; \
		fi; \
	done
endif

# This is a debugging target..
walk:
ifneq "$(DIRS)" ""
	@for i in $(DIRS); do \
		$(MAKE) -C $$i $(MAKERULES) walk; \
		if [ $$? -ne 0 ]; then\
			echo "*** RECURSIVE BUILD STOPS ***";\
			exit 1;\
		fi; \
	done
endif



1.1                  capidl/makevars.mk

Index: makevars.mk
===================================================================
#
# Copyright (C) 2001, Jonathan S. Shapiro.
#
# This file is part of the EROS Operating System.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#

# Cancel the old suffix list, because the order matters.  We want assembly 
# source to be recognized in preference to ordinary source code, so the
# .S, .s cases must come ahead of the rest.
.SUFFIXES:
.SUFFIXES: .S .s .cxx .c .y .l .o .dvi .ltx .gif .fig .xml .html

# Some shells do not export this variable, and it is used in the package
# generation rule below.
ifeq "$(PWD)" ""
PWD=$(shell pwd)
endif

#
# First, set up variables for building native tools:
#
GAWK=gawk
PYTHON=python
#XML_LINT=$(EROS_XENV)/bin/xmllint
#XSLT=$(EROS_XENV)/bin/xsltproc

STRIP=strip
OBJDUMP=objdump
SIZE=size
AR=ar
LD=ld
RANLIB=ranlib

GCC=gcc
GCCWARN=-Wall -Winline -Werror -Wno-format

GPLUS=g++
GPLUSWARN=-Wall -Winline -Werror -Wno-format

# search for ppmtogif in all the obvious places:
ifndef NETPBMDIR
ifneq "" "$(findstring /usr/bin/ppmtogif,$(wildcard /usr/bin/*))"
NETPBMDIR=/usr/bin
endif
endif

ifndef NETPBMDIR
ifneq "" "$(findstring /usr/bin/X11/ppmtogif,$(wildcard /usr/bin/X11/*))"
NETPBMDIR=/usr/bin/X11
endif
endif

ifndef NETPBMDIR
ifneq "" "$(findstring /usr/local/netpbm/ppmtogif,$(wildcard /usr/local/netpbm/*))"
NETPBMDIR=/usr/local/netpbm
endif
endif





From markm@caplet.com Mon Sep 17 15:22:35 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HJMZv05454
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 15:22:35 -0400
Received: from proxy4.ba.best.com (root@proxy4.ba.best.com [206.184.139.15])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id PAA01199
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 15:14:31 -0400
Received: from caplet.caplet.com (sdn-as-001njpennP324.dialsprint.net [158.252.58.134])
	by proxy4.ba.best.com (8.9.3/8.9.2/best.out) with ESMTP id MAA17135;
	Mon, 17 Sep 2001 12:26:16 -0700 (PDT)
Message-Id: <5.1.0.14.2.20010917122426.047e1710@shell9.ba.best.com>
X-Sender: erights@shell9.ba.best.com
X-Mailer: QUALCOMM Windows Eudora Version 5.1
Date: Mon, 17 Sep 2001 12:25:37 -0700
To: shap@eros.cs.jhu.edu
From: "Mark S. Miller" <markm@caplet.com>
Subject: Re: [capidl] cvs commit: capidl makerules.mk makevars.mk
  Makefile SymTab.cxx gram.y lex.l
Cc: capidl@eros-os.org
In-Reply-To: <200109171912.f8HJC3i02099@eros.cs.jhu.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

I think the cvs messages should go to a separate list, such as capidl-cvs.  
We already do that for other eros-os hosted lists.


From shap@eros-os.org Mon Sep 17 15:25:07 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HJP7v05515;
	Mon, 17 Sep 2001 15:25:07 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id PAA01215;
	Mon, 17 Sep 2001 15:17:04 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HJP6v05510;
	Mon, 17 Sep 2001 15:25:06 -0400
Message-ID: <059d01c13fae$86a145a0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <e-lang@mail.eros-os.org>, <eros-arch@mail.eros-os.org>,
   <capidl@eros-os.org>
Date: Mon, 17 Sep 2001 15:25:35 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_059A_01C13F8C.FF698000"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] capidl alive again
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_059A_01C13F8C.FF698000
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Just so people know, the capidl project is alive again. We ran into some =
things needed for EROS that I just couldn't hack up with XSLT.

The first thing that Mark Miller and I need to converge on is the =
grammar -- we have some pending issues there.The current, VERY stale, =
grammar can be found at:

    http://www.eros-os.org/capidl-src/capidl-grammar.y

Don't confuse this with gram.y, which is the working grammar. I'm in the =
process (i.e. today) of stripping the working grammar down to do an =
update on the base grammar. Eventually, the official capidl grammar will =
move to the capidl site, but for the moment this is probably the easiest =
location to track it. By the time it moves we'll hopefully have PCMS to =
track projects with, and the whole idea of "server of origin" will be =
moot.

If you wish to track capidl, subscribe to the capidl list via =
http://www.eros-os.org/mailman/listinfo -- both discussion AND cvs =
messages will appear here, which is different from our other lists. I =
can separate these if people find this awkward, but I expect this to be =
fast paced and then done, because I don't have time to do it any other =
way.

The project itself can be checked out from the cvs.eros-os.org site via =
anoncvs. Follow the directions for eros anonymous checkout, but check =
out the 'capidl' project instead.

The current plan is to do a first implementation of CapIDL in C, with a =
Java-hosted version to be built at an unspecified later time. In order =
to facilitate interim use of the C version from within Java/E, we =
currently plan to provide a back end that outputs the intermediate parse =
tree directly as XML. Still TBD whether this will be MinXML, because =
attributes are actually really useful things, and real XML parsing isn't =
that hard; the problem is the content model. At a minimum, MarkM and I =
have agreed to use the sensible (XPath) content model rather than the =
official one.

So the steps are:

1. Nail down the grammar.
2. Specify the semantics, where needed.
3. Nail down the canonical representation.
4. Implement back-ends that generate C, XML (of parse tree), XML (for =
docs), C++, Java.

I'm including Java backend specifically because the runtime model is =
different, but I would much prefer that somebody else build that by =
re-reading the XML parse tree. Any volunteers?

Because the IDL specification must include things like order codes, we =
won't get the degree of separation that CorbaIDL does. Also, unlike =
Corba, CapIDL is used first and foremost as a *local* IDL, and it is now =
well established that serialization and representation is a substantial =
part of the local RPC overhead. With that given as motivation, I think =
it also safe to say that implementations are free to optimize the local =
case within a given runtime as they wish, provided that doing so does =
not interfere with the ability to generate the canonical serialization =
when needed or violate the underlying semantics of the wire =
representation (e.g. by getting caught sharing state across protection =
domains when they shouldn't).

As to using XML output for the documentation...

There are two main reasons to use XML for documentation in CapIDL.

1. Many projects will want their output to serve other needs in the =
documentation chain, possibly including further analysis. Because of =
this, they may want the input documentation to conform to some external =
DTD. To this end, MarkM and I have resolved that (a) CapIDL document =
comments must be well-formed XML trees, and that (b) the user can =
specify the DTD and root element for each documentation comment type. To =
facilitate use of HTML docs in the style currently used for JavaDOC, =
I'll at some point generate an XHTML fragment DTD that is augmented with =
tags for variables, arguments, etc. in the style of the javadoc @foo{} =
tags (which were a terrible idea given the already existing <span> =
mechanism in HTML.

2. Unlike HTML output, which is very presentation oriented, XML output =
need not be information losing. It is very easy to build an XSLT script =
that can be used in either Java or command line (xsltproc) to strip this =
to generate strict HTML. It is not very easy to reconstruct the =
information once it has been stripped out.

It is a consequence of (1) that there is no canonical HTML input, and =
therefore that there can be no canonical HTML output transformation. For =
ease of use, the C version can at some point simply integrate libxml and =
libxslt for this purpose. In the Java version, we can similarly =
integrate, say, xalan and xerces libraries for this purpose.

There are now reasonably good XSLT processors for both Java and C. We =
will provide both a canonical IDLdoc DTD and a canonical XSLT =
transformer that generates HTML output provided that the IDLdoc DTD is =
used.

------=_NextPart_000_059A_01C13F8C.FF698000
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Just so people know, the capidl project =
is alive=20
again. We ran into some things needed for EROS that I just couldn't hack =
up with=20
XSLT.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The first thing that Mark Miller and I =
need to=20
converge on is the grammar -- we have some pending issues there.The =
current,=20
VERY stale, grammar can be found at:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><A=20
href=3D"http://www.eros-os.org/eros-src/base/cross/bin/capidl/capidl-gram=
mar.y">&nbsp;&nbsp;&nbsp;=20
</A><A=20
href=3D"http://www.eros-os.org/capidl-src/capidl-grammar.y">http://www.er=
os-os.org/capidl-src/capidl-grammar.y</A></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Don't confuse this with gram.y, which =
is the=20
working grammar. I'm in the process (i.e. today) of stripping the =
working=20
grammar down to do an update on the base grammar. Eventually, the =
official=20
capidl grammar will move to the capidl site, but for the moment this is =
probably=20
the easiest location to track it. By the time it moves we'll hopefully =
have PCMS=20
to track projects with, and the whole idea of "server of origin" will be =

moot.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>If you wish to track capidl, subscribe =
to the=20
capidl list via <A=20
href=3D"http://www.eros-os.org/mailman/listinfo">http://www.eros-os.org/m=
ailman/listinfo</A>&nbsp;--=20
both discussion AND cvs messages will appear here, which is different =
from our=20
other lists. I can separate these if people find this awkward, but I =
expect this=20
to be fast paced and then done, because I don't have time to do it any =
other=20
way.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The project itself can be checked out =
from the=20
cvs.eros-os.org site via anoncvs. Follow the directions for eros =
anonymous=20
checkout, but check out the 'capidl' project instead.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The current plan is to do a first =
implementation of=20
CapIDL in C, with a Java-hosted version to be built at an unspecified =
later=20
time. In order to facilitate interim use of the C version from within =
Java/E, we=20
currently plan to provide a back end that outputs the intermediate parse =
tree=20
directly as XML. Still TBD whether this will be MinXML, because =
attributes are=20
actually really useful things, and real XML parsing isn't that hard; the =
problem=20
is the content model. At a minimum, MarkM and I have agreed to use the =
sensible=20
(XPath) content model rather than the official one.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>So the steps are:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>1. Nail down the grammar.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>2. Specify the semantics, where=20
needed.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>3. Nail down the canonical=20
representation.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>4. Implement back-ends that generate C, =
XML (of=20
parse tree), XML (for docs), C++, Java.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I'm including Java backend specifically =
because the=20
runtime model is different, but I would much prefer that somebody else =
build=20
that by re-reading the XML parse tree. Any volunteers?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Because the IDL specification must =
include things=20
like order codes, we won't get the degree of separation that CorbaIDL =
does.=20
Also, unlike Corba, CapIDL is used first and foremost as a *local* IDL, =
and it=20
is now well established that serialization and representation is a =
substantial=20
part of the local RPC overhead. With that given as motivation, I think =
it also=20
safe to say that implementations are free to optimize the local case =
within a=20
given runtime as they wish, provided that doing so does not interfere =
with the=20
ability to generate the canonical serialization when needed or violate =
the=20
underlying semantics of the wire representation (e.g. by getting caught =
sharing=20
state across protection domains when they shouldn't).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>As to using XML output for the=20
documentation...</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>There are two main reasons to use XML =
for=20
documentation in CapIDL.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>1. Many projects will want their output =
to serve=20
other needs in the documentation chain, possibly including further =
analysis.=20
Because of this, they may want the input documentation to conform to =
some=20
external DTD. To this end, MarkM and I have resolved that (a) CapIDL =
document=20
comments must be well-formed XML trees, and that (b) the user can =
specify the=20
DTD and root element for each documentation comment type. To facilitate =
use of=20
HTML docs in the style currently&nbsp;used for JavaDOC,&nbsp;I'll at =
some point=20
generate an XHTML fragment DTD that is augmented with tags for =
variables,=20
arguments, etc. in the style of the javadoc @foo{} tags (which were a =
terrible=20
idea given the already existing &lt;span&gt; mechanism in =
HTML.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>2. Unlike HTML output, which is very =
presentation=20
oriented, XML output need not be information losing. It is very easy to =
build an=20
XSLT script that can be used in either Java or command line (xsltproc) =
to strip=20
this to generate strict HTML. It is not very easy to reconstruct the =
information=20
once it has been stripped out.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>It is a consequence of (1) that there =
is no=20
canonical HTML input, and therefore that there can be no canonical HTML =
output=20
transformation. For ease of use, the C version can at some point simply=20
integrate libxml and libxslt for this purpose. In the Java version, we =
can=20
similarly integrate, say, xalan and xerces libraries for this=20
purpose.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>There are now reasonably good XSLT =
processors for=20
both Java and C. We will provide both a canonical IDLdoc DTD and a =
canonical=20
XSLT transformer that generates HTML output provided that the IDLdoc DTD =
is=20
used.</FONT></DIV></BODY></HTML>

------=_NextPart_000_059A_01C13F8C.FF698000--


From shap@eros-os.org Mon Sep 17 15:30:17 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HJUGv05793;
	Mon, 17 Sep 2001 15:30:17 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id PAA01323;
	Mon, 17 Sep 2001 15:22:13 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8HJUFv05786;
	Mon, 17 Sep 2001 15:30:15 -0400
Message-ID: <05b401c13faf$3c492da0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <e-lang@mail.eros-os.org>, <eros-arch@mail.eros-os.org>,
   <capidl@eros-os.org>, <cap-talk@eros-os.org>
Date: Mon, 17 Sep 2001 15:30:40 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_05B1_01C13F8D.B51D9D00"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] change on capidl list
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_05B1_01C13F8D.B51D9D00
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

MarkM just asked that we send the CVS notes to capidl-cvs instead, so =
subscribe to both capidl and capidl-cvs if you want to see the CVS =
reports.

shap

------=_NextPart_000_05B1_01C13F8D.B51D9D00
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>MarkM just asked that we send the CVS =
notes to=20
capidl-cvs instead, so subscribe to both capidl and capidl-cvs if you =
want to=20
see the CVS reports.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>shap</FONT></DIV></BODY></HTML>

------=_NextPart_000_05B1_01C13F8D.B51D9D00--


From shap@eros-os.org Mon Sep 17 20:48:28 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8I0mSv08159
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 20:48:28 -0400
Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.121.49])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id UAA00741
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 20:40:23 -0400
Received: from vmware (dialup-63.208.189.75.Dial1.Baltimore1.Level3.net [63.208.189.75])
	by scaup.mail.pas.earthlink.net (EL-8_9_3_3/8.9.3) with ESMTP id RAA27147
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 17:53:03 -0700 (PDT)
Message-ID: <031001c13fdc$365dda80$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <capidl@eros-os.org>
Date: Mon, 17 Sep 2001 20:52:34 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_030D_01C13FBA.AD78B300"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Re: [EROS-Arch] capidl alive again
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_030D_01C13FBA.AD78B300
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

> Is there a reason you're using DTDs instead of schemas?

There are three.

1. My best impression at this point is that a lot of users grok DTD's at
this point, and there is a lot of support for using them, but most users
don't yet grok schemas.

2. In particular, I haven't found any open source tools for validating =
XML
parse against a schema rather than a DTD.

3. I personally don't understand schemas, and I prefer to stick to =
something
I understand.

All that said, I'm happy to consider schemas if you can point me to a
succinct starting point for learning enough about them to get up to =
speed.


shap




------=_NextPart_000_030D_01C13FBA.AD78B300
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>&gt; Is there a reason you're using DTDs instead =
of=20
schemas?<BR><BR>There are three.<BR><BR>1. My best impression at this =
point is=20
that a lot of users grok DTD's at<BR>this point, and there is a lot of =
support=20
for using them, but most users<BR>don't yet grok schemas.<BR><BR>2. In=20
particular, I haven't found any open source tools for validating =
XML<BR>parse=20
against a schema rather than a DTD.<BR><BR>3. I personally don't =
understand=20
schemas, and I prefer to stick to something<BR>I understand.<BR><BR>All =
that=20
said, I'm happy to consider schemas if you can point me to a<BR>succinct =

starting point for learning enough about them to get up to=20
speed.<BR><BR><BR>shap<BR><BR>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV></BODY></HTML>

------=_NextPart_000_030D_01C13FBA.AD78B300--


From shap@eros-os.org Mon Sep 17 21:14:11 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8I1EBv08306
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 21:14:11 -0400
Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.121.49])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id VAA00796
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 21:06:06 -0400
Received: from vmware (dialup-63.208.189.75.Dial1.Baltimore1.Level3.net [63.208.189.75])
	by scaup.mail.pas.earthlink.net (EL-8_9_3_3/8.9.3) with ESMTP id SAA06363;
	Mon, 17 Sep 2001 18:18:34 -0700 (PDT)
Message-ID: <033f01c13fdf$b12ce190$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: "Karp, Alan" <alan_karp@hp.com>
Cc: <capidl@eros-os.org>
References: <BA95A03601ABD511AE6D00A0C9B6B0BF062963@hplex3.hpl.hp.com>
Date: Mon, 17 Sep 2001 21:17:29 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Re: [EROS-Arch] capidl alive again
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

> I've asked a friend who knows a lot more about the difference to reply.
If
> you don't get an answer by Monday, let me know.  The main problem I know
of
> with DTDs is their limited expressiveness.
>
> _________________________
> Alan Karp

Alan: suggest this conversation should copy capidl.

DTDs definitely lack some important stuff, and in a couple of cases the
expressive power they lack was foolish ommissions rather than true
simplifications.

The primary impediment to XML Schemas, at the moment, is that there doesn't
appear to be a non-java open-source XML/XSLT processing suite that knows how
to validate against xml schemas. libxml2 only does DTDs, and that settled
only recently. I don't suppose that XML schema validation would be all that
hard to add, but I'm not eager to bite off yet another project here. The
blocker here is that the EROS build process cannot rely on Java, because I'm
not going to pay sun for the privilege of a JDK port to native EROS.

I think that the best solution for now is likely to turn out to be using a
DTD and allowing for cutover to XML schemas when support for them is widely
available in non-java form

shap


From markm@caplet.com Mon Sep 17 22:18:07 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8I2I7v08657
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 22:18:07 -0400
Received: from proxy4.ba.best.com (root@proxy4.ba.best.com [206.184.139.15])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id WAA00844;
	Mon, 17 Sep 2001 22:10:01 -0400
Received: from caplet.caplet.com (sdn-as-001njpennP198.dialsprint.net [158.252.58.8])
	by proxy4.ba.best.com (8.9.3/8.9.2/best.out) with ESMTP id TAA02743;
	Mon, 17 Sep 2001 19:21:20 -0700 (PDT)
Message-Id: <5.1.0.14.2.20010917190452.0472d0b0@shell9.ba.best.com>
X-Sender: erights@shell9.ba.best.com
X-Mailer: QUALCOMM Windows Eudora Version 5.1
Date: Mon, 17 Sep 2001 19:20:43 -0700
To: "Jonathan S. Shapiro" <shap@eros-os.org>
From: "Mark S. Miller" <markm@caplet.com>
Subject: Re: [capidl] Re: [EROS-Arch] capidl alive again
Cc: "Karp, Alan" <alan_karp@hp.com>, <capidl@eros-os.org>
In-Reply-To: <033f01c13fdf$b12ce190$021010ac@vmware>
References: <BA95A03601ABD511AE6D00A0C9B6B0BF062963@hplex3.hpl.hp.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

The w3c-defined xml schemas are such a horrible disaster of complexity run 
amok that it's hard to see how anyone can take them seriously.  Their one 
service to the world may be to slow further acceptance of XML.

I recommend sticking with DTDs because they're well understood and simpler 
(though by no means simple).  I also recommend that we define the subset of 
XML and DTDs that we'll use for this project.  I could stand Minimal-XMLs + 
attributes.  I could stand the Canonical-XML subset of XML, but without 
whitespace canonicalization of the input, and with namespaces, if allowed, 
used only in strict adherence to the Common-XML recommendations.  (I'd 
rather disallow namespaces completely of course, but...)

If we feel we must have a schema-like mechanism, please consider 
http://www.smallstd.org/smallschema/index.html or 
http://www.oasis-open.org/committees/relax-ng/ .  The latter is quickly 
gaining respect in various corners of the XML community.  It is a 
collaborative unification of TREX and RELAX, which were the previous well 
known decent schema proposals.


        Cheers,
        --MarkM


From shap@eros-os.org Mon Sep 17 22:39:49 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8I2dnv08933
	for <capidl@eros.cs.jhu.edu>; Mon, 17 Sep 2001 22:39:49 -0400
Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.121.49])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id WAA00918
	for <capidl@eros-os.org>; Mon, 17 Sep 2001 22:31:43 -0400
Received: from vmware (dialup-63.208.187.23.Dial1.Baltimore1.Level3.net [63.208.187.23])
	by scaup.mail.pas.earthlink.net (EL-8_9_3_3/8.9.3) with ESMTP id TAA07813;
	Mon, 17 Sep 2001 19:44:21 -0700 (PDT)
Message-ID: <003401c13fea$efeba6e0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: "Mark S. Miller" <markm@caplet.com>
Cc: <capidl@eros-os.org>
References: <BA95A03601ABD511AE6D00A0C9B6B0BF062963@hplex3.hpl.hp.com> <5.1.0.14.2.20010917190452.0472d0b0@shell9.ba.best.com>
Subject: Re: [capidl] Re: [EROS-Arch] capidl alive again
Date: Mon, 17 Sep 2001 22:32:42 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

> I also recommend that we define the subset of
> XML and DTDs that we'll use for this project.  I could stand Minimal-XMLs
+
> attributes.  I could stand...

We had previously agreed that the user could specify the DTD for the
documentation input, which means that (a) we must support full XML, at least
to the extent of being able to pass it through, and (b) we must support the
namespaces proposal so as to keep the capidl namespace cleanly separated
from the user-supplied documentation namespace.

Neither of these, in practice, seems burdensome.

Different projects will, of course, define documentation DTDs appropriate to
their needs. If the right one for E is to use a MinXML type of DTD, then
please by all means do so. The only real requirement on CapIDL here is that
the XML parser support full XML. Given the level of wide acceptance, it's
pretty clear that CapIDL should be build on Xalan, which already provides
full XML. Xerces (the XSLT processor) provides full Xpath compatibility, so
I assume that they got the semantics right to the extent that it is possible
to do so.

shap


From shap@eros-os.org Tue Sep 18 11:10:13 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFADv16435
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 11:10:13 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id LAA00738
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 11:02:04 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFA7v16430
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 11:10:07 -0400
Message-ID: <00ee01c14054$1c903d50$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <capidl@eros-os.org>
Date: Tue, 18 Sep 2001 11:10:54 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_00EB_01C14032.9550D690"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Some corrections
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_00EB_01C14032.9550D690
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

The following notes correct/revise various things from yesterday in the =
wake of a conversation with Mark Miller.

Small item:

I'm going to preserve the @crud syntax from JavaDoc. I reserve the right =
to repair some quoting issues and not to support legacy syntaxes that =
have been supersceded in more recent versions of JavaDoc.

Mark made a compelling case for mindshare compatibility on this issue.

------=_NextPart_000_00EB_01C14032.9550D690
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>The following notes correct/revise =
various things=20
from yesterday in the wake of a conversation with Mark =
Miller.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Small item:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I'm going to preserve the @crud syntax =
from=20
JavaDoc. I reserve the right to repair some quoting issues and not to =
support=20
legacy syntaxes that have been supersceded in more recent versions of=20
JavaDoc.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Mark made a compelling case for =
mindshare=20
compatibility on this issue.</FONT></DIV></BODY></HTML>

------=_NextPart_000_00EB_01C14032.9550D690--


From shap@eros-os.org Tue Sep 18 11:20:14 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFKEv16499;
	Tue, 18 Sep 2001 11:20:14 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id LAA00767;
	Tue, 18 Sep 2001 11:12:04 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFKDv16494;
	Tue, 18 Sep 2001 11:20:13 -0400
Message-ID: <00f901c14055$8401e8c0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <e-lang@mail.eros-os.org>, <capidl@eros-os.org>
Date: Tue, 18 Sep 2001 11:20:57 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_00F6_01C14033.FCD1C440"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_00F6_01C14033.FCD1C440
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

[CapIDL related, out of context]

The longest portion of my conversation with MarkM last night concerned =
the commitment to XML. At one point, he was quite distressed about =
committing to XML, I suspect because of issues in the content model =
semantics. I would like to understand this issue better, and if somebody =
knows of a *brief* summary I can read, I would be very appreciative. I =
refer to the issues that have forced canonical XML to diverge, and to =
the content model semantic gap between the "official" version and the =
Xpath version of the content model.

My opinion, in the absence of further information, is that the XML world =
has no artistic aesthetic worth mentioning, and that there *are* =
semantic problems in the spec, but that the cost of deviation exceeds =
the cost of poor semantics in this area.

We cannot -- and should not try to -- redirect the XML community as a =
whole, and this means that we should be prepared to parse full XML =
wherever XML is generated by (a) humans or (b) tools outside of our own =
tool suite. Note that we do not need a validating parser for this, and =
that non-validating parsers really aren't that complex.

That said, I am all in favor of using a sensible, restricted subset of =
XML for use by our own tools. The most reasonable subset is probably =
minml with the follwing attributes (only)

    id        so we can encode graphs
    idref    so we can encode graphs

Speaking for myself, I might also argue for:

    class    so we can apply CSS to decently display the results.

    A.href    (or something equivalent to href) so that we can express
        *outbound* links in minml. The issue here is that the
        content restrictions on element bodies (#PCDATA) are not
        quite the same as the restrictions for attributes, with the =
result
        that off-the-shelf translators may not be able to reliably
        produce HTML <a> entities without use of attributes for this
        purpose

    A.name (or equivalent) for the same reasons as above.

Of these, I could contentedly yield on the A's, but the class attribute =
might prove valuable for visualization so as to key presentation using =
CSS.


Jonathan

------=_NextPart_000_00F6_01C14033.FCD1C440
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>[CapIDL related, out of =
context]</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The longest portion of my conversation =
with MarkM=20
last night concerned the commitment to XML. At one point, he was quite=20
distressed about committing to XML, I suspect because of issues in the =
content=20
model semantics. I would like to understand this issue better, and if =
somebody=20
knows of a *brief* summary I can read, I would be very appreciative. I =
refer to=20
the issues that have forced canonical XML to diverge, and to the content =
model=20
semantic gap between the "official" version and the Xpath version of the =
content=20
model.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>My opinion, in the absence of further =
information,=20
is that the XML world has no artistic aesthetic worth mentioning, and =
that there=20
*are* semantic problems in the spec, but that the cost of deviation =
exceeds the=20
cost of poor semantics in this area.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>We cannot -- and should not try to =
--&nbsp;redirect=20
the XML community as a whole, and this means that we should be prepared =
to parse=20
full XML wherever XML is generated by (a) humans or (b) tools outside of =
our own=20
tool suite. Note that we do not need a validating parser for this, and =
that=20
non-validating parsers really aren't that complex.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>That said, I am all in favor of using a =
sensible,=20
restricted subset of XML for use by our own tools. The most reasonable=20
subset</FONT><FONT face=3DArial size=3D2> is probably minml with the =
follwing=20
attributes (only)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; id&nbsp;&nbsp;&nbsp; =

&nbsp;&nbsp;&nbsp; so we can encode graphs</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; =
idref&nbsp;&nbsp;&nbsp; so we=20
can encode graphs</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Speaking for myself, I might also argue =

for:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; =
class&nbsp;&nbsp;&nbsp; so we=20
can apply CSS to decently display the results.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; =
A.href&nbsp;&nbsp;&nbsp; (or=20
something equivalent to href) so that we can express</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
*outbound*=20
links in minml. The issue here is that the</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
content=20
restrictions on element bodies (#PCDATA) are not</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
quite the=20
same as the restrictions for attributes, with the result</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
that=20
off-the-shelf translators may not be able to reliably</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
produce HTML=20
&lt;a&gt; entities without use of attributes for this</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
purpose</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; A.name (or =
equivalent) for the=20
same reasons as above.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Of these, I could contentedly yield on =
the A's, but=20
the class attribute might prove valuable for visualization so as to key=20
presentation using CSS.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Jonathan</FONT></DIV></BODY></HTML>

------=_NextPart_000_00F6_01C14033.FCD1C440--


From shap@eros-os.org Tue Sep 18 11:33:48 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFXmv16631
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 11:33:48 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id LAA00800
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 11:25:39 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFXlv16626
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 11:33:47 -0400
Message-ID: <010b01c14057$6779ea20$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <capidl@eros-os.org>
Date: Tue, 18 Sep 2001 11:34:28 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0108_01C14035.E046B860"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] XML documentation
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_0108_01C14035.E046B860
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Following last night's conversation with MarkM, I have concluded that =
the move to pure XML documentation is too strong. MarkM, very =
reasonably, wants to continue writing his documentation in JavaDoc-style =
HTML (i.e. not XHTML or even well-formed XML). To me, JavaDoc was a =
source of ideas, not a compatibility objective. I would like first to =
explain what motivated XML here, and then a resolution to our =
difficulty.

The motivation for XML is that our experience with the EROS =
documentation tree is that HTML is inadequate. HTML is great if the only =
output you care about is HTML, but you can't get enough semantic tagging =
to do anything *other* than HTML, so transformation becomes hard. Thus =
the move to XML. This is all empirically motivated.

I should add that subsequent to this move we are coming to the =
conclusion that XSLT is completely inadequate. A tree processor that is =
too weak to also process content (text) nodes simply isn't very useful =
as a transformer to multiple output formats.

The second problem is that students cannot successfully write XML (or =
HTML) unless you validate the input every time you run the tool.

However, on reflection it proves that forcefully integrating XML into =
CapIDL is too strong.  Mark proposed something obvious that may get us =
out of the box.

First, he notes that JavaDoc passes through the HTML documentation as =
quoted strings. If we continue this practice, then CapIDL can be neutral =
about input format provided we make the following commitments:

    @foo{} expansion is done using a routine supplied
        by the back end.

    IDL inputs using XML for documentation will
        identify the fact that they used XML for this
        purpose, and we won't try to generate HTML
        output for these

    The decision to validate is left to the back end.
        Validation is performed on the output DOM
        tree prior to output.

Unless I've missed something, this lets MarkM continue using HTML doc =
input with the HTML doc back end, but lets me use XML input with a =
validating XML back end.

Reactions and comments?

------=_NextPart_000_0108_01C14035.E046B860
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Following last night's conversation =
with MarkM, I=20
have concluded that the move to pure XML documentation is too strong. =
MarkM,=20
very reasonably, wants to continue writing his documentation in =
JavaDoc-style=20
HTML (i.e. not XHTML or even well-formed XML). To me, JavaDoc was a =
source of=20
ideas, not a compatibility objective. I would like first to explain what =

motivated XML here, and then a resolution to our =
difficulty.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The motivation for XML is that our =
experience with=20
the EROS documentation tree is that HTML is inadequate. HTML is great if =
the=20
only output you care about is HTML, but you can't get enough semantic =
tagging to=20
do anything *other* than HTML, so transformation becomes hard. Thus the =
move to=20
XML. This is all empirically motivated.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I should add that subsequent to this =
move we are=20
coming to the conclusion that XSLT is completely inadequate. A tree =
processor=20
that is too weak to also process content (text) nodes simply isn't very =
useful=20
as a transformer to multiple output formats.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The second problem is that students =
cannot=20
successfully write XML (or HTML) unless you validate the input every =
time you=20
run the tool.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>However, on reflection it proves that =
forcefully=20
integrating XML into CapIDL is too strong.&nbsp; Mark proposed something =
obvious=20
that may get us out of the box.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>First, he notes that JavaDoc passes =
through the=20
HTML documentation as quoted strings. If we continue this practice, then =
CapIDL=20
can be neutral about input format provided we make the following=20
commitments:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; @foo{} expansion is =
done using a=20
routine supplied</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
by the back=20
end.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; IDL inputs using XML =
for=20
documentation will</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
identify the=20
fact that they used XML for this</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
purpose, and=20
we won't try to generate HTML</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
output for=20
these</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; The decision to =
validate is left=20
to the back end.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
Validation is=20
performed on the output DOM</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
tree prior to=20
output.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Unless I've missed something, this lets =
MarkM=20
continue using HTML doc input with the HTML doc back end, but lets me =
use XML=20
input with a validating XML back end.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Reactions and =
comments?</FONT></DIV></BODY></HTML>

------=_NextPart_000_0108_01C14035.E046B860--


From shap@eros-os.org Tue Sep 18 11:43:12 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFhBv16704
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 11:43:12 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id LAA00838
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 11:35:02 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IFhBv16699
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 11:43:11 -0400
Message-ID: <011601c14058$b6836a50$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <capidl@eros-os.org>
Date: Tue, 18 Sep 2001 11:43:49 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0113_01C14037.2F03C640"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] scopes
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_0113_01C14037.2F03C640
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

The current CapIDL grammar provides for three scopes in which symbols =
can be defined

    top level
    module
    interface

It also lacks an "import" mechanism.

Because many of the target languages do not support scoping mechanisms =
comparable to namespaces, I'm inclined for the moment to simplify this =
-- even at the risk of reducing expressive power (at least temporarily)

Tentatively, I am inclined to think that we are descibing capabilities =
(interfaces), and that any module relationship between these =
capabilities is an accident of implementation. In principle, some other =
module or program might implement the same interface, and it's type =
would not change by virtue of now appearing in a second module.

Given this, I'm sorely tempted to remove everything *except* interface. =
However, for better or worse there are capability "families" that =
motivate a module-level collection mechanism -- not for use as a scope, =
but for use as a collection point for service-granularity (as opposed to =
capability granularity) documentation.

I have not considered *any* of this carefully. Can anyone give =
well-motivated arguments for (or against) each of these container =
layers, and argue for/against making them scopes? Does nested scoping =
even make sense in CapIDL? What does it mean to export an interface on a =
nested class outside of a VM, for example?


Jonathan

------=_NextPart_000_0113_01C14037.2F03C640
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>The current CapIDL grammar provides for =
three=20
scopes in which symbols can be defined</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; top =
level</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; module</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; =
interface</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>It also lacks an "import" =
mechanism.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Because many of the target languages do =
not support=20
scoping mechanisms comparable to namespaces, I'm inclined for the moment =
to=20
simplify this -- even at the risk of reducing expressive power (at least =

temporarily)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Tentatively, I am inclined to think =
that we are=20
descibing capabilities (interfaces), and that any module relationship =
between=20
these capabilities is an accident of implementation. In principle, some =
other=20
module or program might implement the same interface, and it's type =
would not=20
change by virtue of now appearing in a second module.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Given this, I'm sorely tempted to =
remove everything=20
*except* interface. However, for better or worse there are capability =
"families"=20
that motivate a module-level collection mechanism -- not for use as a =
scope, but=20
for use as a collection point for service-granularity (as opposed to =
capability=20
granularity) documentation.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I have not considered *any* of this =
carefully. Can=20
anyone give well-motivated arguments for (or against) each of these =
container=20
layers, and argue for/against making them scopes? Does nested scoping =
even make=20
sense in CapIDL? What does it mean to export an interface on a nested =
class=20
outside of a VM, for example?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Jonathan</FONT></DIV></BODY></HTML>

------=_NextPart_000_0113_01C14037.2F03C640--


From shap@eros-os.org Tue Sep 18 14:05:31 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8II5Vv17611
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 14:05:31 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id NAA00915
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 13:57:20 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8II5Sv17605;
	Tue, 18 Sep 2001 14:05:28 -0400
Message-ID: <017901c1406c$84918720$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: "Mark S. Miller" <markm@caplet.com>, <capidl@eros-os.org>
References: <5.1.0.14.2.20010918104039.00ac5040@shell9.ba.best.com>
Date: Tue, 18 Sep 2001 14:05:36 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Re: exprs in parse tree
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

>> It proves that there may be a reason to preserve them: documentation.
Consider:
>>
>>    const OC_SomeCodePoint = 43;
>>
>> interface mumble(args mumble) = OC_SomeCodePoint;
>>
>
> Oops.  You are completely correct.

Unfortunately, there is collateral damage the moment we accept expressions
as input where output documentation is a concern. Consider the small
revision:

    interface mumble (args mumble) = OC_SomeCodePoint + 2;

This can either be output as the result of the expression, or the expression
tree can be output. In the former case, documentation is lost. In the latter
case, integer computation may be lost depending on the output language.

My belief is that the only compelling case for documentation may be in the
interface code point assignment and possibly in the typecase dispatch values
for discriminated unions. One "solution" would be to require these to be
numeric constants or constant symbols rather than allowing general
expressions in these locations. The determined programmer can alway write

    const integer mystupidity = OC_SomeCodePoint + 2;
    interface mumble (args mumble) = mystupidity;

I'll leave the grammar as-is for now and leave the expressions in the parse
tree. We can very easily introduce an expression processing 2nd pass later.

shap


From shap@eros-os.org Tue Sep 18 14:16:45 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IIGjv17684
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 14:16:45 -0400
Received: from eros.cs.jhu.edu (IDENT:root@eros.cs.jhu.edu [128.220.223.245])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id OAA00947
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 14:08:33 -0400
Received: from vmware (mikado.cs.jhu.edu [128.220.223.247])
	(authenticated (0 bits))
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IIGgv17679
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 14:16:42 -0400
Message-ID: <018801c1406e$150824c0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <capidl@eros-os.org>
Date: Tue, 18 Sep 2001 14:16:48 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0185_01C1404C.8DCA44A0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Bug (?) in current grammar
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

This is a multi-part message in MIME format.

------=_NextPart_000_0185_01C1404C.8DCA44A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

In addition to some minor semicolonic (sic) fixes that I haven't checked =
in yet, there is some behavior permitted by the current grammar that I =
think is ill-advised. Under the current grammar, it is legal to say

    struct outer {
        struct inner {
            integer a;
        };
    };

That is, no distinction is made by the grammar between type declarations =
and member declarations. My concern is that in several languages =
(including C++), the declaration above is effectively:

    struct foo { /* no members */ };

which creates problems -- especially w.r.t. inheritance -- because of =
the fact that it has zero size.

Unless there is a compelling reason to retain structs with no members, I =
would like to disallow this, either by a restriction in the grammar or a =
semantics check that the struct has child members after the closing =
curly.

If this is enforced in the grammar, which I would prefer, I propose we =
do so by requiring in the grammar that the *last* item in the struct be =
a member declaration. I am aware of no semantic rationale for permitting =
trailing nested structs, as these go out of scope immediately and can =
therefore never be used.

Oddly, the same issue does *not* arise in discriminated unions, because =
the discriminator itself takes space, and there are real cases in which =
the discriminator value is the totality of what needs to be transferred. =
Therefore, discriminated unions should not be required to have members =
for a given discriminator. For parallelism, however, a discriminated =
union case lacking members should likewise lack type definitions, as =
these cannot possibly be referenced in the absence of a member =
declaration.

Objections? Comments?


shap

------=_NextPart_000_0185_01C1404C.8DCA44A0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>In addition to some minor semicolonic =
(sic) fixes=20
that I haven't checked in yet, there is some behavior permitted by the =
current=20
grammar that I think is ill-advised. Under the current grammar, it is =
legal to=20
say</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; struct outer =
{</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; =
struct inner=20
{</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=20
&nbsp;&nbsp;&nbsp; integer a;</FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
};</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; };</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>That is, no distinction is made by the =
grammar=20
between type declarations and member declarations. My concern is that in =
several=20
languages (including C++), the declaration above is =
effectively:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&nbsp;&nbsp;&nbsp; struct foo { /* no =
members */=20
};</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>which creates problems -- especially =
w.r.t.=20
inheritance -- because of the fact that it has zero size.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Unless there is a compelling reason to =
retain=20
structs with no members, I would like to disallow this, either by a =
restriction=20
in the grammar or a semantics check that the struct has child members =
after the=20
closing curly.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>If this is enforced in the grammar, =
which I would=20
prefer, I propose we do so by requiring in the grammar that the *last* =
item in=20
the struct be a member declaration. I am aware of no semantic rationale =
for=20
permitting trailing nested structs, as these go out of scope immediately =
and can=20
therefore never be used.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Oddly, the same issue does *not* arise =
in=20
discriminated unions, because the discriminator itself takes space, and =
there=20
are real cases in which the discriminator value is the totality of what =
needs to=20
be transferred. Therefore, discriminated unions should not be required =
to have=20
members for a given discriminator. </FONT><FONT face=3DArial =
size=3D2>For=20
parallelism, however, a discriminated union case lacking members should =
likewise=20
lack type definitions, as these cannot possibly be referenced in the =
absence of=20
a member declaration.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Objections? Comments?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>shap</FONT></DIV></BODY></HTML>

------=_NextPart_000_0185_01C1404C.8DCA44A0--


From tjclose@yahoo.com Tue Sep 18 14:48:54 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IImsv18290
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 14:48:54 -0400
Received: from smtp016.mail.yahoo.com (smtp016.mail.yahoo.com [216.136.174.113])
	by mail.eros-os.org (8.9.3/8.9.3) with SMTP id OAA01058
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 14:40:42 -0400
Received: from unknown (HELO skin.yahoo.com) (206.48.59.81)
  by smtp.mail.vip.sc5.yahoo.com with SMTP; 18 Sep 2001 18:53:22 -0000
X-Apparently-From: <tjclose@yahoo.com>
Message-Id: <5.0.2.1.1.20010918123451.009e9880@pop.mail.yahoo.com>
X-Sender: tjclose@pop.mail.yahoo.com
X-Mailer: QUALCOMM Windows Eudora Version 5.0.2
Date: Tue, 18 Sep 2001 14:50:16 -0400
To: "Jonathan S. Shapiro" <shap@eros-os.org>, <e-lang@mail.eros-os.org>,
   <capidl@eros-os.org>
From: Tyler Close <tjclose@yahoo.com>
In-Reply-To: <00f901c14055$8401e8c0$021010ac@vmware>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Subject: [capidl] Re: [E-Lang] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

At 11:20 AM 9/18/01 -0400, Jonathan S. Shapiro wrote:
>[CapIDL related, out of context]
>
>The longest portion of my conversation with MarkM last night concerned the 
>commitment to XML. At one point, he was quite distressed about committing 
>to XML, I suspect because of issues in the content model semantics. I 
>would like to understand this issue better, and if somebody knows of a 
>*brief* summary I can read, I would be very appreciative. I refer to the 
>issues that have forced canonical XML to diverge, and to the content model 
>semantic gap between the "official" version and the Xpath version of the 
>content model.
>
>My opinion, in the absence of further information, is that the XML world 
>has no artistic aesthetic worth mentioning, and that there *are* semantic 
>problems in the spec, but that the cost of deviation exceeds the cost of 
>poor semantics in this area.
>
>We cannot -- and should not try to -- redirect the XML community as a 
>whole, and this means that we should be prepared to parse full XML 
>wherever XML is generated by (a) humans or (b) tools outside of our own 
>tool suite. Note that we do not need a validating parser for this, and 
>that non-validating parsers really aren't that complex.
>
>That said, I am all in favor of using a sensible, restricted subset of XML 
>for use by our own tools. The most reasonable subset is probably minml 
>with the follwing attributes (only)
>
>     id        so we can encode graphs
>     idref    so we can encode graphs

    xsi:type    so we can encode polymorphic types.

IMHO, the XML Schema specification is overly complex, so we might want to 
use a "type" attribute that is not bound to the XML Schema specification.

Instead of using namespace prefixes, as XML Schema does, I think it would 
be simpler to just put the whole namespace URL into the value of the "type" 
attribute, so:

<accessor type="http://schema.example.com/circle.schema#Circle">
     <radius>5</radius>
</accessor>

or

<accessor type="http://schema.example.com/rectangle.schema#Rectangle">
     <width>5</width>
     <height>10</height>
</accessor>

ASIDE:
My mind boggles at what goes on at W3C. I am baffled that they are even 
calling SVG an XML format. The whole thing is done by inventing custom text 
encodings and putting these inside XML attribute strings. The design 
totally defeats the whole point of having a standard encoding format like 
XML. This is an especially grave tragedy since having a vector graphics 
format that is easily generated with XSLT is an important piece of 
application infrastructure.

>
>Speaking for myself, I might also argue for:
>
>     class    so we can apply CSS to decently display the results.

The type attribute should fulfill this purpose.

>
>     A.href    (or something equivalent to href) so that we can express
>         *outbound* links in minml. The issue here is that the
>         content restrictions on element bodies (#PCDATA) are not
>         quite the same as the restrictions for attributes, with the result
>         that off-the-shelf translators may not be able to reliably
>         produce HTML <a> entities without use of attributes for this
>         purpose
>
>     A.name (or equivalent) for the same reasons as above.

I'd recommend putting the link information inside of an element. If the XML 
is going to be viewed as HTML then it's going to have to go through an XSLT 
transformation anyways. This XSLT code can put the target reference into an 
<A> element, or an xlink:href attribute, or whatever.

Something like:

<accessor>
     <target>http://www.erights.org/index.html</target>
</accessor>

So an XML representation of the E distribution properties might look like:

<EProperties>
     <version>0.8.10alpha1</version>
     <vendorName>ERights.org</vendorName>
     <vendor>
         <target>http://www.erights.org/index.html</target>
     </vendor>
</EProperties>

A separate <target> sub-element should be used to contain the URL, rather 
than just putting it directly into the accessor element (ie: 
<vendor>http://www.erights.org/index.html</vendor>) since we may want to 
extend the link with additional information other than just the target 
reference. With the target reference in its own sub-element, the link 
information can be easily augmented by adding new sub-elements. Just as an 
example, a link to a SOAP endpoint might be represented as:

<accessor type="http://schema.w3c.org/SOAP/link.schema#Link">
     <target>http://www.example.com/quote</target>
     <interface>http://schema.example.com/quote.schema</interface>
</accessor>

It would also make sense to use this link format instead of the IDREF 
attribute:

<accessor type="http://schema.w3c.org/idref.schema#IDREF">
     <target>#id_string</target>
</accessor>

If we went this route, then the only attributes would be "id" and "type": 
"id" to give an element an identity and "type" to specify the format of the 
element content when the element is of a polymorphic type.

Tyler

>
>Of these, I could contentedly yield on the A's, but the class attribute 
>might prove valuable for visualization so as to key presentation using CSS.
>
>
>Jonathan


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


From chip@fudco.com Tue Sep 18 15:27:34 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8IJRXv18954;
	Tue, 18 Sep 2001 15:27:33 -0400
Received: from troll.fudco.com (IDENT:root@adsl-216-103-85-24.dsl.snfc21.pacbell.net [216.103.85.24])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id PAA01148;
	Tue, 18 Sep 2001 15:19:17 -0400
Received: from abulafia.fudco.com (abulafia.fudco.com [192.168.1.10])
	by troll.fudco.com (8.11.0/8.11.0) with ESMTP id f8IJZCf15796;
	Tue, 18 Sep 2001 12:35:12 -0700
Received: (from chip@localhost)
	by abulafia.fudco.com (8.9.3+Sun/8.9.3) id MAA14231;
	Tue, 18 Sep 2001 12:34:07 -0700 (PDT)
Date: Tue, 18 Sep 2001 12:34:07 -0700 (PDT)
From: Chip Morningstar <chip@fudco.com>
Message-Id: <200109181934.MAA14231@abulafia.fudco.com>
To: e-lang@mail.eros-os.org
Cc: capidl@eros-os.org, shap@eros-os.org, tjclose@yahoo.com
Subject: [capidl] Re: [E-Lang] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

>From: Tyler Close <tjclose@yahoo.com>
>
>ASIDE:
>My mind boggles at what goes on at W3C. I am baffled that they are even 
>calling SVG an XML format. The whole thing is done by inventing custom text 
>encodings and putting these inside XML attribute strings. The design 
>totally defeats the whole point of having a standard encoding format like 
>XML. This is an especially grave tragedy since having a vector graphics 
>format that is easily generated with XSLT is an important piece of 
>application infrastructure.

Having proved themselves miserably incompetent as engineers and designers, the
W3C people have finally figured out where they can really excel: going to
standards meetings.


I think I wasn't paying close enough attention at some point in the proceedings
here. Can someone explain to me why we are having anything to do with the whole
XML cargo cult in the first place?

Is there any actual technical benefit from touching this tarbaby or is it being
done for marketing/positioning purposes?

Chip


----------------------------------------------------------------------------
  Chip Morningstar                                                   FUDCo
  chip@fudco.com                          3339 Kipling, Palo Alto CA 94306
  http://www.fudco.com/chip                                   650-856-0119

	      "It's now safe to turn off your computer."
----------------------------------------------------------------------------

From alan_karp@hp.com Tue Sep 18 17:19:55 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8ILJhv19449;
	Tue, 18 Sep 2001 17:19:51 -0400
Received: from deimos.hpl.hp.com (deimos.hpl.hp.com [192.6.19.190])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id RAA00717;
	Tue, 18 Sep 2001 17:11:31 -0400
Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33])
	by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id OAA13247;
	Tue, 18 Sep 2001 14:23:57 -0700 (PDT)
Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182])
	by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f8ILNuq24329;
	Tue, 18 Sep 2001 14:23:57 -0700 (PDT)
Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Tue, 18 Sep 2001 14:23:56 -0700 (Pacific Daylight Time)
Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21)
	id <TFSXR3TV>; Tue, 18 Sep 2001 14:23:56 -0700
Message-ID: <BA95A03601ABD511AE6D00A0C9B6B0BF06296F@hplex3.hpl.hp.com>
From: "Karp, Alan" <alan_karp@hp.com>
To: "'Chip Morningstar'" <chip@fudco.com>, e-lang@mail.eros-os.org
Cc: capidl@eros-os.org, shap@eros-os.org, tjclose@yahoo.com
Date: Tue, 18 Sep 2001 14:23:56 -0700
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Content-Type: text/plain;
	charset="iso-8859-1"
Subject: [capidl] RE: [E-Lang] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

Chip Morningstar wrote:
> 
> Is there any actual technical benefit from touching this 
> tarbaby or is it being
> done for marketing/positioning purposes?
> 

That's exactly the question we were faced with before the first release of
e-speak.  At that time, we used a binary format for our communications
protocol.  (The first one was ASCII strings on sockets, which I wanted to
keep.)  We were criticized for being "non-standard" because we were not
using XML.  So, part of the decision to provide an XML version of the
protocol was so we would be considered "standard".  In other words,
marketing was a consideration.

At that time, I argued that what you had to say (the semantic content of the
protocol) was more important than how you said it (XML vs. binary).  After
all, you've still got to convert the message contents to object state.  Does
it really matter if you parse XML or binary, I argued?  Besides, who wants
to spend the overhead of parsing XML, something of the order of 100 ms?  I
now believe I was wrong for a number of reasons.  They are

o There are generic parsers for XML, meaning that there's less software for
us to maintain and ship.  More significantly, the parser deals with
malformed messages, not code we had to write.

o It is easier to recover from and/or identify errors in XML than in binary.
One bad byte in a binary message can ruin your whole day.

o Versioning is easier with XML.

  - New elements can be introduced without breaking old code; it just
ignores them.  
  - You can also more easily process old messages with new code by providing
the appropriate default values.  

  - The problem of denoting new types is not an issue with XML, but defining
an extensible set of "signal bytes", as we called them, is.

  - Including new elements is easier because you're not disrupting a
position dependent message.

o It is possible to use your messages for a completely different purpose
because the semantic meaning of the elements is denoted.  Thus, someone who
only understands a single tag out of an XML document can use the data as
needed.

_________________________
Alan Karp
Principal Scientist
Decision Technology Department
Hewlett-Packard Laboratories MS 1U-3
1501 Page Mill Road
Palo Alto, CA 94304
(650) 857-3967, fax (650) 857-6278
https://ecardfile.com/id/Alan_Karp
http://www.hpl.hp.com/personal/Alan_Karp/

From shap@eros-os.org Tue Sep 18 19:40:43 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8INebv20523
	for <capidl@eros.cs.jhu.edu>; Tue, 18 Sep 2001 19:40:37 -0400
Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.121.49])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id TAA00862
	for <capidl@eros-os.org>; Tue, 18 Sep 2001 19:32:24 -0400
Received: from vmware (dialup-63.208.191.86.Dial1.Baltimore1.Level3.net [63.208.191.86])
	by scaup.mail.pas.earthlink.net (EL-8_9_3_3/8.9.3) with ESMTP id QAA05249;
	Tue, 18 Sep 2001 16:43:49 -0700 (PDT)
Message-ID: <036001c13fe1$311ab570$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: "Bill Frantz" <frantz@pwpconsult.com>
Cc: <capidl@eros-os.org>
References: <v03110702b7cd3fd8d9f6@[165.247.200.56]>
Subject: Re: [capidl] XML documentation
Date: Mon, 17 Sep 2001 21:27:58 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

> [Bill Frantz asked]
> Have you considered the GNU info system?  I suspect it is not compatible
> enough with HTML for MarkM's needs.

Yes. I have used GNU info enough to know that it lags the content tagging
facilities that we want for the EROS project. In fact, I considered info
before xml.

The problem here is that we need something that allows different document
schemas (for now, expressed as DTDs) to be designed for different
applications.


shap


From shap@eros-os.org Tue Sep 18 19:42:42 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8INggv20558;
	Tue, 18 Sep 2001 19:42:42 -0400
Received: from scaup.mail.pas.earthlink.net (scaup.mail.pas.earthlink.net [207.217.121.49])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id TAA00878;
	Tue, 18 Sep 2001 19:34:29 -0400
Received: from vmware (dialup-63.208.191.86.Dial1.Baltimore1.Level3.net [63.208.191.86])
	by scaup.mail.pas.earthlink.net (EL-8_9_3_3/8.9.3) with ESMTP id QAA22519;
	Tue, 18 Sep 2001 16:47:03 -0700 (PDT)
Message-ID: <036901c1409c$48eb4aa0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: <e-lang@mail.eros-os.org>, <capidl@eros-os.org>,
   "Tyler Close" <tjclose@yahoo.com>
References: <5.0.2.1.1.20010918123451.009e9880@pop.mail.yahoo.com>
Subject: Re: [capidl] Re: [E-Lang] Concerning XML docs
Date: Tue, 18 Sep 2001 19:47:12 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

> >Speaking for myself, I might also argue for:
> >
> >     class    so we can apply CSS to decently display the results.
>
> The type attribute should fulfill this purpose.

Not really. When I write a CSS script that matches SPAN.foo, the CSS
implementation expects to look at the class attribute to match the foo part.

On the rest, I'll think about it. The only immediate thought is that the
content model for text nodes differs from the content model for attribute
strings, which lends itself to validation failures.

shap


From shap@eros-os.org Tue Sep 18 20:00:39 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8J00dv20767;
	Tue, 18 Sep 2001 20:00:39 -0400
Received: from falcon.mail.pas.earthlink.net (falcon.mail.pas.earthlink.net [207.217.120.74])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id TAA00963;
	Tue, 18 Sep 2001 19:52:20 -0400
Received: from vmware (dialup-63.208.191.86.Dial1.Baltimore1.Level3.net [63.208.191.86])
	by falcon.mail.pas.earthlink.net (8.11.5/8.9.3) with ESMTP id f8J04f302675;
	Tue, 18 Sep 2001 17:04:47 -0700 (PDT)
Message-ID: <001201c1409e$a305eed0$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: "Chip Morningstar" <chip@fudco.com>, <e-lang@mail.eros-os.org>
Cc: <capidl@eros-os.org>, <tjclose@yahoo.com>
References: <200109181934.MAA14231@abulafia.fudco.com>
Date: Tue, 18 Sep 2001 20:04:13 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Subject: [capidl] Re: [E-Lang] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

> Can someone explain to me why we are having anything to do with the whole
> XML cargo cult in the first place?
>
> Is there any actual technical benefit from touching this tarbaby or is it
being
> done for marketing/positioning purposes?

I'll take a cut.

Regardless of the merits of XML, it's clearly useful to have a means of
content tagging that is generally agreed on. Separately, given a usable but
potentially imperfect solution that is widely used and supported, it is
generally preferable to use that solution than to reinvent unless there is
*compelling* reason to change.

XML is certainly not perfect, and we can all imagine better tagging schemes,
but there is a large class of jobs that XML gets done, and it is definitely
widely supported.

Begin soapbox

At the risk of fanning various peoples' flames here, I have observed in the
E group where XML is concerned a tendency toward well-motivated but ruthless
purism, as expressed (for example) in the rejection of XML in favor of
MinML. Some of the objections to XML are completely valid but not really
important in practice. Some are simply silly. A few issues may actually
matter, but I don't understand whether the truly impact us in practice.

In the process of this quest for purity, I think that we have lost sight of
the importance of wide acceptance. MinML is a class of valid XML DTDs, but
it violates the *expectations* of the XML user base. Telling them "but its
XML" may be factually accurate, but it isn't relevant. When we decide to use
MinML ourselves for our own DTDs I have no problem. When we restrict the
inputs that we will accept from users and third-party tools to MinML, we are
engaging in balkanization whose cost considerably outweighs (IMHO) any
conceivable benefit.

I understand, and probably agree with, arguments of the form "we have too
much to do right now to look at this issue." It's the willingness to ignore
the user base that bugs me.

I probably shouldn't have posted this, but I wanted to re-inject the idea
that this decision is just like the E bracketing syntax decision. The
question should be not "what is right", but "what does the user expect and
can we live with it?"

End soapbox


shap


From chip@fudco.com Tue Sep 18 21:02:02 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8J122v21031;
	Tue, 18 Sep 2001 21:02:02 -0400
Received: from troll.fudco.com (IDENT:root@adsl-216-103-85-24.dsl.snfc21.pacbell.net [216.103.85.24])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id UAA00694;
	Tue, 18 Sep 2001 20:53:48 -0400
Received: from abulafia.fudco.com (abulafia.fudco.com [192.168.1.10])
	by troll.fudco.com (8.11.0/8.11.0) with ESMTP id f8J1APf19562;
	Tue, 18 Sep 2001 18:10:25 -0700
Received: (from chip@localhost)
	by abulafia.fudco.com (8.9.3+Sun/8.9.3) id SAA14777;
	Tue, 18 Sep 2001 18:09:17 -0700 (PDT)
Date: Tue, 18 Sep 2001 18:09:17 -0700 (PDT)
From: Chip Morningstar <chip@fudco.com>
Message-Id: <200109190109.SAA14777@abulafia.fudco.com>
To: e-lang@mail.eros-os.org
Cc: capidl@eros-os.org, shap@eros-os.org
Subject: [capidl] Re: [E-Lang] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

>From shap@eros-os.org  Tue Sep 18 17:09:14 2001
>
>Begin soapbox

soapbox or SOAPbox?  (sorry :-)

>
>At the risk of fanning various peoples' flames here, I have observed in the
>E group where XML is concerned a tendency toward well-motivated but ruthless
>purism, as expressed (for example) in the rejection of XML in favor of
>MinML. Some of the objections to XML are completely valid but not really
>important in practice. Some are simply silly. A few issues may actually
>matter, but I don't understand whether the truly impact us in practice.

I guess I'm not one of the purists in this case (despite the fact that I
usually do tend to be one such) as I am not familiar with MinML and what its
(or XML's) role in the E environment is supposed to be -- as I said, I think I
must have missed something that went by when I wasn't paying close enough
attention.

The last occasion I had to reject XML was when it was being considered for a
project I was involved with, and it turned out that the smallest available XML
parser we could find was by itself ten times the size of the rest of our
application, and this in a situation where one of the critical goals we were
trying to achieve was to minimize the size of an already-too-large user
download. This rejection may have been obsessive but it wasn't purist and it
wasn't ignoring the user base.

But my question was somewhat different. Regardless of whether or not I think
XML's supporters are on a fools' errand (you can tell, no doubt, that I do), I
think I understand what the general point of XML is. What I don't understand is
what its relationship to E is.

I would expect the reason (in general) for adopting XML would be to play nice
with others who have already bought into it, regardless of XML's goodness or
badness at doing the things it sets out to do.  In fact, I read this as the
basic thrust of your remarks -- play nice with others.

What I don't see is where the locus of data interchange is that these issues
become relevant to us.

Chip

----------------------------------------------------------------------------
  Chip Morningstar                                                   FUDCo
  chip@fudco.com                          3339 Kipling, Palo Alto CA 94306
  http://www.fudco.com/chip                                   650-856-0119

	      "It's now safe to turn off your computer."
----------------------------------------------------------------------------

From markm@caplet.com Wed Sep 19 02:14:27 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8J6ERv22199;
	Wed, 19 Sep 2001 02:14:27 -0400
Received: from proxy2.ba.best.com (root@proxy2.ba.best.com [206.184.139.14])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id CAA00708;
	Wed, 19 Sep 2001 02:06:05 -0400
Received: from caplet.caplet.com (sdn-ar-007txfwodP289.dialsprint.net [63.178.189.27])
	by proxy2.ba.best.com (8.9.3/8.9.2/best.out) with ESMTP id XAA04331;
	Tue, 18 Sep 2001 23:17:03 -0700 (PDT)
Message-Id: <5.1.0.14.2.20010919010749.00a2c2c0@shell9.ba.best.com>
X-Sender: erights@shell9.ba.best.com
X-Mailer: QUALCOMM Windows Eudora Version 5.1
Date: Wed, 19 Sep 2001 02:02:55 -0400
To: Chip Morningstar <chip@fudco.com>
From: "Mark S. Miller" <markm@caplet.com>
Cc: e-lang@mail.eros-os.org, capidl@eros-os.org, shap@eros-os.org
In-Reply-To: <200109190109.SAA14777@abulafia.fudco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Subject: [capidl] Re: [E-Lang] Concerning XML docs
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

At 09:09 PM Tuesday 9/18/01, Chip Morningstar wrote:
>[...] I am not familiar with MinML and what its
>(or XML's) role in the E environment is supposed to be [...] What I don't understand is
>what [XML's] relationship to E is.[...]
>What I don't see is where the locus of data interchange is that these issues
>become relevant to us.

The relevance of XML in Jonathan's recent postings is purely for CapIDL.  If 
I recall, Jonathan cross posted because he knew that there were strong 
opinions about XML among us e-langers, as there proved to be.

As far as E goes, I had wanted to make my piece with XML from early on, 
precisely for the marketing/mindshare reasons Jonathan explains.  I 
initially went in naively thinking that XML can't be as horrible as it seems 
on first blush, and that surely an accommodation could be found.

To answer your question, I had wanted to use XML as the default universal 
parse tree representation to parse other data into, much as ANTLR uses it's 
AST class.  (ANTLR's ASTs resembles S-Expressions or Prolog term 
trees.)  http://www.erights.org/elang/grammar/quasi-xml.html explains how I 
wanted to fit it into E -- to use quasi-literal patterns and expressions to 
easily manipulate data in a Prolog/Perl/XSLT match-bind-substitute style.  
And to be able to do so for any data that could be quasi-parsed into a 
quasi-literal form of whatever my universal parse tree representation would be.

I had chosen Minimal-XML for this in order to strike a balance between 
sanity and politics.  Since then, two things have changed my mind.  1) The 
SML-DEV group http://groups.yahoo.com/group/sml-dev cannot be stirred into 
acting as a vocal independent standards group advocating Minimal-XML as an 
alternative.  I could go on about this, but I'll let my publicly archived 
arguments with them, and their more recent interests in discussing anything 
but Minimal-XML, speak for themselves.  2) XML Schema pushed me over the 
edge, and I think it will be rapidly pushing others as well.  This is no 
longer a standard to compromise with, but one to ignore.  

I'm planning instead to simply use ANTLR's ASTs, as that's the path of least 
resistance if I'm to turn ALTLR into a quasi-parser generator.

So the only remaining relevance XML has for E is that there's a lot of stuff 
in XML, and, until the backlash starts, this will get worse before it gets 
better.  Some of these projects will be ones we want to interoperate with in 
some form.  We know of one already -- CapIDL.  Fortunately, despite 
Jonathan's commitment to full XML support by CapIDL comments, E's use of 
CapIDL (needed to bind to EROS) can ignore those comments.  If we use 
Jonathan's parser to parse CapIDL and write out a representation of the 
parse tree, Jonathan agrees that this will be in a very narrow subset of 
XML, probably Minimal-XML + a little bit.  Alternatively, and probably 
better anyway, is to just parse it ourselves based on a common CapIDL yacc 
grammar.

But what about the fatal question: "Is E compatible with XML?"  The answer 
is, sure.  Just as E is compatible with JPEG.  It would be hard for a 
Turing-universal language not to be compatible with a data format.  Also, 
all the standard Java libraries for manipulating XML or JPEG should be 
invokable from E, given only that they don't violate capability discipline, 
as seems likely.

Actually, we may eventually do better than that.  There is probably already 
an ANTLR grammar for XML that parses XML into ANTLR ASTs.  Assuming we can 
turn that into a quasi-parser, then we could accept XML input, but use ANTLR 
ASTs to represent them rather than DOM trees.  In any case, this possibility 
no longer makes my pulse race, and no one should hold their breath.

So, since XML really has no remaining role in E per se, I'd like to make 
this our last cross posted message on this topic, except of course for 
messages that actually do have to do with E.  For messages that have to do 
with XML in general, CapIDL in general, or XML for CapIDL, let's take these 
exclusively to the CapIDL list.

But I'll leave you with the following.  Someone on the SML-DEV list asked 
"Anybody for writing what XML should have been?"  My reply 
http://groups.yahoo.com/group/sml-dev/message/4867 was:



It seems to me that there are three distinct kinds of jobs that have
been smushed together into XML.  Sometimes such merging of
functionality results in synergies, as when PL/1 smushed together
features from Fortran, Cobol, Algol, and Lisp, creating a mess.  But
a mess suggesting potential synergies between these elements that
inspired many clean descendents like C and Pascal.  In particular,
combining heap-allocated pointer structures from Lisp with
struct/record concept from (believe it or not) Cobol was very
powerful, and was one of the steps to objects. 

The best we can hope for from XML at this point is for it to become
the PL/1 of textual data representation.  By merging these functions,
perhaps someone will be inspired by some synergy I don't see and
create something both new and valuable.  Frankly, I doubt it.  I
think XML is simply an irredeemable incoherent mess, and the three
distinct jobs remain better done separately by the three distinct
tools that have traditionally done these jobs.  Though, I think, XML
can suggest some enhancements to these tools.  The three tools? 

1) Attributed text.  This is the job traditionally associated with a
number of text formats, including FrameMaker's, rtf, and others.
HTML has clearly taken over this world, and if one wants to be
compatible with something, HTML, not XML, is clearly the huge
installed base to be compatible with. 

2) S-Expressions.  As John McCarthy (creator of Lisp) says "XML is
just S-Expressions, only ten times as verbose".  (And, I'd add, about
one hundred times as complex.)  As I've said on this list before, if
you need to say you're "XML compatible", and there are many marketing
reasons to do this, Minimal-XML is exciting *because* it removes all
the extraneous crap from XML, leaving just the S-Expressions and the
compatibility.  The one cool thing XML does add to traditional
S-Expressions (that Minimal-XML, wisely at this point, leaves out) is
the notion of grammars over S-Expressions.  But S-Expressions in
ANTLR http://www.antlr.org/ do this tree grammar thing much better
than XML does, and does it over actual Lisp-like S-Expressions.  For
those that don't need XML compatibility, I recommend ANTLR. 

3) Object serialization.  Both Java and CORBA have created well known
binary serialization formats.  Java's is unnecessarily complex, and
has the problem that it's perceived to be language specific (it's
not). CORBA's understandably is crippled, being part of CORBA.
Worse, both are defined only as binary formats.  Key to XML's
marketing success is that it's a textual format, and one can
therefore use text in books as an example of the encoding.  The world
needs a good language-neutral flexible abstract object serialization
format with two concrete syntaxes: an efficient binary one, and a
readable/editable textual one.  Unlike XML, XML/SOAP, or YAML, it
should represent arbitrary graphs straightforwardly.  There should be
a full fidelity converter in each direction between these formats.  I
suspect such serialization systems already exist, and that some are
good, but none are yet widely known.  In today's world, where XML
compatibility is such a crushing issue, I doubt any will become
widely known.  But perhaps.



        Cheers,
        --MarkM


From vze2729k@verizon.net Wed Sep 19 10:00:40 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8JE0ev26950
	for <capidl@eros.cs.jhu.edu>; Wed, 19 Sep 2001 10:00:40 -0400
Received: from smtp003pub.verizon.net (smtp003pub.verizon.net [206.46.170.182])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id JAA00769
	for <capidl@eros-os.org>; Wed, 19 Sep 2001 09:52:23 -0400
Received: from chizmadia ([141.157.84.107])
	by smtp003pub.verizon.net  with SMTP
	for <capidl@eros-os.org>; id f8JE06121015
	Wed, 19 Sep 2001 09:00:16 -0500 (CDT)
Message-ID: <002401c14113$97d3aaa0$a000a8c0@chizmadia>
Reply-To: "David Chizmadia" <davidch@carr.org>
From: "David Chizmadia" <vze2729k@verizon.net>
To: <capidl@eros-os.org>
References: <011601c14058$b6836a50$021010ac@vmware> <001f01c14108$ada99340$a000a8c0@chizmadia>
Subject: Re: [capidl] scopes
Date: Wed, 19 Sep 2001 10:01:25 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="Windows-1252"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

Jonathan,

    When I read through this message I was initially inclined to agree with
your assessment, but something "felt" wrong about the argument. After
sleeping on it, I finally realized that I'm not clear on some of the
assumptions that you're making.

    First, let me step back and provide my world view about IDL, so that
future arguments can focus on specific errors or irrelevancies :-). First
and foremost, what I know about IDL comes from 5 years of association with
the OMG and therefore CORBA; however, I was there to advocate and understand
security issues, so I'm not an expert in the minutae of OMG IDL, GIOP, and
IIOP. The one thing I do understand is that the IDL is a tool designed to
simplify the activities of a designer. In the case of CORBA, the IDL allows
the designer to express the syntax of a contract between a client and a
server and then the IDL compiler automatically generates the software that
implements an application-specific protocol for that contract. Because it
can - at no additional cost - it also generates both the client- and server-
side frameworks for software that implements the semantics of the
interfaces.

    So the thing that I'm not clear on is the technical objective for
CapIDL. Working from first principals, I see two major areas where it can
help. The first (which is, I think, the explicit one) is to automatically
generate the language-specific code that actually translates between the
semantics for transfer of control in a specific language and capability
semantics for transfer of control. If this is the only objective, then I
think that Jonathan's arguments hold. On the other hand, there is a second
possible objective, which is to automatically generate an constructors for
both individual objects (domains?) *and* for applications comprised of
collections of objects. For the former case, Jonathan's arguments still
hold. But for the latter case, wider scoping mechanisms would certainly be
needed - both to identify the collection of objects and to specify the
interactions among that collection so that the (automatically generated
portion of the) constructor can know which capabilities to provide to each
object as it comes into existence. On first blush, if constructor generation
is desired, the CapIDL grammar will have to be augmented with an "uses"
keyword that can be associated with an interface to indicate the other
interfaces that will be called from within the interface implementation.
That is, we'll need to have a signature of the form:

    forward interface bar;
    interface foo {
        ... stuff ...
    }
        raises (userexception1, userexception2),
        uses (bar, Network::Socket);


    I hope that some of this is relevant to the question :-)

-DMC

> From: "Jonathan S. Shapiro" <shap@eros-os.org>
>
> The current CapIDL grammar provides for three scopes in which symbols can
be
> defined
>
>     top level
>     module
>     interface
>
> It also lacks an "import" mechanism.
>
> Because many of the target languages do not support scoping mechanisms
> comparable to namespaces, I'm inclined for the moment to simplify this --
> even at the risk of reducing expressive power (at least temporarily)
>
> Tentatively, I am inclined to think that we are descibing capabilities
> (interfaces), and that any module relationship between these capabilities
is
> an accident of implementation. In principle, some other module or program
> might implement the same interface, and it's type would not change by
virtue
> of now appearing in a second module.
>
> Given this, I'm sorely tempted to remove everything *except* interface.
> However, for better or worse there are capability "families" that motivate
a
> module-level collection mechanism -- not for use as a scope, but for use
as
> a collection point for service-granularity (as opposed to capability
> granularity) documentation.
>
> I have not considered *any* of this carefully. Can anyone give
> well-motivated arguments for (or against) each of these container layers,
> and argue for/against making them scopes? Does nested scoping even make
> sense in CapIDL? What does it mean to export an interface on a nested
class
> outside of a VM, for example?
>
>
> Jonathan



From zooko@zooko.com Wed Sep 19 13:19:24 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8JHJJv27757
	for <capidl@eros.cs.jhu.edu>; Wed, 19 Sep 2001 13:19:19 -0400
Received: from imp ([140.184.83.37])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id NAA00731
	for <capidl@eros-os.ORG>; Wed, 19 Sep 2001 13:10:57 -0400
Received: from localhost ([127.0.0.1] helo=zooko.com)
	by imp with esmtp (Exim 3.32 #1 (Debian))
	id 15jksy-0007J9-00; Wed, 19 Sep 2001 10:11:44 -0700
To: "Karp, Alan" <alan_karp@hp.com>
cc: "'Chip Morningstar'" <chip@fudco.COM>, markm@caplet.com,
   capidl@eros-os.ORG, shap@eros-os.ORG, tjclose@yahoo.COM
In-Reply-To: Message from "Karp, Alan" <alan_karp@hp.com> 
   of "Tue, 18 Sep 2001 14:23:56 PDT." <BA95A03601ABD511AE6D00A0C9B6B0BF06296F@hplex3.hpl.hp.com> 
References: <BA95A03601ABD511AE6D00A0C9B6B0BF06296F@hplex3.hpl.hp.com> 
From: Zooko <zooko@zooko.com>
Reply-To: Zooko <zooko@zooko.com>
Date: Wed, 19 Sep 2001 10:11:44 -0700
Message-Id: <E15jksy-0007J9-00@imp>
Subject: [capidl] s-expressions vs. XML, from experience (was: Re: [E-Lang] Concerning XML docs)
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

Hello Alan, Chip, Jonathan, MarkM, Tyler, capidl:

As per someone's request, I'm removing "e-lang" from the Cc: list for this
discussion of encoding formats.

 Alan Karp wrote:
>
> At that time, I argued that what you had to say (the semantic content of the
> protocol) was more important than how you said it (XML vs. binary).  After
> all, you've still got to convert the message contents to object state.  Does
> it really matter if you parse XML or binary, I argued?  Besides, who wants
> to spend the overhead of parsing XML, something of the order of 100 ms?  I
> now believe I was wrong for a number of reasons.

We faced a similar decision in Mojo Nation about two years ago.  I argued
successfully for using s-expressions as defined in SPKI/SDSI [1] instead of XML
for our protocol encoding.

We subsequently defined some schemas on top of s-expressions which encode
integers, lists, and dicts (== hash tables), and ever since then we have
manipulated messages in Python using Python's convenient high-level builtin
datatypes (dict, list, string, integer, null).

We also used XML for a different part of our project -- we used XML for
encoding the meta-data that users can search on in the Mojo Nation-specific
search engine.  This was chosen in order to facilitate interopation with other
meta-data manipulating tools and in order to be more buzzword compliant.
Having worked intimately with both encodings for two years now, I have some
good perspective on some issues.  

To my mind, s-expressions have all of the advantages over custom binary
encodings that XML has over custom binary encodings, and in addition
s-expressions have substantial advantages over XML.

To wit (quoting and answering each of Alan's points):


> o There are generic parsers for XML, meaning that there's less software for
> us to maintain and ship.  More significantly, the parser deals with
> malformed messages, not code we had to write.

We have had at least two nasty bugs that consumed a lot of our time and were
eventually traced to bugs in the standard XML parser that we were using.

In addition, because we have become unsure about the correctness of the XML
parser, we are forced to investigate the possibility of getting incorrect
behavior from it when we are trying to identify the source of a bug in the
component that uses XML.

Contrast with our s-expression encoder, which took only a short time to write
in Python and later took a short time to rewrite in C (for added speed).  There
has never been a bug in either version of that encoder after the initial
testing, because s-expressions are just too damned simple to screw up.  We can
always assume that the encoder is doing what we think it is doing so that it is
never a factor in our minds when trying to debug.

(This is less true of the schemas we defined -- they incurred a few bugs after
the initial version, but I'm trying to compare s-expressions to XML and
s-expressions-plus-our-schema to XML-with-schemas.)

Now presumably this advantage will go away once XML parsers have sufficiently
matured, although the continued evolution of advanced XML features may continue
to destabilize XML tools, even for those users who do not use the new features.


> o It is easier to recover from and/or identify errors in XML than in binary.
> One bad byte in a binary message can ruin your whole day.

Our s-expression format shares this win over a binary format.  The
s-expressions are hacker-readable on the wire (see appended examples [2] for
why I call them "hacker-readable" instead of "human-readable"), but after the
initial bootstrapping of the protocols I have never again looked at the wire
encoding since I instead look at the Pythonic encoding, even when doing
interactive debugging and manually entering message strings into an
interpreter.


> o Versioning is easier with XML.
> 
>   - New elements can be introduced without breaking old code; it just
> ignores them.  
>
>   - You can also more easily process old messages with new code by providing
> the appropriate default values.  
> 
>   - The problem of denoting new types is not an issue with XML, but defining
> an extensible set of "signal bytes", as we called them, is.
> 
>   - Including new elements is easier because you're not disrupting a
> position dependent message.
>
> o It is possible to use your messages for a completely different purpose
> because the semantic meaning of the elements is denoted.  Thus, someone who
> only understands a single tag out of an XML document can use the data as
> needed.

Our format shares these features, and we have made extensive use of them.  We
have changed our deployed protocols on the order of *one hundred times* over
the last two years and gracefully grandfathered-out the old protocols without
breaking backwards compatibility.


Now for the brief argument that s-expressions are superior to XML (for
programmatic and hacker-debugging use -- not for humans-editing-documents-in-
a-text-editor use):

1.  s-expressions have a canonical encoding, and schemas built atop them can
easily be defined to have a canonical encoding.  This can be critically
important for security.  Non-canonical formats mean that two messages with are
"the same" to a human or program user can yield different cryptographic hashes.
Perhaps more troubling, canonicalization procedures can, if not done carefully,
result in two messages that are different to a human or program user yielding
the same cryptographic hash!

2.  s-expressions have 8-bit clean payloads so you do not have to traverse your
data and write a new representation of it with escaped sequences in order to
generate an s-expression.  You can simply use memcpy to copy your data into the
s-expression and in fact if your data not going to change (for example, you are
just going to transmit this s-expression over the wire and then forget it) you
can just pass a pointer.  When parsing s-expressions you do not have to
traverse the incoming s-expression and unescape sequences, you can likewise
simply do a buffer copy or pass pointers.

3.  It is easier to implement correct, fast, s-expression parsers than XML
parsers (I have implemented subsets of both).

4.  s-expressions are usually a bit terser than the equivalent XML.  (See [3]
for an example with a more terse schema than the one that we actually use.)


That's all.  I hope that this message was not unwelcome.

Regards,

Zooko

[1] http://theory.lcs.mit.edu/~rivest/sexp.html

[2]

A simple example (from Rivest's internet draft): (7:subject(3:ref5:alice6:mother))

A real world example (a message in Mojo Nation that withdraws a digitally
signed token).  (Actually this isn't precisely the same as what MN sends on the
wire, because 8-bit characters don't go well with e-mail.  So I've replaced the
binary data with random ASCII characters.)

(4:dict(6:string6:header)(4:dict(6:string12:message type)(6:string8:withdraw)(6:string5:nonce)(6:string20:aG9_3K1Ll3zzYGVdybXe)(6:string8:protocol)(6:string12:Mojo v0.9991)(6:string9:recipient)(6:string20:_JpTFwnjuH89zg8QNaQ0))(6:string12:message body)(4:dict(6:string11:mojo header)(4:dict(6:string10:mojo offer)(3:int1:0))(6:string12:mojo message)(4:list(4:dict(6:string41:id of public key for verifying this token)(6:string20:894quMiAlu9SpoWnco7j)(6:string20:token id for signing)(6:string128:GXuQ-lWyWxMyAbsVcPHQ3HwqJZ2v6XUq5DZ4lDqNLZmanujgBRT9aN0lG6huRgVPvZnbs-jOxFf2txEfBIAKDH6iDWJtMWJGixm_nrZMwvf7NtIzZv9JAavzqsk536u-)))))

[3] possible terser schema:

(1:d(1:s6:header)(1:d(1:s12:message type)(1:s8:withdraw)(1:s5:nonce)(1:u20:aG9_3K1Ll3zzYGVdybXe)(1:s8:protocol)(1:s12:Mojo v0.9991)(1:s9:recipient)(1:u20:_JpTFwnjuH89zg8QNaQ0))(1:s12:message body)(1:d(1:s11:mojo header)(1:d(1:s10:mojo offer)(1:i1:0))(1:s12:mojo message)(1:l(1:d(1:s41:id of public key for verifying this token)(1:u20:894quMiAlu9SpoWnco7j)(1:s20:token id for signing)(1:m128:GXuQ-lWyWxMyAbsVcPHQ3HwqJZ2v6XUq5DZ4lDqNLZmanujgBRT9aN0lG6huRgVPvZnbs-jOxFf2txEfBIAKDH6iDWJtMWJGixm_nrZMwvf7NtIzZv9JAavzqsk536u-)))))


From zooko@zooko.com Wed Sep 19 14:36:00 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8JIZxv28055
	for <capidl@eros.cs.jhu.edu>; Wed, 19 Sep 2001 14:36:00 -0400
Received: from imp ([140.184.83.37])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id OAA00912;
	Wed, 19 Sep 2001 14:27:09 -0400
Received: from localhost ([127.0.0.1] helo=zooko.com)
	by imp with esmtp (Exim 3.32 #1 (Debian))
	id 15jm6q-000829-00; Wed, 19 Sep 2001 11:30:08 -0700
cc: "Karp, Alan" <alan_karp@hp.com>, "'Chip Morningstar'" <chip@fudco.COM>,
   markm@caplet.com, capidl@eros-os.ORG, shap@eros-os.ORG, tjclose@yahoo.COM
In-Reply-To: Message from Zooko <zooko@zooko.com> 
   of "Wed, 19 Sep 2001 10:11:44 PDT."
From: Zooko <zooko@zooko.com>
Reply-To: Zooko <zooko@zooko.com>
Date: Wed, 19 Sep 2001 11:30:08 -0700
Message-Id: <E15jm6q-000829-00@imp>
Subject: [capidl] postscript Re: s-expressions vs. XML, from experience (was: Re: [E-Lang] Concerning XML docs)
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

I just wanted to drop a note as an addendum to this rant of mine.  One of the
independent hackers who works on Mojo Nation in his spare time tried to compile
Mojo Nation with Python 2.3 alpha release 3 today, so that he could run Mojo
Nation with IPv6.  It gave an error concerning the XML module.  I haven't
figured out yet if the interface changed or if we just need to use an upgraded
version of the XML module, but it just made me sigh in frustration.  This kind
of thing happens frequently with our XML code, and it speaks against Alan's
first point (and a good one) that using XML encoding means you can use someone
else's library and have less hassle.

Regards,

Zooko


From shap@eros-os.org Wed Sep 19 20:49:03 2001
Received: from mail.eros-os.org (IDENT:root@EROS.CIS.UPENN.EDU [158.130.6.119])
	by eros.cs.jhu.edu (8.11.0/8.11.0) with ESMTP id f8K0mxv29764;
	Wed, 19 Sep 2001 20:48:59 -0400
Received: from robin.mail.pas.earthlink.net (robin.mail.pas.earthlink.net [207.217.120.65])
	by mail.eros-os.org (8.9.3/8.9.3) with ESMTP id UAA00681;
	Wed, 19 Sep 2001 20:40:37 -0400
Received: from vmware (dialup-63.208.223.30.Dial1.Baltimore1.Level3.net [63.208.223.30])
	by robin.mail.pas.earthlink.net (8.11.5/8.9.3) with SMTP id f8K0qiH11401;
	Wed, 19 Sep 2001 17:53:02 -0700 (PDT)
Message-ID: <008901c1416e$87bf3e30$021010ac@vmware>
From: "Jonathan S. Shapiro" <shap@eros-os.org>
To: "Chip Morningstar" <chip@fudco.com>, <e-lang@mail.eros-os.org>
Cc: <capidl@eros-os.org>
References: <200109190109.SAA14777@abulafia.fudco.com>
Subject: Re: [capidl] Re: [E-Lang] Concerning XML docs
Date: Tue, 18 Sep 2001 21:06:55 -0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Sender: capidl-admin@mail.eros-os.org
Errors-To: capidl-admin@mail.eros-os.org
X-BeenThere: capidl@mail.eros-os.org
X-Mailman-Version: 2.0beta5
Precedence: bulk
List-Id:  <capidl.mail.eros-os.org>

> What I don't un