senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 16:48:57 JST きゅーけー きゅーけー

    とりあえず tail recursion の最適化がなされるのかどうか確認するか。coalton がやってくれるならそうとう嬉しいんだけど……。

    In conversation Friday, 31-Dec-2021 16:48:57 JST from mastodon.tojo.tokyo permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 16:53:34 JST きゅーけー きゅーけー
      in reply to

      あ、coalton 側で tail recursion の最適化はしてくれないっぽいな。普通に SB-KERNEL::CONTROL-STACK-EXHAUSTED って言われてしまった。下の関数に (neko 100000) って入れただけなのに。これは回避法の模索が要るな。Coalton が関数型言語である以上、処理系に依存してでも末尾再帰は最適化されて欲しいところがある。

      In conversation Friday, 31-Dec-2021 16:53:34 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 16:54:04 JST きゅーけー きゅーけー
      in reply to

      optimizeが指定できればいいんだけど。

      In conversation Friday, 31-Dec-2021 16:54:04 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 16:56:10 JST きゅーけー きゅーけー
      in reply to

      ただ理屈の上では coalton 側で末尾再帰の最適化程度は可能なはず。Common Lisp で末尾再帰の最適化ができないのは主にスペシャル変数とフックのせいだし(個人的な認識です)。

      In conversation Friday, 31-Dec-2021 16:56:10 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 16:57:34 JST きゅーけー きゅーけー
      in reply to

      スペシャル変数とフック以外のケースで末尾呼び出しが最適化された場合に関数の挙動が変わってしまうケースを知らない。

      In conversation Friday, 31-Dec-2021 16:57:34 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 16:59:08 JST きゅーけー きゅーけー
      in reply to

      理屈の上ではできそうなんで移植性のことを考えると、末尾再帰の最適化は Coalton 側が請け負った方が良い気がするな。

      とりあえず、sbcl でどうしたら回避できるか確認するか。

      In conversation Friday, 31-Dec-2021 16:59:08 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 17:01:50 JST きゅーけー きゅーけー
      in reply to

      Optimize 設定しようぜみたいな話は書いてあるな。https://github.com/coalton-lang/coalton/blob/b36c38226dcd2a6da3b3146125930eb179baa583/docs/design-docs/function-calls.md

      In conversation Friday, 31-Dec-2021 17:01:50 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 17:02:14 JST きゅーけー きゅーけー
      in reply to

      Coatlon 使ってれば型安全なんだし、safety とか要らんくね。

      In conversation Friday, 31-Dec-2021 17:02:14 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 17:08:26 JST きゅーけー きゅーけー
      in reply to

      Coalton が末尾再帰の形式にしてくれない件は sbcl であれば (optimize (speed 3) (safety 0)) を指定することで回避できた。

      In conversation Friday, 31-Dec-2021 17:08:26 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 17:10:51 JST きゅーけー きゅーけー
      in reply to

      ただどういうときに末尾再帰してくれるかは処理系によって違うんで理想的には Coalton 側が末尾再帰形式を変換してくれた方が良い感じする。

      しかし、そもそもカリー化されてるためにいっぱい呼び出しを実行しちゃう問題も処理系の最適化に任せる雰囲気っぽいんであんまり期待できないかもしれない。https://github.com/coalton-lang/coalton/blob/b36c38226dcd2a6da3b3146125930eb179baa583/docs/design-docs/function-calls.md

      In conversation Friday, 31-Dec-2021 17:10:51 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 17:14:58 JST きゅーけー きゅーけー
      in reply to

      ちゃんと宣言した型と違うのを返そうとすると型エラーになるな。素晴しすぎて泣けてくる。

      In conversation Friday, 31-Dec-2021 17:14:58 JST permalink
    • きゅーけー (tojoqk@mastodon.tojo.tokyo)'s status on Friday, 31-Dec-2021 17:15:20 JST きゅーけー きゅーけー
      in reply to

      もちろん、実行時ではなくてコンパイル時に……。

      In conversation Friday, 31-Dec-2021 17:15:20 JST permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.