I'll bet you are running out of memory.  This is a heavily recursive
problem.  I ran a version of this problem in SASL (St. Andrews Static
Language, see http://homepage.mac.com/sigfpe/Computing/sasl.html) and it
also, as I recall, stopped on or about iteration 13 with no memory left;
it used a mark-sweep garbage collection library
(http://www.hpl.hp.com/personal/Hans_Boehm/gc/).  The same performance
was seen in both Cygwin and Linux.  Running without GC, it only got to
iteration 9 or so.

Charles Hethcoat

> -----Original Message-----
> From: Bruce & Breeanna Rennie [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, September 07, 2006 11:06 PM
> To: Unicon Group
> Subject: [Unicon-group] Problem arising in windows version of 
> the followingcode
> 
> To all,
> 
> I have written the following test code to determine the 
> Hamming numbers (from a discussion on Lambda the Ultimate)
> 
> procedure scale(n, l)
>       #write("scale", n ,":", *l)
>       #every writes(!l, ":")
>       #read()
>       return (([n * l[1]]) ||| scale (n,( l[2:0] | []))) | [] end
> 
> procedure merge (l1, l2)
>       #write("merge",*l1,":",*l2)
>       #every writes(!l1,":")
>       #every writes(!l2, ":")
>       #read()
>       return ((*l2= 0) & l1) | ( (*l1 = 0) & l2) |
>                  ((x := l1[1]) = ((y :=l2[1])) &  [x] ||| 
> merge ((l1[2:0] | []), (l2[2:0] | []))) |
>                  ((x < y) & [x] ||| merge ((l1[2:0] | []), l2)) |
>                  ([y] ||| merge (l1, (l2[2:0] | []))) end
> 
> procedure main()
>       local i, seq, oldseq
>       seq := [1]
>       #oldseq := copy(seq)
>       every i := 1 to 20 do {
>               seq := [1] ||| merge ( scale(2, seq), 
> merge(scale (3, seq), scale (5,
> seq)))
>               write("iteration ", i , " : length of seq is ", *seq)
>               #seq := seq[1:i^2]
>               every writes(!seq, " : ")
>               read()
>               #oldseq := copy(seq)
>          }
>       every writes (!seq, " ")
> end
> 
> procedure compare(l1, l2)
>       local idiff
>       write("compare : length of l1 is ", *l1 , " and length 
> of l2 is ", *l2)
>       idiff := 1
>       while l1[idiff] = l2[idiff] do idiff +:= 1
>       write(idiff)
>       return idiff-1
> end
>               
> 
> It works fine till it gets to iteration 13. The executable 
> under the windows command prompt fails with sorry windows 
> experiencing an error kind of message.
> 
> Is there any obvious problem with what I am doing?
> 
> Some additional information has been generated by windows 
> about the various exe files in the bin directory as below
> 
> <?xml version="1.0" encoding="UTF-16"?>
> <DATABASE>
> <EXE NAME="hamming.exe" FILTER="GRABMI_FILTER_PRIVACY">
>     <MATCHING_FILE NAME="hamming.exe" SIZE="1949652" 
> CHECKSUM="0x2877432C" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="06/24/2005 09:37:42" 
> UPTO_LINK_DATE="06/24/2005 09:37:42" />
>      <MATCHING_FILE NAME="icont.exe" SIZE="391514" 
> CHECKSUM="0xDD14FFFE" 
> MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x10000" 
> LINK_DATE="06/24/2005 09:34:46" UPTO_LINK_DATE="06/24/2005 
> 09:34:46" />
>      <MATCHING_FILE NAME="iconx.exe" SIZE="1946858" 
> CHECKSUM="0x2877432C" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="06/24/2005 09:37:42" 
> UPTO_LINK_DATE="06/24/2005 09:37:42" />
>      <MATCHING_FILE NAME="ivib.exe" SIZE="3068172" 
> CHECKSUM="0x482DE29B" 
> MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x10000" 
> LINK_DATE="02/08/2005 09:14:57" UPTO_LINK_DATE="02/08/2005 
> 09:14:57" />
>      <MATCHING_FILE NAME="libjpeg.6.dll" SIZE="136000" 
> CHECKSUM="0x77EB3284" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="12/22/2000 22:38:11" 
> UPTO_LINK_DATE="12/22/2000 22:38:11" />
>      <MATCHING_FILE NAME="nticonx.exe" SIZE="402638" 
> CHECKSUM="0xC7FCFF12" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="02/08/2005 09:15:24" 
> UPTO_LINK_DATE="02/08/2005 09:15:24" />
>      <MATCHING_FILE NAME="rtt.exe" SIZE="203580" CHECKSUM="0xB5C23E1" 
> MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x10000" 
> LINK_DATE="06/24/2005 09:34:06" UPTO_LINK_DATE="06/24/2005 
> 09:34:06" />
>      <MATCHING_FILE NAME="udb.exe" SIZE="655307" 
> CHECKSUM="0x482DE29B" 
> MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x10000" 
> LINK_DATE="02/08/2005 09:14:57" UPTO_LINK_DATE="02/08/2005 
> 09:14:57" />
>      <MATCHING_FILE NAME="ui.exe" SIZE="2749997" 
> CHECKSUM="0x2877432C" 
> MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x10000" 
> LINK_DATE="06/24/2005 09:37:42" UPTO_LINK_DATE="06/24/2005 
> 09:37:42" />
>      <MATCHING_FILE NAME="unicon.exe" SIZE="1192354" 
> CHECKSUM="0x482DE29B" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="02/08/2005 09:14:57" 
> UPTO_LINK_DATE="02/08/2005 09:14:57" />
>      <MATCHING_FILE NAME="wicont.exe" SIZE="842581" 
> CHECKSUM="0x589BF94E" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="05/07/2005 07:25:09" 
> UPTO_LINK_DATE="05/07/2005 07:25:09" />
>      <MATCHING_FILE NAME="wiconx.exe" SIZE="2006073" 
> CHECKSUM="0xF5705541" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="06/24/2005 09:08:00" 
> UPTO_LINK_DATE="06/24/2005 09:08:00" />
>      <MATCHING_FILE NAME="wu.exe" SIZE="2180081" 
> CHECKSUM="0xCBCFD48B" 
> MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x10000" 
> LINK_DATE="05/03/2005 11:12:05" UPTO_LINK_DATE="05/03/2005 
> 11:12:05" />
>      <MATCHING_FILE NAME="wunicon.exe" SIZE="2576465" 
> CHECKSUM="0x327A5B07" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" 
> LINKER_VERSION="0x10000" LINK_DATE="06/23/2005 02:21:25" 
> UPTO_LINK_DATE="06/23/2005 02:21:25" />
> </EXE>
> <EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
>      <MATCHING_FILE NAME="kernel32.dll" SIZE="983552" 
> CHECKSUM="0x4CE79457" BIN_FILE_VERSION="5.1.2600.2180" 
> BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" 
> FILE_DESCRIPTION="Windows NT BASE API Client DLL" 
> COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft(r) 
> Windows(r) Operating System" FILE_VERSION="5.1.2600.2180 
> (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="kernel32" 
> INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="(c) Microsoft 
> Corporation. All rights reserved." VERFILEDATEHI="0x0" 
> VERFILEDATELO="0x0" 
> VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" 
> PE_CHECKSUM="0xFF848" LINKER_VERSION="0x50001" 
> UPTO_BIN_FILE_VERSION="5.1.2600.2180" 
> UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" 
> LINK_DATE="08/04/2004 07:56:36" 
> UPTO_LINK_DATE="08/04/2004 07:56:36" VER_LANGUAGE="English (United
> States) [0x409]" />
> </EXE>
> </DATABASE>
> 
> -- 
> regards
> 
> Bruce Rennie
> (God's Own Country Downunder)
> Warragul. Victoria.
> Australia.
> 
> --------------------------------------------------------------
> -----------
> Using Tomcat but need to do more? Need to support web 
> services, security?
> Get stuff done quickly with pre-integrated technology to make 
> your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on 
> Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> _______________________________________________
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
> 

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

Reply via email to