[Guía] Compilar mas rapido

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

29 Ago 2017 14:45

Si, menudo clickbait el titulo.
Actualizar compilador PAWN

En resumen, el querido Zeex agarro el compilador que el querido Kalkor hizo para Pawn con SA-MP, y lo retoco un poco(un poco "mucho"). A su vez, hace varios meses un usuario de GitHub llamado justnonamenoname edito este mismo compilador de Zeex con cosas especiales...
Cambios que tienen estos nuevos compiladores:

ARREGLOS:
Zeex:
Spoiler:
-Devolviendo valores de Strings ya no crashean el compilador.
-Usar strings en operadores temarios ya no tiran error en el compilador.
-Llamar una función en el global ya no crashea el compilador
-Ahora funciona llamar una función nativa no utilizada con SYSREQ.C
-Los nombres de las funciones ya no se resuelven en direcciones inválidas en #emit
-Las lineas ya no tienen un máximo de 512 caracteres, pueden tener hasta 4095
-Usar el CALL en #emit ya no crashea el compilador
-Las funciones con el resultado del tag ya no se saltan si se usan antes de ser reenviadas
-Devolver un string de una función variadica ya no provoca un error de run-time
-Ordenes de ensamblado que no son reconocidas ya no bloquean el compilado
-Find_symbol () ya no prefiere los símbolos globales en vez de los del archivo actual
-La directiva #file ahora si agrega archivos para depurar información
-La compilación de un condicional ya funciona con las directivas #emit
-Los numeros decimales y negativos ya funcionan con el #emit
-Las variables globales ya no son omitidas del AMX incluso cuando se usan sin previo aviso
justnonamenoname:
Spoiler:
-La mayoria de cosas que el de Zeex
COSAS NUEVAS:
Zeex:
Spoiler:
-Agregado "#pragma compat 1/2/3" para mantener algunos factores originales del compilador original para cuando el gamemode se crea en Windows y se quiere compilar en Linux.
-Agregado "#pragma naked" que evita el error de "X must return a value"
-Agregado "#pragma warning" para evitar warnings en el código indicado(buscar en google, es muy largo explicar esto en una oración)
-Agregado "#warning" para mandar un warning al compilador. Ej: "#warning NO METAS ESTE INCLUDE"
-Cambiado el formato de hora al compilar, agregada la versión del compilador, la fecha, y el lugar de donde viene el archivo.
-Muchas cosas de enums y sizeofs.
-Ahora se pueden usar arrays de 4 dimenciones.
-Mas rápido para terminar de compilar.
justnonamenoname:
Spoiler:
-Agregado un warning en caso de detectar recursividad en el código(¡algo muy común y a su vez muy grave!)
-Su velocidad de compilado puede ser hasta el doble de rápido que de el de Zeex.
¿Cual elegir?
Y... no voy a decir "hace esto y esto porque lo digo yo", cada uno es libre de hacer lo que quiera... Pero la idea es que lo haga BIEN. Recomendación basada en mi experiencia:
"El de justnonamenoname para compilar rápido y solución de errores del código, y cuando dejes de tener errores pasarte al de Zeex para poner el código en funcionamiento en un servidor."

¿Como actualizar?
Zeex
-Descargar la versión que quieras del compilador(por lógica, conviene la ultima)
-Descompriman el archivo y copian pawnc.dll y pawncc.exe de la carpeta bin.
-Pegan ambos archivos en la carpeta "pawno" de vuestro servidor y reemplazan.
justnonamenoname
-Descargar(mirror by Misiur).
-Copiar pawncc.exe en la carpeta "pawno" de vuestro servidor y reemplazan.




Razones por la cual lo uso:
Zeex
-Es mas rápido el compilado.
-Me resulta muy útil usar arrays 4D.
-Me resulta muy útil usar una linea de mas de 512 caracteres.
-Las nuevas ordenes(#pragma "option" y un par mas) me resultan muy útiles.

justnonamenoname
-Es mas rápido el compilado y me viene bien cuando tengo los tipicos 28 errores reales y los voy solucionando uno por uno, para compilar mas rápido entre cada uno.
-El warning de recursividad me resulto útil cuando no sabia que esto existía.
Última edición por MattHudson el 10 Jun 2018 18:55, editado 2 veces en total.
Razón: Agregado el compilador de justnonamenoname
Avatar de Usuario
Houssama
Baneado
Baneado
Mensajes: 449
Registrado: 10 Nov 2016 15:23
Ubicación: Venezuela
Contactar:
Reputación: 7

29 Ago 2017 15:14

MattHudson escribió:
29 Ago 2017 14:45
Lo que dice el titulo -mfr_lol

En resumen, el querido Zeex agarro el compilador que el querido Kalkor hizo para Pawn con SA-MP, y lo retoco un poco(un poco "mucho").

Cambios que tiene este nuevo compilador:

ARREGLOS:
Spoiler:
-Devolviendo valores de Strings ya no crashean el compilador.
-Usar strings en operadores temarios ya no tiran error en el compilador.
-Llamar una función en el global ya no crashea el compilador
-Ahora funciona llamar una función nativa no utilizada con SYSREQ.C
-Los nombres de las funciones ya no se resuelven en direcciones inválidas en #emit
-Las lineas ya no tienen un máximo de 512 caracteres, pueden tener hasta 4095
-Usar el CALL en #emit ya no crashea el compilador
-Las funciones con el resultado del tag ya no se saltan si se usan antes de ser reenviadas
-Devolver un string de una función variadica ya no provoca un error de run-time
-Ordenes de ensamblado que no son reconocidas ya no bloquean el compilado
-Find_symbol () ya no prefiere los símbolos globales en vez de los del archivo actual
-La directiva #file ahora si agrega archivos para depurar información
-La compilación de un condicional ya funciona con las directivas #emit
-Los numeros decimales y negativos ya funcionan con el #emit
-Las variables globales ya no son omitidas del AMX incluso cuando se usan sin previo aviso
COSAS NUEVAS:
Spoiler:
-Agregado "#pragma compat 1/2" para mantener algunos factores originales del compilador original para cuando el gamemode se crea en Windows y se quiere compilar en Linux.
-Agregado "#pragma naked" que evita el error de "X must return a value"
-Agregado "#pragma warning" para evitar warnings en el código indicado(buscar en google, es muy largo explicar esto en una oración)
-Agregado "#warning" para mandar un warning al compilador. Ej: "#warning NO METAS ESTE INCLUDE"
-Cambiado el formato de hora al compilar, agregada la versión del compilador, la fecha, y el lugar de donde viene el archivo.
-Muchas cosas de enums y sizeofs.
-Ahora se pueden usar arrays de 4 dimenciones.
-Mas rápido para terminar de compilar.


¿Como actualizar?
-Descargar la versión que quieras del compilador(por lógica, conviene la ultima)
-Descompriman el archivo y copian pawnc.dll y pawncc.exe de la carpeta bin.
-Pegan ambos archivos en la carpeta pawno de vuestro servidor y reemplazan.




Razones por la cual lo uso:
-Es mas rápido el compilado.
-Me resulta muy útil usar arrays 4D.
-Me resulta muy útil usar una linea de mas de 512 caracteres.
-Las nuevas ordenes(#pragma "naked" y "warning") me resultan muy útiles.

Lo descargue y lo estoy utilizando y es bueno, buen aporte alfin algo diferente ya me cansaba del mismo pawno :,v
Scripter:38% :c
Mapper: 45%
WebMaster: 20% alv :c
Imagen
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

29 Ago 2017 15:54

Houssama escribió:
29 Ago 2017 15:14
Lo descargue y lo estoy utilizando y es bueno, buen aporte alfin algo diferente ya me cansaba del mismo pawno :,v
Si bien estéticamente es lo mismo, cuando me comentaron que hacia esto:
-Es mas rápido el compilado.
-Me resulta muy útil usar arrays 4D.
-Me resulta muy útil usar una linea de mas de 512 caracteres.
-Las nuevas ordenes(#pragma "naked" y "warning") me resultan muy útiles.[/centrar][/size][/i]
Me enamore y no dude en usarlo.
Avatar de Usuario
KaizerHind
Senior
Senior
Mensajes: 1974
Registrado: 01 Mar 2016 12:27
Ubicación: En algún lugar del mundo.
Contactar:
Reputación: 63

29 Ago 2017 19:42

Baia baia, que gran aporte, lo usare eh. -hi

Edito.

Descargue la versión "<pawnc-3.10.1-windows.zip>", y lo que hizo fue dejarme pegado el Pawno compilando y nunca compilo. xd
Imagen

Actualmente retirado de Pawnscript, si usted desea comunicarse conmigo
puede escribirme en las redes que se encuentran en mi firma.

Desarrollador de Modelos - Versión 0.3 DL.
¿Quieres ver mi trabajo? Entra abajo en mi Pagina de contacto o Portafolio de diseño.

Imagen Pagina de Contacto. Imagen Portafolio de diseño.Imagen Canal de Youtube.ImagenKaizer#2694.


» Aportes dentro del Foro.
.
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

29 Ago 2017 20:23

YTSebastian escribió:
29 Ago 2017 19:42
Descargue la versión "<pawnc-3.10.1-windows.zip>", y lo que hizo fue dejarme pegado el Pawno compilando y nunca compilo. xd
Y solo por curiosidad, ¿porque no bajarte la 3.10.2? -mfr_lol

Yo lo vengo usando desde la 3.10.1 y en dicha versión nunca tuve problemas. Ni idea que puede ser.
Avatar de Usuario
KaizerHind
Senior
Senior
Mensajes: 1974
Registrado: 01 Mar 2016 12:27
Ubicación: En algún lugar del mundo.
Contactar:
Reputación: 63

29 Ago 2017 20:49

MattHudson escribió:
29 Ago 2017 20:23
Y solo por curiosidad, ¿porque no bajarte la 3.10.2? -mfr_lol

Yo lo vengo usando desde la 3.10.1 y en dicha versión nunca tuve problemas. Ni idea que puede ser.
Esa fue la que me baje, fue que me equivoque arriba, aun así, se quedo tildado allí compilando, y me toco forzarlo a cerrar.
Imagen

Actualmente retirado de Pawnscript, si usted desea comunicarse conmigo
puede escribirme en las redes que se encuentran en mi firma.

Desarrollador de Modelos - Versión 0.3 DL.
¿Quieres ver mi trabajo? Entra abajo en mi Pagina de contacto o Portafolio de diseño.

Imagen Pagina de Contacto. Imagen Portafolio de diseño.Imagen Canal de Youtube.ImagenKaizer#2694.


» Aportes dentro del Foro.
.
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

29 Ago 2017 21:04

YTSebastian escribió:
29 Ago 2017 20:49
Esa fue la que me baje, fue que me equivoque arriba, aun así, se quedo tildado allí compilando, y me toco forzarlo a cerrar.
Eso nunca me paso con este compilador.
Y mira que lo he usado en muchos códigos diferentes... hasta en gamemodes de la 0.3x jeje, y nunca me paso eso.
Avatar de Usuario
KaizerHind
Senior
Senior
Mensajes: 1974
Registrado: 01 Mar 2016 12:27
Ubicación: En algún lugar del mundo.
Contactar:
Reputación: 63

29 Ago 2017 22:24

MattHudson escribió:
29 Ago 2017 21:04
Eso nunca me paso con este compilador.
Y mira que lo he usado en muchos códigos diferentes... hasta en gamemodes de la 0.3x jeje, y nunca me paso eso.
Para que veas. xd
Lo hice tal como dices, meti los dos archivos en la carpeta pawno, es mas, elimine los anteriores, o los reemplce, e igual se pega.
Imagen

Actualmente retirado de Pawnscript, si usted desea comunicarse conmigo
puede escribirme en las redes que se encuentran en mi firma.

Desarrollador de Modelos - Versión 0.3 DL.
¿Quieres ver mi trabajo? Entra abajo en mi Pagina de contacto o Portafolio de diseño.

Imagen Pagina de Contacto. Imagen Portafolio de diseño.Imagen Canal de Youtube.ImagenKaizer#2694.


» Aportes dentro del Foro.
.
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

30 Ago 2017 00:00

YTSebastian escribió:
29 Ago 2017 22:24
Para que veas. xd
Lo hice tal como dices, meti los dos archivos en la carpeta pawno, es mas, elimine los anteriores, o los reemplce, e igual se pega.
¿Te pasa con todos los códigos de todos los archivos o solo con uno?
Es decir, ¿probaste compilando otra cosa?
Avatar de Usuario
KaizerHind
Senior
Senior
Mensajes: 1974
Registrado: 01 Mar 2016 12:27
Ubicación: En algún lugar del mundo.
Contactar:
Reputación: 63

30 Ago 2017 00:30

MattHudson escribió:
30 Ago 2017 00:00
¿Te pasa con todos los códigos de todos los archivos o solo con uno?
Es decir, ¿probaste compilando otra cosa?
Solo con la Gamemode.
Probare con un Filterscript simple a ver.
Imagen

Actualmente retirado de Pawnscript, si usted desea comunicarse conmigo
puede escribirme en las redes que se encuentran en mi firma.

Desarrollador de Modelos - Versión 0.3 DL.
¿Quieres ver mi trabajo? Entra abajo en mi Pagina de contacto o Portafolio de diseño.

Imagen Pagina de Contacto. Imagen Portafolio de diseño.Imagen Canal de Youtube.ImagenKaizer#2694.


» Aportes dentro del Foro.
.
Avatar de Usuario
AnayC
Aprendiz
Aprendiz
Mensajes: 44
Registrado: 25 Ago 2015 14:09
Reputación: 0

26 Nov 2017 11:11

Bueno tengo un errorsito si podrías ayudar me me encantaría más el pawno actualizado que desactualizado ayuda por acá un problema de el errorImagen -good -good -giveup -giveup -beg
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

26 Nov 2017 11:19

AnayC escribió:
26 Nov 2017 11:11
Bueno tengo un errorsito si podrías ayudar me me encantaría más el pawno actualizado que desactualizado ayuda por acá un problema de el errorImagen -good -good -giveup -giveup -beg
Ordena bien tus includes, a_samp siempre debe ir primero que el resto. Si se te complica, ve a la sección preguntas y solicita ayuda ahí, no desvíes este tema.
Avatar de Usuario
Graber
Junior
Junior
Mensajes: 194
Registrado: 10 Abr 2016 19:16
Contactar:
Reputación: 22

26 Nov 2017 14:32

Como que te es útil el #pragma warning y naked? Se supone que debes arreglar tu código y retornar valores, no ignorarlos...
Imagen

No doy soporte por privado y no estoy disponible para ningún trabajo/proyecto/lo que sea. Eviten MPs de ese tema

Responder