stx_libbasic2.st
author Claus Gittinger <cg@exept.de>
Tue, 25 Jun 2019 14:28:51 +0200
changeset 5050 44fa8672d102
parent 5044 19c464a93abc
child 5054 b01df68cba0a
permissions -rw-r--r--
#DOCUMENTATION by cg class: SharedQueue comment/format in: #next #nextWithTimeout:

"
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libbasic2' }"

"{ NameSpace: Smalltalk }"

LibraryDefinition subclass:#stx_libbasic2
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects & Packages *'
!

!stx_libbasic2 class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) Claus Gittinger / eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
!

documentation
"
    Package documentation:

    This library contains additional basic (nonGUI) classes.

    These are less fundamental as in libbasic and not required by many stand alone applications.
    Beside additional container classes, this includes URL support, Zip support,
    PTY, serial line, sockets and IP addresses, and other less frequently needed things.

    Most real world applications will include this, but it is possible to create
    small standAlone apps which do not need it.

    [author:]
        cg

    [primary maintainer:]
        cg
"
! !

!stx_libbasic2 class methodsFor:'description'!

excludedFromPreRequisites
    ^ #(
	#'exept:libcrypt'    "Rc4Cipher - referenced by RandomGenerator class>>new "
	#'stx:goodies/communication'    "FTPClient - referenced by FtpURI>>writeStreamDo:create:atomic: "
	#'stx:libtool'    "FileBrowser - referenced by Archiver::ArchiverOutputParser>>parseLine:forItemClass: "
	#'stx:libview2'    "MIMETypes - referenced by Archiver::ArchiverOutputParser>>parseLine:forItemClass: "
	#'stx:libwidg'    "DialogBox - referenced by Archiver::CompressedFile>>compressFile:to: "
	#'stx:libhtml'    "HTMLParser - referenced by HTMLUtilities class>>plainTextOfHTML: "
	#'stx:goodies/webServer/htmlTree'    "HTML::TreeBuilder - referenced by HTMLPrinterStream>>initialize"
    )
!

mandatoryPreRequisites
    "list packages which are mandatory as a prerequisite.
     This are packages containing superclasses of my classes and classes which
     are extended by myself.
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
     This method is generated automatically,
     by searching along the inheritance chain of all of my classes.
     Please take a look at the #referencedPreRequisites method as well."

    ^ #(
        #'stx:libbasic'    "AbstractNumberVector - superclass of ComplexDoubleArray"
    )
!

referencedPreRequisites
    "list packages which are a prerequisite, because they contain
     classes which are referenced by my classes.
     These packages are NOT needed as a prerequisite for compiling or loading,
     however, a class from it may be referenced during execution and having it
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
     includes explicit checks for the package being present.
     This method is generated automatically,
     by searching all classes (and their packages) which are referenced by my classes.
     Please also take a look at the #mandatoryPreRequisites method"

    ^ #(
    )

    "Modified: / 30-05-2019 / 11:40:37 / Claus Gittinger"
!

subProjects
    "list packages which are known as subprojects.
     The generated makefile will enter those and make there as well.
     However: they are not forced to be loaded when a package is loaded;
     for those, redefine requiredPrerequisites"

    ^ #(
    )
! !

!stx_libbasic2 class methodsFor:'description - compilation'!

additionalBaseAddressDefinition_bc_dot_mak
    "this is an optional definition, which (if present) may speed up the dll-loading a little
     on win32 systems."

    ^ '
# see stdHeader_bc for LIBBASIC2_BASE
LIB_BASE=$(LIBBASIC2_BASE)
'
!

additionalLinkLibraries_bc_dot_mak
    ^ '$(ZLIB_DIR)\$(ZLIB) $(BZ2LIB) $(WINSOCK_LIB)'
!

additionalLinkLibraries_make_dot_proto
    ^ '$(ZLIB_LD_ARG) $(BZ2LIB_LD_ARG)'
!

additionalRules_bc_dot_mak
    ^ '
$(ZLIB):
        cd $(ZLIB_DIR)
        $(MAKE_BAT)
        cd ..\..\libbasic2

$(BZ2LIB):
        cd $(BZ2LIB_DIR)
        $(MAKE_BAT) 
        cd ..\..\libbasic2
'
!

additionalRules_make_dot_proto
    ^ '
zlib:
	cd $(ZLIB_DIR); $(MAKE) $(MAKE_ZLIB_ARG)

bz2lib:
	cd $(BZ2LIB_DIR); $(MAKE) $(MAKE_BZ2LIB_ARG) libbz2.a
'
!

additionalTargets_bc_dot_mak
    ^ '$(ZLIB) $(BZ2LIB)'
!

additionalTargets_make_dot_proto
    ^ 'bz2lib zlib'

    "Created: / 05-09-2006 / 16:05:12 / cg"
!

localIncludes
    ^ '-I$(ZLIB_DIR) -I$(BZ2LIB_DIR)'

    "Created: / 06-09-2006 / 18:18:15 / cg"
!

stcOptimizationOptions
    ^ '+optinline +optinline2 +inlinenew'

    "Modified: / 21-02-2011 / 14:13:24 / cg"
!

stcWarningOptions
    ^ '-warnNonStandard -warnUnused'
! !

!stx_libbasic2 class methodsFor:'description - contents'!

classNamesAndAttributes
    "lists the classes which are to be included in the project.
     Each entry in the list may be: a single class-name (symbol),
     or an array-literal consisting of class name and attributes.
     Attributes are: #autoload or #<os> where os is one of win32, unix,..."

    ^ #(
        "<className> or (<className> attributes...) in load order"
        AVLTree
        AbstractBackgroundJob
        ActiveObject
        ActorStream
        Archiver
        AutoResizingOrderedCollection
        BIG5EncodedString
        BTree
        BaseNCoder
        Bezier
        BinaryTree
        BinaryTreeNode
        BloomFilter
        BoltLock
        CRCStream
        CacheDictionary
        CachedValue
        CharacterSet
        Circle
        CollectingReadStream
        CollectingSharedQueueStream
        ComplexDoubleArray
        ComplexFloatArray
        CompressionStream
        Cons
        ConsStream
        Curve
        DelayedValue
        DirectoryContents
        DoubleLink
        EllipticalArc
        ExternalInt
        ExternalLong
        FileSorter
        FileText
        FilteringStream
        FourByteString
        Future
        FuzzyMatcher
        GBEncodedString
        GeometricSeries
        HTMLUtilities
        HalfFloatArray
        HandlerCollection
        Heap
        IdentityBag
        IncrementNotification
        IndentStream
        InterestConverterWithParameters
        InternalPipeStream
        Iterator
        JISEncodedString
        KSCEncodedString
        KeywordInContextIndexBuilder
        Lazy
        LazyArray
        LazyValue
        LineSegment
        List
        LoggingStream
        MappedCollection
        MessageChannel
        Monitor
        MultiReadStream
        NameLookupError
        NumberSet
        OperationQueue
        PhoneticStringUtilities
        PluggableDictionary
        PluggableSet
        Polygon
        PowerSet
        PrinterStream
        PrintfScanf
        PriorityQueue
        Promise
        QDouble
        QuadFloat
        Queue
        Random
        RandomBlumBlumShub
        RandomKISS
        RandomKISS2
        RandomMT19937
        RandomParkMiller
        RandomRDRand
        RandomTT800
        ReindexedCollection
        RunArray
        SegmentedOrderedCollection
        SelectingReadStream
        SequenceWithSentinel
        SequenceableCollectionSorter
        SerialPort
        SharedCollection
        Singleton
        SmallBag
        Socket
        SocketAddress
        SocketAddressInfo
        SocketErrorNotification
        SortedSet
        SoundStream
        Spline
        SplittingWriteStream
        Stack
        StringPattern
        StringUtilities
        TSTree
        TSTreeNode
        TableData
        TerminalSession
        Text
        TextClassifier
        TextStream
        TreeSet
        Trie
        URI
        UUID
        UndoSupport
        UnitConverter
        UnixPTYStream
        ValueLink
        VirtualArray
        VirtualDictionary
        WeakOrderedCollection
        ZipArchiveConstants
        #'stx_libbasic2'
        AATree
        AATreeNode
        AppletalkSocketAddress
        Arrow
        ArrowedSpline
        AutoResizingOrderedCollectionWithDefault
        BZip2Stream
        BackgroundJob
        BackgroundPeriodicalJob
        BackgroundQueueProcessingJob
        Base32Coder
        Base64Coder
        BayesClassifier
        Bezier2Segment
        CRC16Stream
        CRC32Stream
        CRC8Stream
        CacheDictionaryWithFactory
        DecNetSocketAddress
        EpsonFX1PrinterStream
        FilteringLineStream
        HPLjetIIPrinterStream
        HTMLPrinterStream
        HierarchicalURI
        HostAddressLookupError
        HostNameLookupError
        IPSocketAddress
        LazyCons
        LineNumberReadStream
        PostscriptPrinterStream
        RandomGNUSmalltalk
        RandomGenerator
        SharedQueue
        TSMultiTree
        TSMultiTreeNode
        TimedPromise
        UDSocketAddress
        Unicode32String
        ValueDoubleLink
        VirtualArrayWithCache
        ZipArchive
        ZipStream
        Base64UrlCoder
        FileURI
        FtpURI
        HttpURI
        IPv6SocketAddress
        SftpURI
        UnlimitedSharedQueue
        HttpsURI
        (DoubleLinkedList autoload)
        (IdentitySkipList autoload)
        (SkipList autoload)
        (SkipListNode autoload)
    )
!

extensionMethodNames
    "lists the extension methods which are to be included in the project.
     Entries are 2-element array literals, consisting of class-name and selector.
     A correponding method with real names must be present in my concrete subclasses
     if it has extensions."

    ^ #(
        ArithmeticValue asQDouble
        ArithmeticValue differenceFromQDouble:
        ArithmeticValue equalFromQDouble:
        ArithmeticValue lessFromQDouble:
        ArithmeticValue productFromQDouble:
        ArithmeticValue quotientFromQDouble:
        ArithmeticValue remainderFromQDouble:
        ArithmeticValue sumFromQDouble:
        Block deferredValue
        Block deferredValueAt:
        Block futureValue
        Block futureValue:
        Block futureValue:value:
        Block futureValue:value:value:
        Block futureValueWithArguments:
        Block lazyValue
        Block lazyValue:
        Block lazyValue:value:
        Block lazyValue:value:value:
        Block lazyValueWithArguments:
        Block promise
        Block promiseAt:
        CharacterArray asKoelnerPhoneticCode
        CharacterArray asSoundexCode
        CharacterArray printf:
        CharacterArray printf:on:
        CharacterArray printfWith:
        CharacterArray printfWith:with:
        CharacterArray printfWith:with:with:
        CharacterArray printfWith:with:with:with:
        CharacterArray printfWith:with:with:with:with:
        CharacterArray #'printf_formatArgCount'
        CharacterArray #'printf_printArgFrom:to:withData:'
        CharacterArray #'printf_printOn:withData:'
        CharacterArray scanf:
        CharacterArray #'scanf_scanArgFrom:to:format:'
        CharacterArray sscanf:
        CharacterArray urlDecoded
        CharacterArray urlEncoded
        Collection asHalfFloatArray
        Collection asIdentitySkipList
        Collection asList
        Collection asRunArray
        Collection asSharedCollection
        Collection asSkipList
        Collection asSkipList:
        Float absDecimalPrintOn:digits:
        Float absPrintOn:digits:
        Float absScientificPrintOn:digits:
        Float asQDouble
        Integer asQDouble
        Object addInterest:
        Object asDoubleLink
        Object expressInterestIn:for:sendBack:
        Object interests
        Object interestsFor:
        Object onChangeEvaluate:
        Object onChangeSend:to:
        Object removeActionsForEvent:
        Object removeActionsWithReceiver:
        Object removeAllActionsWithReceiver:
        Object removeDependentAndRetractInterestsFor:
        Object removeInterest:
        Object retractInterestIn:for:
        Object retractInterests
        Object retractInterestsFor:
        Object retractInterestsForWhich:
        Object retractInterestsIn:
        Object trigger:
        Object trigger:with:
        Object triggerEvent:
        Object triggerEvent:with:
        Object triggerEvent:withArguments:
        Object when:send:to:
        Object when:send:to:with:
        Object when:sendTo:
        Stream collecting:
        Stream printf:
        Stream printf:arguments:
        Stream printf:with:
        Stream printf:with:with:
        Stream printf:with:with:with:
        Stream printf:with:with:with:with:
        Stream printf:with:with:with:with:with:
        Stream printf:withAll:
        Stream selecting:
    )
! !

!stx_libbasic2 class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'Claus Gittinger / eXept Software AG'

    "Modified: / 18-11-2016 / 11:48:36 / cg"
!

description
    "Return a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Additional Basic Classes'

    "Modified: / 14-09-2006 / 10:57:15 / cg"
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988\nCopyright eXept Software AG 2012'

    "Modified: / 18-11-2016 / 12:17:38 / cg"
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libbasic2 class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
! !