Re: New Port Request: Primesieve from https://github.com/kimwalisch/primesieve

2023-12-16 Thread Ken Cunningham
I think you have done something like this at some point:

sudo port select gcc mp-gcc13

and so things are finding your gcc13 installation when you probably don't 
really want them to.

You want things to find clang instead, so do this:

sudo port select gcc none

Ken


On 2023-12-16, at 8:10 PM, Kenneth Wolcott wrote:

> Hi Ken C;
> 
>  I was able to install the Perl Primesieve module finally.  Now
> working on the Raku Primesieve module install process.
> 
> Thanks,
> Ken W.
> 
> On Sat, Dec 16, 2023 at 8:03 PM Kenneth Wolcott
>  wrote:
>> 
>> Hi Ken C;
>> 
>>  I thought I had precisely followed the build instructions
>> previously.  I must have built from the wrong directory and as a
>> result the linkage error(s) occurred.. Seems to work fine with your
>> instructions.
>> 
>>  I feel really stupid :-(
>> 
>>  Thanks...
>> 
>> Ken W.
>> 
>> port installed | grep cmake
>>  cmake @3.23.5_0
>>  cmake @3.24.3_0
>>  cmake @3.24.4_0 (active)
>>  cmake-bootstrap @3.9.6_0 (active)
>>  tree-sitter-cmake @0.1.0_0 (active)
>> 
>> git clone --depth=1 https://github.com/kimwalisch/primesieve
>> Cloning into 'primesieve'...
>> remote: Enumerating objects: 148, done.
>> remote: Counting objects: 100% (148/148), done.
>> remote: Compressing objects: 100% (139/139), done.
>> remote: Total 148 (delta 16), reused 96 (delta 7), pack-reused 0
>> Receiving objects: 100% (148/148), 165.77 KiB | 998.00 KiB/s, done.
>> Resolving deltas: 100% (16/16), done.
>> BS: cd primesieve
>> primesieve: mkdir build
>> primesieve: cd !$
>> cd build
>> build: cmake ..
>> -- The CXX compiler identification is GNU 13.1.0
>> -- Checking whether CXX compiler has -isysroot
>> -- Checking whether CXX compiler has -isysroot - yes
>> -- Checking whether CXX compiler supports OSX deployment target flag
>> -- Checking whether CXX compiler supports OSX deployment target flag - yes
>> -- Detecting CXX compiler ABI info
>> -- Detecting CXX compiler ABI info - done
>> -- Check for working CXX compiler: /opt/gcc-13.1.0-aarch64/bin/c++ - skipped
>> -- Detecting CXX compile features
>> -- Detecting CXX compile features - done
>> -- Performing Test atomic64
>> -- Performing Test atomic64 - Success
>> -- Performing Test ftree_vectorize
>> -- Performing Test ftree_vectorize - Success
>> -- Performing Test fvect_cost_model
>> -- Performing Test fvect_cost_model - Success
>> -- Performing Test multiarch_popcnt_bmi
>> -- Performing Test multiarch_popcnt_bmi - Failed
>> -- Performing Test multiarch_avx512
>> -- Performing Test multiarch_avx512 - Failed
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to:
>> /Users/kwolcott/Downloads/BS/primesieve/build
>> build: make
>> [  2%] Building CXX object CMakeFiles/libprimesieve.dir/src/api-c.cpp.o
>> [  4%] Building CXX object CMakeFiles/libprimesieve.dir/src/api.cpp.o
>> [  6%] Building CXX object
>> CMakeFiles/libprimesieve.dir/src/CountPrintPrimes.cpp.o
>> [  8%] Building CXX object CMakeFiles/libprimesieve.dir/src/CpuInfo.cpp.o
>> [ 10%] Building CXX object CMakeFiles/libprimesieve.dir/src/Erat.cpp.o
>> [ 12%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratSmall.cpp.o
>> [ 14%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratMedium.cpp.o
>> [ 17%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratBig.cpp.o
>> [ 19%] Building CXX object CMakeFiles/libprimesieve.dir/src/iterator-c.cpp.o
>> [ 21%] Building CXX object CMakeFiles/libprimesieve.dir/src/iterator.cpp.o
>> [ 23%] Building CXX object 
>> CMakeFiles/libprimesieve.dir/src/IteratorHelper.cpp.o
>> [ 25%] Building CXX object 
>> CMakeFiles/libprimesieve.dir/src/LookupTables.cpp.o
>> [ 27%] Building CXX object CMakeFiles/libprimesieve.dir/src/MemoryPool.cpp.o
>> [ 29%] Building CXX object 
>> CMakeFiles/libprimesieve.dir/src/PrimeGenerator.cpp.o
>> [ 31%] Building CXX object CMakeFiles/libprimesieve.dir/src/nthPrime.cpp.o
>> [ 34%] Building CXX object 
>> CMakeFiles/libprimesieve.dir/src/ParallelSieve.cpp.o
>> [ 36%] Building CXX object CMakeFiles/libprimesieve.dir/src/popcount.cpp.o
>> [ 38%] Building CXX object CMakeFiles/libprimesieve.dir/src/PreSieve.cpp.o
>> [ 40%] Building CXX object CMakeFiles/libprimesieve.dir/src/PrimeSieve.cpp.o
>> [ 42%] Building CXX object 
>> CMakeFiles/libprimesieve.dir/src/SievingPrimes.cpp.o
>> [ 44%] Linking CXX shared library libprimesieve.dylib
>> -macosx_version_min has been renamed to -macos_version_min
>> ld: warning: ignoring duplicate libraries: '-lgcc'
>> [ 44%] Built target libprimesieve
>> [ 46%] Building CXX object 
>> CMakeFiles/libprimesieve-static.dir/src/api-c.cpp.o
>> [ 48%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/api.cpp.o
>> [ 51%] Building CXX object
>> CMakeFiles/libprimesieve-static.dir/src/CountPrintPrimes.cpp.o
>> [ 53%] Building CXX object 
>> CMakeFiles/libprimesieve-static.dir/src/CpuInfo.cpp.o
>> [ 55%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/Erat.cpp.o
>> [ 57%] Building CXX object
>> 

Re: New Port Request: Primesieve from https://github.com/kimwalisch/primesieve

2023-12-16 Thread Kenneth Wolcott
Hi Ken C;

  I was able to install the Perl Primesieve module finally.  Now
working on the Raku Primesieve module install process.

Thanks,
Ken W.

On Sat, Dec 16, 2023 at 8:03 PM Kenneth Wolcott
 wrote:
>
> Hi Ken C;
>
>   I thought I had precisely followed the build instructions
> previously.  I must have built from the wrong directory and as a
> result the linkage error(s) occurred.. Seems to work fine with your
> instructions.
>
>   I feel really stupid :-(
>
>   Thanks...
>
> Ken W.
>
> port installed | grep cmake
>   cmake @3.23.5_0
>   cmake @3.24.3_0
>   cmake @3.24.4_0 (active)
>   cmake-bootstrap @3.9.6_0 (active)
>   tree-sitter-cmake @0.1.0_0 (active)
>
> git clone --depth=1 https://github.com/kimwalisch/primesieve
> Cloning into 'primesieve'...
> remote: Enumerating objects: 148, done.
> remote: Counting objects: 100% (148/148), done.
> remote: Compressing objects: 100% (139/139), done.
> remote: Total 148 (delta 16), reused 96 (delta 7), pack-reused 0
> Receiving objects: 100% (148/148), 165.77 KiB | 998.00 KiB/s, done.
> Resolving deltas: 100% (16/16), done.
> BS: cd primesieve
> primesieve: mkdir build
> primesieve: cd !$
> cd build
> build: cmake ..
> -- The CXX compiler identification is GNU 13.1.0
> -- Checking whether CXX compiler has -isysroot
> -- Checking whether CXX compiler has -isysroot - yes
> -- Checking whether CXX compiler supports OSX deployment target flag
> -- Checking whether CXX compiler supports OSX deployment target flag - yes
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Check for working CXX compiler: /opt/gcc-13.1.0-aarch64/bin/c++ - skipped
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Performing Test atomic64
> -- Performing Test atomic64 - Success
> -- Performing Test ftree_vectorize
> -- Performing Test ftree_vectorize - Success
> -- Performing Test fvect_cost_model
> -- Performing Test fvect_cost_model - Success
> -- Performing Test multiarch_popcnt_bmi
> -- Performing Test multiarch_popcnt_bmi - Failed
> -- Performing Test multiarch_avx512
> -- Performing Test multiarch_avx512 - Failed
> -- Configuring done
> -- Generating done
> -- Build files have been written to:
> /Users/kwolcott/Downloads/BS/primesieve/build
> build: make
> [  2%] Building CXX object CMakeFiles/libprimesieve.dir/src/api-c.cpp.o
> [  4%] Building CXX object CMakeFiles/libprimesieve.dir/src/api.cpp.o
> [  6%] Building CXX object
> CMakeFiles/libprimesieve.dir/src/CountPrintPrimes.cpp.o
> [  8%] Building CXX object CMakeFiles/libprimesieve.dir/src/CpuInfo.cpp.o
> [ 10%] Building CXX object CMakeFiles/libprimesieve.dir/src/Erat.cpp.o
> [ 12%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratSmall.cpp.o
> [ 14%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratMedium.cpp.o
> [ 17%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratBig.cpp.o
> [ 19%] Building CXX object CMakeFiles/libprimesieve.dir/src/iterator-c.cpp.o
> [ 21%] Building CXX object CMakeFiles/libprimesieve.dir/src/iterator.cpp.o
> [ 23%] Building CXX object 
> CMakeFiles/libprimesieve.dir/src/IteratorHelper.cpp.o
> [ 25%] Building CXX object CMakeFiles/libprimesieve.dir/src/LookupTables.cpp.o
> [ 27%] Building CXX object CMakeFiles/libprimesieve.dir/src/MemoryPool.cpp.o
> [ 29%] Building CXX object 
> CMakeFiles/libprimesieve.dir/src/PrimeGenerator.cpp.o
> [ 31%] Building CXX object CMakeFiles/libprimesieve.dir/src/nthPrime.cpp.o
> [ 34%] Building CXX object 
> CMakeFiles/libprimesieve.dir/src/ParallelSieve.cpp.o
> [ 36%] Building CXX object CMakeFiles/libprimesieve.dir/src/popcount.cpp.o
> [ 38%] Building CXX object CMakeFiles/libprimesieve.dir/src/PreSieve.cpp.o
> [ 40%] Building CXX object CMakeFiles/libprimesieve.dir/src/PrimeSieve.cpp.o
> [ 42%] Building CXX object 
> CMakeFiles/libprimesieve.dir/src/SievingPrimes.cpp.o
> [ 44%] Linking CXX shared library libprimesieve.dylib
> -macosx_version_min has been renamed to -macos_version_min
> ld: warning: ignoring duplicate libraries: '-lgcc'
> [ 44%] Built target libprimesieve
> [ 46%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/api-c.cpp.o
> [ 48%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/api.cpp.o
> [ 51%] Building CXX object
> CMakeFiles/libprimesieve-static.dir/src/CountPrintPrimes.cpp.o
> [ 53%] Building CXX object 
> CMakeFiles/libprimesieve-static.dir/src/CpuInfo.cpp.o
> [ 55%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/Erat.cpp.o
> [ 57%] Building CXX object
> CMakeFiles/libprimesieve-static.dir/src/EratSmall.cpp.o
> [ 59%] Building CXX object
> CMakeFiles/libprimesieve-static.dir/src/EratMedium.cpp.o
> [ 61%] Building CXX object 
> CMakeFiles/libprimesieve-static.dir/src/EratBig.cpp.o
> [ 63%] Building CXX object
> CMakeFiles/libprimesieve-static.dir/src/iterator-c.cpp.o
> [ 65%] Building CXX object
> CMakeFiles/libprimesieve-static.dir/src/iterator.cpp.o
> [ 68%] Building CXX object
> 

Re: New Port Request: Primesieve from https://github.com/kimwalisch/primesieve

2023-12-16 Thread Kenneth Wolcott
Hi Ken C;

  I thought I had precisely followed the build instructions
previously.  I must have built from the wrong directory and as a
result the linkage error(s) occurred.. Seems to work fine with your
instructions.

  I feel really stupid :-(

  Thanks...

Ken W.

port installed | grep cmake
  cmake @3.23.5_0
  cmake @3.24.3_0
  cmake @3.24.4_0 (active)
  cmake-bootstrap @3.9.6_0 (active)
  tree-sitter-cmake @0.1.0_0 (active)

git clone --depth=1 https://github.com/kimwalisch/primesieve
Cloning into 'primesieve'...
remote: Enumerating objects: 148, done.
remote: Counting objects: 100% (148/148), done.
remote: Compressing objects: 100% (139/139), done.
remote: Total 148 (delta 16), reused 96 (delta 7), pack-reused 0
Receiving objects: 100% (148/148), 165.77 KiB | 998.00 KiB/s, done.
Resolving deltas: 100% (16/16), done.
BS: cd primesieve
primesieve: mkdir build
primesieve: cd !$
cd build
build: cmake ..
-- The CXX compiler identification is GNU 13.1.0
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/gcc-13.1.0-aarch64/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test atomic64
-- Performing Test atomic64 - Success
-- Performing Test ftree_vectorize
-- Performing Test ftree_vectorize - Success
-- Performing Test fvect_cost_model
-- Performing Test fvect_cost_model - Success
-- Performing Test multiarch_popcnt_bmi
-- Performing Test multiarch_popcnt_bmi - Failed
-- Performing Test multiarch_avx512
-- Performing Test multiarch_avx512 - Failed
-- Configuring done
-- Generating done
-- Build files have been written to:
/Users/kwolcott/Downloads/BS/primesieve/build
build: make
[  2%] Building CXX object CMakeFiles/libprimesieve.dir/src/api-c.cpp.o
[  4%] Building CXX object CMakeFiles/libprimesieve.dir/src/api.cpp.o
[  6%] Building CXX object
CMakeFiles/libprimesieve.dir/src/CountPrintPrimes.cpp.o
[  8%] Building CXX object CMakeFiles/libprimesieve.dir/src/CpuInfo.cpp.o
[ 10%] Building CXX object CMakeFiles/libprimesieve.dir/src/Erat.cpp.o
[ 12%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratSmall.cpp.o
[ 14%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratMedium.cpp.o
[ 17%] Building CXX object CMakeFiles/libprimesieve.dir/src/EratBig.cpp.o
[ 19%] Building CXX object CMakeFiles/libprimesieve.dir/src/iterator-c.cpp.o
[ 21%] Building CXX object CMakeFiles/libprimesieve.dir/src/iterator.cpp.o
[ 23%] Building CXX object CMakeFiles/libprimesieve.dir/src/IteratorHelper.cpp.o
[ 25%] Building CXX object CMakeFiles/libprimesieve.dir/src/LookupTables.cpp.o
[ 27%] Building CXX object CMakeFiles/libprimesieve.dir/src/MemoryPool.cpp.o
[ 29%] Building CXX object CMakeFiles/libprimesieve.dir/src/PrimeGenerator.cpp.o
[ 31%] Building CXX object CMakeFiles/libprimesieve.dir/src/nthPrime.cpp.o
[ 34%] Building CXX object CMakeFiles/libprimesieve.dir/src/ParallelSieve.cpp.o
[ 36%] Building CXX object CMakeFiles/libprimesieve.dir/src/popcount.cpp.o
[ 38%] Building CXX object CMakeFiles/libprimesieve.dir/src/PreSieve.cpp.o
[ 40%] Building CXX object CMakeFiles/libprimesieve.dir/src/PrimeSieve.cpp.o
[ 42%] Building CXX object CMakeFiles/libprimesieve.dir/src/SievingPrimes.cpp.o
[ 44%] Linking CXX shared library libprimesieve.dylib
-macosx_version_min has been renamed to -macos_version_min
ld: warning: ignoring duplicate libraries: '-lgcc'
[ 44%] Built target libprimesieve
[ 46%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/api-c.cpp.o
[ 48%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/api.cpp.o
[ 51%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/CountPrintPrimes.cpp.o
[ 53%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/CpuInfo.cpp.o
[ 55%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/Erat.cpp.o
[ 57%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/EratSmall.cpp.o
[ 59%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/EratMedium.cpp.o
[ 61%] Building CXX object CMakeFiles/libprimesieve-static.dir/src/EratBig.cpp.o
[ 63%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/iterator-c.cpp.o
[ 65%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/iterator.cpp.o
[ 68%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/IteratorHelper.cpp.o
[ 70%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/LookupTables.cpp.o
[ 72%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/MemoryPool.cpp.o
[ 74%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/PrimeGenerator.cpp.o
[ 76%] Building CXX object
CMakeFiles/libprimesieve-static.dir/src/nthPrime.cpp.o
[ 78%] Building CXX object

Re: New Port Request: Primesieve from https://github.com/kimwalisch/primesieve

2023-12-16 Thread Kenneth Wolcott
Hi Ken C.;

  Thanks, but I could not get it to compile on my machine (M1, Sonoma
14.2). I think I got a link error, don't recall right now.  Another
time I got an assert failure at the link stage.

Ken W.

On Sat, Dec 16, 2023 at 7:37 PM Ken Cunningham
 wrote:
>
> Someone can make a port for this, but here you are for a quickie, to show you 
> how this is done:
>
>
> % sudo port install cmake
>
>
> % git clone --depth=1 https://github.com/kimwalisch/primesieve
> % cd primesieve
> % mkdir build
> % cd build
> % cmake ..
> % make
>
> % ./primesieve 100 --count --print
> 2
> 3
> 5
> 7
> 11
> 13
> 17
> 19
> 23
> 29
> 31
> 37
> 41
> 43
> 47
> 53
> 59
> 61
> 67
> 71
> 73
> 79
> 83
> 89
> 97
> 25
>


Re: New Port Request: Primesieve from https://github.com/kimwalisch/primesieve

2023-12-16 Thread Ken Cunningham
Someone can make a port for this, but here you are for a quickie, to show you 
how this is done:


% sudo port install cmake


% git clone --depth=1 https://github.com/kimwalisch/primesieve
% cd primesieve
% mkdir build
% cd build
% cmake ..
% make

% ./primesieve 100 --count --print
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
25



Re: Idiomatic process for handling needed external language modules for which there is no port

2023-12-16 Thread Bill Cole

On 2023-12-15 at 23:57:47 UTC-0500 (Fri, 15 Dec 2023 20:57:47 -0800)
Kenneth Wolcott 
is rumored to have said:


Idiomatic process for handling needed external language modules for
which there is no port

Hi;

  I'm trying to understand how to logically handle external modules
for a language under MacPorts.

TL;DR:

How do you do package management on MacPorts for languages which might
need modules which MacPorts doesn't have?


I have no general answer, but I have not had *substantial* problems with 
Perl for a small set of projects using your "Scenario A." CPAN installs 
into functionally correct places in a MacPorts Perl installation, and I 
don't recall anything from MacPorts that should even be called a 
warning.




  This problem exists for many languages supported by MacPorts; ie:
Perl, Python, Raku, Julia, etc

  Scenario A:

1.  Install Perl from MacPorts.
2. Need Perl module XYZ.
3. Perl module XYZ does not exist on MaqcPorts.
4. Install (using CPAN, CPANm, or manually) the XYX module locating it
under the MacPorts port.
5. MacPorts complains about things installed under /opt/local that it
didn't put there (makes sense).

Scenario B:
1.  Install Perl from MacPorts.
2. Perl script I want to use requires a more recent version of Perl
than those found on MacPorts.
3. Install my own version of Perl (usually from source).
4. Need Perl module XYZ.
5. Install Perl module XYZ (trying to match it with my own install
location, but frequently screw this up).
6. End up with weird path issues, Perl and/or module(s) all confused.

Scenario C:
1.  Install Perl from MacPorts.
2. Install Perl from perlbrew.
3. Run into problems with #3-6 from Scenario B.

Scenario D:
1 Use a Docker container for Perl exclusively for these experiments
that I'm trying to use Perl for (various math learning, etc);
2. Install Perl from source
3. Install all needed external Perl modules myself on the Docker 
container.


Looks like I end up using Scenario D for Perl and Raku.  Now
considering this for Julia, Python, Rust, etc

So one of my problems is that I do not have a foolproof method
(understanding) of how to install modules  (Perl, Raku, etc) so that
the modules are not in conflict with multiple installations of the
main language.

Bottom-line question:

How do you do package management on MacPorts for languages which might
need modules which MacPorts doesn't have?

Thanks,
Ken Wolcott



--
Bill Cole
b...@scconsult.com or billc...@apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
Not Currently Available For Hire


Re: Idiomatic process for handling needed external language modules for which there is no port

2023-12-16 Thread Joshua Root

How do you do package management on MacPorts for languages which might
need modules which MacPorts doesn't have?

   This problem exists for many languages supported by MacPorts; ie:
Perl, Python, Raku, Julia, etc


The answer is different for each language. For Python, standard 
procedure is to use venv. 


I would assume for perl that if there isn't an equivalent mechanism, 
cpan should at least have an option to choose a different installation 
prefix. I don't know what the situation is for Raku and Julia.


- Josh