Closed fdodino closed 6 months ago
Para mí hay 2 caminos que fuimos peloteando en el último tiempo y todavía no tomamos una decisión:
Mantener todo como estaba en xText. Con 3 extensiones y las configs mágicas para que no haya confusión de imports y fqns.
Migrar a tener una única extensión .wlk
y para los tests simplemente ponerle bibliotecaTest.wlk
y evitar tener más cosas con el mismo nombre.
No sé, para mí lo que teníamos me bastaba y es retro-compatible con todos los ejemplos y apuntes :P
Coincido con vos.
Para mí tiene ventajas ir por la opción 1:
wpgm
y wtest
Les paso la pelota a @asanzo @lspigariol @npasserini @nscarcella @mmatos y seguro me olvidé de alguien
Dígale no a las extensiones diferentes
El vie, 6 oct 2023 07:53, Fernando Dodino @.***> escribió:
Les paso la pelota a @asanzo https://github.com/asanzo @lspigariol https://github.com/lspigariol @npasserini https://github.com/npasserini @nscarcella https://github.com/nscarcella @mmatos https://github.com/mmatos y seguro me olvidé de alguien
— Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok-ts/issues/166#issuecomment-1750404090, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFPE242RC46QKJPY54GDJDX57PKPAVCNFSM6AAAAAA5CG67N6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJQGQYDIMBZGA . You are receiving this because you were mentioned.Message ID: @.***>
Dígale no a las extensiones diferentes El vie, 6 oct 2023 07:53, Fernando Dodino @.> escribió: … Les paso la pelota a @asanzo https://github.com/asanzo @lspigariol https://github.com/lspigariol @npasserini https://github.com/npasserini @nscarcella https://github.com/nscarcella @mmatos https://github.com/mmatos y seguro me olvidé de alguien — Reply to this email directly, view it on GitHub <#166 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFPE242RC46QKJPY54GDJDX57PKPAVCNFSM6AAAAAA5CG67N6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJQGQYDIMBZGA . You are receiving this because you were mentioned.Message ID: @.>
si querés convencerme tenés que esforzarte un poco más, tirate alguna razón a favor para contrarrestar
Si querés que tu lenguaje genere packages a partir de los nombres de los archivos tenés que desambiguarlos. Qué pasa sí en dos archivos distintos con el mismo nombre y distintas extensiones definís la misma constante?
Se puede? Sí, podés encontrar alguna otra forma de reconciliarlo, pero la más fácil y directa es tener una única extensión.
Por eso es raro que los lenguajes usen más de una extensión para los mismos tipos fuentes: No suma nada, trae problemas de namespaces y te obliga a recordar extensiones falopa.
Si extrañas por alguna razón tener múltiples extensiones, siempre podes
secuenciarlas ( archivo.test.wlk
) el lenguaje puede ignorar todo lo que
esté entre el primer y el último punto. Pero la verdad no creo que sumen
mucho.
El vie, 6 oct 2023 10:04, Fernando Dodino @.***> escribió:
Dígale no a las extensiones diferentes El vie, 6 oct 2023 07:53, Fernando Dodino @.
> escribió: … <#m68589078301405249> Les paso la pelota a @asanzo https://github.com/asanzo https://github.com/asanzo https://github.com/asanzo @lspigariol https://github.com/lspigariol https://github.com/lspigariol https://github.com/lspigariol @npasserini https://github.com/npasserini https://github.com/npasserini https://github.com/npasserini @nscarcella https://github.com/nscarcella https://github.com/nscarcella https://github.com/nscarcella @mmatos https://github.com/mmatos https://github.com/mmatos https://github.com/mmatos y seguro me olvidé de alguien — Reply to this email directly, view it on GitHub <#166 (comment) https://github.com/uqbar-project/wollok-ts/issues/166#issuecomment-1750404090>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFPE242RC46QKJPY54GDJDX57PKPAVCNFSM6AAAAAA5CG67N6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJQGQYDIMBZGA https://github.com/notifications/unsubscribe-auth/AAFPE242RC46QKJPY54GDJDX57PKPAVCNFSM6AAAAAA5CG67N6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJQGQYDIMBZGA . You are receiving this because you were mentioned.Message ID: @.>
si querés convencerme tenés que esforzarte un poco más, tirate alguna razón a favor para contrarrestar
— Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok-ts/issues/166#issuecomment-1750647726, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFPE26HPCKUR7HQUE53QNTX576XNAVCNFSM6AAAAAA5CG67N6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJQGY2DONZSGY . You are receiving this because you were mentioned.Message ID: @.***>
Bueno, yo lo que ofrezco es lo siguiente:
Por otro lado, podemos seguir esta discusión y si hay consenso, armar una épica donde
.wtest
por .wlk
. Yo no pondría el .test.wlk
porque si se ignora lo que empiece por el punto tenés el mismo problema de que se repiten los archivos (example.wlk
y example.test.wlk
colisionarían). Ese migrador podemos publicarlo para toda la gente que tenga sus proyectos actuales. Hacer ese cambio en language rompe la retrocompatibilidad, deja de funcionar todo lo anterior en los tests.Relacionado con este ticket
... y un pedazo de la discusión acá
Si la idea es migrar a una única extensión yo tengo una propuesta similar pero en otro orden:
.wlk
. Esto permite:.wtest
y .wpgm
como deprecados. Lo que implica:.wlk
puedan tener cualquier cosa dentro (sacar las validaciones).Los archivos .wtest están deprecados, podés renombrar tu archivo a pepitaTest.wlk
. Aún así debo tener una forma de poder ejecutar programas con esos archivos (y que funquen... al menos los imports).EDIT Agregar una validación para no tener .
extras en el nombre de los archivos. Y/o tener una forma de manejar esos casos.
Una pavada: tengamos en cuenta que pepita.test.wlk
tendría que pasarse a algo donde no ignoremos a partir del primer punto porque te sigue colisionando con pepita.wlk
Un par de detalles al pasar:
Ahora mismo TS ni ve las extensiones. Vos le pasas el nombre del archivo que parseaste para que sepa qué nombre ponerle al package, pero el único problema con las extensiones es que admite crear dos veces el "mismo" path, a veces algunos del lenguaje (onda "wollok"). Entonces, en realidad alcanza con que el ide no te deje crear dos archivos con el mismo nombre y distinta extensión, no hace falta deprecarlas.
Si admitís pepita.test.wlk, tenés que decidir qué paquete crea. Si es "pepita", entonces no podés tener pepita.wlk. Si es pepita.test, o sea, un package anidado, entonces tenés que tener cuidado porque para importarlo vas a tener que usar eso. Nada del otro mundo, pero hay que decidir.
Debería ser relativamente fácil hacer una regla que diga que, en los archivos que en no terminen en wlk, el package que se crea es anidado con otro de la extensión. Entonces pepita.wpgr (o como sea) te crea pepita y adentro otro package wpgr. Cómo las extensiones de tests y programas no solemos importarlas eso debería hacer compatible el 99% de los programas "legacy". Lo que sí, para correr esos programas habría que poner ese path, y es medio falopa. Capaz deprecar es más fácil.
El mar, 10 oct 2023 18:33, Fernando Dodino @.***> escribió:
Una pavada: tengamos en cuenta que pepita.test.wlk tendría que pasarse a algo donde no ignoremos a partir del primer punto porque te sigue colisionando con pepita.wlk
— Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok-ts/issues/166#issuecomment-1756299642, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFPE22IOBWX4U34E55KIQTX6W5KXAVCNFSM6AAAAAA5CG67N6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJWGI4TSNRUGI . You are receiving this because you were mentioned.Message ID: @.***>
Este issue me preocupa @PalumboN , vayamos por tu propuesta, y aprovechemos para tratar de implementarla. Te parece?
Cierro este issue @PalumboN y abro otro para lo que sigue...
Si bien estaría bueno frenar en el IDE la posibilidad de definir un archivo con el mismo nombre, yo creo que lo ideal es hacer el mismo hack que hicimos en Wollok Xtext y solamente asumir imports de archivos wlk (no querés importar definiciones de wtest).