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

文字コードをUTF-8にしたい #21

Closed
meltingrabbit opened this issue Nov 21, 2021 · 29 comments
Closed

文字コードをUTF-8にしたい #21

meltingrabbit opened this issue Nov 21, 2021 · 29 comments
Assignees
Labels

Comments

@meltingrabbit
Copy link
Collaborator

meltingrabbit commented Nov 21, 2021

概要

文字コードをUTF-8にしたい

詳細

現在SJISの文字コードをUTF-8にしたい.
ただし,現在のISSLの環境がSJISを要求するので,できるのはそれが解消されてからか.

close条件

なったら

備考

@meltingrabbit meltingrabbit added icebox icebox or pending tools labels Nov 21, 2021
@meltingrabbit
Copy link
Collaborator Author

というか,だめ文字問題あるし,早くしないとじゃん < icebox

@sksat
Copy link
Collaborator

sksat commented Nov 24, 2021

実はSJISが要求される環境が特殊環境(かつ,今後は撤退していく環境)なので,もうUTF-8にしてしまって,SJIS必要な時だけビルド前にUTF-8->SJISに変換すればいい説ないですか

@meltingrabbit
Copy link
Collaborator Author

meltingrabbit commented Nov 24, 2021

SJISが必要なの,SILSではなくて,現ISSL OBCのボードのビルド環境(=つまり実機,つまり本ソースコードのメイン目的,つまり一番大事なところ)なんだよね.

というのがあって,変えることに踏み切れてない.

@sksat
Copy link
Collaborator

sksat commented Nov 24, 2021

まあいざ現状一番大事なやつを変えるのが怖いのはありますねえ.リモートリポジトリから今の渋い環境への依存を抜こうと思うと#pragma sectionとか消したくなってくるしなあ.

@meltingrabbit
Copy link
Collaborator Author

わかる.ここらへんのコンテキストスイッチをどうすればいいのか,結構悩み.(本当はcloneしたあと,ターゲットにあわせて前処理すべき場所なきがしているし.)

@sksat
Copy link
Collaborator

sksat commented Dec 27, 2021

#121 は(GitHubがこの問題を修正するか)SJISである限り発生しうる問題なのでUTF-8にしたいポイント++

@meltingrabbit
Copy link
Collaborator Author

いろいろ問題が顕著になってきたので,やるぞやるぞやるぞ!

とはいえ...

@meltingrabbit meltingrabbit added priority::high priorityg high and removed icebox icebox or pending labels Jan 12, 2022
@meltingrabbit
Copy link
Collaborator Author

現状の問題

  • ISSLの重要なOBCの開発環境がSJIS only
  • remote repositoryをutf-8にして,ビルドflowでutf-8にするという方針もある
    • が,一度でもビルドすると,commitしようにも全ファイルがdiffに...
  • local repositoryからファイルをコピーしたworking dirにてビルド作業をする?
    • デバックポイント打ちながら,修正しながらデバッグしたい...

@meltingrabbit
Copy link
Collaborator Author

実は,

が,一度でもビルドすると,commitしようにも全ファイルがdiffに...

とあるが,coreがそうでも,user側には影響ないのでは?

つまり,coreはutf-8にしてしまって,userのrepositoryはsjisにしてしまい,post checkout hook or build flowでcoreをsjisにしてしまう?

問題は, sjis→utf-8の変換が冪等ではないので,2重実行をどう防ぐか.

@meltingrabbit
Copy link
Collaborator Author

コメントが少ないファイルもあるので,そうなるとsjisの自動文字コード判定結構見するんよなぁ...

どこかでflag持つのか??

@sksat
Copy link
Collaborator

sksat commented Jan 12, 2022

#170 とかもありますしそこらへんに謎の文字コードフラグを押し込んでおいてもいいかもしれない(渋いがマシではある)

@meltingrabbit
Copy link
Collaborator Author

meltingrabbit commented Jan 12, 2022

フラグ

と思ったんだけど,例えばfetchとかcheckoutして部分的なファイルだけoverwriteされたときに詰むなとおもったので,やっぱ,

対象ファイルの文字コード判定 → utf-8 or non sjis ならutf-8と仮定してconvet

するしかないのかなと思い始めた.

@sksat
Copy link
Collaborator

sksat commented Jan 12, 2022

うーむそういう用途あるのかー,まああるよなー.何故かPythonみたいに# -*- coding: utf-8 -*-みたいなことやるとかか...?

@meltingrabbit
Copy link
Collaborator Author

meltingrabbit commented Jan 12, 2022

# -*- coding: utf-8 -*-

かなり渋い...

@sksat
Copy link
Collaborator

sksat commented Jan 12, 2022

でも文字コードよしなに判別するのはもっと渋いという...

@meltingrabbit
Copy link
Collaborator Author

core更新時は,一旦discardしてもらって,更新して,また回す,かなぁ...

@meltingrabbit
Copy link
Collaborator Author

meltingrabbit commented Jan 12, 2022

あー,でもbuild workflowにいれるには冪等性が...

いやそれは全体フラグがあればいい.

@meltingrabbit
Copy link
Collaborator Author

build flowで,

cd ${path_to_core}
git reset --hard HEAD
utf-8への変換

にすれば勝てる気がしてきた.

@sksat どう?

@meltingrabbit
Copy link
Collaborator Author

あ〜、でもcoreちょっといじってマイコンに書き込もうとすると、変更消えちゃうのか〜。

commitしてもらえれば。。。?

@sksat
Copy link
Collaborator

sksat commented Jan 16, 2022

git reset --hard HEADよりは「commitしろ!」って言ってビルド落とすか,警告だけ出してstashしておく,とかかなあ.

@meltingrabbit
Copy link
Collaborator Author

branch変更とかでutf-8のものとsjisのものが混じってるときには, git reset --hard HEAD してからsjis変換,でいいんだよね.

意図的にcoreのコードを変えてる時がつらい.

@sksat
Copy link
Collaborator

sksat commented Jan 16, 2022

あっそうか意図的な変更と意図的でない変更があるのか...

@meltingrabbit
Copy link
Collaborator Author

そうそう.なので,ノミナルは git reset --hard HEAD でいい気がしていて,でも乱暴なので,戻せるように stash 積んどくのがいいかもね.

@sksat
Copy link
Collaborator

sksat commented Jan 16, 2022

ですかねー.stashは積んだらdiffなくなるのでstashだけでいいのでは?あとコーナーケース踏むとめちゃくちゃstash積まれてしまうことがあったりしそうですが,まあ消えるよりはマシだしいいか.

@sksat
Copy link
Collaborator

sksat commented Jan 16, 2022

あとどうせbuild flow変わるなら #82 もやっちゃいたいかも?

@meltingrabbit
Copy link
Collaborator Author

stashは積んだらdiffなくなるのでstashだけでいいのでは?

そうだったんだ.stash全く使わないので知らなかった.

@meltingrabbit
Copy link
Collaborator Author

あとどうせbuild flow変わるなら #82 もやっちゃいたいかも?

あり.(お願いしたいかも)
ひとまず #184 がマージされた後かな.

#82 ってもしかして僕のレビュー待ちだった?(何かで止まってたと思ってた)

@sksat
Copy link
Collaborator

sksat commented Jan 16, 2022

レビューと歩調合わせるの待ちだった気がします.特にコード的なブロッカーは無かったはず.とりあえずconflict出てるんでrebaseしときます.

@meltingrabbit
Copy link
Collaborator Author

大PRらがマージされたんで,closeします.問題起きたらまたreopenするということで.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants