HDTenEightyP/NetNews huggingface dataset:
From: straz@cambridge.apple.com (Steve Strassmann)
Newsgroups: comp.lang.lisp.mcl
Subject: copyright & public domain
Date: 11 Jan 93 21:46:07 GMT

>Date: 07 Jan 1993 08:47:00 -0500
>From: bright@ENH.NIST.GOV
>Subject: copyright & public domain
>To: info-mcl@cambridge.apple.com
>Content-Transfer-Encoding: 7BIT
>
>How does one copyright code (for contribution)?  Is it really necessary?  I
>work for the government, and so cannot copyright research papers, for
>example.
>
>How do you make applications for Public Domain use?  Will disabling the
>compiler do?  What fees does Apple require?

In general, people include a phrase such as the following with code
submitted to public ftp sites:

 "(c) Copyright 1993 by Alyssa P. Hacker, All rights reserved
 Permission is granted for use, modification, and redistribution of 
 this code as long as this copyright notice is preserved."

This wording is just a sample, and is not from any official legal
reference. The point is just so people remember to give you credit
for writing it, but lets them use, modify, and redistribute it without
any hassles.

Some people prefer to add other restrictions, this is a matter 
of personal choice and these can be arbitrarily complex. In order for us
to legally distribute your code on our ftp site or on future MCL cd-roms,
your notice has to be written in such a way as to let us do so. Explicitly
permitting something is always nicer than implicitly 

Copyrighting is not necessary if you are not concerned about others
using your code without your permission or in ways that you cannot control.

If you don't say anything, code (as well as fiction or non-fiction)
is presumed copyrighted by the author. I believe nobody has yet sued 
someone over something like that. If you want to make life easier for
everyone, just say explicitly "This code is in the public domain" or 
whatever you intend. That way nobody will have to guess.

Apple places no restrictions if you choose to distribute .lisp (source)
files or .fasl (binary) files. 

If you choose to distribute a double-clickable stand-alone app built with 
MCL, you must remove the compiler by using the :excise-compiler T option 
to save-application, and pay a one-time fee. This fee is $100 for commercial 
apps and $10 for non-commercial ones, and is good for an unlimited number
of copies of your app. If you want to include the compiler with an app that 
you distribute, contact us and we'll negotiate something. 

For more information, contact Apple Software Licensing, 408-974-4667, or
SW.LICENSE@applelink.apple.com.
Newsgroups: comp.lang.lisp.mcl
From: stevens@cs.colorado.edu (Curt Stevens)
Subject: Re: MCL support for MOP
Followup-To: comp.lang.lisp.mcl
Organization: University of Colorado at Boulder
Date: Sat, 9 Jan 1993 16:20:22 GMT


> There are a couple of reasons that MCL 2.0 is bigger than 1.3.
> The pretty printer and inspector are included in 2.0, they were
> provided as fasl files in 1.3. 2.0's CLOS generic functions cost a
> little more space than 1.3's Object Lisp obfuns. We'll probably be
> looking into a few ways to reduce the size of MCL (though probably
> not for 2.1). Some ideas are:
> 
> 1) A tree shaker to automagically remove parts of MCL that are
>    not used by your application.
> 
> Feedback please. Do you need these facilities? Other ideas?
> The MCL development team has decided that MCL's size is not the
> most important thing we have to work on right now, but it's
> still important to us.

Yeah!!, I've been wanting for something like this since the Coral Common
Lisp days. I write some fairly tiny utilities that use almost none of the
available MCL functionality and I would like them to be much smaller.

========================================================================
|Curt Stevens   (303) 449-6280 | / |      stevens@cs.colorado.edu      |
|Univ. of Colorado, Boulder    |o o|                                   |
|Computer Sci. Dept. ECOT 7-7  | | |-----------------------------------|
|Campus Box 430                |\_/| I contradict myself? Very well, I |
|Boulder, Colorado 80309  USA  |   | contradict myself. - Walt Whitman |
========================================================================
From: hall@allegra.att.com (Bob Hall)
Newsgroups: comp.lang.lisp.mcl
Subject: Re2: MCL support for MOP
Date: 11 Jan 93 21:55:56 GMT


    From: brent@ssd.csd.harris.com (Brent Benson)
    Date: 11 Jan 93 15:32:00 GMT

    I'm not convinced that it is hard to tree shake code that does not
    contain calls to eval.  I would appreciate it if someone could tell me
    about other difficulties.

