POV-Ray : Newsgroups : povray.unofficial.patches : An updated povr tarball for Unix/Linux. b0bcf6c0 Server Time
19 Apr 2024 10:15:40 EDT (-0400)
  An updated povr tarball for Unix/Linux. b0bcf6c0 (Message 1 to 10 of 12)  
Goto Latest 10 Messages Next 2 Messages >>>
From: William F Pokorny
Subject: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 26 Apr 2021 07:42:51
Message: <6086a73b$1@news.povray.org>
Ref:

http://news.povray.org/povray.binaries.programming/message/%3C6086a32c%40news.povray.org%3E/#%3C6086a32c%40news.povray.org%3E

Web message: 6086a32c@news.povray.org

---

A note on this release of the povr branch of POV-Ray. In reworking the 
autotools build I pulled all the decades old automatic optimizations. 
This means for good performance you have to specify the optimizations
during the configuration.

A collection of configuration examples can be found in the INSTALL.txt 
files, but for many this one enabling link time optimization will work:

./configure -q COMPILED_BY="me" \
CXXFLAGS="-std=c++17 -O3 -ffast-math -march=native" \
--enable-lto LDFLAGS="-s"

Bill P.


Post a reply to this message

From: jr
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 26 Apr 2021 08:40:01
Message: <web.6086b3b6c0bd773c79819d986cde94f1@news.povray.org>
hi,

William F Pokorny <ano### [at] anonymousorg> wrote:
> Ref: {...}
> A note on this release of the povr branch of POV-Ray. In reworking the
> autotools build I pulled all the decades old automatic optimizations.
> This means for good performance you have to specify the optimizations
> during the configuration.
>
> A collection of configuration examples can be found in the INSTALL.txt
> files, but for many this one enabling link time optimization will work:
>
> ./configure -q COMPILED_BY="me" \
> CXXFLAGS="-std=c++17 -O3 -ffast-math -march=native" \
> --enable-lto LDFLAGS="-s"

had a v quick look, pleased the INSTALL isn't just the usual generic.  will try
a no-SDL install in the coming days.  thank you.


regards, jr.


Post a reply to this message

From: jr
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 28 Apr 2021 12:30:00
Message: <web.60898cfdc0bd773c79819d986cde94f1@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:
> ...
> had a v quick look, pleased the INSTALL isn't just the usual generic.  will try
> a no-SDL install in the coming days.  thank you.

tried building but got an error.


regards, jr.


using:

  ./configure \
  --enable-silent-rules \
  --without-libsdl \
  --without-libsdl2 \
  --disable-no-lc-identifiers \
  --with-x \
  --build=${ARCH}-slackware-linux \
  COMPILED_BY="$POVRAY_BUILDER"


edited output from extracting archive thru 'make':

povray-3.8.0-x.povr_b0bcf6c0/
  ...
===============================================================================
POV-Ray (povr) 3.8.0-x.povr_b0bcf6c0 has been configured.
===============================================================================

Built-in features:
  I/O restrictions:          enabled
  X/SDL Window display:      enabled (sdl not available)
  Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
  Unsupported image formats: -

Compilation settings:
  Build architecture:  x86_64-slackware-linux-gnu
  Built/Optimized for: x86_64-slackware-linux-gnu
  Compiler vendor:     gnu
  Compiler version:    g++ 5.5.0

  Preprocessor flags (CPPFLAGS):
    -pthread -I/usr/include/OpenEXR -I/usr/include

  Compiler flags (CXXFLAGS):
    -pipe -w -fno-enforce-eh-specs -std=c++11 -march=native -mtune=haswell -O2
    -fPIC -pthread

  Linker flags (LDFLAGS):
    -L/usr/lib

  Libraries (LIBS):
    -lXpm -lSM -lICE -lX11 -lIlmImf -lIlmImf -lImath -lHalf -lIex -lIexMath
    -lIlmThread -pthread -lIlmThread -ltiff -ljpeg -lpng -lz -lrt -lm -pthread

  ...
make  all-recursive
make[1]: Entering directory '/tmp/POV/povray-3.8.0-x.povr_b0bcf6c0'
Making all in source
make[2]: Entering directory '/tmp/POV/povray-3.8.0-x.povr_b0bcf6c0/source'
  CXX      povmain.o
  CXX      backend/bounding/boundingtask.o
  CXX      backend/control/messagefactory.o
  ...
  CXX      core/math/chi2.o
  CXX      core/math/hypercomplex.o
  CXX      core/math/jitter.o
In file included from core/math/jitter.cpp:37:0:


../source/core/math/jitter.h:104:43: error:

     jx = -0.5f + static_cast<double>(rand()) /
(static_cast<double>(RAND_MAX/((0.5)-(-0.5f))));
                                           ^
../source/core/math/jitter.h:104:69: error:

     jx = -0.5f + static_cast<double>(rand()) /
(static_cast<double>(RAND_MAX/((0.5)-(-0.5f))));

^
Makefile:1309: recipe for target 'core/math/jitter.o' failed
make[2]: *** [core/math/jitter.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/tmp/POV/povray-3.8.0-x.povr_b0bcf6c0/source'
Makefile:707: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/POV/povray-3.8.0-x.povr_b0bcf6c0'
Makefile:500: recipe for target 'all' failed
make: *** [all] Error 2


Post a reply to this message

From: William F Pokorny
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 28 Apr 2021 15:01:30
Message: <6089b10a$1@news.povray.org>
On 4/28/21 12:27 PM, jr wrote:
> "jr" <cre### [at] gmailcom> wrote:
>> ...
>> had a v quick look, pleased the INSTALL isn't just the usual generic.  will try
>> a no-SDL install in the coming days.  thank you.
> 
> tried building but got an error.
> 
...
> 
> using:
> 
>    ./configure \
>    --enable-silent-rules \
>    --without-libsdl \
>    --without-libsdl2 \
>    --disable-no-lc-identifiers \
>    --with-x \
>    --build=${ARCH}-slackware-linux \
>    COMPILED_BY="$POVRAY_BUILDER"
> 

Thanks for trying. The --enable-silent-rules is probably not needed 
unless you've somehow overridden the tarball shipped default (...one can 
do it by various methods (the reason the enable and disable are always 
both available as configure options), but it is not common).

---
Of course my compiles with your configure (and some C++ compiler 
settings you must be picking up somewhere by env var or something) and 
all work. I can't reproduce so my best guess...

With the jitter.h issue could you try changing the two calls to rand() 
to std::rand() (a) and then at the top of jitter.h just after the 
comment about c++ variants of c includes add an include of cstdlib so it 
looks like:

// C++ variants of C standard header files
#include <cstdlib>

Then try the make (the compiles) again?

(a) - What those always should have been I think and the first thing I 
see which might be wrong. I see on searching a few more bare rand() 
calls sitting in the code too which might also cause you trouble 
compiling if this the issue (some in pattern.cpp). Hmm, wonder why those 
not an issue before for you if so...

Bill P.


Post a reply to this message

From: jr
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 28 Apr 2021 15:20:00
Message: <web.6089b512c0bd773c79819d986cde94f1@news.povray.org>
hi,

William F Pokorny <ano### [at] anonymousorg> wrote:
> On 4/28/21 12:27 PM, jr wrote:
> > "jr" <cre### [at] gmailcom> wrote:
> >> ...
> Thanks for trying. The --enable-silent-rules is probably not needed
> unless you've somehow overridden the tarball shipped default (...one can
> do it by various methods (the reason the enable and disable are always
> both available as configure options), but it is not common).
>
> ---
> Of course my compiles with your configure

:-)

> ...
> With the jitter.h issue could you try changing the two calls to rand()
> to std::rand() (a) and then at the top of jitter.h just after the
> comment about c++ variants of c includes add an include of cstdlib so it
> looks like:
>
> // C++ variants of C standard header files
> #include <cstdlib>
>
> Then try the make (the compiles) again?
>
> (a) - What those always should have been I think and the first thing I
> see which might be wrong. I see on searching a few more bare rand()
> calls sitting in the code too which might also cause you trouble
> compiling if this the issue (some in pattern.cpp). Hmm, wonder why those
> not an issue before for you if so...

tomorrow night.  factoid - when the alpha.10064268 was published, missing
'std::' prefixes were a problem.  cheers.


regards, jr.


Post a reply to this message

From: jr
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 29 Apr 2021 10:20:00
Message: <web.608ac032c0bd773c79819d986cde94f1@news.povray.org>
hi,

William F Pokorny <ano### [at] anonymousorg> wrote:
> On 4/28/21 12:27 PM, jr wrote:
> > ...
> With the jitter.h issue could you try changing the two calls to rand()
> to std::rand() (a) and then at the top of jitter.h just after the
> comment about c++ variants of c includes add an include of cstdlib so it
> looks like:
>
> // C++ variants of C standard header files
> #include <cstdlib>
>
> Then try the make (the compiles) again?

