Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile error #39

Closed
cysin opened this issue Feb 23, 2010 · 7 comments
Closed

Compile error #39

cysin opened this issue Feb 23, 2010 · 7 comments

Comments

@cysin
Copy link

cysin commented Feb 23, 2010

[ 22%] Building CXX object src/CMakeFiles/hphp_runtime_static.dir/cpp/base/shared/shared_map.cpp.o
[ 22%] Building CXX object src/CMakeFiles/hphp_runtime_static.dir/cpp/base/shared/shared_string.cpp.o
[ 23%] Building CXX object src/CMakeFiles/hphp_runtime_static.dir/cpp/base/shared/shared_store.cpp.o
/usr/include/boost/interprocess/containers/container/map.hpp: In member function ‘T& boost::container::map<Key, T, Pred, Alloc>::operator[](boost::interprocess::rv<typename boost::container::containers_detail::rbtree<Key, std::pair<const _Key, _Tp>, boost::container::containers_detail::select1st<std::pair<const _Key, _Tp> >, Pred, Alloc>::key_type>&) [with Key = boost::container::basic_string<char, std::char_traits, std::allocator >, T = HPHP::StoreValue, Pred = std::less<boost::container::basic_string<char, std::char_traits, std::allocator > >, Alloc = HPHP::SharedMemoryAllocator<std::pair<boost::container::basic_string<char, std::char_traits, std::allocator >, HPHP::StoreValue> >]’:
/root/hiphop-php/src/cpp/base/shared/shared_store.cpp:106: instantiated from here
/usr/include/boost/interprocess/containers/container/map.hpp:363: error: invalid initialization of non-const reference of type ‘HPHP::StoreValue&’ from a temporary of type ‘HPHP::StoreValue’
/usr/include/boost/interprocess/detail/move.hpp:135: error: in passing argument 1 of ‘typename boost::disable_ifboost::interprocess::is_movable<T, T&>::type boost::interprocess::move(T&) [with T = HPHP::StoreValue]’
make[2]: *** [src/CMakeFiles/hphp_runtime_static.dir/cpp/base/shared/shared_store.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/hphp_runtime_static.dir/all] Error 2
make: *** [all] Error 2

@scottmac
Copy link
Contributor

What version of Thread Building Blocks do you have?

We need a lot more information to try and diagnose this.

@mailaddy
Copy link

I have had the exact same issue as this. TBB is tbb22_20090809oss, and I started with Boost 1.42, and also tried 1.41, 1.40, 1.39.

I haven't used TBB before and pointed to the precompiled intel64/cc4.1.0_libc2.4_kernel2.6.16.21 platform, but the running kernel is 2.6.18 - i don't know if this could be relevant.

@scottmac
Copy link
Contributor

Did you completely remove all the other versions of boost before installing the new one?

I can't reproduce this error and it's showing in Boost that its having a problem.

@mailaddy
Copy link

I did remove all the boost library files and headers before installing the different versions. I also removed the git hiphop-php dir and started fresh each time.

This is on CentOS 5.4, and the boost versions are all compiled from source as it only has 1.33 in yum.

@erikljungstrom
Copy link

I've been getting exactly the same on an RHEL 5.4 machine, but decided to be a bit drastic and downgraded to boost 1.37 (available on their sourceforge page) and found that it worked.

@cysin
Copy link
Author

cysin commented Feb 24, 2010

I am using CentOS 5.3 and installed all the libraries needed as instructed. My TBB is pre-compiled version: tbb22_20090809oss_lin.tgz and boost is 1.42.0. What else information do I need to offer for diagnosing?

@mailaddy
Copy link

erikljungstrom - Thanks for that, I tried with 1.38 after seeing your comment, and that also worked.

cysin - If you use Boost 1.37 or 1.38 it should compile for you. You may need to move the header files to /usr/include/boost/ with these versions as the default install location was /usr/local/include/boost-1_38/boost/

scottmac pushed a commit that referenced this issue Jul 8, 2011
Summary:
We never supported the other quote styles for html_entity_decode()
and htmlspecialchars_decode(). The default was always to decode " but
leave ' alone.

