Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uflorida!haven!umd5!jonnyg From: jonnyg@umd5.umd.edu (Jon Greenblatt) Newsgroups: comp.windows.ms Subject: Has anyone seen this problem..... Message-ID: <4517@umd5.umd.edu> Date: 12 Feb 89 21:53:58 GMT Reply-To: jonnyg@umd5.umd.edu (Jon Greenblatt) Distribution: usa Organization: University of Maryland, College Park Lines: 42 I am stumped! I am porting a lisp interpreter (xlisp2.0) to MS Windows. I am using an internal memory allocation routine that breaks memory off of large blocks of GLOBAL FIXED memory. The program is compiled under the LARGE model and the data segment is FIXED and NOT SHARED. Once a global memory block is allocated I lock it and never unlock it! The code segment is SHARED MOVEABLE DISCARDABLE. The program EXE is about 180k and takes up 100k of windows memory when loaded, leaving me with 300k memory free. Running small lisp programs it works ok. Running large ones is where the problem is. When I lock about 100k of global fixed memory the environment becomes unstable. I keep all memory locked and fixed. I've put my memory allocator through a rogorous debug and found it to be stable. One other problem I have noticed is that I can load more than one instance of the interpreter but as soon as I use one, the other becomes corrupted. The data segment is 0x28864 bytes, stack checking is on. The lisp dynamic memory is stored in about 17 blocks of global data the biggest of which is 0x9024 bytes. Heapwalker reports the global blocks to be of type TASK. I have the equivalent code running on a unix machine under X Windows, using the same memory allocator and it never bombs under any amount bashing. BTW memory is never freed once allocated, memory management is internal so things just get bigger when they have to. I do all intersegment pointer arithmetic my self in order to rule out the possibily of a compiler error while doing this. If anyone has seen this problem before under these severe conditions or knows of a possilbe fix, please let me know. Xlisp2.0 is supposed to be available from UUNET but there seems to be a delay getting it there. I can only give out my copy to those interested in becoming a pre alpha site for my MS Windows port. If you would like to study the code under MS Windows and want to become a pre-alpha test site, please send me mail. Xlisp 2.0 is public domain free ware and I will give a test copy of the MS Windows code to anyone who wishes to help me with this problem. The final version will become public domain and will be distributed through David Betz, the author of xlisp. BTW xlisp2.0 is much more impressive and writen completely differently than the xlisp1.6 version. JonnyG. (jonnyg@rover.umd.edu) (jonnyg@umd5.umd.edu) (jonnyg%rover.umd.edu@uunet.uu.net)