[7071] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 696 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Wed Jul 2 16:17:52 1997

Date: Wed, 2 Jul 97 13:00:29 -0700
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Wed, 2 Jul 1997     Volume: 8 Number: 696

Today's topics:
     ANNOUNCE: Bit::Vector (Set::IntegerFast) 4.1 (Steffen Beyer)
     ANNOUNCE: Convert::BinHex 1.119 [Alpha] available on CP <eryq@enteract.com>
     ANNOUNCE: Perl5.004 PDF Documentation Available (William Middleton)
     How can I use ftp.pl in Windows nt platform? <paulyan@hpcc102.corp.hp.com>
     Re: mail filters (Christopher DiLeo)
     New pages/mirror -- 5100+ links on Object-Orientation ( <manfred.schneider@rhein-neckar.de>
     Perl / ObjectStore 1.03 Released! <pritikin@interramp.com>
     Re: Perl, Oracle, CGI, WWW <xrcc0494@dcaca037.ca.boeing.com>
     Re: Require Problem (Brooks Davis)
     Re: When was PERL created? (Alan Strassberg)
     Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: 2 Jul 1997 19:40:43 GMT
From: sb@sdm.de (Steffen Beyer)
Subject: ANNOUNCE: Bit::Vector (Set::IntegerFast) 4.1
Message-Id: <5pearr$oq9$1@nadine.teleport.com>

I am glad and proud to submit

                    =====================================
                      Package "Bit::Vector" Version 4.1
                    =====================================
                      for Perl version 5.000 and higher

     Copyright (c) 1995, 1996, 1997 by Steffen Beyer. All rights reserved.
     This package is free software; you can redistribute it and/or modify
     it under the same terms as Perl itself.

to the Perl community.


Abstract:
---------

This module is extremely useful for a lot of different tasks:

For example for implementing sets and performing set operations (like
union, difference, intersection, complement, check for subset relation-
ship etc.), as a basis for many efficient algorithms (the complexities
of the methods in this module are either O(1) or O(n), which is very
good, and they are mostly implemented in C for maximum execution speed)
like the Sieve of Erathostenes (for calculating prime numbers), for
having shift registers (for instance for Cyclic Redundancy Checksums!)
of arbitrary length, to calculate "look-ahead", "first" and "follow"
character sets for parsers and compiler-compilers, for graph algorithms,
for performing text generation depending on logical expressions, and
much more!


                           =======================
                             A T T E N T I O N :
                           =======================

  #########################################################################
  ##                                                                     ##
  ##  This distribution REPLACES the "Set::IntegerFast"-distribution!!!  ##
  ##  =================================================================  ##
  ##                                                                     ##
  #########################################################################


Contents of this message:
-------------------------

  +  Where to find
  +  Prerequisites
  +  What does it do
  +  New features in version 4.1
  +  New features in version 4.0
  +  This distribution contains
  +  Reasons for the change of the name of this distribution and module
  +  Migration strategy


Where to find:
--------------

You can download this module directly from the author's web site, where you
will also find my other modules and a couple of logos illustrating what the
modules do:

    http://www.engelschall.com/u/sb/download/

You should also be able to find this module on any CPAN ftp site (CPAN =
"Comprehensive Perl Archive Network"), where the file "Bit-Vector-4.1.tar.gz"
should be found in any of the following directories:

    .../CPAN/authors/id/STBEY/
    .../CPAN/modules/by-category/06_Data_Type_Utilities/Bit/
    .../CPAN/modules/by-module/Bit/

To find a CPAN ftp site, you can either direct your web browser to

    http://www.perl.com/CPAN/modules/by-module/Bit/Bit-Vector-4.1.tar.gz

(which will automatically redirect you to a CPAN ftp server near you) or
look into "The Perl 5 Module List" by Tim Bunce and Andreas Koenig either
on USENET in the "comp.lang.perl.modules" newsgroup or at

    http://www.perl.com/CPAN/modules/00modlist.long.html


Prerequisites:
--------------

Perl version 5.000 or higher, a C compiler capable of the ANSI C standard (!)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


What does it do:
----------------

The base class of this distribution, "Bit::Vector", allows you to create bit
vectors and sets of arbitrary size (only limited by the size of a machine
word and available memory on your system) with indices (= elements) in the
range from zero to some positive integer, to dynamically change the size of
such bit vectors or sets and to perform a broad range of basic operations on
them, like

  -  adding or removing elements (setting and clearing single bits),

  -  testing the presence of a certain element (testing a single bit),

  -  setting or clearing contiguous ranges of bits,

  -  detecting contiguous ranges of set bits,

  -  copying bit vectors,

  -  converting a bit vector into either a compact (hexadecimal) or a
     human-readable string representation (allowing you to store bit
     vectors in a file, for instance),

  -  reading in the contents of a bit vector from a string,

  -  comparing two bit vectors for equality and lexical order,

  -  performing bitwise shift and rotation operations,

  -  computing the union, intersection, difference, symmetric difference
     or complement of sets,

  -  testing two sets for equality or inclusion (subset relationship),

  -  computing the minimum, the maximum and the norm (number of elements)
     of a set,

and more.

Note also that it is very easy to implement sets of arbitrary intervals of
integers using this module (negative indices are no obstacle), despite the
fact that only intervals of positive integers (from zero to some positive
integer) are supported directly.

Please refer to the "Set::IntegerRange" module (also contained in this
distribution) and its man page to see how this can be done!

The "Bit::Vector" module is mainly intended for mathematical or algorithmical
computations. There are also a number of efficient algorithms that rely on
sets (and bit vectors).

An example of such an efficient algorithm (which uses a different
representation for sets, however, not bit vectors) is Kruskal's
algorithm for minimal spanning trees in graphs.

(See the module "Graph::Kruskal" and its man page in this distribution.)

Another famous algorithm using bit vectors is the "Sieve of Erathostenes"
for calculating prime numbers, which is included here as a demo program
(see the file "primes.pl" in this distribution).

An important field of application is the computation of "first", "follow"
and "look-ahead" character sets for the construction of LL, SLR, LR and LALR
parsers for compilers (or a compiler-compiler, like "yacc", for instance).

(That's what the C library in this package was initially written for.)

(See Aho, Hopcroft, Ullman, "The Design and Analysis of Computer Algorithms"
for an excellent book on efficient algorithms and the famous "Dragon Book"
on how to build compilers by Aho, Sethi, Ullman.)

Therefore, this module is primarily designed for efficiency, which is the
reason why most of its methods are implemented in C.

To increase execution speed, the module doesn't use bytes as its basic storage
unit, it rather uses machine words, assuming that a machine word is the most
efficiently handled size of all scalar types on any machine (that's what the
ANSI C standard proposes and assumes anyway).

In order to achieve this, it automatically determines the number of bits
in a machine word on your system and then adjusts its internal configuration
constants accordingly.

The greater the size of this basic storage unit, the better the complexity
(= execution speed) of the methods in this module (but also the greater the
average waste of unused bits in the last word).

Note that the C library of this package ("BitVector.c") is designed in such
a way that it can be used independently from Perl and this Perl extension
module. (!)

For this, you can use the file "BitVector.o" exactly as it is produced when
building this module! It contains no references to Perl, and it doesn't need
any Perl header files in order to compile. (It only needs "Definitions.h" and
some system header files.)

Note however that this C library does not perform any bounds checking
whatsoever! (This is your application's duty!)

(See the respective explanation in the file "BitVector.c" for more details
and the file "Vector.xs" for an example of how this can be done!)

In this module, all bounds and type checking (which should be absolutely
fool-proof, BTW!) is done in the XSUB routines (in C).

For more details about the modules in this distribution, please refer to
their respective man pages!


New features in version 4.1:
----------------------------

1) In the "Bit::Vector" module:

a) There are two new methods called "Move_Left()" and "Move_Right()"
   for shifting a bit vector by more than one bit at a time.

   These methods are far more efficient than calling "shift_left()" or
   "shift_right()" the desired number of times.

b) BEWARE that the semantics of the overloaded operators "<<" and ">>"
   has been changed accordingly:

   These operators now use "Move_Left()" and "Move_Right()" internally
   to produce the usual behaviour for these two operators, i.e.,

       $vector << 5
       $vector >> 5

   moves all bits up/down by 5 places (inserting 5 zero bits at the
   right/left end), respectively.

c) Two new methods named "increment()" and "decrement()" have been added
   which increment/decrement a given bit vector as though it was one large
   (unsigned) integer in binary representation.

d) BEWARE that the semantics of the overloaded operators "++" and "--"
   has been changed accordingly: Whereas in previous versions, "++"
   was the same as setting bit #1 to the "on" state and "--" was the
   same as setting bit #1 to the "off" state, these two operators now
   perform a true increment and decrement operation on the given bit
   vector, which - by the way - can be used in its pre-increment and
   post-increment or pre-decrement and post-decrement form as usual!

2) In the "Set::IntegerRange" module:

a) A "Resize()" method was added which allows you to change the size of
   an existing set while preserving as many bits (i.e., elements) of the
   old set as will fit into the new set.

b) The methods "Interval_Scan_inc" and "Interval_Scan_dec" are now also
   available in the "Set::IntegerRange" module.

c) A method "BitVector" is now available which allows you to call any of
   the methods of the "Bit::Vector" class for the underlying bit vector
   which contains your set. Use wisely and with precaution!

3) In general:

   A complexity analysis has been added to this distribution that shows
   the time complexity of the functions implemented in the C library which
   is the core of the "Bit::Vector" module. See the file "COMPLEXITY" in
   this distribution for more details.


New features in version 4.0:
----------------------------

Flip
    $vector->Flip();

Interval_Scan_inc
    while (($min,$max) = $vector->Interval_Scan_inc($start))

Interval_Scan_dec
    while (($min,$max) = $vector->Interval_Scan_dec($start))

rotate_left
    $carry_out = $vector->rotate_left();

rotate_right
    $carry_out = $vector->rotate_right();

shift_left
    $carry_out = $vector->shift_left($carry_in);

shift_right
    $carry_out = $vector->shift_right($carry_in);

to_String
    $string = $vector->to_String(); # e.g., "A08A28AC"

from_string
    $ok = $vector->from_string($string);

Multiplication
    $matrix1->Multiplication($rows1,$cols1,
    $matrix2,$rows2,$cols2,
    $matrix3,$rows3,$cols3);

Closure
    $matrix->Closure($rows,$cols);

Shadow
    $other_vector = $some_vector->Shadow();

Clone
    $twin_vector = $some_vector->Clone();

new_from_String
    eval { $vector = Bit::Vector->new_from_String($string); };

to_ASCII
    $string = $vector->to_ASCII(); # e.g., "2,3,5-7,11,13-19"

from_ASCII
    eval { $vector->from_ASCII($string); };

Emptyness
    if ($vector) # if not empty
    if (! $vector) # if empty
    unless ($vector) # if empty

    # "$index" is a number or a Perl scalar variable containing a
    # number which represents the set containing only that element:

Equality
    if ($vector1 == $vector2)
    if ($vector1 != $vector2)
    if ($vector == $index)
    if ($vector != $index)

Lexical Comparison

    $cmp = $vector1 cmp $vector2;
    if ($vector1 lt $vector2)
    if ($vector1 le $vector2)
    if ($vector1 gt $vector2)
    if ($vector1 ge $vector2)
    if ($vector1 eq $vector2)
    if ($vector1 ne $vector2)
    $cmp = $vector cmp $index;
    if ($vector lt $index)
    if ($vector le $index)
    if ($vector gt $index)
    if ($vector ge $index)
    if ($vector eq $index)
    if ($vector ne $index)

Shift Register
    $carry_out = $vector << $carry_in;
    $carry_out = $vector >> $carry_in;
    $carry_out = $carry_in >> $vector;
    $vector <<= $carry_in;
    $vector >>= $carry_in;

Rotate Register
    $carry_out = $vector << $vector->bit_test($vector->Size()-1);
    $carry_out = $vector >> $vector->bit_test(0);
    $carry_out = $vector->bit_test(0) >> $vector;
    $vector <<= $vector->bit_test($vector->Size()-1);
    $vector >>= $vector->bit_test(0);

String Conversion
    $string = "$vector";
    print "\$vector = '$vector'\n";

Union
    $set1 = $set2 + $set3;
    $set1 += $set2;
    $set1 = $set2 | $set3;
    $set1 |= $set2;
    $vector1 = $vector2 + $index;
    $vector += $index;
    $vector1 = $vector2 | $index;
    $vector |= $index;

Intersection
    $set1 = $set2 * $set3;
    $set1 *= $set2;
    $set1 = $set2 & $set3;
    $set1 &= $set2;
    $vector1 = $vector2 * $index;
    $vector *= $index;
    $vector1 = $vector2 & $index;
    $vector &= $index;

Difference
    $set1 = $set2 - $set3;
    $set1 -= $set2;
    $set1 = $set2 - $set1;
    $vector1 = $vector2 - $index;
    $vector1 = $index - $vector2;
    $vector -= $index;

ExclusiveOr
    $set1 = $set2 ^ $set3;
    $set1 ^= $set2;
    $vector1 = $vector2 ^ $index;
    $vector ^= $index;

Complement
    $set1 = -$set2;
    $set1 = ~$set2;
    $set = -$set;
    $set = ~$set;

Subset Relationship
    if ($set1 <= $set2)

True Subset Relationship
    if ($set1 < $set2)

Superset Relationship
    if ($set1 >= $set2)

True Superset Relationship
    if ($set1 > $set2)

Norm
    $norm = abs($set);


This distribution contains:
---------------------------

   *   a "BitVector" C library (can be used stand-alone!)

       (files "Definitions.h", "BitVector.h" and "BitVector.c")

          +   efficient (fast) handling of bit vectors and sets of
              integers (and more)

          +   determines the size of a machine word on your system
              and automatically configures itself accordingly for
              maximum speed of execution

   *   a "Bit::Vector" base class

       (files "Vector.pm", "Vector.xs", "typemap", "Definitions.h",
        "BitVector.h" and "BitVector.c")

          +   efficient (fast) object-oriented methods for handling
              bit vectors and sets of integers (intervals from zero
              to some positive integer)

          +   methods for converting bit vectors in strings and
              vice-versa (supports "newsrc" style sets)

          +   overloaded arithmetic and relational operators for
              maximum comfort

   *   a "Set::IntegerFast" wrapper module

       (file "lib/Set/IntegerFast.pm")

          +   assures backward compatibility with previous versions

   *   a "Set::IntegerRange" application module

       (file "lib/Set/IntegerRange.pm")

          +   object-oriented methods for handling sets of integers
              (arbitrary intervals)

          +   overloaded arithmetic and relational operators for
              maximum comfort

          +   methods for converting sets in strings and
              vice-versa

   *   a "Math::MatrixBool" application module

       (file "lib/Math/MatrixBool.pm")

          +   object-oriented methods for handling matrices of booleans
              (Boolean Algebra)

          +   overloaded arithmetic and relational operators for
              maximum comfort

          +   computes reflexive transitive closure using Kleene's
              algorithm (essential for solving path-problem in graphs)

          +   methods for converting matrices in strings and
              vice-versa

          +   matrix multiplication and closure are actually carried out
              in the "Bit::Vector" module for maximum speed of execution

Related modules (NOT derived from the "Bit::Vector" base class):

   *   "Math::MatrixReal"

       (file "lib/Math/MatrixReal.pm")

          +   object-oriented methods for handling matrices of reals

          +   overloaded arithmetic and relational operators for
              maximum comfort

          +   allows to solve linear equation systems using an
              efficient algorithm known as "LR decomposition"
              and several approximative (iterative) methods

          +   features an implementation of Kleene's algorithm to
              compute the minimal costs for all paths in a graph
              with weighted edges

          +   methods for converting matrices in strings and
              vice-versa

   *   "DFA::Kleene"

       (file "lib/DFA/Kleene.pm")

          +   another implementation of Kleene's algorithm to compute
              the language accepted by a Deterministic Finite Automaton

   *   "Math::Kleene"

       (file "lib/Math/Kleene.pod")

          +   a man page giving a brief introduction into the theory
              behind Kleene's algorithm

   *   "Graph::Kruskal"

       (file "lib/Graph/Kruskal.pm")

          +   implementation of Kruskal's efficient algorithm
              for Minimal Spanning Trees in graphs O( n * ld(n) )

          +   example of an efficient algorithm relying heavily on sets
              (with a different representation, though, not bit vectors)


Reasons for the change of the name of this distribution and module:
-------------------------------------------------------------------

Version 4.0 was a complete rewrite of the whole "Set::Integerfast" package,
during which a huge number of new methods have been added to this module
(see also above!), with also large additions to its associated application
modules.

The module has been renamed to "Bit::Vector" since it now not only offers
methods for the handling of sets, but also for other applications based
on bit vectors, like boolean matrices and shift registers.

Having multiple modules using C code via the XSUB interface in one
distribution (the "Set::IntegerFast" and the "Math::MatrixBool" modules)
made things prohibitively costly to maintain.

A third such module was on the verge to arrive, one to implement bit
shift registers of arbitrary length.

Instead of duplicating the basic code to create, handle and destroy
bit vectors (which would have been the same for all three modules!),
everything was assembled into one unique C library.

The name of "Set::IntegerFast" simply didn't fit this grown library
anymore, a more general name was needed.

"Bit::Vector" seems to be the most appropriate for it.


Migration strategy:
-------------------

You will need to apply the following changes to your existing
applications that use the "Set::IntegerFast" module (use
interactive global text search & replace for this):

    "Set::IntegerFast"    -->    "Bit::Vector"         (required)

    "Empty_Interval("     -->    "Interval_Empty("     (recommended)
    "Fill_Interval("      -->    "Interval_Fill("      (recommended)
    "Flip_Interval("      -->    "Interval_Flip("      (recommended)
    "Delete("             -->    "Bit_Off("            (recommended)
    "Insert("             -->    "Bit_On("             (recommended)
    "flip("               -->    "bit_flip("           (recommended)
    "in("                 -->    "bit_test("           (recommended)
    "in("                 -->    "contains("           (alternative)
    "inclusion("          -->    "subset("             (recommended)

You should also apply these very changes to all of your applications
using the "Set::IntegerRange" and the "Math::MatrixBool" module.

This is because the same changes and additions as in the new "Bit::Vector"
module have also been applied to these two modules, including (some of)
the new methods and (all of) the new method names and aliases!

The old method names on the left of the table above are still supported,
but deprecated from now on (this means that they could disappear at some
day in the future).

The module "Set::IntegerFast" still exists, but it is maintained only to
assure backward compatibility. It might also go sometime in the future.

Therefore, it is strongly recommended that you migrate your application(s).

-----------------------------------------------------------------------------

If you have any questions or need any assistance, or should you have some
comments to make, suggestions, compliments or donations ;-) to give, then
please don't hesitate to send me some e-mail!

I hope you will find this module benefitful!

Share and enjoy!

Yours,
--
    Steffen Beyer <sb@sdm.de> http://www.engelschall.com/u/sb/
     "There is enough for the need of everyone in this world,
      but not for the greed of everyone." - Mahatma Gandhi
   >> Unsolicited commercial email goes directly to /dev/null <<




------------------------------

Date: 2 Jul 1997 19:39:17 GMT
From: Eryq <eryq@enteract.com>
Subject: ANNOUNCE: Convert::BinHex 1.119 [Alpha] available on CPAN
Message-Id: <5peap5$onv$1@nadine.teleport.com>

Convert::BinHex is a module for converting files to and from 
Macintosh BinHex (HQX7) format.  Included in the distribution are
two sample programs, "binhex.pl" and "debinhex.pl".  It is 
still in Alpha.

COOLNESS ALERT: Recent patches by Paul J. Schinder (folded into 
this version) reportedly enable it to "do the right thing" if running 
under MacPerl!

You can get it from the authors/Eryq directory of any CPAN site
(but give it a couple of days to find its way to you: I just 
uploaded it...)  

Hot copy on-line at:

    http://www.enteract.com/~eryq/CPAN/Convert-BinHex/

Docs also, at:

    http://www.enteract.com/~eryq/CPAN/Convert-BinHex/docs/Convert/

Enjoy.
-- 
  ___  _ _ _   _  ___ _   Eryq (eryq@enteract.com)
 / _ \| '_| | | |/ _ ' /  Hughes STX, NASA/Goddard Space Flight Cntr.
|  __/| | | |_| | |_| |   http://www.enteract.com/~eryq
 \___||_|  \__, |\__, |___/\  Visit STREETWISE, Chicago's newspaper by/
           |___/    |______/ of the homeless: http://www.streetwise.org




------------------------------

Date: 2 Jul 1997 19:38:28 GMT
From: wmiddlet@Adobe.COM (William Middleton)
Subject: ANNOUNCE: Perl5.004 PDF Documentation Available
Message-Id: <5peank$onb$1@nadine.teleport.com>


The latest PDF manual has been uploaded to PAUSE.  It should
make it's way around CPAN shortly.

	CPAN: ~authors/id/BMIDD/perlbook-5.004_01.tar.gz

As before, this file is also available at best.com, in both
gzipped, and zipped format.  The zipped archive is recommended
for Windows users.

	ftp://ftp.best.com/pub/wjm/perlbook-5.004_01.tar.gz
	ftp://ftp.best.com/pub/wjm/perlbook-5.004_01.zip


The README file is appended.


Enjoy,

----

Bill
wmiddlet@adobe.com



PERLBOOK - 5.004_01 
 
           Complete PERL Documentation in Adobe Acrobat Format
      Brought to you courtesy of Bill Middleton and Adobe Systems, Inc.
 
 
  This directory includes the file perlbook.pdf, which contains the
entire standard documentation suite for perl5.  All of the standard
perl modules which include embedded Pod documentation, as well as
the complete set of perl pods, along with the various README files,
INSTALL files, documentation for external programs, and now even
the documentation from the various Win32 external modules.
 
  Most of the hyperlinks which are available in the perl html documentation
can be accessed through this document.  It includes a standard Acrobat
bookmark for each pod, which can be expanded to view the headers and
main topics for each document within.
 
  To view this document, you must have one of the Adobe Acrobat (tm)
tools, Acrobat Exchange, or Acrobat Reader.  Acrobat Reader is available
for no charge from the Adobe Systems, Inc. web site:
 
    <A HREF="http://www.adobe.com/">Get it here!</A>
 
  If you own Acrobat Exchange, or the Reader with Search Plugin, you can 
also use the enclosed Acrobat Catalog, which will allow you search the 
entire document for items of interest.
 
  This document was created using several steps:
 
    - run pod2ps against all documentation
 
    - Distill the PostScript file using Acrobat Distiller
 
    - Index the Acrobat file using Acrobat Catalog
 
  As the perl documents continue to develop, I'll try to keep this distribution
up to date.  If you are a perl extension author, and wish to make something
like this available for your work, please contact me, and I'll try to find
time to help.
 

Bill Middleton
wmiddlet@adobe.com
wjm@best.com




-- 
Bill Middleton - (408)536-2522, Pager: (415)907-1728  
Computer Scientist, perl junkie
Adobe Systems - San Jose, CA.




------------------------------

Date: Wed, 02 Jul 1997 10:48:27 -0700
From: Paul Yan <paulyan@hpcc102.corp.hp.com>
Subject: How can I use ftp.pl in Windows nt platform?
Message-Id: <33BA946B.66D7@hpcc102.corp.hp.com>

Hello, perl gurus:
	How can I use ftp.pl in Windows NT platform. The activeware perl
version 5.003 build 306 does not port this module very well or even does
not port it. Can anybody help me!
Best Regards
							Paul 7/2/97


------------------------------

Date: Wed, 02 Jul 1997 10:00:02 +0000
From: cdileo@forum.swarthmore.edu (Christopher DiLeo)
Subject: Re: mail filters
Message-Id: <cdileo-0207971000020001@euler.swarthmore.edu>

> Elijah
> ------
> progressing slowly on his procmail with embedded perl

I am beginning to enjoy the benefits of procmail, but how do you use the
wonders of perl with it?


------------------------------

Date: 2 Jul 1997 19:38:56 GMT
From: "Manfred Schneider" <manfred.schneider@rhein-neckar.de>
Subject: New pages/mirror -- 5100+ links on Object-Orientation (English/French)
Message-Id: <01bc871f$e774d1e0$b259c5c1@cetus>


Subject:        Cetus Links -- 5100+ links on Object-Orientation
Newsgroups:     Some comp.* newsgroups related to OO 
Reply-To:       manfred.schneider@rhein-neckar.de (Manfred Schneider)
Summary:        News, editions, topics and URLs of Cetus Links
Posting-Freq.:  Monthly

Hello,

are you interested in a collection of more than 5100 links on 
Object-Orientation - running on 13 servers in different countries ?

No ads, few graphics, fast and free access!

What4s new?
   o   New pages 'COBOL' and 'Mobile Agents'
   o   New mirror in Russia

Available editions:
   o   English
   o   French

Main topics:
   o   General Information and Links about Object-Orientation

   o   Distributed Objects, Business Objects, Mobile Agents, Object 
       Request Brokers, ActiveX/OLE, Corba, Java Beans/RMI, OpenDoc

   o   OOA/OOD Methods and Tools, Diagram Layout

   o   Languages, Ada, BETA, C++, CLOS, COBOL, Delphi, Eiffel, 
       Java, JavaScript, Modula-3, Oberon, Objective-C, Perl, 
       Python, Sather, Self, Simula, Smalltalk, Tcl/Tk, VBScript, 
       Visual Basic, Visual C++

   o   Databases, OO DBMS, OR DBMS, OR Mapping
   o   Patterns, Libraries, Frameworks
   o   Metrics, Reuse, Testing, Numerics
   o   Services and Companies

URL of original site:
   o   Germany, Heidelberg
       http://www.rhein-neckar.de/~cetus/software.html

URLs of mirror sites:
   o   Australia, Melbourne
       http://www.csse.swin.edu.au/manfred/software.html

   o   Austria, Vienna  
       http://www.infosys.tuwien.ac.at/cetus/software.html

   o   Brazil, RS, Porto Alegre
       http://www.intuitive.com.br/cetus/software.html

   o   Canada, Quebec
       http://www.csioo.com/cetusen/software.html

   o   Japan, Osaka  
       http://aries.ise.eng.osaka-u.ac.jp/cetus/software.html

 NEW   Russia
       http://oop.rosweb.ru/cetus/software.html

   o   Singapore
       http://sunsite.nus.sg/pub/cetus/software.html

   o   Switzerland, Lausanne
       http://www.sente.ch/cetus/software.html

   o   UK, Coventry  
       http://www.parallax.co.uk/cetus/software.html

   o   USA, IL, Chicago
       http://www.objenv.com/cetus/software.html

   o   USA, UT, Provo
       http://mini.net/cetus/software.html

   o   USA, VA, Arlington
       http://www.eidea.com/OO_site/cetus/software.html

URL of French edition:
   o   Canada, Quebec
       http://www.csioo.com/cetusfr/software.html

I hope you will find the Cetus Links useful. 

Please feel free to send suggestions, comments, new or changed URLs.

Manfred



------------------------------

Date: 2 Jul 1997 19:41:24 GMT
From: Joshua Pritikin <pritikin@interramp.com>
Subject: Perl / ObjectStore 1.03 Released!
Message-Id: <5peat4$oqf$1@nadine.teleport.com>

Name           DSLI  Description                                  Info
-----------    ----  -------------------------------------------- -----
ObjStore       am+O  ObjectStore DBMS Interface                   JPRIT

Easy, flexible, lightning-fast persistent via ObjectStore.  Stores
scalars, hashes, and references without flattening.  Perl databases
can be accessed from C++ and/or Java.  Inversely, persistent C++ 
objects can be added back into Perl!
           << This is the relational database killer app! >>


Perl-ObjectStore mailing list:

majordomo@parallax.co.uk   "subscribe perl-objectstore
you@your.company.com"


see ./INSTALL for installation instructions
see ./TODO for list of things to do
see ./CHANGES for a historical perspective


### HIGHLIGHTS OF RECENT CHANGES ###


** Released 1.03

- Investigated schema evolution.  Will provide a database evolver
going forward.

- Can't wait for reasonable tied arrays!  Added array-based Sacks.
They're not tied, but at least they're inefficient.

- Found and fixed problems with reference counting.  Now the tests
can be run and the database does not grow.

- Blessings are now persistent!  (Untested)

- Re-designed the make system again.

- Started writing documentation.  (Yawn.)


** Released 1.02

- Improved make file.  Fixed blib.  Usage now looks like this:

perl ./be [-nop] [-silent] [-verbose] <cmd>
   checked      - verify that the package is complete
   made         - run the compiler, toast the pop-tarts, etc.
   installed    - copy files to final install area
   uninstalled  - delete any files that were installed
   cleaned      - delete all temporary files
   manifest     - update the MANIFEST file
   dist         - create a tar.gz distribution file

- Added ObjStore::peek($var) - like Data::Dumper except that it will
work better
on gigantic databases.  Only three elements are printed from large
hashes,
while small hashes are printed completely.  The meaning of 'large' can
be
customized (not yet).




------------------------------

Date: Wed, 2 Jul 1997 18:58:03 GMT
From: "robert c. combs" <xrcc0494@dcaca037.ca.boeing.com>
Subject: Re: Perl, Oracle, CGI, WWW
Message-Id: <33BAA4BB.6403@dcaca037.ca.boeing.com>

I guess I'm not sure what you mean by "Oraperl hasn't helped". If you
want to use Oracle and perl, you need to use the DBI/DBD libraries.
(Oraperl is an alternate API for that setup). 

As for connecting to the vax, you need to set up the NT box to connect
to the VAX with its own dbase name, then login. i.e. scott/tiger@vaxdb

Piece of Cake.


markus@netrail.net wrote:
> 
> I know this subject is becoming trite, but I too am having trouble
> connecting to an Oracle database. The database is setup on a VMS box,
> which we want to access from an NT machine. This NT machine will also be
> running Netscape Enterprise, so we will be using CGI to access the
> database. I would prefer to use Perl and bypass the proprietary Pro*C
> libraries if possible. Oraperl has not helped, so I am looking at a
> Win32::ODBC solution. My question is concerning network access of the
> database. Will I be able to connect to the Vax over TCP/IP and access the
> database? If so, how would I go about connecting to it through Perl? Any
> help, info, programs, etc. would be beneficial.
> 
> Thanks,
> Mark
> 
> -------------------==== Posted via Deja News ====-----------------------
>       http://www.dejanews.com/     Search, Read, Post to Usenet


------------------------------

Date: 2 Jul 1997 19:10:00 GMT
From: brdavis@orion.ac.hmc.edu (Brooks Davis)
Subject: Re: Require Problem
Message-Id: <5pe928$86d$2@cinenews.claremont.edu>

[CCed to poster, follow-ups set to clp.misc]
Mark DePristo (mdepristo@Godzilla.cs.nwu.edu) wrote:
: So I changed the require to :
:
:  require 'taggerlibrary.pm'
:
: and I get this message:
:
:  taggerlibrary.pm did not return a true value at converter line 9.
 
As the error says, the last statement of the library must return a true 
value.  The thing I alwasy do is just put one line like this there:
 
1; # make the module return something true
 
That should do it.  FYI, the convention is to use .pl instead of .pm
for libraries since .pm implies perl modules (see perlmod) rather then 
libraries.  It doesn't really matter for libraries, but it is the 
convention.

-- Brooks


------------------------------

Date: 2 Jul 1997 12:37:05 -0700
From: alan@bali.seg.wj.com (Alan Strassberg)
Subject: Re: When was PERL created?
Message-Id: <5peal1$jdp@bali.seg.wj.com>

In article <5pdfsg$1fr$1@shell3.ba.best.com>,
Jimmy Aitken <jimmy@peter.com> wrote:
>In article <867790152.23274@dejanews.com>,
> <tim@hcirisc.cs.binghamton.edu> wrote:
>>Does anyone have info on when PERL was created?  Some idiot wrote a

	perl.h 1.0 header ...

/* $Header: perl.h,v 1.0 87/12/18 13:05:38 root Exp $
 *
 * $Log:        perl.h,v $
 * Revision 1.0  87/12/18  13:05:38  root
 * Initial revision
 *
 */

	Source for Perl 1.0 (as well as 2,3,4) complete with patches ...

	http://www.oasis.leo.org/perl/src/perl1/

					alan
-- 
alan@wj.com


------------------------------

Date: 8 Mar 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 8 Mar 97)
Message-Id: <null>


Administrivia:

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V8 Issue 696
*************************************

home help back first fref pref prev next nref lref last post