HDTenEightyP/NetNews huggingface dataset:
From: mcbride@Xenon.Stanford.EDU (Philip McBride)
Subject: Re: stand-alone executables
Organization: Computer Science Department, Stanford University.
Distribution: comp
Date: Wed, 26 Aug 1992 00:34:13 GMT

An interesting approach to linking, loading, and executables can be
found in "Integrating the Scheme and C Languages," by Rose and Muller
in Lisp and Functional Programming, 1992.  They use the SunOS dynamic
linker and loader directly.

The executable file for the hello world program is 24k.  Upon startup,
however, the size increases to 116k (I think they have some type of
delayed loading of the byte code interpreter).  So, they have 92k
overhead above the minimal binary code from their compiler.

-Philip

In article <JIMB.92Aug25053328@occs.cs.oberlin.edu> jimb@occs.cs.oberlin.edu (Jim Blandy) writes:
>
>In my experience, stand-alone executable files generated by scheme
>compilers tend to be very large.  For example, compiling the program
>
>	(display "Hello, World!")
>	(newline)
>
>using the Gambit scheme compiler on an HP9000/375 running BSD produces
>a 400k executable file.  Last I checked, Chez scheme didn't do too
>well either (although that was a while ago), and I seem to recall
>Scheme->C producing a 500k executable file for a program which
>computes and prints the factorial of a number.
>
>This seems odd to me.  Gambit's interpreter, gsi, is 400k, which
>suggests to me that Gambit's standalone generation system just throws
>the whole interpreter in with your code.
>
>This is a pretty small sample of scheme systems; is this behavior
>common?  Are there many schemes out there which generate
>reasonably-sized executables?  If not, why does everyone find it so
>difficult to generate them?  Is it so challenging to do the sort of
>linking C compilers do, and throw away the unnecessary library
>routines?
>
>I'd like to be able to invoke small scheme programs from the shell and
>not have it take several seconds to load and occupy several megabytes
>of swap space.
>--
From: dyer@eagle.sharebase.com (Scot Dyer)
Newsgroups: comp.lang.scheme
Subject: Re: wots going on here!?
Date: 1 Sep 92 16:02:56 GMT
Reply-To: dyer@eagle.sharebase.com (Scot Dyer)
Organization: NCR/ShareBase Corporation

bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:
%%jinx@zurich.ai.mit.edu writes:
%%>There is a large tension in a system
%%>aimed both at experienced users and stark novices between being overly
%%>verbose and "nice" and being useful.
[...]

I have to agree here, but I think there's a larger underlying problem.

bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:
%%The behavior I want would be *less* verbose:
%%        > (+ 2 a)
%%        Unbound variable: a
%%        >
%%Short and sweet.  It should be possible for an advanced user to ask
%%for pause-on-error behavior in which Scheme would attempt to preserve
%%the environment in which the error occurred, but you should have to
%%ask for it.

This can be a problem if the 'error' wasn't really an error, but should have
been a warning, because control is taken from the program.  One could
conceivably take this as far as CLOS restarts, and provide a complex procedure
for handling exceptions, involving lots of non-local control structures.

I happen to think there's a better way to do exception handling, which isn't
taken up by most languages*.  Imagine if an error were a value, a printable
value like everything else in Scheme [except environments, of course :-)], so
that you'd have something that'd work like:

	(define (car some-list)
           (if (null? some-list)
              (error "car of null")
	      (lower-level-car some-list)))

Where (error "car of null") would produce an error vector, containing the
complaint.  Beyond this, correct behavior is simple.  Each error contains
_irritants_, like a string to explain the error, and it should be an error
say to try to add to an error value, ergo:

	#(error "+ on error value" #(error "car of null list"))
	;;; other printing names may be more sensible...

So that a failing program then provides a detailed 'back-trace.'

THE BENEFIT:
	(if (error? (car l))
		...
		...)

bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:
%%(This is how Logo does things.  Errors give a message
%%and return to toplevel, unless you have asked in advance for pause
%%on error.  In that case you get a special prompt and (because of good
%%old dynamic scope -- but that's another argument) *all* of the possibly
%%relevant variables are immediately accessible in the usual way without
%%you having to know anything about environments.)

This sounds like a nice environment to work in, but I think seeing the actual
_error_ might be more instructive, powerful, flexible, etc.  It also happens
to be more _functional_, but by that I mean no more than that it is extremely
clean.

	-- Scot
-------------------------------------------------------------------------------
* Error values are probably not much in use since a staticly typed language
  wouldn't be able to deal with them very well...
Newsgroups: comp.lang.scheme
From: mcbride@Xenon.Stanford.EDU (Philip McBride)
Subject: Re: stand-alone executables
Organization: Computer Science Department, Stanford University.
Distribution: comp
Date: Wed, 26 Aug 1992 23:17:01 GMT

I didn't give a very complete reference in my last post as a couple of
people pointed out.  The reference is:

"Integrating the Scheme and C Languages," by J.Rose and H.Muller in
Proceedings of 1992 ACM Conference on Lisp and Functional Programming
(LISP Pointers, Vol. V, No. 1), ACM Press, 1992.

-Philip

In article <1992Aug26.003413.9670@CSD-NewsHost.Stanford.EDU> mcbride@Xenon.Stanford.EDU (Philip McBride) writes:
>An interesting approach to linking, loading, and executables can be
>found in "Integrating the Scheme and C Languages," by Rose and Muller
>in Lisp and Functional Programming, 1992.  They use the SunOS dynamic
>linker and loader directly.
>
>The executable file for the hello world program is 24k.  Upon startup,
>however, the size increases to 116k (I think they have some type of
>delayed loading of the byte code interpreter).  So, they have 92k
>overhead above the minimal binary code from their compiler.
>
>-Philip
>
>In article <JIMB.92Aug25053328@occs.cs.oberlin.edu> jimb@occs.cs.oberlin.edu (Jim Blandy) writes:
>>
>> [...]
From: MikeSummers@cup.portal.com (Michael - Summers)
Newsgroups: comp.lang.scheme
Subject: Mac Comm Toolbox from MacScheme?
Date: Fri, 28 Aug 92 12:14:33 PDT
Organization: The Portal System (TM)
Distribution: world

If anyone has some sample code accessing the Mac Communications
toolbox from MacScheme I would appreciate a look at it.

While I'm on the subject of MacScheme-- does anyone know what (if any)
upgrade plans Lightship has for System 7 and/or r4rs?

Thanks,
--Mike
Newsgroups: comp.lang.scheme
From: cph@martigny.ai.mit.EDU (Chris Hanson)
Subject: wots going on here!?
Organization: The Internet
Date: Mon, 31 Aug 1992 16:13:02 GMT

   Date: Sun, 30 Aug 1992 18:25:48 GMT
   From: Matt Wright <matt@volga.berkeley.edu>

   But I agree that's it's a tradeoff.  I *have* been in the situation where I
   generated an error and wished I could get back to that context, but I got
   thrown back to top-level.  Somebody should write a DWIM debugger that
   heuristically determines if your error is "interesting"... :-)

Actually, this isn't far-fetched; the condition system makes it
possible to customize the behavior of MIT Scheme by classifying errors
in different ways.  It's easy to distinguish different kinds of
errors, and to abort out of some while debugging others.  This
distinction can also take context into account since every error
carries a continuation that describes the error, and programs can
examine continuations by means of the "stack parser" (essentially a
programmatic debugger).

What's difficult is deciding what kinds of errors you're interested
in.  Particularly since DWIM probably isn't DWYM.
From: jinx@zurich.ai.mit.edu (Guillermo J. Rozas)
Newsgroups: comp.lang.scheme
Subject: Re: wots going on here!?
Date: 31 Aug 92 21:04:32 GMT
	<17tn1uINNkij@early-bird.think.com>
Reply-To: jinx@zurich.ai.mit.edu
Organization: M.I.T. Artificial Intelligence Lab.
In-reply-to: barmar@think.com's message of 31 Aug 92 18:05:50 GMT

In article <17tn1uINNkij@early-bird.think.com> barmar@think.com (Barry Margolin) writes:

|       Application of inapplicable object #[undefined-value]
|
|       There is no environment available;
|       using the current REPL environment
|       ;Package: (user)
|
|   The user has to infer that #[undefined-value] is the default value of a
|   variable, and that "Application of inapplicable object" means that he tried
|   to use it as a function.  And even once he figures out what that means, it
|   doesn't tell him where the undefined function came from.  Then there's the
|   stuff about the environment, package, and the "REPL".  The following (from
|   Lucid CL) is somewhat more reasonable (although it would probably have to
|   be augmented to include Scheme-specific information):
|
|       >>Error: The function FOOBAR is undefined
|
|       SYMBOL-FUNCTION:
|	  Required arg 0 (S): FOOBAR
|       :C  0: Try evaluating #'FOOBAR again
|       :A  1: Abort to Lisp Top Level
|

I won't disagree that the error message is obtuse at best, however you
did not understand the error message even after my explanation, so
please tell me what I (or it) should say, and perhaps we can spend
another 3 days on each possible error message.

#[undefined value] is not the default value of any variable.
The user would have gotten the "unbound variable" error instead.

#[undefined value] is what the implementation uses for the value of
certain unspecified constructs in the language.

In particular, it is the value of a 1-armed IF whose predicate
evaluated to false.  The value of a COND with no ELSE clause none of
whose predicates matched, etc.

Although I have no idea what the code was, I can construct pieces of
code that would generate it.

An example is

(define (foo x)
  (if (even? x)
      (lambda (x) (/ x 2))))

(define (bar y)
  ((foo y) y))

and then used as

(bar 23)

There are many other ways to generate this error.
BTW, the current version (in house) of MIT Scheme prints the
following:

(bar 23)
;The object #[undefined-value] is not applicable.
;To continue, call RESTART with an option number:
; (RESTART 2) => Specify a procedure to use in its place.
; (RESTART 1) => Return to read-eval-print level 1.

Of course, you can also invoke (DEBUG).
Newsgroups: comp.lang.scheme
From: matt@volga.Berkeley.EDU (Matt Wright)
Subject: Re: wots going on here!?
Organization: University of California, at Berkeley
Date: Sun, 30 Aug 1992 00:47:06 GMT

In article <17o70sINNi2e@agate.berkeley.edu> bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:
>You know, I have to agree with the original poster that this is not the
>sort of thing one would wish to present to a beginner.  Remember, you're
>on page 184 before you learn what an "environment" is.  Meanwhile all
>that argle-bargle is pretty intimidating.

I agree that getting thrown into the debugger on errors is much more of a
nuisance than a help for a beginner.  (Actually, for people like me who
generate lots of errors anyway with typos, brainos, etc., I still don't want
to get thrown into the debugger unless I ask for it.)

One system I've used that I like a lot is the one in Kyoto Common
Lisp---there's some global variable that says whether you want to be put
into the debugger; if it's false than a (possibly partial) stack trace is
printed on any error and you get a top-level REP loop.

-Matt

From: mcgrory@hplred.HP.COM (John J. McGrory II)
Date: Wed, 2 Sep 1992 22:41:52 GMT
Subject: ML compiler on PA-RISC/HPUX ?
Organization: Hewlett Packard Labs, Palo Alto CA
Newsgroups: comp.lang.scheme


<< I know this is not by definition the appropriate place to post this >>
<< inquiry, but the more obviously appropriate group seems to be       >>
<< non-existent, and it was recommended that this crowd might have the >>
<< information I need.  Thanks...                                      >>


Has anyone ever seen (or even heard of) an ML compiler on PA-RISC/HPUX ?
(Ideally, a s700, but of course a s800 port would be acceptable.)

We don't think it will be too much trouble to port the AT&T public-domain
ML compiler, but figured it would be smart to see if anyone has already
done it (or has something similar).

For the benefit of the curious, the reason we need it is that we are using
a tool for Petri Net modeling that uses ML as its internal language.
The tool is very good, except for the fact that it currently runs on only
s300 systems.  The tool vendor has agreed to port the tool to the s700, but
we have to figure out the compiler problem ourselves (i.e., the compiler
is not part of the tool itself).

Thanks for any help!

	--John McGrory
	  mcgrory@hpl.hp.com
From: barmar@think.com (Barry Margolin)
Newsgroups: comp.lang.scheme
Subject: Re: wots going on here!?
Date: 31 Aug 1992 18:05:50 GMT
Organization: Thinking Machines Corporation, Cambridge MA, USA
NNTP-Posting-Host: telecaster.think.com

Everyone here is flaming about whether automatically invoking the debugger
is a good or bad idea for novice programmers.  Maybe that's an interesting
topic to debate, but I think it's completely orthogonal to the problem the
original poster was complaining about.  His problem was that the
description of the error was incredibly obtuse, using terms and syntax that
a new programmer is not likely to recognize.  Considering that Scheme is
heavily touted as a teaching language, the error messages should be more
reasonable.  He saw:

    Application of inapplicable object #[undefined-value]

    There is no environment available;
    using the current REPL environment
    ;Package: (user)

The user has to infer that #[undefined-value] is the default value of a
variable, and that "Application of inapplicable object" means that he tried
to use it as a function.  And even once he figures out what that means, it
doesn't tell him where the undefined function came from.  Then there's the
stuff about the environment, package, and the "REPL".  The following (from
Lucid CL) is somewhat more reasonable (although it would probably have to
be augmented to include Scheme-specific information):

    >>Error: The function FOOBAR is undefined

    SYMBOL-FUNCTION:
       Required arg 0 (S): FOOBAR
    :C  0: Try evaluating #'FOOBAR again
    :A  1: Abort to Lisp Top Level

    -> 
-- 
Barry Margolin
System Manager, Thinking Machines Corp.

barmar@think.com          {uunet,harvard}!think!barmar
From: bh@anarres.CS.Berkeley.EDU (Brian Harvey)
Newsgroups: comp.lang.scheme
Subject: Logo standard (was: wots going on here!?)
Date: 1 Sep 1992 04:22:11 GMT
Organization: University of California at Berkeley
NNTP-Posting-Host: anarres.cs.berkeley.edu

bevan@cs.man.ac.uk (Stephen J Bevan) writes:
>Is this part of a Logo standard or is the above confusing the language
>with the implementation?  The only Logo I ever used (on a CP/M
>machine) certainly didn't do the above on encountering an error.

There is no Logo standard, but a wide range of Logo implementations
do behave more-or-less this way, following the de facto standard set
by the MIT PDP-11 Logo.
Newsgroups: comp.lang.scheme
From: matt@volga.Berkeley.EDU (Matt Wright)
Subject: Re: wots going on here!?
Organization: University of California, at Berkeley
Date: Sun, 30 Aug 1992 18:25:48 GMT

In article <JINX.92Aug30102323@chamarti.ai.mit.edu> jinx@zurich.ai.mit.edu writes:
>In article <17piphINNncj@agate.berkeley.edu> bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:
>
> [Don't put me in the debugger or a special environment on error unless
>  I ask for it.]
>
>I'm sorry, but I disagree strongly with this view of the world.
>It is very close to the C/Unix printing "segmentation violation (core
>dumped)" and giving you back a shell prompt.
>
>Your answer of having to tweak a flag or whatever is analogous to
>saying "recompile and run it under the debugger".

I disagree.  You way is analogous to having it be so that typing "mial"
instead of "mail" opens up a new shell with a fresh set of environment
variables and puts you into the debugger, instead of printing an error
message and giving you another prompt.

Simple, stupid typing mistakes account for 90% of the errors I generate;
most of the rest come from stupid stuff like forgetting the order of
arguments to a function.  If I'm really looking hard and trying to find an
elusive bug, I'll be more careful and turn on the debugger.

>Please remember that there are programs that modify global state,

Not until chapter 3...  :-)

>and thus re-running is not an option since they may not fail in the same 
>way or at all.

Yes, that it a problem.  But this is the kind of situation where you'll be
more careful and possibly turn on the debugger.  In my experience, when I
debug some non-functional program, I end up writing a "reset" procedure that
gets all my state information set up correctly; I run that before testing my
real program.

Besides, what we're talking about is making life easier for beginning users,
who tend not to modify global (or local) state anyway.

But I agree that's it's a tradeoff.  I *have* been in the situation where I
generated an error and wished I could get back to that context, but I got
thrown back to top-level.  Somebody should write a DWIM debugger that
heuristically determines if your error is "interesting"... :-)

-Matt
From: 9241593t@lux.latrobe.edu.au (B. Leach)
Newsgroups: comp.lang.scheme
Subject: wots going on here!?
Summary: icky errors
Date: 29 Aug 92 09:21:13 GMT
Organization: La Trobe University
X-Newsreader: Tin 1.1 PL5

Ok, would any one here agree with me when I say that scheme is awful for
the beginer?!?

Heres the problem...  I am using MIT scheme running under ultrix.. but
its not a full installation... (something to do with scheme on here
being only for the 2nd years)... Ok so I have what seems to be what I
need.  I run scheme and things go happily until I try writing my own
stuff.

This is the sort of error I keep getting:

Application of inapplicable object #[undefined-value]

There is no environment available;
using the current REPL environment
;Package: (user)

Now I have NO idea what that means!!  Is my program fubar or is the
installation?!


If at all possilbe any hints can be sent to the following address!

--

| Bernard - 9241593t@lux.latrobe.edu.au                   |
| "Thou shalt not suffer a Pepsi, for it is the AntiCola" |
Newsgroups: comp.human-factors
From: dberman@cs.washington.edu (Deborah Berman)
Subject: Re: Knobs are better than sliders
Organization: Computer Science & Engineering, U. of Washington, Seattle
Date: Wed, 26 Aug 92 00:47:13 GMT

Well, this may be true, but as for me, I wish that the shower came with
sliders rather than knobs, for all the times I have accidentally increased
the temperature, when I meant to decrease it (ouch! :).  (Actually, maybe
this has more to do with poor labelling than the knob-structure.)


Debbie

-- 
Outside of a dog, a book is man's best friend...
   Inside of a dog, it's too dark to read.  (Groucho Marx)
From: marc@autodesk.com (Marc Ramsey)
Newsgroups: comp.human-factors
Subject: Re: Graphics computers (was Indentation)
Date: 27 Aug 92 01:11:18 GMT
Reply-To: marc@autodesk.com
Organization: Autodesk, Inc.

My guess would be that the first production (more or less) graphics computer was
the Digital PDP-1 (circa 1960), as most were delivered with a vector display...
From: wilk@Informatik.TU-Muenchen.DE (Christian Wilk)
Subject: HCI and the computer marketplace
Keywords: HCI, Industry
Originator: wilk@sunbrau-coco.informatik.tu-muenchen.de
Organization: Technische Universitaet Muenchen, Germany
Date: Mon, 31 Aug 1992 13:56:35 GMT


I have some questions regarding the relationship between the HCI field and the
computer industry:

	1) How strong is the demand for UI specialists nowadays and in the future?
	2) How does the computer marketplace relates to the topic of UI and HCI
	   aspects? Is it in the domain of the big companies like IBM, HP, SUN etc.
	   or are there some little companies, that are completely dedicated to the
	   HCI market? Are there more consulting or developing firms? If there are
	   some, would somebody please supply me with the addresses of this firms,
	   references to investigations and/or reviews about this topic.
	3) Are there some journals/magazines about UI Development (except the well-
	   known ones, like SIGCHI Bulletin, X Window Journal)? (again addresses
	   and references appreciated)
	4) Is there an organization of UI Designers/Developers/Consultants (not ACM 
	   SIGCHI)?
	5) Can somebody supply me with the addresses of the following companies:
	
	- American Institutes for Research, Washington, DC
	- Ergo Research Group, Inc., Norwalk, CT
	- Cognetics Corp., Princeton Junction, NJ; Washington, DC
	- Aaron Marcus and Associates, Emeryville, CA
	- Preface User Interface Design, Burbank, CA
	(all mentioned in Shneiderman:"Designing the User Interface", 2nd ed.)
	and
	- MITRE Corp.

Any help would be greatly appreciate,
_______________________________________________________________________________

christian wilk			 I've seen things you people wouldn't believe.
technical university of munich	 Attack ships on fire off the shoulder of Orion.
munich, germany			 I watched C-beams glitter in the dark near the
				 Tannhauser gate. All those moments will be lost
wilk@informatik.tu-muenchen.de   in time - like tears in rain. Time to die.
								-- Roy Batty
_______________________________________________________________________________
Newsgroups: comp.human-factors
From: glw@io.uswest.com (Glenn Williams)
Subject: Re: Knobs are better than sliders
Organization: US WEST Communications
Date: Thu, 27 Aug 1992 17:02:22 GMT

>It's called a 'pie menu'.  I've seen it demoed on SUN's NeWS system;
>the author won't implement it for X because X sucks.  Calling Don Hopkins!


What a narrow view, it may 'suck' but it's sure available on a lot more systems than NeWS.


Has anyone else implemented this?



glenn williams
US WEST

"Your spookin' the cattle." - Curly
Newsgroups: comp.human-factors
From: chappin@rdg.dec.com (Paul Chappin)
Subject: Re: Knobs are better than sliders
Organization: Digital Equipment Corporation
Date: Thu, 27 Aug 1992 10:00:33 GMT


   I personally prefer knobs to sliders (in general) for one reason: That I have
more dexterity when it comes to knobs. I believe that this is not because of
wrist vs. arm movements alone, but that IN GENERAL, a knob is something you
can grab hold of, whereas a slider is something you can only push or pull at.
   If you can physically hold something (like the volume knob), then you can
move it much more precisely than something you can only push or pull at. Also,
you can use more force more precisely. The problem with most sliders is that you
can't actually grasp them - volume sliders tend to be too small, for example.
   A slider you can hold can be as precise as a knob - the aircraft throttle
example. (and a joystick?) If more sliders stuck out enough and were textured
so that fingers could grip and surround them, they would be more popular.
   Another advantage of being able to grip something rather than push/pull it
is that the movement itself becomes more fluid, as well as being more precise.
I for one can turn the typical record-level knob more fluidly than the typical
record-level slider because I can get fingers around it evenly. This means I can
exert even movement and get a steady fade...


 
Paul.

[Paul Chappin, DECathena Engineering]

"The most beautiful thing we can experience is the mysterious."
   -- Albert Einstein.

Newsgroups: comp.human-factors