Aide optimisation clojurescript

17 views
Skip to first unread message

Arnaud Bailly

unread,
Nov 14, 2014, 10:37:31 AM11/14/14
to cloju...@googlegroups.com
Bonjour,
J'essaye désespérément d'activer l'optimisation avancée avec clojurescript histoire de produire un fichier js de taille raisonnable et ça ne fonctionne pas. Je me suis fait jeté de la liste Om sur laquelle j'avais posté car c'est ce que j'utilise comme lib, donc je suis à la rechercher d'une âme charitable et compétente.

FYI, voici le ticket https://github.com/swannodette/om/issues/280 avec les infos.

Merci d'avance, 
-- 
Arnaud Bailly
FoldLabs Associate: http://foldlabs.com

Hiram MADELAINE

unread,
Nov 14, 2014, 11:35:56 AM11/14/14
to clojure-fr
Hello !

Je vais jeter un oeil 

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "clojure-fr".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse clojure-fr+...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.



--
Hiram MADELAINE
Eloquent Logic
96, rue La Fayette 75010 Paris
+33 6 11 51 37 71

Hiram MADELAINE

unread,
Nov 14, 2014, 11:43:46 AM11/14/14
to clojure-fr
En fait tu as ouvert un ticket mais comme David ne considère pas cela comme un bug, il te conseille de poster sur la mailing list clojurescript.

As tu déjà compilé avec succès ce projet une fois en avancé ?
J'ai souvent eu des problèmes au début à cause de mauvaises combinaisons de ClojureScript et core.async
j'utilise en ce moment le couple :
  [org.clojure/clojurescript "0.0-2371"]
  [org.clojure/core.async "0.1.346.0-17112a-alpha"]

Julien Eluard

unread,
Nov 14, 2014, 1:42:02 PM11/14/14
to cloju...@googlegroups.com
Salut,

utilises-tu des librairies JS externes dans ton code ClojureScript? Ou des fonctions JS relativement récentes?
Ce genre de problème se produit lorsque le compiler closure renomme les variables / functions JS pour en diminuer la taille. Si tu appelles des méthodes JS externes à ton code ou non reconnue par closure tu ne souhaites pas ce comportement.
La solution est alors de déclarer ces variables dans un fichier "externs" afin que closure les laisse inchangées.

Bonne chance!

Arnaud Bailly

unread,
Nov 14, 2014, 7:02:21 PM11/14/14
to cloju...@googlegroups.com
Merci Hiram, ça fonctionner maintenant. 
J’avoue que cela me laisse un peu perplexe quant à la fiabilité du bouzin…

Merci beaucoup pour votre aide

Arnaud 
signature.asc

Hiram Madelaine

unread,
Nov 15, 2014, 2:48:33 AM11/15/14
to cloju...@googlegroups.com
Je t'en prie, ton erreur me rappelait bien un problème auquel j'avais été confronté il y a quelques mois. 
Je pense que ce n'est pas un problème de fiabilité mais un manque d'information de compatibilité entre clojurescript et core.async qui sont en bêta depuis très longtemps. Leur numérotation de version n'arrange rien.
Une fois que tu as la bonne combinaison la compilation avancée fonctionne dans mauvaise surprise. 

Bon week end 

Envoyé de mon iPhone

Arnaud Bailly

unread,
Nov 15, 2014, 2:52:38 AM11/15/14
to cloju...@googlegroups.com
Ouaip, bon enfin c’es pas trop ça quand même : j’ai encore eu le problème, avec des erreurs qui semblent random. J’ai dû tout supprimer pour retrouver un truc qui fonctionne. Peut-être qu’avec l’autocompilation il y a des trucs qui restent traîner ? C’est vraiment n’importe quoi ces versions.

J’avoue que je suis à deux doigts de faire rm -fr * et de repartir en javascript pur tellement la compilation est lente et produit des erreurs incompréhensibles… 

Mais bon, je vais essayer de persévérer quand même.

Merci pour ton aide.

Arnaud
signature.asc

Hiram MADELAINE

unread,
Nov 15, 2014, 5:06:13 AM11/15/14
to clojure-fr

Je ne fais pas d'autocompilation en advanced. Je la fais dès que je change des dépendances.
En revanche j'ai toujours des warnings.
J'ai toujours persévérer avec le mode advanced car pouvoir déployer un seul fichier js optimisé c'est vraiment un régal.


Julien Eluard

unread,
Nov 15, 2014, 6:38:12 AM11/15/14
to cloju...@googlegroups.com
Effectivement ClojureScript reste un peu brut et il vaut mieux toujours utiliser la dernière version. Aussi en général la compilation incrémentale est utilisé en mode 'whitespace' et le mode 'advanced' est réservé pour le livrable final, voire pour les tests.
Tu peux aussi jeter un oeil sur https://github.com/adzerk/boot-cljs qui semble prometteur (attention alpha aussi).

Arnaud Bailly

unread,
Nov 15, 2014, 10:30:52 AM11/15/14
to cloju...@googlegroups.com
en general je n'aime pas utiliser un code different entre le dev et la prod, c'est pour moi une pratique dangereuse (la preuve ...).
 
En tout cas merci pour votre soutien, la ML francaise est plus reactive que l'anglaise :-)
 
Arnaud
-- 
Arnaud Bailly
FoldLabs Associate: http://foldlabs.com

Reply all
Reply to author
Forward
0 new messages