Windows 版、cygwin でも mingw でもなく、msvc 版のビルドを試みる。

unknown: html => {"type":"html","value":"<!-- truncate -->","position":{"start":{"line":4,"column":1,"offset":49},"end":{"line":4,"column":18,"offset":66}}}

あと 59 個コンパイルを通す。

dependency

bohem gc と openssl の meson 依存を追加した。

bohem gc が 6 から 8 に上がるので、 そのままで動くか確認は必要。

ncurses (termcap/terminfo) への依存を削除する。 fxtui を導入したので削除する準備はできている。

unix headers

unistd.h

わりといっぱい使っている。

setjmp.h

大域脱出。 とりあえず削除。 必要に応じて後で、c++ の throw/try として復活させればよさそう。

static JMP_BUF AbortLoading;
static void KeyAbort(SIGNAL_ARG) {
  LONGJMP(AbortLoading, 1);
  SIGNAL_RETURN;
}

strncasecmp

https://github.com/osmcode/libosmium/issues/59

#ifdef _MSC_VER
#define strncasecmp _strnicmp
#define strcasecmp _stricmp
#endif

とりあえずコンパイルを通したが…

ぜんぜん動く状態でないのでちゃんと書き換えが必要。

  • socket

  • local cgi, setenv

  • file copy, move, symblink, mkdir, chmod, stat

  • fork, pipe

  • sleep

とはいえ、8割くらい libuv の守備範囲に入っていそう。

#ifdef _MSC_VER が印になっているので、 これを lubuv 実装で置き換えていく。

動いた

gzip を zlib 組込みで解凍できるようにした。