Como compilar mas rapido? / How to compile faster?

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Hola Pablo César,

Se me olvido quitarlas, ya que estaban con #Includes al final de mi archivo principal.

Lo corrijo y lo compilo otra vez!

Saludos
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Hola Pablo César,

A lo mejor la estructura de mis programas es la que esta mal, te explico.

-Ya corregí lo de las comillas ' " '.
-Al compilar me da muchisimos errores de que no reconoce "WINDOW", ni "@", etc. y lo corrijo poniendo en cada archivo #include "hmg.ch".

-Después me dice que no reconoce una variable "VERDE", en uno de los archivos, pero "VERDE" la tengo declarada como: "#define VERDE {0,255,0} " al inicio de mi prg principal., trato de corregirlo haciendo un archivo CH, y lo pongo en cada archivo junto a #include "hmg.ch". Y me sigue diciendo que no existe la variable "VERDE".

Saludos
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Hola Pablo César,

Ya conseguí que compilara sin errores, es el primero que lo hago así, :)

Bueno te comento las observaciones:

1.- Como lo tenia yo tarda en compilar 0:57 segundos
2.- Ya hecho los cambios 0:28 segundos

Se tarda la mitad de tiempo :o :o :o :o :o :o :o :o :o :o :o :o :o

P.D.: Esa velocidad esta bien??? Y como dice DanielMaximiliano: Ejecutable de 4MB, PC Pentium 4 ATLONII, 4GB RAM, WIN7 32 bits. Sin ver videos... sólo música :lol:

Saludos
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Como compilar mas rapido? / How to compile faster?

Post by Pablo César »

Sobre errores de Windows, debes tener algun error de sintaxis o nombre del form errado.

Sobre tu #define VERDE, espero que esté sin comillas.

Cuando corrijes algo de tu código y no re-compilas por "completo" es decir, "no incremental" como pediste. Corrés el riesgo de no estar actualizando las compilaciones como deberia. La constante VERDE deberia resolver en todo los módulos.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Hola a todos,

Me estoy dando cuenta que depende como este estructurado el programa-archivos es como se llega a una compilación satisfactoria, mi pregunta es: ¿Cual es lo correcto?. Me podrían decir como estructurar un programa completo, que tenga varios *.prg, varios *.ch,
donde van los "define", etc.

Yo lo tenia así:

PRINCIPAL.PRG:

Code: Select all

#include "hmg.ch"
........

#define ToDay       Day()
..........

Function Main()
LOCAL...
PUBLICAS...
PRIVATE..

SET EXCLUSIVE OFF
............

REQUEST HB_LANG_ES   
   
REQUEST DBFCDX
RddSetDefault( "DBFCDX" )

BasesOpen()

DEFINE WINDOW
....
END WINDOW

RETURN NIL

#Include "Includes/SistemaT.prg"
................................
Y en cada archivo:

Code: Select all

PROCEDURE SistemaT()
LOCAL...
PUBLICAS...
PRIVATE..

DEFINE WINDOW
....
END WINDOW

RETURN NIL

Ahora con los cambios PRINCIPAL.PRG:

Code: Select all

#include "hmg.ch"
#include "Includes/Generales/Colores.ch"             //ESTO HAY QUE PONERLO EN TODOS LOS ARCHIVOS *.PRG CREADOS
                                                                    //DONDE TENGO LOS "DEFINE"
Function Main()
LOCAL...
PUBLICAS...
PRIVATE..

SET EXCLUSIVE OFF
............

REQUEST HB_LANG_ES   
   
REQUEST DBFCDX
RddSetDefault( "DBFCDX" )

BasesOpen()

DEFINE WINDOW
....
END WINDOW

RETURN NIL

*#Include "Includes/SistemaT.prg" Ya no van los "Include" al final del PRG principal. ahora van en el archivo *.hbp de la forma que estan arriba en el otro post. y tambien el archivo *.hbc con "Inc = yes"
Alguna sugerencia al respecto, mil gracias por la atención recibida.

Saludos
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Pablo César wrote:Sobre errores de Windows, debes tener algun error de sintaxis o nombre del form errado.
Si Pablo César era un error al poner el archivo "include" en cada uno.
Pablo César wrote:Sobre tu #define VERDE, espero que esté sin comillas.
Si, son sin comillas, solo lo pongo entre comillas para resaltarlo.
Pablo César wrote:Cuando corrijes algo de tu código y no re-compilas por "completo" es decir, "no incremental" como pediste. Corrés el riesgo de no estar actualizando las compilaciones como deberia. La constante VERDE deberia resolver en todo los módulos.
Bueno esta parte la corregi haciendo un archivo *.CH e incluirlo en cada uno de los PRG creados. Estas dos sentencias las tengo que poner en cada *.PRG creado, ya que si no lo hago me da error. No se si sea lo correcto.

#include "hmg.ch"
#include "Includes/Generales/Colores.ch"

Saludos
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Como compilar mas rapido? / How to compile faster?

Post by Pablo César »

Javier lo que noto y que en mi opinion está errado, es que cuando creas manualmente el archivo .hbp para poner todos tus prgs que componen tu sistema, no deberia de forma alguna hacer por ejemplo el #Include "Includes/SistemaT.prg". O en tu hbp pones solo el prg principal y haces el include de prg dentro del principal o solo dees poner todos los prgs en cuestion dentro del hbp sin hacer el include de prgs. Esta ultima en mi opinion queda más elegante de hacer.
Si, son sin comillas, solo lo pongo entre comillas para resaltarlo.
Ahh si. Mejor es usar el Bold tag para ese fin.

Solo no entiendo por qué tanto subdireectorios tienes (sub-folders). Yo partiria de la forma convencional. No siempre se puede aprovechar código de un sistema para el otro...
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Hola Pablo César,
Pablo César wrote:Javier lo que noto y que en mi opinion está errado, es que cuando creas manualmente el archivo .hbp para poner todos tus prgs que componen tu sistema, no deberia de forma alguna hacer por ejemplo el #Include "Includes/SistemaT.prg". O en tu hbp pones solo el prg principal y haces el include de prg dentro del principal o solo dees poner todos los prgs en cuestion dentro del hbp sin hacer el include de prgs. Esta ultima en mi opinion queda más elegante de hacer.
Si, ya me quedo claro que con el archivo .hbp ya no debe de haber la sentencia #Include "Includes/SistemaT.prg" en el .prg principal.
Pablo César wrote:Solo no entiendo por qué tanto subdireectorios tienes (sub-folders). Yo partiria de la forma convencional. No siempre se puede aprovechar código de un sistema para el otro...
Bueno mi intención es tener el menor numero de carpetas, lo tengo clasificado asi:

Code: Select all

C:\MiProyecto\MiSistema.prg
                      MiSistema.exe
                    \Includes\SistemaT.prg    >>Los .prg del proyecto
                    \Includes\Generales\    >>[b]Los .prg que tienen funciones y procedimientos para cualquier Proyecto. Mi Biblioteca.[/b]
                    \Imagenes          >> Todas las imagenes, .bmp, .ico, .jpg del Proyecto
                   \Data\                 >> Los archivos .dbf, .cdx, .fpt, etc.
                   \Formularios        >> Todos los Formularios que creo con el IDE.
Qué me recomendarías?, yo lo hago para tener orden en el tipo de archivos.

Pablo César wrote:Yo partiria de la forma convencional
Cuál es la forma convencional?
Pablo César wrote:No siempre se puede aprovechar código de un sistema para el otro...
Lo sé, en c:\MiProyecto\Includes\Generales\ ahí es donde pongo los .prg que tiene funciones que se pueden usar en cualquier sistema, como por ejemplo: La función Edad que me devuelve un array que contiene tres datos Dia, Mes y Año y eso no va a cambiar de un proyecto a otro. O cual es tu sugerencia?



Saludos
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Como compilar mas rapido? / How to compile faster?

Post by Pablo César »

La forma convencinalk a que me referia es colocar todo en un solo folder. Si quieres separar las imagenes, abres un sub-folder. Pero creo que todo esto es un estilo de trabajar y que cada uno debe trabajar como más le convenga.

Está bien que hay funcion, archivos que pueden se compartidos y que no hay necesidad de duplicarlos. Pero creo que hoy en dia con tanto espacio libre en HD grandes esto no sea tan presindible seguir.

Cuanto más simples esté tu código, cuando más entendible esté dispuesto las librerias que componen tu sistema, mejor vá a ser para que en el futuro tanto tu como otra persona pueda entenderlo y dar continuacion de manutencion.

No es crítica, apenas expongo mi forma de pensar.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Como compilar mas rapido? / How to compile faster?

Post by Javier Tovar »

Si Pablo César,

Así es mi filosofía, yo trato de hacer las cosas lo más simple posible, para que se pueda seguir el código a través del tiempo, y sea fácil de modificar y mejorar. Mis aplicaciones también trato de que cualquier usuario capte rápido la forma de trabajar en las diferentes pantallas y sea "lógico" lo que esta haciendo! :) , me dijo mi padre cuando empece con esto: "Hay que hacer las cosas para tontos!" y efectivamente eso me ha ayudado a hacer las cosas simples! :) :) :)

Saludos y Un gran abrazo!
Post Reply