Visual Studio 2022 17.3

微軟在 2021 年底推出 Visual Studio 2022(17.0)後,也又推出了 17.117.2 兩次大更新了。目前看來大概就是以三個月一次的頻率,來推出新的次版號,所以現在微軟也又推出了新的 17.3 了!

官方的公告是《Visual Studio 2022 17.3 is now available!》。詳細的紀錄可以參考官方 release note

閱讀更多»

Windows 環境的 libcurl https 支援

cURL 是一個很知名的開源專案(官網),他主要的功能是用來存取包含 Http、FTP、SMTP 等在內通訊協定的命令提示字元工具,在 Linux 環境算是相當常用到的。

而同時,他也有 libcurl 這個 C 語言的函式庫(官網),讓開發者可以透過它還存取網路上的 資源。

而 Heresy 這次會要用他,主要是要去下載 https 的檔案,但是一開始用 CMake 來建置的時候,卻發現真的去開 https 的時候,卻出現了不支援的錯誤…

curl_easy_perform() failed: Unsupported protocol

閱讀更多»

Visual Studio 2022 17.2 正式推出

微軟在去年底正式推出了第一款原生 64 位元的 Visual Studio 2022(17.0)後,其實已經有一次比較大的更新、17.1 了~

不過比較可惜的是,Heresy 這邊的程式因為踩到 Lambda + OpenMP 的問題,所以一直沒能把主要的建置環境切換到 Visual Studio 2022…

而現在,微軟終於推出解決該問題的 Visual Studio 2022 17.2 了!
官方的介紹是《Visual Studio 2022 17.2 is now available!》,比較完整個變化則可以參考官方的 Release Note

閱讀更多»

Visual C++ 終於正式支援 OpenMP 3 的 task 了

微軟的 Visual C++ 這幾年雖然對於 C++ 新的標準支援的算是相當積極,但是對於 OpenMP 的支援一直以來都很糟糕,儘管官方標準已經更新到 OpenMP 5.2 了,但是直到推出 Visual Studio 2019 的時候,卻還停留在 OpenMP 2.0 的超古老版本…

直到之前在 Visual Studio 2019 16.9 的時候,才終於試著開始幫 Visual C++ 的 OpenMP 加上新功能;當時主要的改進,是加入了 OpenMP 對於 SIMD 的支援,另外也開始試著要將 OpenMP 的實作切換到 LLVM 的版本。

而這次微軟又發布了《OpenMP Task Support for C++ in Visual Studio》,在最新的 Visual Studio 2022 17.2(還在預覽階段)中,在使用 LLVM OpenMP(加上 -openmp:llvm)的情況下,終於支援 OpenMP 3 的 task 這個 directive 了!

閱讀更多»

用 AI 來輔助寫程式:直接給你整個函式的 GitHub Copilot

GitHub Copilot(官網)是 GitHub 在 2021 年六月發布,一個透過 OpenAI(官網)的 Codex 系統(官網、應該是基於 GPT-3)來完成的 AI 程式輔助開發系統。

以往的程式輔助系統,大部分都是很局部的自動完成,例如自動完成要呼叫函式名稱、或是變數名稱;雖然算是很有幫助,但是其實相對侷限。

而 GitHub Copilot 則是透過深度學習技術,大幅強化了自動完成的能力,甚至變成可以只打註解、就給你整個函式的內容!在應用上的空間,算是提供了相當的程度。

閱讀更多»

Visual Studio 的 Solution Filter

在開發一個大型專案裡面,通常會有一堆小專案,彼此之間可能還會有很複雜的相依性;在 Visual Studio 裡,微軟是透過一個「方案」(solution、附檔名是 sln)來管理多個「專案」(project)的形式來做的,在開啟方案後,就會把所有的專案都載入。

但是實際上,大部分要開發的時候,其實都是針對特定專案來進行,其實只需要和他有關的專案就可以了,並不需要真的把所有的專案都載入。

為了這種需求,微軟其實有提供「方案篩選」的功能(官方文件),讓開發者可以在不修改方案的情況下,自行設定要載入那些專案、並儲存成一個 Solution Filter(副檔名是 slnf)的檔案,方便日後使用。閱讀更多»

Visual Studio 2022 Lambda + OpenMP 的問題

這篇算是紀錄一下,Heresy 這邊在想把開發環境從 Visual Studio 2019 升級到 Visual Studio 2022 時,踩到的新版編譯器在 lambda expression 這邊的地雷,算是稍微紀錄一下了。

Heresy 這邊踩到的地雷,是 lambda expression + OpenMP 的相容性問題;下面就是一個會出問題的簡單程式碼:

#include <iostream>
 
int main()
{
  auto f = []()
  {
    #pragma omp parallel for //Error
    for (int i = 0; i < 10; ++i)
    {
    }
  };
 
  return 0;
}

閱讀更多»

原生 64 位元的 Visual Studio 2022 正式推出

今年四月,微軟就有公布新的 Visual Studio 2022 會是第一款原生 64 位元的 Windows 整合式開發環境了~而從六月開始,微軟也不停地釋出新的預覽版,讓眾多的開發者幫忙找問題。

現在,Visual Studio 2022 終於推出正式版了!他的官方網站是 https://aka.ms/vs2022,官方的公告則是《Visual Studio 2022 now available》;下面則是官方的介紹影片:

閱讀更多»

C++AMP 已死

C++ AMP 是微軟在 2011 年發表、在 2012 年推出的一套適用於 GPGPU、大量平行化的 C++ 函式庫。他基本上算是相對高階的 GPGPU 開發方案,由於底層是使用 DirectX 來做的,所以理論上能支援不同廠牌的顯示卡(參考《C++ AMP 相關資料》)。

不過,由於 Heresy 這邊還是有考慮到要跨到 Linux 環境的問題,所以簡單玩了一下後,就沒有去認真研究這個東西了。(不過由於 C++AMP 屬於開放標準,倒也真有人在 CLANG/LLVM + OpenCL 弄出了 C++AMP 的實作;參考《Bringing C++AMP Beyond Windows via CLANG and LLVM》)

而前幾天,忽然和到 Google 推薦的文章《C++ AMPの死について》,這才發現原來 C++AMP 也已經被微軟賜死了…

閱讀更多»