* Caml et Gtk+/Gdk ... @ 1998-11-18 16:02 luther 1998-11-19 2:57 ` Jacques GARRIGUE 0 siblings, 1 reply; 8+ messages in thread From: luther @ 1998-11-18 16:02 UTC (permalink / raw) To: caml-list Bonjour, ... je suis en train d'experimenter un programme caml avec une boucle main C, utilisant la premiere methode. j'ai adapter le deuxieme exemple (avec l'appel de fib), mais j'obtient un : Segmentation Fault (core dumped) lors de l'appel de callback dans la la fonction C fib. Lorsque j'utilise la deuxieme option, bytecode "embeded" dans du C, cela marche sans probleme. je pense que cela vient du fait que la fonction caml n'est pas registrer correctement. La doc dis que caml_main appelle la section d'initialisation du bytecode, qui devrait effectuer la "registration" des callback. Comment et ou est defini cette parti d'initialization ? Æi-le mal compris quelque chose ? Est-ce que quelqu'un a reussit a interfacer gtk/gdk avec ocaml, avec la premiere methode ? la deuxieme ne permettant pas d'utiliser plus d'un module. Amicalement, Sven LUTHER ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-18 16:02 Caml et Gtk+/Gdk luther @ 1998-11-19 2:57 ` Jacques GARRIGUE 1998-11-19 12:56 ` luther sven 0 siblings, 1 reply; 8+ messages in thread From: Jacques GARRIGUE @ 1998-11-19 2:57 UTC (permalink / raw) To: luther; +Cc: caml-list > Comment et ou est defini cette parti d'initialization ? Æi-le mal > compris quelque chose ? Est-ce que quelqu'un a reussit a interfacer > gtk/gdk avec ocaml, avec la premiere methode ? la deuxieme ne > permettant pas d'utiliser plus d'un module. Je n'ai jamais utilise' cette methode personnellement, mais il y a deja une interface par David Monniaux et Pascal Cuoq qui utilise la premiere methode. http://www.ens-lyon.fr/~dmonniau/arcs/mlgtk.tar.gz Le code est legerement alpha, mais ca marche sans probleme. La fonction main est definie dans mlgtk_stubs.c. De mon cote je fabrique aussi une interface pour gtk, mais en me contentant de l'appeler a` partir de caml. Avantage, on peut construire un toplevel, et experimenter de facon interactive. Je n'ai pas rencontre' de difficulte' particuliere. Jacques --------------------------------------------------------------------------- Jacques Garrigue Kyoto University garrigue at kurims.kyoto-u.ac.jp <A HREF=http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/>JG</A> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-19 2:57 ` Jacques GARRIGUE @ 1998-11-19 12:56 ` luther sven 1998-11-19 21:02 ` David Monniaux ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: luther sven @ 1998-11-19 12:56 UTC (permalink / raw) To: Jacques GARRIGUE, luther; +Cc: caml-list On Thu, Nov 19, 1998 at 11:57:47AM +0900, Jacques GARRIGUE wrote: > > Comment et ou est defini cette parti d'initialization ? Æi-le mal > > compris quelque chose ? Est-ce que quelqu'un a reussit a interfacer > > gtk/gdk avec ocaml, avec la premiere methode ? la deuxieme ne > > permettant pas d'utiliser plus d'un module. > Je crois que j'ai decouvert mon probleme, on ne peut pas mettre de Callback.register dans une librairie .cma, par contre cela marche bien si on les laisse dans des .cmo et qu'on les lie a la fin, avec les objets C. > Je n'ai jamais utilise' cette methode personnellement, mais il y a > deja une interface par David Monniaux et Pascal Cuoq qui utilise la > premiere methode. > > http://www.ens-lyon.fr/~dmonniau/arcs/mlgtk.tar.gz > > Le code est legerement alpha, mais ca marche sans probleme. La > fonction main est definie dans mlgtk_stubs.c. > Oui je suis au courrant, mais il y a un probleme, avec elle. Il semble qu'il n'est pas possible d'appeller les fonctions print_string et compagnie a l'interieur d'un callback appelle depuis un event_handler Gtk. Le callback est bien appelle, mais rien n'apparait a l'ecran. J'ai rencontrer le meme probleme avec mlgtk, mais j'ai crus que cela ne marchais pas bien. C'est difficile de tester des trucs si on ne peut rien afficher a l'ecran. Qu'est devenu David Monniaux ? est-ce qu'il travaille toujours sur mlgtk ? avons nous l'autorisation d'etendre son travaille sinon ? sous quelle license ? > De mon cote je fabrique aussi une interface pour gtk, mais en me > contentant de l'appeler a` partir de caml. Avantage, on peut > construire un toplevel, et experimenter de facon interactive. > Je n'ai pas rencontre' de difficulte' particuliere. > Comment fait tu pour faire interagir la boucle principale ocaml et la boucle d'evenement Gtk ? ou alors est-ce que tu n'utilise gtk que pour afficher des resultat, pas pour qu'on puisse appuyer sur des boutons ou autre chose du style ? Amicalement, Sven LUTHER ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-19 12:56 ` luther sven @ 1998-11-19 21:02 ` David Monniaux 1998-11-20 10:26 ` luther 1998-11-20 10:01 ` Pascal Cuoq 1998-11-20 10:36 ` Jacques GARRIGUE 2 siblings, 1 reply; 8+ messages in thread From: David Monniaux @ 1998-11-19 21:02 UTC (permalink / raw) To: Liste CAML On Thu, 19 Nov 1998, luther sven wrote: > Qu'est devenu David Monniaux ? est-ce qu'il travaille toujours sur mlgtk > ? avons nous l'autorisation d'etendre son travaille sinon ? sous quelle > license ? Pascal Cuoq, Patrick Loiseleur et moi-même y travaillons. J'invite toutes les personnes intéressées par un tel travail à me demander un accès CVS. La licence est a priori la LGPL. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-19 21:02 ` David Monniaux @ 1998-11-20 10:26 ` luther 0 siblings, 0 replies; 8+ messages in thread From: luther @ 1998-11-20 10:26 UTC (permalink / raw) To: David Monniaux, Liste CAML On Thu, Nov 19, 1998 at 10:02:04PM +0100, David Monniaux wrote: > On Thu, 19 Nov 1998, luther sven wrote: > > > Qu'est devenu David Monniaux ? est-ce qu'il travaille toujours sur mlgtk > > ? avons nous l'autorisation d'etendre son travaille sinon ? sous quelle > > license ? > > Pascal Cuoq, Patrick Loiseleur et moi-même y travaillons. J'invite toutes > les personnes intéressées par un tel travail à me demander un accès CVS. > > La licence est a priori la LGPL. > > Bonjour, ... je suis interesse par mlgtk, et eventuellement par travailler sur le support de mlgtk dans glade et eventuellement gIDE plus tard. est-il possible d'avoir un acces CVS, existe-t-il une mailing liste ? si non, est-ce que cela vous interreserait ? Ou est-ce trop tot. J'ai remarque que lorsque l'on appel les fonctions print_string et compagnie depuis un callback caml lui meme appelle depuis un event handler gtk, rien n'est afficher a l'ecran. Je crois que la meme chose se passe avec mlgtk, j'avais essayer de faire un petit programme simple, avec une fenetre, des menus, et l'affichage d'un petit texte a chaque fois qu'un menu etait selectionner, et rien ne s'affichait a l'ecran. Est-ce un probleme du a la double boucle de gestion d'evenement, l'une sous caml et l'autre sous gtk ? Je crois avoir lu sur la mailing list gtk, ou autre part, une suggestion qui disait d'appeler non pas la boucle principale gtk, mais la fonction interne gtk qui traite les evenements a l'interieur de la boucle principale caml. Est-ce possible, est-il possible de prevoir un mecanisme qui permettrait d'ajouter une fonction quelconque qui serait executer a l'interieur de la boucle principale caml, cela permettrait de faire cohabiter proprement un top level et une interface graphique, par exemple. Amicalement, Sven LUTHER ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-19 12:56 ` luther sven 1998-11-19 21:02 ` David Monniaux @ 1998-11-20 10:01 ` Pascal Cuoq 1998-11-20 10:49 ` luther 1998-11-20 10:36 ` Jacques GARRIGUE 2 siblings, 1 reply; 8+ messages in thread From: Pascal Cuoq @ 1998-11-20 10:01 UTC (permalink / raw) To: luther sven; +Cc: garrigue, luther, caml-list > Oui je suis au courrant, mais il y a un probleme, avec elle. > Il semble qu'il n'est pas possible d'appeller les fonctions print_string > et compagnie a l'interieur d'un callback appelle depuis un event_handler Gtk. > Le callback est bien appelle, mais rien n'apparait a l'ecran. > J'ai rencontrer le meme probleme avec mlgtk, mais j'ai crus que cela ne > marchais pas bien. C'est difficile de tester des trucs si on ne peut > rien afficher a l'ecran. J'avais remarque cette bizarrerie aussi, sans vraiment comprendre d'ou elle provient. Il est tout de meme possible d'utiliser un widget text pour afficher les messages de debogage. Pascal ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-20 10:01 ` Pascal Cuoq @ 1998-11-20 10:49 ` luther 0 siblings, 0 replies; 8+ messages in thread From: luther @ 1998-11-20 10:49 UTC (permalink / raw) To: Pascal Cuoq, luther sven; +Cc: garrigue, luther, caml-list On Fri, Nov 20, 1998 at 11:01:35AM +0100, Pascal Cuoq wrote: > > Oui je suis au courrant, mais il y a un probleme, avec elle. > > Il semble qu'il n'est pas possible d'appeller les fonctions print_string > > et compagnie a l'interieur d'un callback appelle depuis un event_handler Gtk. > > Le callback est bien appelle, mais rien n'apparait a l'ecran. > > J'ai rencontrer le meme probleme avec mlgtk, mais j'ai crus que cela ne > > marchais pas bien. C'est difficile de tester des trucs si on ne peut > > rien afficher a l'ecran. > > J'avais remarque cette bizarrerie aussi, sans vraiment comprendre > d'ou elle provient. Il est tout de meme possible d'utiliser un widget > text pour afficher les messages de debogage. Oui, bonne idee, je vais faire comme cela alors. Cependant il serait interressant de voir a quoi est du cette bizarrerie, s'agit-il d'une particularite du systeme caml. il manque surement un flush ou quelque chose de similaire, qui n'est jamais appelle car l'interface gtk prend la main totalement, et ne laisse plus ocaml faire son travail. Qu'en est-il du garbage collector ? Et des autres choses que ocaml fait ? L'ideal serait de de ne pas appeller gtk_main, mais de modifier la boucle interne de ocaml, pour qu'elle fasse aussi le travail de gtk_main. Je sais qu'il existe une fonction gtk qui traite tous les evenements restant, ou alors les evenements un par un, Il serait interressant alors d'appeler cette fonction a l'interieur de ocaml. Peut-etre qu'un mecanisme de pour definir une telle fonction pourrait etre ajouter a ocaml ? quelque chose comme : Toplevel.register_additional_main_loop ? Amicalement, Sven LUTHER ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Caml et Gtk+/Gdk ... 1998-11-19 12:56 ` luther sven 1998-11-19 21:02 ` David Monniaux 1998-11-20 10:01 ` Pascal Cuoq @ 1998-11-20 10:36 ` Jacques GARRIGUE 2 siblings, 0 replies; 8+ messages in thread From: Jacques GARRIGUE @ 1998-11-20 10:36 UTC (permalink / raw) To: luther; +Cc: caml-list > Oui je suis au courrant, mais il y a un probleme, avec elle. Il > semble qu'il n'est pas possible d'appeller les fonctions > print_string et compagnie a l'interieur d'un callback appelle depuis > un event_handler Gtk. Le callback est bien appelle, mais rien > n'apparait a l'ecran. J'ai rencontrer le meme probleme avec mlgtk, > mais j'ai crus que cela ne marchais pas bien. C'est difficile de > tester des trucs si on ne peut rien afficher a l'ecran. Je ne suis pas sur, mais une raison possible est l'incompatibilite' entre les fonctions d'affichage C et ML. J'ai eu pas mal de segmentation faults pour ce genre de raison. La solution est de rediriger les fonctions g_print et g_warning pour qu'elles appellent des fonctions ML. > Comment fait tu pour faire interagir la boucle principale ocaml et > la boucle d'evenement Gtk ? ou alors est-ce que tu n'utilise gtk que > pour afficher des resultat, pas pour qu'on puisse appuyer sur des > boutons ou autre chose du style ? J'utilise un thread pour la boucle, independant du toplevel. Grace a` ca je peux programmer pendant que mon programme tourne. C'est assez agreable de voir les choses se passer en temps reel ! Si on se contente d'interrompre la boucle de temps en temps pour revenir au toplevel, on peut aussi se passer des threads. Cordialement, Jacques Garrigue ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~1998-11-20 18:58 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 1998-11-18 16:02 Caml et Gtk+/Gdk luther 1998-11-19 2:57 ` Jacques GARRIGUE 1998-11-19 12:56 ` luther sven 1998-11-19 21:02 ` David Monniaux 1998-11-20 10:26 ` luther 1998-11-20 10:01 ` Pascal Cuoq 1998-11-20 10:49 ` luther 1998-11-20 10:36 ` Jacques GARRIGUE
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox