emacs-php / emacs-php/php-runtime.el

Bug: cl-assert Error Related to EIEIO

オープン
#4 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
Emacs Lisp
スター
8
フォーク
2
PR マージ指標
30日以内にマージされた PR はありません

説明

When I try to compile the package I get this error:

```lisp
Debugger entered--Lisp error: (cl-assertion-failed ((not (symbolp body)) nil))
cl--assertion-failed((not (symbolp body)))
eieio--defalias(php-runtime-run nil)
byte-code("\300\301\302\301\303\"\"\210\304\301\303\305\306$\210\300\307\302\307\303\"\"\210\304\307\303\305\310$\210\300\311\302\311\303\"\"\210\304\311\303\305\312$\210\300\313\302\313\303\"\"\210\304\313\303\305\314$\210\300\315\302\315\303\"\"\210\304\315\303\305\316$\210\300\317\302\317\303\"\"\210\304\317\303\305\320$\210\300\321\302\321\303\"\"\210\304\321\303\305\322$\207" [eieio--defalias php-runtime-run eieio--defgeneric-init-form nil eieio--defmethod php-runtime-execute #f(compiled-function (php) "Execute PHP process using `php -r' with code.\n\nThis execution method is affected by the number of character limit of OS command arguments.\nYou can check the limitation by command, for example (shell-command-to-string \"getconf ARG_MAX\") ." #) php-runtime--call-php-process #f(compiled-function (php args) "Execute PHP Process by php-execute `PHP' and `ARGS'." #) php-runtime--call-php-process-with-input-buffer #f(compiled-function (php args) "Execute PHP Process with STDIN by php-execute `PHP' and `ARGS'." #) php-runtime--get-command-line-arg #f(compiled-function (php) "Return command line string" #) php-runtime--stdin-by-file-p #f(compiled-function (php) "Return T if (oref php stdin) is file." #) php-runtime--get-input #f(compiled-function (php) #) php-runtime-stdout-buffer #f(compiled-function (php) "Return output buffer." #)] 5)
#("/home/eric/.emacs.d/local/php-runtime.el/php-runtime.elc")
apply(# "/home/eric/.emacs.d/local/php-runtime.el/php-runtime.elc")
load("/home/eric/.emacs.d/local/php-runtime.el/php-runtime.elc")
byte-recompile-file("/home/eric/.emacs.d/local/php-runtime.el/php-runtime.el" nil 0 t)
emacs-lisp-byte-compile-and-load()
funcall-interactively(emacs-lisp-byte-compile-and-load)
call-interactively(emacs-lisp-byte-compile-and-load nil nil)
command-execute(emacs-lisp-byte-compile-and-load)
```

The problem is a call to `cl-assert` inside of `eieio--defalias` which is invoked by `php-runtime-run`. I am trying to figure out the fix for this but I have very, very small experience using EIEIO, so there may be an obvious solution which I simply am not seeing.

I am using `GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.18.9) of 2017-07-24`.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

php-runtime.el をバイトコンパイルして失敗を再現し、報告された eieio--defalias の呼び出しが cl-assert を発生させる php-runtime-run から調査を始めてください。周辺の EIEIO 定義とスタックトレースを読み、なぜエイリアス本体がシンボルなのかを特定してください。php-runtime.el がこのアサーションなしでコンパイルおよびロードできれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
emacs-lisp, php
領域
tooling
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。