Hola gente!
Acabo de agregar a mi interprete C# la posibilidad de cargar modulos (simples archivos .st con un Init.st al inicio para ejecutar): https://github.com/ajlopez/AjTalk/commit/c9e7ce1d1e38bd137838c13e95aeff5da6454336 usando los directorios y paquetes que usa NPM (Node Package Manager) (ya tengo otros proyectos usando el mismo "viejo truco", pregunte en la lista de NPM y se puede usar para cosas que no sean JavaScript y hay varios proyectos que lo usan) De esta forma, cada modulo se puede publicar en NPM, con version, y escribiendo un package.json que describe CUALES otros modulos requiere y de que version Y cada proyecto puede tener un package.json que describa CUALES otros modulos necesita, y de que version. Con un poco de trabajo, combinado con Environments (no se como llamarlos) se evita la colision de versiones (tengo que probarlo en vivo). Es decir, el modulo WebServer puede necesitar el modulo Socket 0.1, y no se colisiona con el modulo Chat que puede necesitar el modulo Socket 0.2 Es decir, lo que quiero explorar es que: - declarar que versiones necesito, esta fuera del codigo - la instalacion de los modulos/paquetes/como quieran llamarlo, se hace en un proceso de instalacion - la carga de los modulos a memoria, se hace desde el codigo, en forma controlada: el nuevo modulo va a Smalltalk (si define una clase Class1 va a Smalltalk, el environment top), o va al environment actual (puede que este siendo cargado desde Modulo0), o el nuevo modulo va a su environment, pudiendo manejar Modulo1.Class1 new y esas cosas alguna idea en https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/ModuleTests.st Mwuaaahahaaaa! Esta noche el mundo, Pinky! ;-) Angel "Java" Lopez @ajlopez |
Interesante.
Esto mismo: > Y cada proyecto puede tener un package.json que describa CUALES otros modulos necesita, y de que version. es lo q está ahora disponible en Cuis, q comenté el otro día, pero especificado en el mismo paquete. El 4 de agosto de 2013 17:19, Angel Java Lopez <[hidden email]>escribió: > ** > > > Hola gente! > > Acabo de agregar a mi interprete C# la posibilidad de cargar modulos > (simples > archivos .st con un Init.st al inicio para ejecutar): > > > https://github.com/ajlopez/AjTalk/commit/c9e7ce1d1e38bd137838c13e95aeff5da6454336 > > usando los directorios y paquetes que usa NPM (Node Package Manager) (ya > tengo otros proyectos usando el mismo "viejo truco", pregunte en la lista > de NPM y se puede usar para cosas que no sean JavaScript y hay varios > proyectos que lo usan) > > De esta forma, cada modulo se puede publicar en NPM, con version, y > escribiendo un package.json que describe CUALES otros modulos requiere y de > que version > > Y cada proyecto puede tener un package.json que describa CUALES otros > modulos necesita, y de que version. > > Con un poco de trabajo, combinado con Environments (no se como llamarlos) > se evita la colision de versiones (tengo que probarlo en vivo). Es decir, > el modulo WebServer puede necesitar el modulo Socket 0.1, y no se colisiona > con el modulo Chat que puede necesitar el modulo Socket 0.2 > > Es decir, lo que quiero explorar es que: > > - declarar que versiones necesito, esta fuera del codigo > - la instalacion de los modulos/paquetes/como quieran llamarlo, se hace en > un proceso de instalacion > - la carga de los modulos a memoria, se hace desde el codigo, en forma > controlada: el nuevo modulo va a Smalltalk (si define una clase Class1 va a > Smalltalk, el environment top), o va al environment actual (puede que este > siendo cargado desde Modulo0), o el nuevo modulo va a su environment, > pudiendo manejar Modulo1.Class1 new y esas cosas > alguna idea en > > https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/ModuleTests.st > > Mwuaaahahaaaa! > > Esta noche el mundo, Pinky! ;-) > > Angel "Java" Lopez > @ajlopez > > > > -- Saludos / Regards, Germán Arduino www.arduinosoftware.com |
In reply to this post by Angel Java Lopez
> Hola gente!
> > Acabo de agregar a mi interprete C# la posibilidad de cargar modulos (simples > archivos .st con un Init.st al inicio para ejecutar): > > https://github.com/ajlopez/AjTalk/commit/c9e7ce1d1e38bd137838c13e95aeff5da6454 > 336 > > usando los directorios y paquetes que usa NPM (Node Package Manager) (ya tengo > otros proyectos usando el mismo "viejo truco", pregunte en la lista de NPM y > se puede usar para cosas que no sean JavaScript y hay varios proyectos que lo > usan) > > De esta forma, cada modulo se puede publicar en NPM, con version, y > escribiendo un package.json que describe CUALES otros modulos requiere y de > que version > > Y cada proyecto puede tener un package.json que describa CUALES otros modulos > necesita, y de que version. > > Con un poco de trabajo, combinado con Environments (no se como llamarlos) se > evita la colision de versiones (tengo que probarlo en vivo). Es decir, el > modulo WebServer puede necesitar el modulo Socket 0.1, y no se colisiona con > el modulo Chat que puede necesitar el modulo Socket 0.2 > > Es decir, lo que quiero explorar es que: > > - declarar que versiones necesito, esta fuera del codigo > - la instalacion de los modulos/paquetes/como quieran llamarlo, se hace en un > proceso de instalacion > - la carga de los modulos a memoria, se hace desde el codigo, en forma > controlada: el nuevo modulo va a Smalltalk (si define una clase Class1 va a > Smalltalk, el environment top), o va al environment actual (puede que este > siendo cargado desde Modulo0), o el nuevo modulo va a su environment, pudiendo > manejar Modulo1.Class1 new y esas cosas > alguna idea en > https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/Mod > uleTests.st > > Mwuaaahahaaaa! > > Esta noche el mundo, Pinky! ;-) > > Angel "Java" Lopez > @ajlopez > > Veo que estamos en la misma onda. Cuando estuve jugando con node, se me ocurrio si se podia usar NPM. Voy a tratar de poner tiempo a lo que hiciste. Edgar > |
Ah! Mira que bien Edgar!
Si, tambien lo voy a poner en AjTalkJs (el interprete/transpiler en JavaScript). Y ahi va a ser mas facil. Voy publicar el ajtalkjs como module, lo instalaras como el ajtalk global: npm install ajtalk -g Y en una demo, se puede hacer npm install ajtalk myprogram.st Por lo que vi, gran parte de los .st los pueden seguir desarrollando y probando en sus ambientes. Luego todo esto sirve para tener un lanzamiento minimo (con la cantidad minima de clases) sin necesidad de tener una imagen de antemano. Cambiando de implementacion, tambien, recuerden, en AjTalk C# tengo la posibilidad de generar imagenes minimas: http://ajlopez.wordpress.com/2012/12/12/ajtalk-in-c-1-a-minimal-hello-world-image/ y algunos otros trucos, como instanciar mas de una VM en el mismo proceso, y que una VM la ayude a la otra, para que una sea chica en tamanio de clases y objetos, y todo lo de compilar y demas este en la otra. El camino a explorar es: NO a obtener una imagen minima desde una grande, SINO nacer chica desde el principio ;-) Nos leemos! Angel "Java" Lopez @ajlopez 2013/8/5 Edgar J. De Cleene <[hidden email]> > ** > > > > Hola gente! > > > > Acabo de agregar a mi interprete C# la posibilidad de cargar modulos > (simples > > archivos .st con un Init.st al inicio para ejecutar): > > > > > https://github.com/ajlopez/AjTalk/commit/c9e7ce1d1e38bd137838c13e95aeff5da6454 > > 336 > > > > usando los directorios y paquetes que usa NPM (Node Package Manager) (ya > tengo > > otros proyectos usando el mismo "viejo truco", pregunte en la lista de > NPM y > > se puede usar para cosas que no sean JavaScript y hay varios proyectos > que lo > > usan) > > > > De esta forma, cada modulo se puede publicar en NPM, con version, y > > escribiendo un package.json que describe CUALES otros modulos requiere y > de > > que version > > > > Y cada proyecto puede tener un package.json que describa CUALES otros > modulos > > necesita, y de que version. > > > > Con un poco de trabajo, combinado con Environments (no se como > llamarlos) se > > evita la colision de versiones (tengo que probarlo en vivo). Es decir, el > > modulo WebServer puede necesitar el modulo Socket 0.1, y no se colisiona > con > > el modulo Chat que puede necesitar el modulo Socket 0.2 > > > > Es decir, lo que quiero explorar es que: > > > > - declarar que versiones necesito, esta fuera del codigo > > - la instalacion de los modulos/paquetes/como quieran llamarlo, se hace > en un > > proceso de instalacion > > - la carga de los modulos a memoria, se hace desde el codigo, en forma > > controlada: el nuevo modulo va a Smalltalk (si define una clase Class1 > va a > > Smalltalk, el environment top), o va al environment actual (puede que > este > > siendo cargado desde Modulo0), o el nuevo modulo va a su environment, > pudiendo > > manejar Modulo1.Class1 new y esas cosas > > alguna idea en > > > https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/Mod > > uleTests.st > > > > Mwuaaahahaaaa! > > > > Esta noche el mundo, Pinky! ;-) > > > > Angel "Java" Lopez > > @ajlopez > > > > > > Veo que estamos en la misma onda. > Cuando estuve jugando con node, se me ocurrio si se podia usar NPM. > > Voy a tratar de poner tiempo a lo que hiciste. > > Edgar > > > > > |
Free forum by Nabble | Edit this page |