;There's the general problem of calls to the various forms of READ
; (lots of data files in the world are LOADed (involving calls to READ))
;and higher-order operators like funcall
;and the behavior of fboundp

  (funcall (read) (read))

;or

  (loop ;the proverbial British Museum Monkeys program
    (let ((rand (intern (generate-random-string))))
      (when (symbol-function rand)
        (when (catch-and-ignore-all-errors
                (funcall rand))
          (format t "Found a nonNIL zero-arg function: ~s" rand)))))

;How about this macro?

(defmacro mycall (x y) `(,x ,y))

;Or even

(fboundp 'nreconc) ;which presumably returns a different value if nreconc
                   ;is "shaken" out of the image.
(fboundp (read))

-- Bob
From: maulsby@kauri.cs.waikato.ac.nz (David Maulsby)
Newsgroups: comp.lang.lisp.mcl
Subject: fred style vectors
Date: 5 Jan 93 22:15:11 GMT


Style vectors summarize all the font/style changes across a range of text.
I'd like to get at this information but I find no routines for decoding
them, nor documentation on their format.

Any pointers would be appreciated!

thanks
Dave Maulsby
From: UK0392@AppleLink.Apple.COM (EHN & DIJ Oakley,GB,IDV)
Newsgroups: comp.lang.lisp.mcl
Subject: Re2: MCL support for MOP
Date: 8 Jan 93 23:16:00 GMT

Bill & friends,
 
>We'll probably be looking into a few ways to reduce the size of MCL (though
>probably not for 2.1).
 
1) A tree shaker - could be neat, but sounds like a lot of effort given the
sneaky ways that fruit can be accessed.
 
2) Make the development environment be optional - I have used languages like
ProIcon which come with a 'runtime' version for distribution, and must admit
that I rather like them.  It also gives the development team scope for
additional optimisations within the runtime.  It gets my vote.
 
3) One or more shared libraries - technologically attractive, but probably the
clumsiest when it comes to distributing apps to ordinary users.  We have enough
trouble with the INIT required for the dongles that we have to use!
 
Overriding these, to me at least, is the eventual availability of Dylan.  If
the policy stated in the book is set - that MCL will remain a full CL
implementation - and a lean, mean commercially-viable Dylan is released for the
Mac, then I for one would be very happy to use MCL for its strengths, and Dylan
for commercial work (sometimes exploring and doing initial development in MCL,
and finishing off in Dylan).  I think that could take a lot of emphasis off
MCL's size and memory requirements, which would fit with
>though probably not for 2.1
too?
 
Howard.
From: jbk@world.std.com (Jeffrey B Kane)
Newsgroups: comp.lang.lisp.mcl
Subject: Calling #_Date2Secs
Date: 10 Jan 93 17:32:00 GMT


I know I must be doing something obviously wrong here, but I
can't figure out what it is.  When I execute the following:


(rlet ((the-date :DateTimeRec
                     :year 1993
                     :month 1
                     :day 8)
       (the-other-date :DateTimeRec
                     :year 0
                     :month 0
                     :day 0)
         (the-time :long 0))
    (format t "~%the-time is a ~A~%" (type-of the-time))
    (format t  "the-date is a ~A~%" (type-of the-date))
    (format t "~%Getting Date: ~A/~A/~A~%" (rref the-date :DateTimeRec.month)
            (rref the-date :DateTimeRec.day)
            (rref the-date :DateTimeRec.year))

    (#_Date2Secs the-date the-time)     ; <- TRAP

    (format t "~%Got ~A from #_Date2Secs" (%get-long the-time))

    (#_Secs2Date (%get-long the-time) the-other-date) ;  <- TRAP

    (format t "~%Which is ~A/~A/~A~%" (rref the-other-date :DateTimeRec.month)
            (rref the-other-date :DateTimeRec.day)
            (rref the-other-date :DateTimeRec.year))
    (values))



I get the error:

> Error: value -1482696768 is not of the expected type MACPTR.
> While executing: #<Anonymous Function #xB4B766>
> Type Command-. to abort.


Now (as proven by the two print statements) both of these are being
passed as MACPTRs as I would expect.  I guess the trick is that
_Date2Secs wants my DateTimeRec in some other form.  Standard C
header files list it as a ptr, i.e.

      Date2Secs(&dtrp, &secs);

so I'm a bit confused as to what is going on.  Should the definition
in the interface file:

(deftrap _date2secs ((d :datetimerec) (secs (:pointer :signed-long)))
   nil
  (:no-trap
   (%put-ptr secs (ccl:register-trap #xa9C7 :a0 d :d0))))

be changed to:

(deftrap _date2secs ((d :datetimerec) (secs (:pointer :signed-long)))
   nil
  (:no-trap
    ; ??Change to %put-long??
   (%put-long secs (ccl:register-trap #xa9C7 :a0 d :d0))))

             Jeffrey

(PS I also noticed the seconds are defined as unsigned-longs and signed-longs.
These should probably be made consistant throughout the header files)


======================================
Jeffrey Kane, MD
Kane Biomedical Systems
Boston, MA

Internet    jbk@world.std.com
Compuserve  74206,640
AppleLink   D0738

[Don't take life too seriously... it's not like anyone gets out of it alive.]
From: gwer1@cislabs.pitt.edu (Gerhard Werner)
Newsgroups: comp.lang.lisp.mcl
Subject: screen dump
Date: 4 Jan 93 15:13:59 GMT

In the old Allegro Lisp running in operating system 6 versions, one
could freeze a picture of the screen for printing, using a program called
screendump. How can one copy a picture of the screen running MCL in
system 7 ?
Gerhard Werner 
Newsgroups: comp.lang.lisp.mcl
From: engber@ils.nwu.edu (Mike Engber)
Subject: Re: color selected text
Organization: The Institute for the Learning Sciences
Distribution: usa
Date: Thu, 7 Jan 1993 15:01:12 GMT

In article <58350@dime.cs.umass.edu> feng@.cs.umass.edu () writes:
>
>text-dialog-item. I want to color or change the font of the selected 
>text in the editable-text-dialog-item. The build-in method set-part-

In oodles-of-utils (avail from the cambridge archives) there is
a class te-view that will let you do what you want. You can change
the font, size, style, & color of arbitrary selections within it.

Unfortunately, there are problems if you try to use more than one
te-view in the same window. The cause isn't obvious (to me) and I
haven't had time to really dig in and find it. I suspect it has to
do with the protocals(undocumented) for switching from one current
key handle to another. Or maybe QD has some wierdness if there is
more than one TERecord for a port.

-ME
From: mark@bilpin.co.uk (Mark Allerton)
Newsgroups: comp.lang.lisp.mcl
Subject: Re: MCL support for MOP
Date: 12 Jan 93 13:40:37 GMT
Organization: UK Mac DTS/SRL Data
X-Useragent: Nuntius v1.1

In article <1993Jan9.091155.12279@gmd.de> Tom Gordon, thomas@gmd.de
writes:
>Are shared libraries supported by the Mac OS?  
>

On the ETO #8 & #9 disks, there is something new called the 
"Shared Library Manager" - which is basically a dynamic linking
mechanism for the Mac OS. It's pretty neat, and has good support
for C++ classes. I don't know how hard it would be to put MCL
code into a shared library, but I suspect that it's possible.

Mark Allerton
SRL Data, but I speak for myself.
From: bill@cambridge.apple.com (Bill St. Clair)
Newsgroups: comp.lang.lisp.mcl
Subject: Re: fred style vectors
Date: 6 Jan 93 17:20:57 GMT

At 10:15 1/6/93 +1200, David Maulsby wrote:
>Style vectors summarize all the font/style changes across a range of text.
>I'd like to get at this information but I find no routines for decoding
>them, nor documentation on their format.
>
>Any pointers would be appreciated!

;Format of style vectors:
;one word has the number of different fonts used
;each font is four bytes 2 bytes font id, one byte size, one byte style
;each font change has four bytes, 1 byte font index, 3 bytes offset

? (setq *print-base* 16.)
10
? (buffer-get-style (fred-buffer (front-window)) 0 t)
#(2 4 900 4 901 100 0 200 33 100 41 200 6B ...)
? (type-of *)
(SIMPLE-ARRAY (SIGNED-BYTE 10) (63))
? 

    2  Number of fonts
    4  Font ID for font index 1: "Monaco"
#x900  9 point, :plain
    4  Font ID for font index 2: "Monaco"
#x901  9 point, :bold
#x100  Font index 1, high byte of offset = 0
    0  low word of offset = 0
#x200  Font index 2, high byte of offset = 0
#x033  low word of offset = #x33
From: bright@ENH.NIST.GOV
Newsgroups: comp.lang.lisp.mcl
Subject: copyright & public domain
Date: 7 Jan 93 13:47:00 GMT

How does one copyright code (for contribution)?  Is it really necessary?  I
work for the government, and so cannot copyright research papers, for
example.

How do you make applications for Public Domain use?  Will disabling the
compiler do?  What fees does Apple require?

Thank you
--Dave
David S. Bright                        bright@enh.nist.gov  
Microanalysis Research Group                                   
National Institute of Standards & Technology (NIST, formerly NBS)
Gaithersburg, MD 20899                                           
USA
301-975-3911
From: sharp@newton.apple.com
Newsgroups: comp.lang.lisp.mcl
Subject: update events from tight loops?
Date: 8 Jan 93 03:04:22 GMT

Hiya,

I am creating a view item that increments or decrements a number when a
button is clicked. I would like the button (inc and dec) to behave such
that a click inc/decs by one, and holding the button continuously inc/decs
(at some rate).

I can get the behaviour, but the view does not update. The key part is the
looping structure below:

(defmethod view-click-event-handler ((self increment-button) where)
  (declare (ignore where))
  (let ((to-view (if (message-view self)
                   (message-view self)
                   (view-container self))))
    (when to-view
      (increment to-view)
      (let ((start (rref *current-event* :EventRecord.when)))
        ;; key bit
        (loop
          (unless (mouse-down-p)
            (return))
          (when (= (mod (- (#_TickCount) start) 20))
            (increment to-view)
            (WHAT GOES HERE????)))))))))

The WHAT GOES HERE? is where I need something that will cause LISP to allow
invalidated views to update themselves.

Any suggestions?

maurice
-------------------------------------------------------------------------
Maurice Sharp             I #include <std_disclaimer.c>
Apple Computer Inc.       |"Work for?! I don't work *for* anybody.
Intern at Large           | I'm just having fun." -- The Doctor (#4)
From: chris@starbase.MITRE.ORG (Chris Elsaesser)
Newsgroups: comp.lang.lisp.mcl
Subject: CLIM vendor for MCL
Date: 11 Jan 93 13:26:54 GMT


Someone tell me the vendor (name, address) and price of CLIM for MCL?

thanks in advance,

chris elsaeser
AI Center
MITRE Corp.
McLean,VA 22102
From: bright@ENH.NIST.GOV
Newsgroups: comp.lang.lisp.mcl
Subject: real to rational
Date: 7 Jan 93 13:46:57 GMT

Does anyone have an algorithm that returns a rational approximation for a
real number?

Many years ago, I saw a very simple iterative algorithm that ran on a HP
desktop calculator.  For example, with an input of pi, the first iteration
might have given a numerator of 22 and a denominator of 7.  The next
iteration might give 157/50, etc.  Each iteration gave a more accurate
approximation of the real, with larger and larger numerators and
denominators.  The approximations were better than just chopping off
digits:  3/1, 31/10, 314/100  etc.

My use for the algorithm would be to avoid floats in repetitive
calculations.  For coordinate transformations, for example, it is
convenient to calculate the rotation matrix using trig functions.  But
then, I would like to convert the results to rationals (with the numerator
and denominator separated) so that many points can be scaled and plotted
quickly using integer arithmetic. {A good example of the integer arithmetic
is the muldiv function (a*b/c) in thermometer.lisp, MCL2 examples folder. -
Thanks to Bill St. Clair.}

Thanks 
--Dave
David S. Bright                        bright@enh.nist.gov  
Microanalysis Research Group                                   
National Institute of Standards & Technology (NIST, formerly NBS)
Gaithersburg, MD 20899                                           
USA
301-975-3911
From: UK0392@AppleLink.Apple.COM (EHN & DIJ Oakley,GB,IDV)
Newsgroups: comp.lang.lisp.mcl
Subject: Re: Standard object library in
Date: 12 Jan 93 19:47:00 GMT

lafourca@imag.fr (Mathieu Lafourcade) asks:
 
>And what about the Application Framework project we heard
>about some time ago ?
 
We are still here (well, I am at least!), and pottering away at this rather
more slowly than I had hoped.  We have had two problems - (1) a coherent means
of communicating between AppleLink and Internet folk (which Kent Sandvik is
hoping to sort out real soon now), and (2) some delays in firing up the OODL
SIG as a whole.
 
However, I for one have been pottering away - a little code-thinking with Jeff
Alger (who has been very busy with his Solution Based Modelling work), and some
of my own explorations of AppleEvents.  Has anyone else any progress to report?
 
Howard.
From: firby@cs.uchicago.edu (Jim Firby)
Newsgroups: comp.lang.lisp.mcl
Subject: Re: Rocket 33 and MCL
Date: 5 Jan 93 15:51:47 GMT
Article-I.D.: midway.1993Jan5.155147.19574
Organization: Department of Computer Science, University of Chicago

I have a Rocket 33 too and here are my experiences with it and MCL.

With the Rocket 33 installed in a Mac II, MCL won't run at all.
Everything else works, but not MCL.

With the Rocket 33 installed in a Mac IIci, MCL run okay.  However, we
have had significant problems using the serial ports and TCP streams
in MCL under this configuration.  When reading from such streams MCL
mysteriously hangs and the machine requires rebooting.  We have no
such problems with the same code running without the Rocket.

Also, a known problem (specified in the Rocket documentation) is that
sound doesn't work correctly from any application running on the
Rocket.

The Rocket is a fine product and sure makes my Mac II faster.
However, be aware before trying to upgrade your MCL applications.

Jim
Newsgroups: comp.lang.lisp.mcl
From: poeck@informatik.uni-wuerzburg.de (karsten poeck)
Subject: call-next-method
Followup-To: comp.lang.clos
Organization: university of wuerzburg
Date: Tue, 12 Jan 1993 10:43:58 GMT

Is it really correct if a compiler warns in the following code

(defclass test ()
  ()
  )

(defmethod testmethod ((ich test) foo)
  (print foo))

(defclass test-1 (test)
  ())

(defmethod testmethod ((ich test-1) foo)
  (call-next-method))

(testmethod (make-instance 'test-1) 4)

with 
;Compiler warnings :
;   Unused lexical variable Foo, in Testmethod.

since foo is actually used in testmethod ((ich test) foo)
because of the call-next-method?

My problem is that Macintosh Common Lisp 2.0 warns but
Allegro Cl/PC 1.0 does not and I have to exchange code
between the two platforms. Even worse, if I change
 testmethod ((ich test-1) foo) to

(defmethod testmethod ((ich test-1) foo)
  (declare (ignore foo))
  (call-next-method))

Macintosh Common Lisp 2.0 is satisfied but Allegro Cl/PC 1.0
complains that foo is actually used and not ignored, so I have to write

(defmethod testmethod ((ich test-1) foo)
  #+:ccl-2 (declare (ignore foo))
  (call-next-method))

what is quite annoying, since this code is really not platform-dependent

Karsten

Karsten Poeck
Universitaet  Wuerzburg
Lehrstuhl fuer Informatik VI
From: kab (Kim Barrett)
Newsgroups: comp.lang.lisp.mcl
Subject: Re: Correct to  ignore params to :around methods?
Date: 10 Jan 93 00:59:17 GMT

> I use :around methods to bind special variables and then
> call call-next-method with no parameters.
> 
> This works, but causes compiler warnings for each non-
> specialized parameter.
> 
> I can get rid of the warnings by declaring to ignore 
> the parameters, but I feel uncomfortable doing that since 
> the parameters are in fact "used" by the method called 
> by call-next-method. Ignoring them works, but would it 
> work if my declaration were trusted?
> 
> What is the correct way to handle this? 
> Thanks for any assistance.

Declaring the variables "ignore" is correct, since you really aren't using 
those parameters.  You are instead "using" a conceptual hidden parameter 
containing all of the values received by the method.  This is one of those 
cases where the distinction between argument values and parameter variables is 
important and should not be conflated.
Newsgroups: comp.lang.lisp.mcl
From: thomas@gmd.de (Tom Gordon, I3.KI 2665)
Subject: Re: MCL support for MOP
Reply-To: thomas@gmd.de
Organization: GMD, Sankt Augustin, Germany.
Date: Sat, 9 Jan 1993 09:11:55 GMT

In article AA28536@cambridge.apple.com, bill@cambridge.apple.com (Bill St. Clair) writes:
...
> We'll probably be
> looking into a few ways to reduce the size of MCL (though probably
> not for 2.1). Some ideas are:
...
> 3) One or more shared libraries for the different pieces of MCL.
>    This will allow small MCL applications at the expense of some
>    large inits.
 
Are shared libraries supported by the Mac OS?  

The WCL implementation of Common Lisp on Sparcs uses shared libaries
very effectively, and my feeling is that this approach adequately
solves the problem of not being able to decide what parts of the Common
Lisp language and development environment are required by the
application:   Just deliver the whole system as a shared library and
let anything required be loaded on demand.

The only disadvantage I'm aware of is the the library takes up space on 
secondary storage, but this is not often a practical problem today.

---
Thomas F. Gordon
GMD, FIT; Artificial Intelligence Research Division
5205 Sankt Augustin 1 / Germany
email: thomas.gordon@gmd.de;  phone: (+49 2241) 14-2665
From: Jeffrey.J.Guertin@uwrf.edu
Newsgroups: comp.lang.lisp.mcl
Subject: request
Date: 12 Jan 93 14:20:29 GMT

Please remove me info-mcl mailing list
			
				Thank You
From: lindahl@cse.uta.edu (Charlie Lindahl)
Newsgroups: comp.lang.lisp.mcl
Subject: Shared Libraries for MCL
Date: 11 Jan 93 22:14:11 GMT

I've been following this discussion with some interest, and thot I'd throw
my $.02 in. 

I, too, favor a shared library approach. It has proven successful in 
UNIX environments (both for code size and for sharing of code, i.e.,
allowing multiple MCL executables to run at once). 

Some precedents: 

1) Visual Basic in Windows (no, I'm FAR from a big Windows fan)
   This requires a DLL (Dynamic Link Library) to run .exes generated from
   Visual Basic. However, a small-to-medium scale application (interface-
   wise) consumed only 14K of disk space (the DLL takes 360K). 

   The VB DLL is available on public archives; therefore, I assume it is
   available from other sources, as well. This means that developers can   
   distribute relatively small .exe files, and can still rely on having
   a reasonable set of functions available at all times.

2) Frontier 
   Ditto with the Frontier Runtime (shareware, $25). 

3) HYPERCARD 
   
I don't think that tree-shaking will work either, for the reasons given
in previous discussions (lack of support for EVAL, READ). 

Later,
Charlie
============================================================================
Keep an open mind ... but not so  | Charlie S. Lindahl
open that your brain falls out.   | lindahl@cse.uta.edu
-- Gerald Coates                  | Electrical Engineering Dept
                                  | University of Texas at Arlington
----------------------------------------------------------------------------
Disclaimer: #include <std/disclaimer.h>