Add support so single quotes can be decoded with ENT_QUOTES and also
allow ENT_NOQUOTES

Test Plan:
fast_tests
scanned www to see what might break

Compared PHP and HPHP with:
<?php
echo "ENT_QUOTES\n";
var_dump(html_entity_decode("&#39;", ENT_QUOTES));
var_dump(html_entity_decode("&quot;", ENT_QUOTES));
var_dump(html_entity_decode("&#39;", ENT_QUOTES));
echo "ENT_COMPAT\n";
var_dump(html_entity_decode("&#39;", ENT_COMPAT));
var_dump(html_entity_decode("&quot;", ENT_COMPAT));
var_dump(html_entity_decode("&#39;", ENT_COMPAT));
echo "ENT_NOQUOTES\n";
var_dump(html_entity_decode("&#39;", ENT_NOQUOTES));
var_dump(html_entity_decode("&quot;", ENT_NOQUOTES));
var_dump(html_entity_decode("&#39;", ENT_NOQUOTES));

Reviewed By: mwilliams
Reviewers: mwilliams, myang, andrewparoski
CC: ps, mwilliams
Revert Plan:
Ok

Tags:

- begin *PUBLIC* platform impact section -
Bugzilla: #
- end platform impact -

Differential Revision: 279238
hhvm-bot pushed a commit that referenced this issue Mar 15, 2018
…ble in the typing environment

Summary:
This is a followup to D7179617, which made the wrong assumption that a variable can never be bound to another variable in the typing environment, and as a consequence `Env.expand_type` can never return a `Tvar`.  The following example proved this assumption wrong:
```
<?hh // strict
// Copyright 2004-present Facebook. All Rights Reserved.

class C<T> {
  final public function __construct(
    private T $obj,
  ) {}

  final public function f<Tu>(): void where T = ?Tu {}
}

function test(bool $b, ?int $x): void {
  if ($b) {
    $y = null;
  } else {
    $y = $x;
  }
  hh_show($x);
  hh_show($y);
  $c = new C($y);
  hh_show($c);
  hh_log_level(2);
  $c->f();
  hh_log_level(0);
}
```
It was hitting `assert false` that I put in to preserve completeness of the pattern match:
```
File "hphp/hack/test/typecheck/meh_test.php", line 18, characters 3-13:
  ^(mixed)
File "hphp/hack/test/typecheck/meh_test.php", line 19, characters 3-13:
  ^(^mixed)
File "hphp/hack/test/typecheck/meh_test.php", line 21, characters 3-13:
  C as C<^(^mixed)>
File "hphp/hack/test/typecheck/meh_test.php", line 9, characters 49-51:
  Typing_subtype.sub_type_with_uenv uenv_sub.unwrappedToption=false uenv_super.unwrappedToption=false
    ty_sub: ?#39[unresolved]
    ty_super: #31(#27mixed)
File "hphp/hack/test/typecheck/meh_test.php", line 14, characters 10-13:
  Typing_subtype.sub_type_with_uenv uenv_sub.unwrappedToption=false uenv_super.unwrappedToption=false
    ty_sub: (#27#42mixed)
    ty_super: ?#39mixed
File "", line 0, characters 0--1:
  Typing_subtype.sub_type_with_uenv uenv_sub.unwrappedToption=false uenv_super.unwrappedToption=false
    ty_sub: #27#42mixed
    ty_super: ?#39mixed
Fatal error: exception File "/data/users/manzyuk/fbsource/fbcode/hphp/hack/src/typing/typing_subtype.ml", line 1109, characters 35-41: Assertion failed
```
As can be seen from the debugging info, we are getting a type `^^mixed` (i.e., a variable pointing to a variable pointing to `mixed`).  This is a result of unifying `^mixed` with another type: to unify a variable with a type, we unify the type the variable is bound to with the other type, create a new variable pointing to the unification, and add a binding from the old variable to the new one in the typing environment instead of the substitution map.  This diff changes that.

Reviewed By: andrewjkennedy

Differential Revision: D7287484

fbshipit-source-id: f4b21b0d14d90520d1e5b16d14890a1220d8b004
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants