[mercury-users] Problems using mercury within aditi

Holger Krug hkrug at rationalizer.com
Mon Jul 9 22:58:40 AEST 2001


(The current mail is sent to aditi-users and, additionally,
mercury-users, because the activity level on aditi-users seems to be
very low. I ask to excuse for this !)

I'm new to this mailing list. I chose to work with mercury and aditi
after evaluating several logical programming systems. The purpose of
using a logical programming system is the implementation of prototypes
for programming tools.

The mercury language was chosen because of its clear type and mode
system, especially the orthogonality of declarative and imperative
code via the mode system, and the possibility to use functional coding
styles whereever it makes sense. THANKS FOR THIS FINE LANGUAGE !

Using aditi is a necessity for my prototypes, because I have data
which should run through the WAM. The other way would be to use a
mercury interpreter within mercury (like
mercury/samples/interpreter.m) and use mercury's library data
structures for data management, which is what I do not like to do, or
to use mercury's in-memory declarative database, which still has to be
written.

But, and that is bad, I CANNOT USE ADITI AND I DON'T KNOW WHY.

Some of aditi's build, install and test routines are made specially
for the situation at Melbourne University, but after several days of
work I managed to overcome these problems. Now aditi compiles, tests
and installs itself in a fine way. ALL THE TESTS SUCCEED !

I even can work with dbsh and access and query the database (with some
restrictions, e.g. the add command works only when reading typles from
a file not with direct data input). But as soon as I start to use
mercury queries the problems arise. To demonstrate what happens I include
a file showing what happens when I run the crime demo.

I WOULD BE VERY APPRECIATED if someone could give me some hints and
help, how to proceed further. I really have to come to an end and
start to implement my prototype.

Thank you in advance !


-- 
Holger Krug
hkrug at rationalizer.com
The Rationalizer Intelligent Software AG
Rudower Chaussee 29, 12489 Berlin, Germany
-------------- next part --------------
THE ENVIRONMENT
================

$ env | grep ADITI
ADITI_EDITOR=/usr/bin/emacs
ADITI_HOME=/usr/local/aditi-2.0.0
$ env | egrep '^PATH'
PATH=/usr/local/aditi-2.0.0/bin:/usr/local/mercury-0.10.1/bin:/usr/local/jdk1.3.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11


THE CONFIGURATION FILE
======================

$ pwd
/usr/local/aditi-2.0.0/lib
$ cat config-dev1 | egrep '^[^#]' 
FILEPREFIX		${ADITI_HOME}/data/${ADITI_HOST}/DB/
LOGFILE			Log
ERRLOGFILE		${ADITI_HOME}/lib/${ADITI_HOST}/error_log
MAXROSIOPERATIONS	4
BUFPAGES		2048
HASHSLOTS		2048
FLUSHDAEMON		5 0 32
MAXFILES		32
MAXIOREQUESTS		32
MAXCONSECUTIVESTARTS	10
LOGFILESIZE		4096
MAXNUMTUPLELRB		10
MAXNUMPAGELRB		20
LOCKSLOTS		1024
DEADLOCKDELAYSECONDS	0
DEADLOCKDELAYMICRO	200000
DEADLOCKINTERVALSECONDS	0
DEADLOCKINTERVALMICRO	200000
SHMTYPE			MMAP
ARENA			33554432	${ADITI_HOME}/data/${ADITI_HOST}/shared_memory
MPS_SPACE		16348
SGI_SPINLOCKFILE	${ADITI_HOME}/data/${ADITI_HOST}/sgi_spinlocks
SGI_MAXLOCKUSERS	32
SGI_NUMLOCKARENAS	8
IOPROCS			1
PAGESIZE		8192
BUFFERDUMPFILE		${ADITI_HOME}/data/${ADITI_HOST}/buffer_dump



RUNNING THE CRIMES DEMO
=======================

$ pwd
/usr/local/aditi-2.0.0
$ sbin/start_server createdb
Starting Aditi server...
$ ps ax
...
10380 pts/9    S      0:00 aditi_serv-i686 -c /usr/local/aditi-2.0.0/lib/config-10382 pts/9    S      0:00 aditi_serv-i686 -c /usr/local/aditi-2.0.0/lib/config-10383 pts/9    S      0:00 aditi_serv-i686 -c /usr/local/aditi-2.0.0/lib/config-10385 ?        S      0:00 aditi_serv-i686 -c /usr/local/aditi-2.0.0/lib/config-
...
$ cd demos/crime/
$ ls
Mmakefile	US.cities-schema  cities.m	      crime.m
README		US.crimes-data	  crime-queries.dbsh  crimes.m
US.cities-data	US.crimes-schema  crime-setup.dbsh    types.m
$ dbsh -v
dbsh   v0.7

dbsh> connect dev1
[No connection]
[Attempting to contact dev1]
[Connected to Aditi on dev1 via tcp]
[connected to Aditi server on dev1 via tcp]
dbsh> login aditi
Password:
[User aditi logged on to Aditi server on dev1]
[user aditi logged in at Aditi server on dev1]
dbsh> showparam
timeout	0
bufsize	1000
show_id	0
module	NULL
user	aditi
host	dev1
status	running
shutdown	0

Users:
slot #0  user <aditi>  at <10.1.11.101>  login <09-Jul-2001 13:42:29>
dbsh> perm
No text
dbsh> crime-setup.dbsh 
[source crime-setup.dbsh]
mmc --generate-dependencies --grade asm_fast.gc        -I /usr/local/aditi-2.0.0/lib/mercury/ints crime
mmc --make-short-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints cities.m
mmc --make-short-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints crimes.m
mmc --make-short-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints types.mmmc --make-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints crime.m
mmc --make-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints types.m
rm -f cities.rlo
mmc --compile-to-c --grade asm_fast.gc        -I /usr/local/aditi-2.0.0/lib/mercury/ints --aditi-only cities.m > cities.err 2>&1
mmc --make-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints cities.m
mmc --make-interface    -I /usr/local/aditi-2.0.0/lib/mercury/ints crimes.m
rm -f crime.rlo
mmc --compile-to-c --grade asm_fast.gc        -I /usr/local/aditi-2.0.0/lib/mercury/ints --aditi-only crime.m > crime.err 2>&1
rm -f crimes.rlo
mmc --compile-to-c --grade asm_fast.gc        -I /usr/local/aditi-2.0.0/lib/mercury/ints --aditi-only crimes.m > crimes.err 2>&1
rm -f types.rlo
mmc --compile-to-c --grade asm_fast.gc        -I /usr/local/aditi-2.0.0/lib/mercury/ints --aditi-only types.m > types.err 2>&1
[451 bytes read from US.cities-schema]
[16798 bytes read from US.cities-data]
[215 bytes read from US.crimes-schema]
[31540 bytes read from US.crimes-data]
[DONE source crime-setup.dbsh]
dbsh> perm
"aditi"	"cities"	"cities__14"	"(:I,:I,:I,:I,:S,:S,:I,:I,:I,:D,:I,:I,:I)"
"aditi"	"crimes"	"crimes__14"	"(:S,:S,:I,:I,:I,:I,:I,:I,:I,:I,:I,:I,:I)"
dbsh> read cities/cities__14
36	999	2505	51000	"New York"	"NY"	7322564	7333253	10689	
0.1	1	1	149
6	999	1630	44000	"Los Angeles"	"CA"	3485557	3448613	-36944	
-1.1	2	2	170
17	999	1051	14000	"Chicago"	"IL"	2783726	2731743	-51983	
-1.9	3	3	179
48	999	1975	35000	"Houston"	"TX"	1630864	1702086	71222	
4.4	4	4	82
42	999	7180	60000	"Philadelphia"	"PA"	1585577	1524249	-61328	
-3.9	5	5	194
6	999	2475	66000	"San Diego"	"CA"	1110623	1151977	41354	
3.7	6	6	93
4	999	260	55000	"Phoenix"	"AZ"	984309	1048949	64640	
6.6	9	7	60
48	999	1085	19000	"Dallas"	"TX"	1007618	1022830	15212	
1.5	8	8	127
48	999	3745	65000	"San Antonio"	"TX"	935393	998905	63512	
6.8	10	9	55
26	999	680	22000	"Detroit"	"MI"	1027974	992038	-35936	
-3.5	7	10	191
6	999	2510	68000	"San Jose"	"CA"	782224	816884	34660	
4.4	11	11	81
--more--
dbsh> # now follows the content of crime-queries.dbsh, line by line
dbsh> set query_time_limit 600
dbsh> set rpc_limit 600
dbsh> set ping_timeout 600
dbsh> ? cities:cities(DB, _StateCode, _CountyCode, _PlaceCode, _FIPSCode, "New York", State, Pop1990, Pop1994Est, PopChange, PctPopChange, PopRank1990, PopRank1994, PctPopChangeRank).
[aditi_compile: 1 sec elapsed; 790 msec cpu (560 user+230 system)]
[aditi_asm: 50 msec cpu (10 user+40 system)]
[15716 bytes read from cities.rlo]
[995 bytes read from query10435.rlo]
[473 bytes read from start10435.rlo]
[running aditi/querystart_10435/start/0]
[query results saved to aditi/querystart_10435/out0]
(State:string,Pop1990:int,Pop1994Est:int,PopChange:int,PctPopChange:float,PopRank1990:int,PopRank1994:int,PctPopChangeRank:int):

"NY"	7322564	7333253	10689	0.1	1	1	149
dbsh> ? cities:city_size(DB, "New York", State, Year, Population).
[aditi_compile: 1 sec elapsed; 790 msec cpu (500 user+290 system)]
[aditi_asm: 60 msec cpu (30 user+30 system)]
[15716 bytes read from cities.rlo]
[1102 bytes read from query10435.rlo]
[458 bytes read from start10435.rlo]
[running aditi/querystart_10435/start/0]
?General failure (-7)
dbsh> perm
"aditi"	"cities"	"cities__14"	"(:I,:I,:I,:I,:S,:S,:I,:I,:I,:D,:I,:I,:I)"
"aditi"	"crimes"	"crimes__14"	"(:S,:S,:I,:I,:I,:I,:I,:I,:I,:I,:I,:I,:I)"
"aditi"	"querystart_10435"	"out0"	"(:S,:I,:I,:I,:D,:I,:I,:I)"
"aditi"	"querystart_10435"	"null"	"()"
dbsh> perm
"aditi"	"cities"	"cities__14"	"(:I,:I,:I,:I,:S,:S,:I,:I,:I,:D,:I,:I,:I)"
"aditi"	"crimes"	"crimes__14"	"(:S,:S,:I,:I,:I,:I,:I,:I,:I,:I,:I,:I,:I)"
"aditi"	"querystart_10435"	"out0"	"(:S,:I,:I,:I,:D,:I,:I,:I)"
"aditi"	"querystart_10435"	"null"	"()"
dbsh> read querystart_10435/out0
"NY"	7322564	7333253	10689	0.1	1	1	149
dbsh> read querystart_10435/null

dbsh> destroy querystart_10435/null
?An operation was aborted (-17)
dbsh> destroy querystart_10435/null
?An operation was aborted (-17)
dbsh> destroy querystart_10435/out0
?An operation was aborted (-17)
dbsh> perm
?Problem during RPC (-12)
?Aditi RPC error.
?re_status = RPC: Kann nicht empfangen (4)
?re_errno = Die Verbindung wurde vom Kommunikationspartner zurückgesetzt (104)
dbsh> exit
$ ps ax | grep aditi
10691 pts/4    S      0:00 grep aditi
$ # SERVER CRASH


More information about the users mailing list