HDTenEightyP/NetNews huggingface dataset:
From: pf@bilbo.bio.purdue.edu (Paul Furbacher)
Subject: Re: Why I am considering Stony Brooks Pasca
Organization: Purdue University
Distribution: comp.lang.pascal
Date: Fri, 20 Nov 1992 20:39:39 GMT

In article <1992Nov20.141658.22682@exu.ericsson.se>, 
   exuhag@exu.ericsson.se (James Hague) wrote ...

..that I had made the following erroneous statement:

> >Next, if you use TV/OWL you cannot abandon TP/BP.  Full stop.

To which he replied:
 
> Not entirely true.  SBP+ contains information (in a disk
> file) about how to modify TV for use with SBP+...

I guess I wasn't entirely clear.  In evolutionary terms, one 
don't want to abandon BP.  Hopefully, TV and OWL will 
evolve. (I know there are a lot out there who don't like 
evolution, or consider it important.)  TV1 is  missing

     o multiple pick listboxes
     o comboboxes in all the flavors available in Windows
     o common interface descendents of comboboxes, such as
       drive, filetype, etc. found in windows (do we have to 
       write *everything*?)

and other objects that don't come to mind at the moment.

Some of us have written our own but in order to make life a 
bit easier for everyone, and to enhance the appeal of 
the two libraries, TV and OWL should evolve.

That's what OOP is all about -- ancestry and inheritance =
evolution (have to through in differential reproductivity 
in there somehow: what's the fitness term in this?).

PF
From: kim@Software.Mitel.COM (Kim Letkeman)
Newsgroups: comp.lang.pascal
Subject: Re: BP/TP OOP is missing something...
Date: 18 Nov 92 13:25:50 GMT
	<1992Nov17.200839.342@news.clarkson.edu>
Organization: MITEL Public Switching, Kanata, Ontario, Canada
In-reply-to: kooijman@sun.soe.clarkson.edu's message of 17 Nov 92 20:08:39 GMT

In article <1992Nov17.200839.342@news.clarkson.edu> kooijman@sun.soe.clarkson.edu (Harry Kooijman,Peyt314a,3808) writes:

| It is this couple of extra lines that make the difference between
| using objects or not. With explicit calls to the
| constructor/destructor I can write exactly the same code without
| objects, and loose all the object overhead.

TP makes you determine the explicit timing of the construction and
destruction of an object, but does not change the amount of overhead
it takes to use an object. If automatic construction and destruction
were implemented, the same level of overhead would still exist. But
you wouldn't know about it because the code was executed for you.

In either mechanism, not using objects always eliminates object
overhead. But, of course, the overhead of passing many parameters to
many small functions in a library can easily outstrip the minor
overhead associated with encapsulating the functionality into an
object.

| What if you are adding a vector in a subroutine declaration list,
| write the constructor, and use it, but forget to destruct it (an o
| so easy and common bug): you start loosing heap. What if you forget
| the constructor (worse!) ? If you have only a couple of vectors to
| worry about you will probably not make this mistake. However if you
| are dealing with 15 vectors and 15 matrices in one routine it
| becomes a different matter. And that's why automatic construction
| and destruction takes me further.

Forgetting to call constructors and destructors is a classic problem,
but relatively easily debugged. All the complaining seems to be about
local objects being constructed and destroyed as the object goes into
and out of scope, which means that the code to construct and destroy
the objects would typically be only a few lines apart anyway.

Manipulating large numbers of vectors and matrices in local scope has
got to be pretty rare. And using them in a way that requires constant
allocation and deallocation is so inefficient that I would expect
steps to be taken to keep them in scope at all times (i.e. global) and
just reuse the objects.

In other words, lets not worry too much about all these "one one
hundredth of one percent" type problems. TPW is a very productive
language because it is simple to use and yet very powerful. Making it
into yet another C++ just defeates the purpose of having two separate
languages.

I'd hate to only have a choice between one incredibly complex language
and another slightly different looking but equally comlpex language.

--
Kim Letkeman	kim@Software.Mitel.COM
From: kim@Software.Mitel.COM (Kim Letkeman)
Newsgroups: comp.lang.pascal
Subject: Re: BP 7.0 upgrade and ProtoGen
Date: 16 Nov 92 20:50:58 GMT
Organization: MITEL Public Switching, Kanata, Ontario, Canada
In-reply-to: ssnyder@prism.poly.edu's message of 16 Nov 92 15:08:43 GMT

In article <1992Nov16.150843.5412@prism.poly.edu> ssnyder@prism.poly.edu (Sharon Snyder) writes:

| I recently ordered BP7.  As a registered owner of TP 6 and TPW 1.5 I
| thought (according to this group) that I was etitled to a free copy
| of protogen.  Unfortunately I am not....they said it is because I
| bought TPW 1.5 AFTER Aug 21, 1992.

Now this is wierd .... I was told by Borland Canada that the free
Protogen was for recent purchasers of TPW 1.5, essentially as
compensation for the lack of a special upgrade price or a free
upgrade. Your article implies the opposite. Did you really mean you
were denied because you _did_ purchase it after Aug 21, or did you
mean because you _did not_ purchase it after Aug 21?
--
Kim Letkeman	kim@Software.Mitel.COM
From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)
Newsgroups: comp.lang.pascal
Subject: Re: BP/TP OOP is missing something...
Date: 17 Nov 92 21:08:27 GMT
Organization: Tektronix, Inc., Beaverton,  OR.


  Well Duncan, it appears that the only thing about TP we agree on
  is that we like using it...

In article <dmurdoch.282.722020256@mast.queensu.ca> dmurdoch@mast.queensu.ca (Duncan Murdoch) writes:
>
>This is there in TP, to a very limited extent:  you can have an initialized 
>variable which is an object, and you needn't call the constructor.  It's 
>initialized at program load time, not each time the variable comes into 
>scope.  The destructor is never called.

  This is a poor solution, since that variable now exists for
  the entire lifetime of the program, taking up precious data space
  for no reason during the 95+ percent of the time you're not using
  it.

>It's pretty unlikely that Borland would make such a fundamental change
>that doesn't add any power to the language.  Your code fragment is exactly 
>equivalent to
>
> var D:DoubleObject;
> begin
>   D.init(1.2);
>   ...
>   D.done;
> end;
>
>Since what you want to do is already possible with nothing more than a 
>couple of extra lines of code, why make a big change to the language?
>

  This whole topic falls under the scope of garbage
  collection, which is considered by many programmers an extremely
  important part of a language.  And pascal already does it all the
  time anyway.  What happens to the local variables allocated on the
  stack when a function begins or ends?  They are created/destroyed
  by the compiler, which knows knows exactly how to perform these
  tasks.  The only difference between
  objects and the predefined data types is that *you* have to tell
  the compiler exactly how to build or get rid of the objects.  You
  should not have to tell the compiler _when_ to do so.  It seems to
  me the current object construction/destruction methodology is the
  departure from the norm.

  This is exactly why I like the C++ approach.  With automated
  construction/destruction, operator overloading, etc, objects are
  much more seamlessly integrated into an application as extensions
  of the basic data types.  Once the class is properly defined, the
  programmer never has to consider the objects as anything except
  predefined atomic stuctures again.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ 

Bob Beauchaine bobb@vice.ICO.TEK.COM 

"Look, I tried the cat experiment.  On the third trial, the cat was
dead.  On each of the subsequent 413 trials, it remained dead.  Am I
doing something wrong?"
			James Nicoll

Q.  How many Heisenbergs does it take to screw in a light bulb?
A.  If you know the number, you don't know where the light bulb is!
From: exuhag@exu.ericsson.se (James Hague)
Newsgroups: comp.lang.pascal
Subject: Re: Comments on Turbo (Borland) Pascal 7.0?
Date: 23 Nov 92 17:17:52 GMT
Reply-To: exuhag@exu.ericsson.se
Organization: Ericsson Network Systems, Richardson, TX
X-Disclaimer: This article was posted by a user at Ericsson.
              Any opinions expressed are strictly those of the
              user and not necessarily those of Ericsson.

In article BKx@acsu.buffalo.edu, v206gb6c@ubvmsb.cc.buffalo.edu (IS AN ILLEGAL PERSON NAME) writes:
>
>    Everytime I read a posting that seems suggests that microsoft invented 
>source highlighting, I have to laugh.  This feature was on very eary versions 
>of various macintosh pascal compilers (like the one I used as an undergrad).

Going back even further, there were programming systems on larger computers
in the seventies which did this.  They often used proportional fonts with
boldfacing and italics, etc., to give a nice onscreen program representation.
Not common, I admit, but there nonetheless.

--
James Hague   
exuhag@exu.ericsson.se
From: nobby@byron.u.washington.edu (Vitaly Shmatikov)
Newsgroups: comp.lang.pascal
Subject: Re: I found a compiler bug in TP6.0, maybe...
Date: 23 Nov 92 06:12:22 GMT
Article-I.D.: u.1992Nov23.061222.3675
Organization: University of Washington, Seattle

In article <1992Nov22.192602.16440@crash> tech@crash.cts.com (Don Bontemps) writes:
>
>When I attempt to compile the following code, I get a runtime error 202.
>It appears that I am getting an array range check error but the array index
>is within range.  Here an example code listing:
>
>program range_bug;
>
>
>{ Author: Donald P. Bontemps Jr.
>    Date: November 22, 1992      }
>
>
>const
>
>  days : array [-1..6] of string[10] = (' ','Sunday','Monday','Tuesday',
>                                        'Wednesday','Thursday','Friday',
>                                        'Saturday');
>
>  num : word = 0;
>
>
>begin
>
>  writeln(days[num-1]);
>
>end.
>
>

Just a guess: when num-1 is evaluated the result is coerced to the
type of num, i.e. word. -1 is 2^16-1 if treated as word. Range error is
raised while trying to dereference days[2^16-1]. Looks like perfectly normal
compiler behaviour.

>
>
>If I turn off the compiler range checking (ie: {$R-}) the program
>executes just fine.  The example code is a small portion of a large application
>that I am currently writing.  If I declare num as an integer, this fixes the
>error but I need num to be declared as a word.  So what gives?  Is this a
>bonafide compiler bug or what?  Thanks for the feedback.

nobby@u.washingon.edu
Newsgroups: comp.lang.pascal
From: exuhag@exu.ericsson.se (James Hague)
Newsgroups: comp.lang.pascal
Subject: Re: Why I am considering Stony Brooks Pasca
Date: 20 Nov 92 14:16:58 GMT
Reply-To: exuhag@exu.ericsson.se
Organization: Ericsson Network Systems, Richardson, TX
X-Disclaimer: This article was posted by a user at Ericsson.
              Any opinions expressed are strictly those of the
              user and not necessarily those of Ericsson.

Paul Furbacher writes:
>
>Next, if you use TV/OWL you cannot abandon TP/BP.  Full stop.

Not entirely true.  SBP+ contains information (in a disk
file) about how to modify TV for use with SBP+.  This requires
the TV source, however, and it looks like the process is
far from painless.

--
James Hague   
exuhag@exu.ericsson.se
From: br707@cleveland.Freenet.Edu (Mike L. Melamed)
Newsgroups: comp.lang.pascal
Subject: Re: Saving/Reading BinaryTrees.
Date: 21 Nov 1992 03:37:23 GMT
Organization: Case Western Reserve University, Cleveland, Ohio (USA)
NNTP-Posting-Host: slc10.ins.cwru.edu


Ok, I am sorry, I think I stated my question incorrectly...

Here is my Tree structure:

CONST
  MaxChildren = 99;
  MaxFiles = 99;
 
TYPE
 
  RecPtr = ^Rec;
  Rec = RECORD
    Name, Date, Time: STRING [12];
    Files : ARRAY [ 1..MaxFiles ] OF STRING [12];
    FileSize, SizeTotal, SizeLeft : INTEGER;
    ChildID, CurrentChild : INTEGER;
    Child, PrevChild : ARRAY [ 1..MaxChildren ] OF RecPtr;
  END;


Pay extra attention to Child.. 


Oh, almost forgot, I am using Turbo Pascal 6.0..

[T]alk [To] [Y]ou [L]ater,
Mike

--
From: kim@Software.Mitel.COM (Kim Letkeman)
Newsgroups: comp.lang.pascal
Subject: Re: BP/TP OOP is missing something...
Date: 16 Nov 92 17:51:41 GMT
Organization: MITEL Public Switching, Kanata, Ontario, Canada
In-reply-to: choate@acs.harding.edu's message of 14 Nov 92 19:05:24 GMT

In article <1992Nov14.140524.720@ualr.edu> choate@acs.harding.edu (Brad S. Choate) writes:

| When will Borland implement operator overloading for Pascal OOP???
| They boast that their product is a good way to learn OOP, but
| provide no way of teaching operator overloading!  I dare say they
| should not call it "professional" until then.  IMHO, for OOP, stick
| with C++ until Borland gets their act together (correction...
| SERIOUS OOP).
| 
| Don't get me wrong... I love Pascal, but I hate that it doesn't
| benefit from all the goodies C++ has gotten over the years!

Operator overloading is just one tool in the object oriented toolbox.
One very notable book on the subject "Object Oriented Software
Construction" by Bertrand Meyer mentions it in passing as: "no more
than a syntactic facility which relieves programmers from having to
invent different names for different implementations of an operation
and, in essence, places the burden on the compiler." See page 39.

In Lippman's C++ Primer 2nd Edition, the discussion of operator
overloading begins with a description of the less convenient string
functions, which are then replaced by more convenient operators.

Nowhere in these two books is any mention made of dire consequences
should operator overloading not be learned and used. It is a handy
tool, but not the reason for the existence of OOP, SERIOUS or not.

TPW is as professional as any compiler I've ever seen. My guess is
that it completely smokes all but the very best C++ compilers in
overall quality and utility (that is, ability to do useful work.)

I would suggest that you figure out what it is that you really want to
get out of OOP rather than worrying about this or that missing
C++ facility in a PASCAL compiler.
--
Kim Letkeman	kim@Software.Mitel.COM
Newsgroups: comp.lang.pascal
From: torstein@itekiris.kjemi.unit.no (torstein hansen)
Subject: BP7 price policy
Organization: Dept. of Chem.Eng, Norwegian Inst. of Tech
Date: 23 Nov 92 22:25:10

I just wonder what pricing policy Borland has around the world.
Earlier today I called the Norwegian distributor asking for the
following prices: BP7 standard price, upgrade offer and educational
discount.  Comparing with the official US prices I get the following
table:

                      $US            Nkr          $US/Nkr
                      ------         ----         -------
Standard price        495.00         3490          7.05
Upgrade offer         149.95         1990         13.27
Educational discount  129.95         1990         15.31

Relatively speaking, the discounted price is twice as high in Norway
as in USA. Anyone got a reasonable explanation to this?  Assuming the
difference is due to charging the same for pastage and handling I get
the following figures: 

$US - Nkr exchange rate:               4.11
Added for postage and handling : $US 354.26   :-))

I could swim over for that kind of money :)

If anybody has a discounted package to sell.....

Greetings
Torstein Hansen

--
Torstein Hansen
torstein@itekiris.kjemi.unit.no
From: joksch@ibt013.ibt.kfa-juelich.de (Burkhard Joksch)
Newsgroups: comp.lang.pascal
Subject: Search for Dialoged.exe Source
Keywords: Search for Dialoged.exe Source
Date: 16 Nov 92 09:51:51 GMT
Reply-To: joksch@ibt013.ibt.kfa-juelich.de (Burkhard Joksch)
Organization: Forschungszentrum Juelich GmbH (KFA), Germany



hi 
iam looking for the source of dialoged.exe which was posted by
borland on a `goodies mailing list` - disk.
originaly it was printed in an addison-wesley book named 
` turbo pascal 6.0 TurboVision` .

I hope someone could help me

Thanks in advance 

Burkhard

P.S.: Sorry for the german version of this file
From: sl8nl@cc.usu.edu
Newsgroups: comp.lang.pascal
Subject: Re: Stony Brook Pascal
Date: 21 Nov 92 00:13:43 MDT
Organization: Utah State University

> I just received an information package from Stony Brook about their new
> Pascal product for PCs.  It looks really interesting (some highlights: .obj
> support, multi-language support (e.g., call or be called by C functions),
> smart linking, aggresive optimizer, fully compatible with Borland/Turbo
> Pascal (I presume v6), ....
> 
> Does anybody now anything else about the company, product, etc.?

All the above is correct.  It is probably one of the best optimizing compilers
on the market.  It is fully compatible and so on.  The company's tech support
is really good (at least when I've called them).  When I bought it, I had my
doubts, but it is well worth the money.

-Joshua Jensen
From: louis@p2.f42.n7101.z5.fidonet.org (Louis Mandelstam)
Newsgroups: comp.lang.pascal
Subject: TP's heap
Date: 16 Nov 92 15:37:01 GMT
Article-I.D.: catpe.2950.2B09361C
Organization: FidoNet node 5:7101/42.2 - Lakeside BBS, Roodepoort

Anyone have a simple way to deallocate TP's heap and then allocate it again?

My project needs a large heap but I also need to run COMMAND.COM from the
program.  The data in the heap can be lost during the execution, it'll be
saved before and reloaded afterwards.

Cheers
The Poltergeist

--  
INTERNET: louis@catpe.alt.za  -  Louis Mandelstam.
PO Box 4574, Randburg, 2125.  South Africa.
"Even if *had* an employer, this would probably not be his opinion."
Newsgroups: comp.lang.pascal
From: shen@nil.IRO.UMontreal.CA (Yu Shen)
Subject: Re: Turbo and Procs/Fns as params..
Organization: Universite de Montreal -- Laboratoire Incognito
	<1992Nov11.104939.14727@jyu.fi> <1992Nov11.111534.1@uwovax.uwo.ca>
	<1e6qnoINNnr6@matt.ksu.ksu.edu>
	<dmurdoch.163.721919129@mast.queensu.ca>
Date: Tue, 17 Nov 1992 02:21:35 GMT

In article <dmurdoch.163.721919129@mast.queensu.ca> dmurdoch@mast.queensu.ca (Duncan Murdoch) writes:

> Newsgroups: comp.lang.pascal
> Path: IRO.UMontreal.CA!newsflash.concordia.ca!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!cs.utexas.edu!torn!news.ccs.queensu.ca!slip203.telnet1.QueensU.CA!dmurdoch
> From: dmurdoch@mast.queensu.ca (Duncan Murdoch)
> Lines: 33
> Sender: news@knot.ccs.queensu.ca (Netnews control)
> Organization: Queen's University
> References: <1992Nov4.190755.25383@polaris.utu.fi> <mByRTB4w165w@digsol.jpunix.com> <1992Nov11.104939.14727@jyu.fi> <1992Nov11.111534.1@uwovax.uwo.ca> <1e6qnoINNnr6@matt.ksu.ksu.edu>
> Date: Mon, 16 Nov 1992 13:05:29 GMT

> In article <1e6qnoINNnr6@matt.ksu.ksu.edu> holland@matt.ksu.ksu.edu (Rich Holland) writes:
>>Turbo Pascal *DOES* Allow you to pass Procedures and Functions as parameters. 
>>Unless I misinterpreted your comment....
>
>...but only if you pass them as a *pointer*

> It's true that you don't pass the actual code around, but you don't need to 
> explicitly use pointers.  For example:

{$F+}  { this is necessary, since procedures to be assigned must be far }
>          
>   function add(a,b:integer):integer;
>   begin add := a+b end;

>   function subtract(a,b:integer):integer;
>   begin subtract := a-b end;

>   type
>     binaryop = function(a,b:integer):integer;

>   var
>     someop : binaryop;

>   begin
>     someop := add;
>     writeln('Some op of 5 and 3 is ',someop(5,3));
>   end.

> The implementation makes someop a pointer to the entry point of the add 
> function here, but the syntax hides that.

> Duncan Murdoch
> dmurdoch@mast.queensu.ca

I just have a related problem that it seemed to me that member
function can not be as value for such procedure variable.

Here is the example modified from the above:

AnObject = object
   function add(a,b:integer):integer; {wrap it into an object}
end;

function AnObject.add(a,b:integer):integer;
   begin add := a+b end;

   type
     binaryop = function(a,b:integer):integer;

   var
     someop : binaryop;
     theObject: AnObject;	
   begin
     someop := theObject.add; {it may not work, here, though, I didn't
try $F+}
     writeln('Some op of 5 and 3 is ',someop(5,3));
   end.
--
Yu Shen
Dept. d'Informatique et Recherche Operationnelle
University de Montreal, C.P. 6128 Succ. A.
Montreal, Que. Canada, H3C 3J7

(514) 342-7089 (H) shen@IRO.UMontreal.Ca
From: cstaddc@csv.warwick.ac.uk (Mr M A Stuart)
Newsgroups: comp.lang.pascal
Subject: ???????  User input of textfile to read ?????????
Date: 22 Nov 92 05:17:50 GMT
Organization: Computing Services, University of Warwick, UK
NNTP-Posting-Host: cumin.csv.warwick.ac.uk



	Hi, I'm just getting to grips with pascal and have a niggling problem.
I want to read in a filename using say :

	writeln(' Enter filename to read ');
	readln(filename);

and take characters in from the specified file using :

	reset(filename)

Naturally filename must be of type : text.  This clashes with the first step
where I assigned the name of the file to filename !!!

	i.e.   the variable filename must be :
 
	 packed array (* to hold filename *)
	 file of text.  (* to access contents of file *)


	Can anyone suggest a way around this problem or maybe a new approach to
achieve the same result.


	Thankyou very much for any help offered.
Newsgroups: comp.lang.pascal
From: oberto@genes.icgeb.trieste.it (Jacques Oberto)
Subject: Recursive 2D or 3D trees in Pascal?
Organization: ICGEB
Date: Mon, 16 Nov 1992 10:56:22 GMT

Hi all,

I am looking for Pascal code able to generate recursive 2D or 3D
trees and ferns. Barnsley's algorithm would do, any other available ?
Any pointer welcome.

Jacques
 



-- 
Jacques Oberto  <oberto@genes.icgeb.trieste.it>
Newsgroups: comp.lang.pascal
From: jpehko@cs.joensuu.fi (Juha Pehkonen)
Subject: Re: HOW DO YOU READ MORE THAN ONE KEY
Organization: University of Joensuu
Date: Thu, 19 Nov 1992 10:04:42 GMT

mas4@ns1.cc.lehigh.edu (MICHAEL ANTHONY STRAUSS) writes:
>I'm currently writing a program on Turbo 6.0 that requires more than one key
>to be read at once.  Does anyone out there know how to do this.  Any code or
>suggestions would be appreciated.  Thanx in advance...

Just forget about it :-) But seriously, if you're talking about reading
multiple keypresses at the same time, then you should try Port-function.
Don't try to find it with Ctrl-F1 'cause it's not there. Write a short
program like this:

begin
 repeat
  write(Port[$20]);
 until (1=2); 
end; 

Yep, it's quick'n dirty but it does the job. Press down keys and watch the
output change. Everytime you press/release a key new code is 'sent' to
port $20. You probably got 102 keys in your keyboard, so there are 204
different codes (or so one would assume :-). All you have to do is find
out which is which. The codes are not ASCII codes. If I'm not totally
wrong, you get code 1 when you press Esc, code 2 when you press F1, etc.

You can use boolean variables (or boolean arrays) to determine which keys
are pressed down. The rest should be rather TRIVIAL. If not, sue me (or use
e-mail :-)

Juha Pehkonen
jpehko@cs.joensuu.fi

Newsgroups: comp.lang.pascal,comp.object