lmntal / slim

slim LMNtal implementation
Other
18 stars 5 forks source link

2引数の'!'アトムが落ちる #314

Closed kyawaway closed 7 months ago

kyawaway commented 1 year ago

以下のプログラムをコンパイルして実行すると,

'!'(a,b).

slimがExitCode = 139で落ちる.

"!"(a,b).

でも同様に落ちる.

'!'. '!'(a). '!'(a,b,c). '!'(a,b,c,d). '#'(a,b). '$'(a,b).

等は落ちない.

kyawaway commented 11 months ago

ハイパーリンク出現時に内部で使用されるEXCLAMATION アトムが,通常のアトムと同等の扱いをされているのが原因だと考えられます.

https://github.com/lmntal/slim/blob/develop/src/vm/functor.cpp#L78

のように,2価のアトムとして予約されているので,(ハイパーリンクじゃない,本物の)2価の'!'アトムが出現した時にバグります.