ときどきの雑記帖 RE* (新南口)
忘れられるものならば
トラ技
次号(2023年5月号)に別冊付録のエンジニア手帳2023がつくようだ。
2023年5月号予告[4月10日(月)発売予定] | トランジスタ技術
やる気スイッチ
なくなっていた。
バウアー
昨日の東スポで知ったのだけどどういうこと?
- なぜ横浜DeNAはサイヤング賞の超大物バウアーと契約できたのか…40億円を超える年俸を今季はドジャースが肩代わり – 本格スポーツ議論ニュースサイト「RONSPO」
- 【DeNA】トレバー・バウアー、単年年俸4億円正式発表 サイ・ヤングとダブル狙う「沢村賞取りたい」 : スポーツ報知
- DeNA 20年サイ・ヤング賞右腕、バウアー獲得を発表 過去に球団と縁も― スポニチ Sponichi Annex 野球
- DeNA、バウアー獲得の背景 編成トップ・萩原本部長「彼は今、罪に問われているわけではない」 - サンスポ
- 【DeNA】大物バウアー獲得に球界衝撃 現在支配下6人、外国人枠争いは競争必至/外国人事情 - プロ野球 : 日刊スポーツ
プレイを見たいのは確かだが。
冷やし中華
始まっていた(早いな)。
GNU grep 3.9
リリースされてた?
NEWSを見ると目立つ変更は二つだけのようだ。
* Noteworthy changes in release 3.9 (2023-03-05) [stable]
** Bug fixes
With -P, some non-ASCII UTF8 characters were not recognized as
word-constituent due to our omission of the PCRE2_UCP flag. E.g.,
given f(){ echo Perú|LC_ALL=en_US.UTF-8 grep -Po "$1"; } and
this command, echo $(f 'r\w'):$(f '.\b'), before it would print ":r".
After the fix, it prints the correct results: "rú:ú".
When given multiple patterns the last of which has a back-reference,
grep no longer sometimes mistakenly matches lines in some cases.
[Bug#36148#13 introduced in grep 3.4]
* Noteworthy changes in release 3.8 (2022-09-02) [stable]
ところでリポジトリを眺めていたらこんなのを見つけた。
doc: remove mention of unused N_GNU_nonoption_argv_flags envvar
diff --git a/doc/grep.texi b/doc/grep.texi
index 9b3aa03..621beaf 100644
--- a/doc/grep.texi
+++ b/doc/grep.texi
@@ -1060,18 +1060,6 @@ and are treated as options.
This variable specifies the output terminal type, which can affect
what the @option{--color} option does. @xref{General Output Control}.
-@item _@var{N}_GNU_nonoption_argv_flags_
-@vindex _@var{N}_GNU_nonoption_argv_flags_ @r{environment variable}
-(Here @code{@var{N}} is @command{grep}'s numeric process ID.)
-If the @var{i}th character of this environment variable's value is @samp{1},
-do not consider the @var{i}th operand of @command{grep} to be an option,
-even if it appears to be one.
-A shell can put this variable in the environment for each command it runs,
-specifying which operands are the results of file name wildcard expansion
-and therefore should not be treated as options.
-This behavior is available only with the GNU C library,
-and only when @env{POSIXLY_CORRECT} is not set.
-
@end table
最新版(のドキュメント)では削除されているものなので 今知ってもということではあるのだけど こんな仕掛けがあったのだねえ。
_<PID>_GNU_nonoption_argv_flags_
この変数は bash(1) 2.0 が glibc と通信するために用いられた。 どの引数がワイルドカードを展開した結果で、 したがってオプションとみなすべきでないかを知らせるものである。 この機能は bash(1) のバージョン 2.01 で削除されたが、glibc にはまだ残っている。
grep, print lines matching a pattern: Invoking
_N_GNU_nonoption_argv_flags_
(ここで,Nは,grepのプロセスID番号です.)この環境 変数の値のi番目の文字が`1’の場合,grepのi番目 のオペランドは, 明らかにそうであってもオプションと考えません.シェルは, 実行するそれぞれのコマンドに対し, この変数を環境に置くことができ,それを 指定すると,オペランドはワイルドカードを展開したファイル名の結果となり, そのため,オプションとして扱われません.この動作は,GNUCライブラリ のみで,POSIXLY_CORRECTが設定されていないときのみ利用可能です.
tough cookie
HNで見かけた
これ、どんなものかと元記事を見に行くと
write posix shell
2023-03-10
/\
{.-}
;_.-'\
{ _.}_
\.-' / `,
\ | /
\ | ,/
[0] \|_/
what is shell?
most people in tech are familiar with shell scripts.
but shell is a language!
...
shit. actually. wait, let me rephrase-
most people _use_ shell.
most people _avoid_ shell.
but mostly
most people _hate_ shell.
but should they?
why do people hate shell?
以下略
と、アスキーアートが散りばめられていたり 本文も詩のような体裁だしと ユニークというかなんというか。
それはさておき、HNの反応で
I’m a big fan of not posix but instead modern bash and to all the complainers about dash and ash, I say “tough cookies”.
というのを見かけ、クォート付きで書かれた「tough cookies」 が気になったので調べてみた。
- 【英語表現】「tough cookie」の意味とは?ネイティブの使用例と語源をご紹介! | grandstream blog
- tough cookieの意味・使い方・読み方 | Weblio英和辞書
- tough cookieの意味・使い方|英辞郎 on the WEB
- TOUGH COOKIE | 意味, Cambridge 英語辞書での定義
へー。
ところでこの記事はこの人も拾っていて
めっちゃ可愛い文章なのでお勧め。
— 高梨陣平 (@jingbay) March 11, 2023
ただし、posix shの範囲で書けは辛いなぁ。結局、極論の1つなんですよね。いつかどこか別の環境に移植するかもしれないじゃないかぁと言って古い環境に拘泥続けるのは :-) https://t.co/gjJGTT15e0
引用ツイートを追いかけてみたらいつも通り(ってなんですか)な展開で以下略。
なんでみんなPOSIXシェルの範囲で書こうとするんだろうな?bashもGNU CoreUtilsもとっくの昔に別の環境に移植されているというのに。OSに依存してないから、どこかの商用UNIXが滅んだとしても bashとGNU CoreUtilsなら生き続けるだろうし。 https://t.co/99IXrkLRbL
— Koichi Nakashima (@ko1nksm) March 12, 2023
なんでこの人達はbashとかGNU Core Utilsでいいと思っているんだろうな?(ものまね)
— リッチー大佐の中の人 (@col_richie) March 12, 2023
「『OSに依存してない』だからPOSIXにこだわる意味はもはや無い」は浅はか。OSに依存していないが、一つの実装に依存していることまで頭が回らないようだ。Shellshock脆弱性みたいのが再度襲来したら撃沈するよ。 https://t.co/WEUruM8ZXK
FORTRAN Compiler on IBM 704
ARITHMETIC STATEMENT
ということでSTATE B(ARITHMETIC STATEMENT)の部分を読んでいるのだけど、 長さがそれなりにあることもあってなかなかに手ごわい。
冒頭のコメント
REM STATE B CONSISTS OF TWO PARTS....SCAN AND LEVEL ANALYSIS. 4F13450
REM THE SCAN IS LEFT TO RIGHT OVER THE SOURCE STATEMENT WHICH IS 4F13451
REM IN THE F REGION OF COMMON AND IS IN BCD. 4F13452
REM EACH FIXED POINT CONSTANT, FLOATING POINT CONSTANT, AND BCD 4F13453
REM ( HOLLERITH) ARGUMENT IN CALL NAME STATEMENTS ARE ENTERED IN 4F13454
REM TABLES AND GIVEN AN INTERNAL VARIABLE NAME. 4F13455
REM LEVEL ANALYSIS IS PREFORMED FOR EACH ELEMENT OF THE STATEMENT4F13456
REM WHERE AN ELEMENT IS DEFINED AS A VARIABLE, FUNCTION NAME OR (4F13457
REM AND THE OPERATOR WHICH PRECEDES IT. 4F13458
にもあるように、
C3360 TSX C3390,1 GO TO ENTER WORD IN HOLARG TABLE 4F13741
CAL ALL1 GET WORD OF ONES 4F13742
TSX C3390,1 GO TO ENTER WORD IN HOLARG TABLE 4F13743
REM LEVEL ANALYSIS 4F13744
LATXL CAL TXLOP 4F13745
TRA LATXL+3 4F13746
LATXH CAL TXHOP 4F13747
STP CM4105 4F13748
*
LA0000 LXA L(0),A 4F13749 0
CLA E+2 4F13750 1
SLT 2 IS THIS A FUNCTION NAME 4F13751 2
TRA LA0000+36 NO 4F13752 3
SLN 2 YES - TURN F LITE BACK ON 4F13753 4
LXD BK,C IS FORSUB EMPTY 4F13754 5
TXL LA0000+13,C,0 YES. GO SET FS BITS TO 0 4F13755 6
SXD LA0000+12,C 4F13756 7
level analysisの部分はこれ自体がそれなりの「塊」になっているので、 これだけ見る(先か後回しかはおいといて)というのも ありかもしれない。 が、フローがかなり入り組んだ「スパゲッティ」になっていて 追いかけるの大変なんだよねえ (これはSTATE B本体も同じだけど)。
メモ
- A brief interview with Rexx creator Mike Cowlishaw | Hacker News
- Top-Down LR Parsing | Hacker News
- Verse programming language: HUGE update to doc: The Verse Calculus: a Core Calculus for Functional Logic Programming (Functional Logic language developed by Epic Games): Confluence proof of rewrite system, Updateable references and more ! : programming
- Ruby Parser開発日誌 (5) - Lrama LALR (1) parser generatorを実装した - かねこにっき
- Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」 - ログミーTech
- Will Carbon Replace C++? - Semaphore
- A Comprehensive Tutorial On Carbon Programming Language : programming
- We Need Legos for Code | Hacker News