Skip to content

parallel-hashmap: update to 2.0.0#29657

Merged
judaew merged 1 commit intomacports:masterfrom
trustbyte:parallel-hashmap_200
Oct 19, 2025
Merged

parallel-hashmap: update to 2.0.0#29657
judaew merged 1 commit intomacports:masterfrom
trustbyte:parallel-hashmap_200

Conversation

@trustbyte
Copy link
Contributor

Description

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 26.0.1 25A362 arm64
Command Line Tools 26.0.0.0.1.1757719676

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL in commit message?
  • checked your Portfile with port lint?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?
  • checked that the Portfile's most important variants haven't been broken?

@macportsbot
Copy link

Notifying maintainers:
@barracuda156 for port parallel-hashmap.

@trustbyte
Copy link
Contributor Author

allout.txt
@barracuda156 It is working on mine (see attached) failing with the runners, any ideas? Thanks.

@barracuda156
Copy link
Contributor

barracuda156 commented Oct 15, 2025

@trustbyte This is all I needed locally for the build to work: macos-powerpc/powerpc-ports@14c2b54
(Not sure if tests were ran or not, can check that.)

Since the project itself only asks for C++11 https://github.com/greg7mdp/parallel-hashmap/blob/88123934b46b77c3b6d80167382734cbff6eff74/CMakeLists.txt#L27 I think C++14 was due to gtest involvement. Why require C++17 though?

Upd. Perhaps gtest changed since then, and needs C++17 now.

@barracuda156
Copy link
Contributor

From the CI log here:

  /opt/local/var/macports/build/parallel-hashmap-bfd57aad/work/parallel-hashmap-2.0.0/parallel_hashmap/phmap_fwd_decl.h:81:57: error: a space is required between consecutive right angle brackets (use '> >')
     81 |                             phmap::priv::Pair<const K, V>>> // alias for std::allocator
        |                                                         ^~
        |                                                         > > 
  /opt/local/var/macports/build/parallel-hashmap-bfd57aad/work/parallel-hashmap-2.0.0/parallel_hashmap/phmap_fwd_decl.h:87:53: error: a space is required between consecutive right angle brackets (use '> >')
     87 |               class Alloc = phmap::priv::Allocator<T>> // alias for std::allocator
        |                                                     ^~
        |                                                     > >
  /opt/local/var/macports/build/parallel-hashmap-bfd57aad/work/parallel-hashmap-2.0.0/parallel_hashmap/phmap_fwd_decl.h:94:63: error: a space is required between consecutive right angle brackets (use '> >')
     94 |                             phmap::priv::Pair<const Key, Value>>> // alias for std::allocator
        |                                                               ^~
        |                                                               > > 
  /opt/local/var/macports/build/parallel-hashmap-bfd57aad/work/parallel-hashmap-2.0.0/parallel_hashmap/phmap_fwd_decl.h:109:57: error: a space is required between consecutive right angle brackets (use '> >')
    109 |                             phmap::priv::Pair<const K, V>>, // alias for std::allocator
        |                                                         ^~
        |                                                         > >
  /opt/local/var/macports/build/parallel-hashmap-bfd57aad/work/parallel-hashmap-2.0.0/parallel_hashmap/phmap_fwd_decl.h:126:63: error: a space is required between consecutive right angle brackets (use '> >')
    126 |                             phmap::priv::Pair<const Key, Value>>, // alias for std::allocator
        |                                                               ^~
        |                                                               > >

I recall seeing similar complaints from gcc with some Qt4-based project, but did not investigate the matter. Does adding a space work?

@barracuda156
Copy link
Contributor

barracuda156 commented Oct 15, 2025

@trustbyte On Catalina is fails now both from my older port and your from this PR. So this should be a draft, it is broken presently.

P. S. It fails on gmock though, not parallel-hashmap own code.

size 2047800
checksums rmd160 a37046afe248c835966a3b66e5d242b5f3b8dd30 \
sha256 4f462f51a3468166ea4cf87c80e001dc1999093264cf55cbda3492ca39a7730b \
size 2059086 \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove that slash, otherwise we can miss it later. And an added extra line above platfrom darwin (no need for two empty lines).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed, thanks for checking it up.

@barracuda156
Copy link
Contributor

barracuda156 commented Oct 15, 2025

I wonder if we can use MacPorts’ mock instead (and then also drop dependency on git).

Upd. We got a pretty out-of-date gtest, does the current release build at all? Maybe worth fixing that first.

@barracuda156
Copy link
Contributor

Okay, gtest 1.17.0 builds fine on Catalina, so perhaps something in parallel-hashmap messes it up.

main.log

@barracuda156
Copy link
Contributor

@trustbyte I have opened an issue, see details there: google/googletest#4860

@barracuda156
Copy link
Contributor

--->  Testing parallel-hashmap
Warning: parallel-hashmap is configured to build for the architecture(s) 'x86_64', but did not install any Mach-O files.
Executing:  cd "/opt/local/var/macports/build/_opt_CatalinaPorts_devel_parallel-hashmap/parallel-hashmap/work/build" && /usr/bin/make test 
Running tests...
/opt/local/bin/ctest --force-new-ctest-process 
Test project /opt/local/var/macports/build/_opt_CatalinaPorts_devel_parallel-hashmap/parallel-hashmap/work/build
      Start  1: test_container_memory
 1/17 Test  #1: test_container_memory ...............   Passed    0.24 sec
      Start  2: test_hash_policy_testing
 2/17 Test  #2: test_hash_policy_testing ............   Passed    0.61 sec
      Start  3: test_node_hash_policy
 3/17 Test  #3: test_node_hash_policy ...............   Passed    0.25 sec
      Start  4: test_raw_hash_set
 4/17 Test  #4: test_raw_hash_set ...................   Passed    0.61 sec
      Start  5: test_raw_hash_set_allocator
 5/17 Test  #5: test_raw_hash_set_allocator .........   Passed    0.26 sec
      Start  6: test_flat_hash_set
 6/17 Test  #6: test_flat_hash_set ..................   Passed    0.39 sec
      Start  7: test_flat_hash_map
 7/17 Test  #7: test_flat_hash_map ..................   Passed    0.95 sec
      Start  8: test_node_hash_map
 8/17 Test  #8: test_node_hash_map ..................   Passed    0.51 sec
      Start  9: test_node_hash_set
 9/17 Test  #9: test_node_hash_set ..................   Passed    0.51 sec
      Start 10: test_parallel_flat_hash_map
10/17 Test #10: test_parallel_flat_hash_map .........   Passed    1.07 sec
      Start 11: test_parallel_flat_hash_set
11/17 Test #11: test_parallel_flat_hash_set .........   Passed    0.41 sec
      Start 12: test_parallel_node_hash_map
12/17 Test #12: test_parallel_node_hash_map .........   Passed    1.03 sec
      Start 13: test_parallel_node_hash_set
13/17 Test #13: test_parallel_node_hash_set .........   Passed    0.43 sec
      Start 14: test_parallel_flat_hash_map_mutex
14/17 Test #14: test_parallel_flat_hash_map_mutex ...   Passed    1.01 sec
      Start 15: test_dump_load
15/17 Test #15: test_dump_load ......................   Passed    0.25 sec
      Start 16: test_erase_if
16/17 Test #16: test_erase_if .......................   Passed    0.25 sec
      Start 17: test_btree
17/17 Test #17: test_btree ..........................   Passed   12.23 sec

100% tests passed, 0 tests failed out of 17

Total Test time (real) =  21.01 sec

You may try this: greg7mdp/parallel-hashmap#288

@barracuda156
Copy link
Contributor

I will try on Sonoma to see if I also get space errors. On Catalina the build works with default clang now. (For the record, I updated gtest to 1.17.0.)

@trustbyte
Copy link
Contributor Author

Lets hope this one (#29666) builds and gets in first so we have something going.

@judaew
Copy link
Member

judaew commented Oct 18, 2025

Thank you for the PR, I just merged PR with the gtest. Now this PR needs to be rebased with upstream to check if the new gtest version resolves the issue.

How to rebase Update your local branch with upstream:
git checkout <your_branch>
git fetch upstream
git rebase upstream/master

Resolve any merge conflicts if they occur, then force push

@trustbyte trustbyte force-pushed the parallel-hashmap_200 branch 2 times, most recently from 9428c44 to e890ec6 Compare October 18, 2025 17:31
@trustbyte
Copy link
Contributor Author

Just curious, why rebase? The runners use the latest master and my branch, right?
Anyway, did rebase and pushed, we'll see how it goes.

@trustbyte
Copy link
Contributor Author

@barracuda156 It looks good, what about the compiler, should I take it out, leave at 2014 or?

Then I'll squash and done.

@barracuda156
Copy link
Contributor

what about the compiler, should I take it out, leave at 2014 or?

I think it is safer to match the setting in gtest port.

@trustbyte trustbyte force-pushed the parallel-hashmap_200 branch from 6915b48 to ed1966a Compare October 18, 2025 18:40
@trustbyte
Copy link
Contributor Author

OK, Left it as in gtest (

compiler.cxx_standard 2014
), removed the git part, cleaned up. Done.

Thank you!

@trustbyte trustbyte marked this pull request as ready for review October 18, 2025 18:44
size 2059086

github.tarball_from archive
depends_test port:gtest
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be build dependency. Alternatively, building tests can be disabled by default and moved into a variant.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, depends_build-append then.

@trustbyte trustbyte force-pushed the parallel-hashmap_200 branch from fbc22ae to de738c0 Compare October 18, 2025 18:52
configure.args-append -DPHMAP_INSTALL=ON \
-DPHMAP_BUILD_TESTS=ON \
-DPHMAP_BUILD_EXAMPLES=OFF
configure.ldflags-append -pthread
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last thing – sorry, missed this – is this actually needed on some macOS version? It should be set by CMake if not by compiler to begin with.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not, leftover from some test.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P. S. And if it is needed, then it is worth also reporting it to upstream so that it can be fixed by next release. I only tried on 10.6 and 10.15, neither needed manual -pthread.

@trustbyte trustbyte force-pushed the parallel-hashmap_200 branch from 62f1a10 to 65770e2 Compare October 18, 2025 18:56
@judaew judaew merged commit 62c004b into macports:master Oct 19, 2025
3 checks passed
@trustbyte trustbyte deleted the parallel-hashmap_200 branch October 19, 2025 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

4 participants