通过vcpkg和最新的MSVC编译器使用Boost.Hana

概述

null

当我们继续致力于提高C++社区的MSVC编译器的一致性时 ,我们希望启用更多的C++库, 今天我们将Boost,哈娜引入Visual C++。 建筑物 关于我们最近C++的一致性进展 , 客户现在可以在VS2017 15.7更新中使用Boost.Hana 在我们应用了 vcpkg公司 版本 . 我们要感谢Boost.Hana的作者 , 路易迪翁 , 感谢他与我们一起努力并给予我们支持。

我怎么得到它?

  • 转到 GitHub上的vcpkg回购 并按照README.md中的说明进行操作
  • 我们创建了一个新的fork-of-Boost.Hana并将vcpkg重定向到该版本
  • 构建vcpkg后,运行以下命令安装Boost.Hana:
    • vcpkg.exe安装boost hana
    • 在Windows上安装Boost时,您将看到以下免责声明: “当前的MSVC版本还不能编译boosthana。 使用boost 1.67中的fork,它提供了源代码解决方法。”

背景

你可能见过我们的 关于C++一致性完成的VCBPOST帖子 为我们的编译器提供最新的VS2017更新。A 2018年6月初,MSVC由于几个阻塞错误,无法构建Boost.Hana的主分支 . 我们两年前就开始着手这方面的工作,并修复了库中暴露的大约40个编译器错误。我们在COSTEXPR中遇到了一些阻塞问题,所以我们的努力被暂停了一段时间,直到我们在C++ 14和C++ 17中符合了与VS2017 15.7版本一致的进展。 .

我们最近重新讨论了该状态,VS2017 15.7更新中修复了大多数阻塞constexpr问题。 编译器中的多个特性领域仍然存在一些悬而未决的问题,这些问题阻碍了我们构建Boost.Hana .

虽然编译器中的工作还有待完成,但由于客户对这个库的大量需求,我们已经 在Boost.Hana中为剩余的编译器错误提供源代码解决方法。这是必要的,这样我们就可以有所有已知问题的完整测试覆盖。我们现在正在日常测试中构建它,以保持无回归编译器的开发,同时实现与编译器的一对一奇偶校验 公共图书馆资源。

在与Louis讨论了这个问题之后,我们共同同意在中提供一个版本的Boost.Hana vcpkg公司 促进 在Visual C++社区中,更多的C++用户使用该库。 这包括我们之前确定的补丁,以及 在修复剩余的bug时,我们将逐步更新vcpkg中Boost.Hana的版本, 最终删除它并在修复错误时用master替换它 . 我们认为,我们的努力已经足够接近,我们可以在vcpkg中公开进行这一进展,而不会妨碍依赖该库的新用户。

再次感谢路易斯愿意 Hana错误报告 很快就解决了,大大加快了我们的进度。

源解决方案就位

  • MSVC特定的源代码解决方法出现在70个地方 : 27个在库中,20个在测试中,以及 示例中的23。
  • 这些 都在前缀为“”的唯一宏定义下 增强u HANA u解决方法u MSVC_ “并用我们内部数据库中针对每个问题的特定bug ID号进行了修复。 全部详细信息 更多信息。
  • 这里有一些例子 : 图片[1]-通过vcpkg和最新的MSVC编译器使用Boost.Hana-yiteyi-C++库

编译器错误

  • VS2017 15.7更新有25个活动Bug。
  • 我们计划在 VS2017 15.9更新。 图片[2]-通过vcpkg和最新的MSVC编译器使用Boost.Hana-yiteyi-C++库

W 下一个是什么…

  • 在VisualStudio2017的剩余更新中,我们将耗尽阻止Boost.Hana库上游版本的剩余MSVC错误。在修复bug时,我们将逐步更新相应的源代码解决方法 .
  • 我们将继续提供最新进展情况 .
  • 我们将确保依赖vcpkg中此库的用户不会受到我们工作的影响。
  • Range-v3呢?
    • 同样,我们正在跟踪编译器中的所有Range-v3阻塞错误,并计划在剩余的visualstudio 2017更新中修复它们。

谢谢您,

向凡,乌尔齐卢夫桑巴特

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享