• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

benchmarks/H03-May-2022-37,01528,274

bin/H01-Oct-2019-670566

blitz/H03-May-2022-42,44230,040

cmake/H01-Oct-2019-2,7791,273

compiler/H01-Oct-2019-1,6831,189

config/H01-Oct-2019-

demos/H01-Oct-2019-

doc/H07-May-2022-13,98211,164

examples/H03-May-2022-4,5353,036

lib/H03-May-2022-796692

linalg/H03-May-2022-461276

m4/H01-Oct-2019-2,9942,684

manual/H07-May-2022-8,3626,464

random/H03-May-2022-2,7001,773

src/H03-May-2022-3519

testsuite/H03-May-2022-7,8156,175

travis-ci/H01-Oct-2019-7562

.gitignoreH A D01-Oct-2019242 2923

.travis.ymlH A D01-Oct-20192.2 KiB7564

AUTHORSH A D01-Oct-2019131 52

COPYINGH A D01-Oct-201934.3 KiB675553

COPYING.LESSERH A D01-Oct-20197.5 KiB166128

COPYRIGHTH A D01-Oct-20191.5 KiB3124

ChangeLogH A D01-Oct-201991.6 KiB1,9011,429

ChangeLog.0H A D01-Oct-201914.4 KiB304289

ChangeLog.1H A D01-Oct-2019169.5 KiB3,5743,100

ChangeLog.2H A D01-Oct-201917.6 KiB432323

INSTALLH A D01-Oct-20195.2 KiB13091

LEGALH A D01-Oct-2019479 107

LICENSEH A D01-Oct-20198.7 KiB178137

Makefile.amH A D01-Oct-2019838 3520

Makefile.inH A D01-Oct-201932.1 KiB996890

NEWSH A D01-Oct-2019535 149

README.binutilsH A D01-Oct-20193.2 KiB7161

README.mdH A D01-Oct-20195.7 KiB11191

aclocal.m4H A D01-Oct-2019369 KiB10,2979,317

appveyor.ymlH A D01-Oct-2019854 3527

configureH A D01-Oct-20191,000.6 KiB31,70726,905

configure.acH A D01-Oct-20196.9 KiB231191

README.binutils

1If you are using blitz with egcs under Solaris, SunOS, or OSF/1
2you may need to use the gnu linker.
3
4You can download the binutils from ftp://prep.ai.mit.edu/gnu/binutils/
5
6From Peter Nordlund:
7
8My experience with blitz and sun is that you need the gnu linker.
9At least I had the same problem, and by using gnu-binutils-2.9.1 I got
10it to work.
11
12It can be somewhat tricky to get egcs to use the gnu-linker also.
13So how I do it migth not be the only way, but it worked for me.
14
151. Install binutils-2.9.1
162. Create the bin directory where the egcs compiler will be installed.
173. create links from the linker and assembler to the egcs-bin-dir.
184. configure and install egcs.
19
20See the commands I used below.
21---------------------------
22mkdir BUILD; cd BUILD
23mkdir ../egcs-1.1a/bin
24pushd ../egcs-1.1a/bin
25ln -s /misc/cvap/gnu/binutils-2.9.1/bin/ld .
26ln -s /misc/cvap/gnu/binutils-2.9.1/bin/as .
27popd
28../src/egcs-1.1a/configure --prefix=/misc/cvap/egcs/egcs-1.1a
29--with-gnu-as --with-gnu-ld
30make bootstrap-lean ; make install
31
32
33> I am trying to get blitz++ going on a Sun Ultra-1 running Solaris 5.6.
34>
35> The compiler is egcs 1.1b.
36>
37> The make seems to go fine until we get to the examples:
38>
39> > gmake[1]: Entering directory `/data/gaetz/blitz-19980903/examples'
40> > g++  matmult.o -o matmult -L../lib -lblitz -lm
41> > ld: warning: relocation error: R_SPARC_32: file matmult.o: symbol __Q25blitz
42t13_bz_ArrayExpr1ZQ25blitzt15_bz_ArrayExprOp3ZQ25blitzt13_bz_ArrayExpr1ZQ25blitz
43t20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt15_bz_ArrayExprOp3ZQ
4425blitzt21_bz_ArrayExprConstant1ZfZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt20_bz_Arra
45yExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt15_bz_ArrayExprOp3ZQ25blitzt13_
46bz_ArrayExpr1ZQ25blitzt20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blit
47zt15_bz_ArrayExprOp3ZQ25blitzt16IndexPlaceholder1i0ZQ25blitzt21_bz_ArrayExprCons
48tant1ZfZQ25blitzt8Subtract2ZiZfZQ25blitzt8_bz_pow21ZfZQ25blitzt13_bz_ArrayExpr1Z
49Q25blitzt20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt15_bz_ArrayE
50xprOp3ZQ25blitzt16IndexPlaceholder1i1ZQ25blitzt21_bz_ArrayExpr:
51> >         external symbolic relocation against non-allocatable section .stab;
52> >         cannot be processed at runtime: relocation ignored
53> > Undefined                       first referenced
54> >  symbol                             in file
55> > __Q25blitzt13_bz_ArrayExpr1ZQ25blitzt15_bz_ArrayExprOp3ZQ25blitzt13_bz_Array
56Expr1ZQ25blitzt20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt15_bz_
57ArrayExprOp3ZQ25blitzt21_bz_ArrayExprConstant1ZfZQ25blitzt13_bz_ArrayExpr1ZQ25bl
58itzt20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt15_bz_ArrayExprOp
593ZQ25blitzt13_bz_ArrayExpr1ZQ25blitzt20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_Arra
60yExpr1ZQ25blitzt15_bz_ArrayExprOp3ZQ25blitzt16IndexPlaceholder1i0ZQ25blitzt21_bz
61_ArrayExprConstant1ZfZQ25blitzt8Subtract2ZiZfZQ25blitzt8_bz_pow21ZfZQ25blitzt13_
62bz_ArrayExpr1ZQ25blitzt20_bz_ArrayExprUnaryOp2ZQ25blitzt13_bz_ArrayExpr1ZQ25blit
63zt15_bz_ArrayExprOp3ZQ25blitzt16IndexPlaceholder1i1ZQ25blitzt21_bz_ArrayExpr mat
64mult.o
65> > ld: fatal: Symbol referencing errors. No output written to matmult
66> > collect2: ld returned 1 exit status
67> > gmake[1]: *** [matmult] Error 1
68>
69> What is happening here?  Are there workarounds?
70
71

README.md

1[![Build Status](https://travis-ci.org/blitzpp/blitz.svg?branch=master)](https://travis-ci.org/blitzpp/blitz)
2[![Windows Build status](http://ci.appveyor.com/api/projects/status/github/blitzpp/blitz?branch=master&svg=true)](https://ci.appveyor.com/project/blitzpp/blitz/branch/master)
3
4Blitz++ is a C++ template class library that provides high-performance multidimensional array containers
5for scientific computing.
6
7Blitz++ has gone through some changes in location:
8
9 1. The original Blitz++ website was located at ``http://oonumerics.org/blitz``
10    (archived at http://www.math.unipd.it/~michela/OP.htm).
11
12 2. Blitz++ then moved to SourceForge, at http://www.sourceforge.net/projects/blitz.
13
14 3. The latest maintained version of Blitz++ is now on GitHub, at https://github.com/blitzpp/blitz
15
16Diverse information on Blitz++ is now being catalogued at the GitHub wiki:
17http://github.com/blitzpp/blitz/wiki/
18
19Licensing information is detailed in the LEGAL file.
20Summary: you can do anything except sell this library in source
21form.  Blitz is licensed under either the Lesser GPL version 3 license
22(see COPYING and COPYING.LESSER), the BSD license (see COPYRIGHT), and
23the less restrictive Perl "artistic license" version 2.0 (see LICENSE).
24
25Installing Blitz
26================
27
28We recommend that users consider using Spack to install Blitz++ (see
29below; use `spack install blitz`).  For those who enjoy spending hours
30upon hours installing software by hand...
31
32Blitz++ is distributed with a GNU Autotools build.  Autotools was
33originally developed to address the non-portability of hand-built
34Makefiles.  It was a big step forward, and for the first time allowed
35users to install programs on their own Unix/Linux system, without too
36many hassles due to minor differences between Unices.  While
37frequently easy to use for end users, Autotools is also arcane and
38difficult to use.  It has since been supplanted by `CMake`, which
39offers a somewhat more straightforward way of doing things.  It is our
40recommendation that any new projects are produced with CMake builds
41--- not Autotools or hand-built Makefiles.  See
42[here](https://devmanual.gentoo.org/general-concepts/autotools/index.html)
43--- or search around --- for more information on Autotools:
44
45NOTES:
46
471. Autools-based tarballs are normally distributed with a
48`./configure` script.  This is most convenient for the user, since
49nothing special must be installed on the system for it to work.
50Autotools-based Git repositories normally do *not* contain the
51`./configure` script: because that script is a generated file, not an
52original source file.  Anyone checking out an Autotools-based project
53from a Git repository needs to run `autoreconf` to first generate the
54`./configure` file; this is a fundamental fact of life when using
55Autotools and Git.  Search around for instructions on how to do so.
56
57Auto-Builders: Spack
58=====================
59
60Although Autotools is not in itself particularly difficult to use,
61modern open source software stacks frequently require dozens or even
62hundreds of packages for a particular project.  Blitz++ does not have
63any dependencies, and is therefore pretty "easy" to install; but
64typical projects that involve Blitz++ could require the installation
65of many more packages.  Installing a dozen or more packages by hand is
66slow, error-prone, and must be re-done every time something
67foundational changes (compiler or OS version) --- in other words, hand
68installation of packages is a waste of time.  Nobody hand-builds
69assembly code today either.  Some things are better automated.
70
71[Spack](https://spack.io) is an auto-installer that automates the
72installation (and re-installation) of packages.  People have
73successfully used it to manage software stacks for particular projects
74involving over 100 packages --- which would previously have taken
75weeks for one person to complete by hand.  We recommend that people
76interested in Blitz++ use Spack for installation, for the following
77reaosns:
78
791. Spack already knows the intricacies of building and installing
80software --- including Autotools, Autoreconf, CMake, dependency
81management, compiler versions, shared libraries, etc.  This is arcane,
82tricky stuff that should not be foisted on everybody just because they
83want to use open source software.
84
851. Spack already knows the package-specific "gotchas" involved in
86installing any particular piece of software.  Many packages are quite
87standard, and don't require much special knowledge beyond a general
88understanding of Autotools or CMake --- but many others have a variety
89of "gotchas": they require patches or workardounds for particular
90situations, they use standard tools in non-standard ways, they have
91bugs that require patching, they involve a one-off hand-built
92Makefile; the list goes on.  Every package-specific "gotcha" requires
93minutes or hours of effort to understand when installing that package
94--- effort that does not help in installing any other package, nor
95does it help the next person installing the same package.  This is a
96big waste of time.  Spack knows the "gotchas" for each package so you
97don't have to.
98
991. The use of Spack avoides the need for project authors (such as
100those at Blitz++) to answer an unending stream of build questions,
101almost all of which are entirely generic and have nothing to do with
102the actual project.  If Spack fails on a particular package, and then
103questions are asked on the Spack forum --- then people who spend every
104day on build system minutea will be there to help.
105
1061. Spack recipes provide a clear and concise explanation (in Python
107code) of how to install a particular package.  For those who prefer to
108continue stone age traditions, inspection of the Spack package will
109tell exactly what is required to install a package by hand, including
110the package-specific "gotchas."
111