Newsgroups: comp.lang.lisp,comp.lang.lisp.franz
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!newsfeed.pitt.edu!uunet!in2.uu.net!franz.com!franz!cox
From: cox@Franz.COM (Charles A. Cox)
Subject: Re: [Q]: Acl2.0 and Win95 ???
In-Reply-To: bambi@informatik.uni-wuerzburg.de's message of Mon, 31 Jul 1995 09:42:57 +0200
Message-ID: <COX.95Jul31122650@crisp.Franz.COM>
Sender: news@franz.com
Nntp-Posting-Host: crisp
Organization: Franz Inc., Berkeley, CA
References: <bambi-3107950942570001@wi6a66.informatik.uni-wuerzburg.de>
Distribution: inet
Date: Mon, 31 Jul 1995 20:26:50 GMT
Lines: 56
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:18493 comp.lang.lisp.franz:562

In article <bambi-3107950942570001@wi6a66.informatik.uni-wuerzburg.de> bambi@informatik.uni-wuerzburg.de (Stefan K. Bamberger) writes:

> These days one of our users told us that after installing Win95 beta M8 on
> his computer, our application won't work any more.
> The application crashes with the error: "Hard error: stack overflow"
> 
> In the FAQ there is an item concerning Win95 with the hint to define the
> function pc::running-nt-p returning T.
> Are there any developers who have already experience with win95? Will that
> trick do the job?

  Allegro CL 2.0 for Windows was released last year before Windows 95,
but, as described in the aclwin FAQ, aclwin 2.0 can be made to work on
Windows 95 by regenerating the image with the redefined function
pc::running-nt-p (see the faq ftp://ftp.uu.net/vendor/franz/acl4w-faq
for details).

  Generally, once you apply this fix to aclwin, lisp works just fine
under Windows 95.  If you're having problems where an application
works under Windows 3.1 and not under Windows 95, check if you're
using the foreign function interface to call 16-bit DLLs.  16-bit DLLs
are only supported under Windows 3.1.

  Finally, Allegro CL 3.0 for Windows (due out in about 2 months) will
be released for Windows 95 as well as Windows 3.1 and Windows NT.  In
it will be a function win32p which returns 4 values: (1) whether
running 32-bit Windows, (2) whether running NT, (3) the Windows major
version number, and (4) the Windows minor version number.  The source
to that function, which should work in aclwin 2.0, is below.  See the
Windows API documentation for more information regarding GetVersion().

(in-package :pc)

(export 'win32p)

(defun win32p ()
   "Returns 4 values: (1) whether running 32-bit Windows, (2) whether
running NT, (3) the windows major version number, and (4) the windows
minor version number"
   (let* ((dwVersion (GetVersion))
          (ntp (eq 0 (logand 32768 (hiword dwVersion))))
          (version (loword dwVersion))
          (major-version (lobyte version)))
      (values
         ;; High bit is set when running Win32s,
         ;; but not when running NT
         (or ntp (i<= 4 major-version))
         ntp major-version (hibyte version))))

	Charley
--
---
Charles A. Cox, Franz Inc.        1995 University Avenue, Suite 275
Internet: cox@franz.com           Berkeley, CA  94704
uucp:     uunet!franz!cox         Phone: (510) 548-3600; FAX: (510) 548-8253
                                  WWW: http://www.franz.com/