worked a treat, install tonight.  thanks.  patch attached, in case other Linux
users have use for it.


regards, jr.


Post a reply to this message


Attachments:
Download 'patch20210428.txt' (1 KB)

From: jr
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 1 May 2021 16:10:00
Message: <web.608db561c0bd773c79819d986cde94f1@news.povray.org>
"jr" <cre### [at] gmailcom> wrote:
> William F Pokorny <ano### [at] anonymousorg> wrote:
> > On 4/28/21 12:27 PM, jr wrote:
> > > ...
> > Then try the make (the compiles) again?
>
> worked a treat, install tonight. ...

have trouble due to one of the includes.  scene + output attached; 'logo.inc' is
symlinked into povr's include dir.


regards, jr.


Post a reply to this message


Attachments:
Download 'povr.txt' (3 KB)

From: William F Pokorny
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 1 May 2021 17:56:45
Message: <608dce9d$1@news.povray.org>
On 5/1/21 4:09 PM, jr wrote:
> "jr" <cre### [at] gmailcom> wrote:
>> William F Pokorny <ano### [at] anonymousorg> wrote:
>>> On 4/28/21 12:27 PM, jr wrote:
>>>> ...
>>> Then try the make (the compiles) again?
>>
>> worked a treat, install tonight. ...
> 
> have trouble due to one of the includes.  scene + output attached; 'logo.inc' is
> symlinked into povr's include dir.
> 
> 
> regards, jr.
>

Thanks!

First, in include/shapes.inc - before installing in a directory, try 
adding an include to transforms.inc just below the include for 
functions.inc so the includes at top look like:


#include "functions.inc"  // <-- Dependency on povr's f_supertorus()
#include "transforms.inc" // <-- Several transform macros are used

In my cut down set of core includes, I tried to have only the necessary 
includes to save on parsing time and core maintenance. I've gotten it 
wrong(1).

---
(1) - I had it in my head if I had tests including each of the shipped 
includes, I'd pick up any dependencies, but you have to actually call 
each macro and I don't yet, which means probably other include and macro 
issues are lurking. :-(  More include macro self testing required I 
guess!

Bill P.


Post a reply to this message

From: jr
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 2 May 2021 05:00:00
Message: <web.608e6975c0bd773c79819d986cde94f1@news.povray.org>
hi,

William F Pokorny <ano### [at] anonymousorg> wrote:
> On 5/1/21 4:09 PM, jr wrote:
> > ...
> > have trouble due to one of the includes.  ...
>
> Thanks!
>
> First, in include/shapes.inc - before installing in a directory, try
> adding an include to transforms.inc just below the include for
> functions.inc so the includes at top look like:
>
> #include "functions.inc"  // <-- Dependency on povr's f_supertorus()
> #include "transforms.inc" // <-- Several transform macros are used

ok, that solved the problem.  cheers.


> ... which means ... More include macro self testing required I
> guess!

if test parameters can be "presented" as sets, stored in an array of 'array
mixed' for example, foreach might be of help automating the running.
(if there's (small) help I can provide, ask)


regards, jr.


Post a reply to this message

From: William F Pokorny
Subject: Re: An updated povr tarball for Unix/Linux. b0bcf6c0
Date: 13 May 2021 08:54:12
Message: <609d2174$1@news.povray.org>
On 4/26/21 7:42 AM, William F Pokorny wrote:
> Ref:
> 
>
http://news.povray.org/povray.binaries.programming/message/%3C6086a32c%40news.povray.org%3E/#%3C6086a32c%40news.povray.org%3E

> 
> 
> Web message: 6086a32c@news.povray.org
> 
> ---

In working with Tor Olav's idea for a more accurate VAngle macro, I 
discovered the lower case identifier checking(1) is far too expensive 
when making a million calls to a macro with internal #local identifiers.

For now, I recommend configuration with --disable-no-lc-identifiers, if 
running scenes calling macros with internal identifiers a great many times.

Bill P.

(1) - I'm using c++11 regex at the moment. I've noted some complaints 
about performance of std regex, but whether it's that or just how our 
macros work in being re-read / interpreted on each call - I don't know. 
Might be significant expense is unavoidable and the case checking should 
not be the default behavior.


Post a reply to this message

Goto Latest 10 Messages Next 2 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.