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

software-version-display-stringが空文字列になるのを防ぐ #51

Merged
merged 2 commits into from May 8, 2012

Conversation

xyzzy-17-638
Copy link

  • misc/update_version_describe.batを実行した際、gitが見つからず、結果としてversion-describe.gen.hでの定義が空文字列になっている場合に「ヘルプ(?)」>「について(A)...」に出るバージョンも空文字列になるのを防ぐ
  • xyzzy-022/xyzzyのPR#267と同様にversion-describe.gen.hを削除

@mumurik
Copy link
Owner

mumurik commented May 8, 2012

サンクス。この辺全然追ってなかったので助かります。

mumurik added a commit that referenced this pull request May 8, 2012
software-version-display-stringが空文字列になるのを防ぐ
@mumurik mumurik merged commit 3717eac into mumurik:master May 8, 2012
@xyzzy-17-638
Copy link
Author

gitはどれが入っているのを前提にするのが良いんでしょうね。022に合わせてmsysgitで良いのかな?

あと(call-process "dir" ...) が失敗するのは単純にdirはcmd.exeの内部コマンドなので、dir.exeとかそういったものが無いからでは?

@mumurik
Copy link
Owner

mumurik commented May 8, 2012

multiframe版はgitが入ってる事を前提としないつもりです。
こちらはVSのExpress Editionさえ入ってれば何もしなくてもsln実行して動く、を基本とする。
この辺は向こうとは好みの違いが出ていいんじゃないかなぁ、と自分としては思ってます。

ただ、そういう時にどうslnやvcxprojを共有するか、という所にはエンジニアリングがいりますな。

そしてdirがdir.exeが無いってのはそうな気もするけれど、じゃあこのテストはなんなんだろう?という気も。

@xyzzy-17-638
Copy link
Author

gitとポリシーについては了解しました。選択肢はこんな感じかなー?

  • misc/update_version_describe.batをちゃんと書き換える
  • 一時的にダミーのgit.batなどを作ってバッチファイルからの呼び出しを奪う

テストについてはコメントのとおり、call-process の副作用のみを利用しているので、
"dir" の呼び出しが失敗していてもパスするのだと思います。

call-processQdefault_dir に移動するのは、
process.cc:Fcall_process() 内の CreateProcess() のあと

  w2s (dir, xsymbol_value (Qdefault_dir));
  WINFS::SetCurrentDirectory (dir);

で行われています。この動作は直前に実行された CreateProcess() の結果によらず、無条件に実行されます。

@mumurik
Copy link
Owner

mumurik commented May 8, 2012

call-processでerrorが上がっちゃうので失敗しちゃうんですが、こっちの環境がおかしいのかしら?>テスト

gitの件はvcxprojのBuild Eventを書き換えるでいいと思いますがね。

ただバージョン番号についてはもう少し考えてもいいかもしれない。
正式リリース以外にはビルド番号で十分なのに今は普通にバージョン番号ふってるので毎回パッチレベルがつく。
これはちょっとおかしい。この点は0.2.2系列の方が正しいとは思ってるので真似してもいいかもしれない。

@xyzzy-17-638
Copy link
Author

ありゃうちでもテスト失敗しました…実行してから書けばよかったw
DeaRさんの指摘どおりcmd.exe /c経由に変えれば通るので、ちゃんと書き換えたほうが良さそう。

@mumurik
Copy link
Owner

mumurik commented May 8, 2012

ま、この件は誰か気が向いたらPR出すって事でいいっしょ>test

mumurik pushed a commit that referenced this pull request May 30, 2012
例:

  (c:defun-c-callable
    c:int
    (callback :convention :cdecl)
    ((c:int n))
    "test.dll")
  => callback

  #'callback
  => #<c-callable: cdecl #<lexical-closure: (anonymous)>>

呼び出し規約が :cdecl の場合は以下のトランポリンを生成する。

  0000: 68 XX XX XX XX : push SELF
  0005: e8 XX XX XX XX : call C-CALLABLE-STUB
  000a: c3             : ret
  000b: cc             : int 3
  000c: cc             : int 3
  000d:
mumurik pushed a commit that referenced this pull request May 30, 2012
例:

  (c:define-dll-entry
    c:int
    (strlen :convention :cdecl)
    "msvcrt.dll")

c:defun-c-callable との対称性のために追加する。実際の処理では
このオプションの指定は無視し常に stdcall として呼び出す。
mumurik pushed a commit that referenced this pull request May 30, 2012
MSVCRT の qsort を利用してテスト。
snmsts pushed a commit to snmsts/xyzzy that referenced this pull request Apr 11, 2019
* dir コマンドは cmd.exe の内部コマンドなので cmd.exe 経由で実行
* call-process のキーワード引数が間違っていたのを修正

Thanks:
  mumurik/xyzzy#51
  http://twitter.com/#!/nayuri_aohime/status/199844326602309632
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants