Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

le shell ne répond plus

15 réponses
Avatar
Le TeXnicien de Surface
bonjour à tous

le pb est le suivant :
lorsque je tente de lancer le shell avec M-x shell
j'obtiens dans un premier temps le message suivant :
byte-code: Wrong type argument: keymapp, 1

lorsque je refais exactement la même chose le message devient :
Loading shell...done
Loading comint...done
apply: Autoloading failed to define function make-comint-in-buffer

d'après ce que dit l'aide la fonction est définie dans le module comint mais
j'ai l'impression de ne pas le charger (je l'avais fait dans mon fichier de
configuration mais j'ai commenté et recompilé depuis).

Si quelqu'un avait un début de piste, j'en serais très reconnaissant.

Avec mes remerciements
--
Le TeXnicien de Surface

10 réponses

1 2
Avatar
Matthieu Moy
Le TeXnicien de Surface writes:

Si quelqu'un avait un début de piste, j'en serais très reconnaissant.



M-x toggle-debug-on-error RET

Puis recommencer la manip problématique.

--
Matthieu
Avatar
Le TeXnicien de Surface
Matthieu Moy écrivait :

Le TeXnicien de Surface writes:

Si quelqu'un avait un début de piste, j'en serais très reconnaissant.



M-x toggle-debug-on-error RET

Puis recommencer la manip problématique.


Alors j'obtiens le message (à mes yeux sibyllin)

Debugger entered--Lisp error:
(error "Autoloading failed to define function make-comint-in-buffer")
make-comint-in-buffer("shell" "*shell*" "/bin/bash" nil "--noediting"
"-i")
apply(make-comint-in-buffer "shell" "*shell*" "/bin/bash" nil
("--noediting" "-i"))
shell(nil)
call-interactively(shell)
execute-extended-command(nil)
call-interactively(execute-extended-command)

C'est grave, docteur ?

--
Le TeXnicien de Surface
Avatar
Damien Wyart
> Si quelqu'un avait un début de piste, j'en serais très reconnaissant.



Il semble y avoir de nouveau un problème avec les messages du TeXnicien
de surface, ils ne passent plus sur le serveur de news Free, et donc
c'est pas évident de répondre si on ne peut pas lire le problème de
départ ... :)

--
DW
Avatar
Le TeXnicien de Surface
Damien Wyart écrivait :

> Si quelqu'un avait un début de piste, j'en serais très reconnaissant.



Il semble y avoir de nouveau un problème avec les messages du TeXnicien
de surface, ils ne passent plus sur le serveur de news Free, et donc
c'est pas évident de répondre si on ne peut pas lire le problème de
départ ... :)



C'est encore une fois un pb de codage, rondjeudjeu, VIVE UTF-8 PARTOUT

(bon, on se calme, je recommence, pouf pouf, voici, voila, bien...)

Re le message en iso-8859-1 cette fois :

Alors j'obtiens le message (à mes yeux sibyllin)

Debugger entered--Lisp error:
(error "Autoloading failed to define function make-comint-in-buffer")
  make-comint-in-buffer("shell" "*shell*" "/bin/bash" nil "--noediting"
"-i")
  apply(make-comint-in-buffer "shell" "*shell*" "/bin/bash" nil
("--noediting" "-i"))
  shell(nil)
  call-interactively(shell)
  execute-extended-command(nil)
  call-interactively(execute-extended-command)

C'est grave, docteur ?

--
Le TeXnicien de Surface
Avatar
Matthieu Moy
Le TeXnicien de Surface writes:

Debugger entered--Lisp error:
(error "Autoloading failed to define function make-comint-in-buffer")
make-comint-in-buffer("shell" "*shell*" "/bin/bash" nil "--noediting"
"-i")



Que dit C-h f make-comint-in-buffer RET ?

--
Matthieu
Avatar
Le TeXnicien de Surface
Matthieu Moy écrivait :

Le TeXnicien de Surface writes:

Debugger entered--Lisp error:
(error "Autoloading failed to define function make-comint-in-buffer")
make-comint-in-buffer("shell" "*shell*" "/bin/bash" nil "--noediting"
"-i")



Que dit C-h f make-comint-in-buffer RET ?


Le début de la réponse est :
make-comint-in-buffer is an autoloaded Lisp function in `comint'.
[Arg list not available until function definition is loaded.]

Make a comint process NAME in BUFFER, running PROGRAM.
[coupe]

En tout cas, il ne râle pas.

Notre héros arrivera-t-il à atteindre la cité interdite de la coquille ?
Qui est ce comint dont on parle depuis le début de cet épisode ?
Ne quittez pas l'écoute. Notre feuilleton reprend après quelques réclames...

--
Le TeXnicien de Surface
que la chaleur atteint plus qu'il ne le craignait
Avatar
Matthieu Moy
Le TeXnicien de Surface writes:

Le début de la réponse est :
make-comint-in-buffer is an autoloaded Lisp function in `comint'.
[Arg list not available until function definition is loaded.]

Make a comint process NAME in BUFFER, running PROGRAM.
[coupe]

En tout cas, il ne râle pas.



Rien de surprenant jusqu'ici.

Notre héros arrivera-t-il à atteindre la cité interdite de la coquille ?
Qui est ce comint dont on parle depuis le début de cet épisode ?



comint = COMmand INTerpreter.

C'est le mode utilisé par Emacs pour le shell et pleins d'autres
modes, où l'utilisateur entre une succession de commandes et récupère
le résultat de la commande à l'écran. Donc, le mode shell est basé sur
ce mode.

Le problème, c'est que le mode shell n'arrive pas à charger le fichier
en question. Enfin, la fonction `make-comint-in-buffer' est
« autoloadée », c'est à dire que dans l'état dans lequel est ton
Emacs, la fonction n'existe que comme un squelette, qui va charger le
fichier « comint » pour trouver sa vraie définition le jour où elle
est appelée. Et là, c'est le drame :

Le TeXnicien de Surface writes:

(error "Autoloading failed to define function make-comint-in-buffer")
make-comint-in-buffer("shell" "*shell*" "/bin/bash" nil "--noediting" "-i")



`make-comint-in-buffer' a bien tenté de charger le fichier comint,
mais sans y trouver sa propre définition.

Suite de l'investigation : M-x locate-library RET comint RET. Ça va te
donner l'emplacement du fichier « comint » (en fait, probablement
« comint.el.gz », i.e. fichier source, éventuellement compressé ou
« comint.elc », i.e. fichier byte-compilé). Visiblement, il y a un
problème avec ce fichier. Si c'est un fichier source, ouvres-le et
dis-nous si tu trouves un (defun make-comint-in-buffer ...) dedans. Si
c'est un fichier .elc, regardes si il n'y a pas un fichier source à
côté.

--
Matthieu
Avatar
Le TeXnicien de Surface
Matthieu Moy écrivait :
Le TeXnicien de Surface writes:
Le début de la réponse est :
make-comint-in-buffer is an autoloaded Lisp function in `comint'.
[Arg list not available until function definition is loaded.]

Make a comint process NAME in BUFFER, running PROGRAM.
[coupe]

En tout cas, il ne râle pas.



Rien de surprenant jusqu'ici.

Notre héros arrivera-t-il à atteindre la cité interdite de la coquille ?
Qui est ce comint dont on parle depuis le début de cet épisode ?



comint = COMmand INTerpreter.

C'est le mode utilisé par Emacs pour le shell et pleins d'autres
modes, où l'utilisateur entre une succession de commandes et récupère
le résultat de la commande à l'écran. Donc, le mode shell est basé sur
ce mode.

Le problème, c'est que le mode shell n'arrive pas à charger le fichier
en question. Enfin, la fonction `make-comint-in-buffer' est
« autoloadée », c'est à dire que dans l'état dans lequel est ton
Emacs, la fonction n'existe que comme un squelette, qui va charger le
fichier « comint » pour trouver sa vraie définition le jour où elle
est appelée. Et là, c'est le drame :

Le TeXnicien de Surface writes:

(error "Autoloading failed to define function make-comint-in-buffer")
make-comint-in-buffer("shell" "*shell*" "/bin/bash" nil "--noediting"
"-i")



`make-comint-in-buffer' a bien tenté de charger le fichier comint,
mais sans y trouver sa propre définition.


Merci pour ces explications. À force je finirai peut-être par savoir me
débrouiller tout seul !
Suite de l'investigation : M-x locate-library RET comint RET. Ça va te
donner l'emplacement du fichier « comint » (en fait, probablement
« comint.el.gz », i.e. fichier source, éventuellement compressé ou
« comint.elc », i.e. fichier byte-compilé). Visiblement, il y a un
problème avec ce fichier. Si c'est un fichier source, ouvres-le et
dis-nous si tu trouves un (defun make-comint-in-buffer ...) dedans. Si
c'est un fichier .elc, regardes si il n'y a pas un fichier source à
côté.


Bon, il y a un elc avec le source à côté (dans /usr/local/...) et (ça c'est
une surprise, non ?) pas plus de make-comint-in-buffer que de beurre en
broche, juste un make-comint tout court qui semble vouloir faire le boulot.

Maintenant, après quelques instants de réflexion, je me suis demandé s'il
n'existait pas une autre version de comint quelque part chez moi et... il y
en a une dans /usr/share/emacs... j'ai « commenté » celle du local, j'ai
relancé emacs et ça marche. Donc il traine sur le net une version pourrite
de comint !

Maintenant que j'ai de nouveau mon joli shell, je pose une autre question :
comment faire pour que l'invite (si possible sans la changer en console) ne
ressemble pas à ça « [0;32m[:~]$ [0;m » dans emacs *shell* ?
C'est possible ça ?

Un grand merci pour le coup de main.

--
Le TeXnicien de Surface
Avatar
Matthieu Moy
Le TeXnicien de Surface writes:

Maintenant que j'ai de nouveau mon joli shell, je pose une autre question :
comment faire pour que l'invite (si possible sans la changer en console) ne
ressemble pas à ça « [0;32m[:~]$ [0;m » dans emacs *shell* ?
C'est possible ça ?



;;--------------------------------------------------------------------
;; Pour que la couleur marche en mode shell.
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

Sinon, il y a aussi le mode ansi-term, mais on n'est pas obligé
d'aimer ... (moi, je suis fan, mais uniquement après customization à
mort).

--
Matthieu
Avatar
Le TeXnicien de Surface
Matthieu Moy écrivait :

Le TeXnicien de Surface writes:

Maintenant que j'ai de nouveau mon joli shell, je pose une autre question
: comment faire pour que l'invite (si possible sans la changer en
console) ne
ressemble pas à ça « [0;32m[:~]$ [0;m » dans emacs *shell* ?
C'est possible ça ?



;;--------------------------------------------------------------------
;; Pour que la couleur marche en mode shell.
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)


Nickel chrome et toussa. Encore merci
Sinon, il y a aussi le mode ansi-term, mais on n'est pas obligé
d'aimer ... (moi, je suis fan, mais uniquement après customization à
mort).


Bon, ça je verrai quand j'aurai fini de me battre avec latex (si, si,
parfois, il faut...)

--
Le TeXnicien de Surface
1 2