source: tol/doc/general/comoDesarrolloDeTOL.lyx

devel
Last change on this file was 83a1cc2, checked in by Víctor de Buen <vdebuen@…>, 18 years ago

Unified document directory

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@21 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 29.2 KB
Line 
1#LyX 1.3 created this file. For more info see http://www.lyx.org/
2\lyxformat 221
3\textclass linuxdoc
4\language spanish
5\inputencoding auto
6\fontscheme default
7\graphics default
8\paperfontsize default
9\spacing single
10\papersize a4paper
11\paperpackage a4
12\use_geometry 0
13\use_amsmath 0
14\use_natbib 0
15\use_numerical_citations 0
16\paperorientation portrait
17\secnumdepth 3
18\tocdepth 3
19\paragraph_separation indent
20\defskip medskip
21\quotes_language english
22\quotes_times 2
23\papercolumns 1
24\papersides 1
25\paperpagestyle default
26
27\layout Title
28\added_space_top vfill \added_space_bottom vfill
29HOWTO:
30\begin_inset Quotes eld
31\end_inset
32
33Desarrollo de TOL
34\begin_inset Quotes erd
35\end_inset
36
37
38\layout Standard
39
40
41\begin_inset LatexCommand \tableofcontents{}
42
43\end_inset
44
45
46\layout Standard
47
48Copyright (c) 2003 Daniel Rus <daniel@uponeits.com> y Jorge Suit Pérez <jsperez@b
49ayesinf.com>
50\layout Standard
51
52Concedidos los derechos de copia, distribución y/o modificación de éste
53 documento bajo los términos de la
54\begin_inset Quotes eld
55\end_inset
56
57GNU Free Documentation License
58\begin_inset Quotes erd
59\end_inset
60
61, Versión 1.2 o posteriores publicadas por la Free Software Fundation.
62 
63\layout Standard
64
65Para involucrarse en el desarrollo de TOL es necesario saber cómo: encontrar
66 la información y el código de TOL, usar el CVS, y compilar.
67 El objetivo de éste documento ayuda a realizar estas tareas sin perder
68 demasiado tiempo.
69\layout Standard
70
71Éste documento esta dirigido a nuevos desarrolladores, a desarrolladores
72 ocasionales, y a todo aquel que este considerando contribuir al desarrollo
73 del Lenguaje TOL.
74 El documento resuelve las cuestiones básicas con las que todo desarrollador
75 se encuentra al implicarse en el desarrollo del lenguaje.
76\layout Section
77
78Código Fuente e Información General
79\layout Standard
80
81TOL es un lenguaje de programación interpretado, funcional, declarativo,
82 orientado al manejo de estructuras temporales, desarrollado desde 1995
83 para XXXXX.
84 Hasta 2002 en el desarrollo del lenguaje estuvieron implicados varias personas,
85 entre las que destacan, Victor de Buen, Antonio Salmerón, XXXXX...
86 A partir de 2002 el proyecto dió un giro hacia el Software Libre y nos
87 incorporamos a él otros desarrolladores.
88 
89\layout Standard
90
91En la fecha en la que se escribe este documento el Software esta dividido
92 en varias partes:
93\layout Itemize
94
95
96\series bold
97libTol
98\series default
99: la biblioteca tol
100\layout Itemize
101
102
103\series bold
104tolcon
105\series default
106: un intérprete y entorno interactivo usado para ejecutar ficheros con código
107 tol
108\layout Itemize
109
110
111\series bold
112libTolTcl
113\series default
114: la biblioteca de enlaza de Tol con el lenguaje Tcl
115\layout Itemize
116
117
118\series bold
119tolBase
120\series default
121: la Iinterfaz Gráfica de Usuario de Tol, escrita como una extensión de
122 Tcl.
123\layout Standard
124
125Hay muchos modos de colaborar con estos proyectos.
126 Se puede escribir nuevo código para el lenguaje, mejorar el que ya hay,
127 escribir documentación, traducir Tol a otros idiomas, reportar errores
128 y sugerir nuevas prestaciones.
129 
130\layout Standard
131
132Si quieres involucrarte en el desarrollo de código, o estas pensando en
133 ello, continua leyendo.
134 
135\layout Standard
136
137Si puedes contribuir de alguna otra manera, generando documentación o traduciend
138o Tol a otros idiomas, por favor, visita éstos otros documentos: XXXXX.
139\layout Standard
140
141Tol esta bajo la licencia GNU GPL de la Free Software Fundation.
142 
143\layout Standard
144
145El código fuente de Tol esta estructurado en:
146\layout Itemize
147
148clases básicas
149\layout Itemize
150
151núcleo (parsing, tipos básicos y entorno de ejecución)
152\layout Itemize
153
154operadores y funciones soportadas por los tipos básicos
155\layout Itemize
156
157algoritmos matemáticos
158\layout Standard
159
160Tol utiliza algunos algoritmos de la GNU Scientific Library (GSL), y de
161 la implementación que hace ésta de los algoritmos básicos del álgebra lineal
162 (BLAS) por lo que será necesario disponer del paquete GSL en el entorno
163 de desarrollo.
164 Para obtener GNU GSL visita
165\family sans
166http://www.gnu.org
167\family default
168.
169\layout Subsection
170
171URLs
172\layout Standard
173
174Lista de URLs relacionadas con tol.
175\layout Standard
176
177Página Web principal de tol:
178\family sans
179\series bold
180http://www.tol-project.org
181\layout Standard
182
183Página Web de los desarrolladores:
184\family sans
185\series bold
186http://devel.tol-project.org
187\layout Standard
188
189Página Web sobre los informes de errores:
190\family sans
191\series bold
192http://bugs.tol-project.org
193\layout Standard
194
195Acceso al Código Fuente y Binarios:
196\family sans
197\series bold
198ftp://ftp.tol-project.org
199\layout Standard
200
201Acceso al árbol cvs de tol:
202\family sans
203\series bold
204http://webcvs.tol-project.org
205\layout Standard
206
207Página Web de Bayes Decisión SL, la empresa que desarrolla tol:
208\family sans
209\series bold
210http://www.bayesinf.com
211\layout Subsection
212
213Listas de Correo
214\layout Standard
215
216Los proyectos de tol tienen varias listas de correo.
217\layout Itemize
218
219
220\series bold
221\shape italic
222tol-devel
223\series default
224\shape default
225, donde los desarrolladores de tol hablan sobre las cuestiones relacionadas
226 con el desarrollo de tol y las aplicaciones que le rodean.
227\layout Itemize
228
229
230\series bold
231\shape italic
232toltcl-devel
233\series default
234\shape default
235, igual que la anterior pero orientada a la biblioteca TolTcl.
236\layout Itemize
237
238
239\series bold
240\shape italic
241tolbase-devel
242\series default
243\shape default
244, igual que la anterior pero orientada a la Interfaz Gráfica TolBase.
245\layout Itemize
246
247
248\series bold
249\shape italic
250tol-cvs
251\series default
252\shape default
253, es la lista que recoge los cambios que se van aplicando al repositorio
254 de código fuente.
255\layout Itemize
256
257
258\series bold
259\shape italic
260tol-users
261\series default
262\shape default
263, donde los usuarios de tol hablan sobre el uso del lenguaje y la resolución
264 de problemas con tol.
265\layout Itemize
266
267
268\series bold
269\shape italic
270tol-announce
271\series default
272\shape default
273, donde se anuncian las novedades relativas a tol.
274\layout Standard
275
276Para suscribirse hay que enviar un mensaje a <
277\series bold
278\shape italic
279nombredelalistadecorreo-request@tol-project.org
280\series default
281\shape default
282> con el mensaje
283\begin_inset Quotes eld
284\end_inset
285
286
287\shape italic
288subscribe myid@mydomainname
289\shape default
290
291\begin_inset Quotes erd
292\end_inset
293
294, donde
295\shape italic
296myid@mydomainname
297\shape default
298 es la cuenta de correo electrónico de quien se suscribe.
299 Por ejemplo, para suscribirse a
300\series bold
301\shape italic
302tol-devel
303\series default
304\shape default
305 hay que enviar un correo electrónico a <
306\series bold
307\shape italic
308tol-devel-request@tol-project.org
309\series default
310\shape default
311>.
312\layout Section
313
314CVS de Tol
315\layout Subsection
316
317Introducción
318\layout Standard
319
320El CVS de Tol es el repositorio de código fuente de todos los proyectos
321 relacionados con Tol.
322 Se puede acceder a su contenido a través de:
323\layout Enumerate
324
325World Wide Web:
326\family sans
327\series bold
328webcvs.tol-project.org
329\layout Enumerate
330
331la descarga de los tarball (tar.gz y tar.bz2) por FTP
332\layout Enumerate
333
334la utilidad de linea de comandos
335\begin_inset Quotes eld
336\end_inset
337
338cvs
339\begin_inset Quotes erd
340\end_inset
341
342
343\layout Enumerate
344
345una interfaz gráfica de cvs
346\layout Standard
347
348Los métodos 1 y 2 son métodos de solo-lectura de acceso al código fuente
349 y están disponibles públicamente, en cambio, los métodos 3 y 4 permiten
350 también el acceso de lectura y escrita.
351\layout Standard
352
353El método 1 permite navegar por los directorios de los proyectos y acceder
354 al código fuente.
355 Es recomendable solamente para acceder a determinados ficheros, pero no
356 para trabajar con todo el árbol de código.
357\layout Standard
358
359Los tarball reunen el código del cvs en momentos determinados y bajo números
360 de versión de manera que se van liberando a medida que los proyectos van
361 evolucionando.
362 
363\layout Standard
364
365El repositorio cvs recoge los cambios que los desarrolladores van haciendo
366 al código fuente.
367 Cada vez que un desarrollador realiza un cambio en el cvs incluye un comentario
368, de manera que el desarrollo del código puede ser seguido más fácilmente.
369 Estos cambios son enviados a la lista de correo
370\series bold
371\shape italic
372tol-cvs@tol-project.org
373\series default
374\shape default
375.
376\layout Standard
377
378El código en el CVS puede ser marcado en cualquier momento de manera que
379 se pueda volver siempre a la posición fijada por la marca establecida.
380 El código en el CVS también puede ser ramificado en diferentes lineas de
381 desarrollo.
382 Las ramificaciones comienzan siempre en las marcas establecidas.
383 La rama marcada como
384\begin_inset Quotes eld
385\end_inset
386
387HEAD
388\begin_inset Quotes erd
389\end_inset
390
391 se emplea como rama principal del árbol de código, donde se van incorporando
392 los desarrollos.
393 Cuando llega el momento de liberar nuevas versiones de los proyectos, estas
394 se marcan en el cvs con nombres distintos, lo que permitirá tenerlas organizada
395s.
396\layout Standard
397
398El acceso al árbol de código fuente a través del método 3 y 4 se explica
399 con más detalle en la siguiente subsección.
400\layout Subsection
401
402Cómo obtener una cuenta del CVS
403\layout Standard
404
405Se puede obtener una cuenta de acceso de escritura al CVS de TOL siempre
406 que la persona que la solicite este vinculada con el desarrollo del lenguaje
407 o con alguno de los módulos que lo componen.
408 Para solicitar la cuenta es necesario enviar un email indicándolo al administra
409dor del sistema a <
410\series bold
411\shape italic
412sysadmin@tol-project.org
413\series default
414\shape default
415>.
416 
417\layout Standard
418
419Hay dos métodos de acceso al CVS:
420\family typewriter
421pserver
422\family default
423 o
424\family typewriter
425ssh
426\family default
427.
428\layout Standard
429
430Para obtener acceso a través del primer método es necesario incluir en el
431 email la password del usuario.
432 Ésta puede ser generada mediante el siguiente comando perl:
433\layout Standard
434
435
436\family typewriter
437perl -e print
438\backslash
439 crypt
440\backslash
441('password','xx'
442\backslash
443)
444\backslash
445.
446\backslash
447"
448\backslash
449
450\backslash
451n
452\backslash
453"
454\layout Standard
455
456En dicho comando
457\family typewriter
458password
459\family default
460 es la clave con la que accederá al CVS, y
461\family typewriter
462xx
463\family default
464 son dos caracteres del conjunto (
465\family typewriter
466a-zA-Z0-9./
467\family default
468).
469 La salida del comando es la password cifrada que debe adjuntar en el email.
470\layout Standard
471
472Para acceder al CVS a través del método
473\family typewriter
474ssh
475\family default
476 es necesario generar un par de claves, una pública y otra privada.
477 Para crear el par de claves puede ejecutar la siguiente utilidad que probableme
478nte tenga instalada en su sistema:
479\layout Standard
480
481
482\family typewriter
483ssh-keygen -t dsa
484\layout Standard
485
486A continuación siga las instrucciones que se le muestran.
487 Una vez finalizado tendrá dos nuevos ficheros generados con una clave cada
488 uno.
489 El fichero generado con extensión .
490\family typewriter
491pub
492\family default
493 contiene la clave pública y el otro la clave privada.
494 Junto al email que nos envie no olvide adjuntar el fichero con la clave
495 pública.
496 El fichero con la clave privada lo necesitará en todas aquellas máquinas
497 desde las que quiera acceder al CVS.
498\layout Subsection
499
500Uso del CVS
501\layout Standard
502
503Probablemente la utilidad
504\begin_inset Quotes eld
505\end_inset
506
507
508\family typewriter
509cvs
510\family default
511
512\begin_inset Quotes erd
513\end_inset
514
515 este ya instalada en su sistema.
516 Si no es así, debería consultar
517\family typewriter
518http://www.cvshome.org
519\family default
520, donde podrá obtener la mejor información sobre la misma.
521 
522\layout Standard
523
524Para aprender a usar el CVS es muy recomendable leer el manual que esta
525 disponible en la página web mencionada.
526 No obstante aqui se recogen los comandos más típicos.
527\layout Subsection
528
529Acceso al CVS a través de la cuenta de usuario
530\layout Standard
531
532En éste apartado vamos a asumir que ya tiene una cuenta de usuario para
533 acceder al CVS.
534 Supongamos que el nombre de usuario de su cuenta de CVS es
535\family typewriter
536cvsuser
537\family default
538.
539 Para poder acceder al CVS necesitará tener creada la variable de entorno
540 
541\family typewriter
542CVSROOT
543\family default
544 y establecida a
545\begin_inset Quotes eld
546\end_inset
547
548
549\family typewriter
550:pserver:cvsuser@cvs.tol-project.org:/home/tolcvs
551\family default
552
553\begin_inset Quotes erd
554\end_inset
555
556
557\layout Standard
558
559Si esta realizando el acceso a través de
560\family typewriter
561ssh
562\family default
563 tendrá que cambiar, en la variable
564\family typewriter
565CVSROOT
566\family default
567 la palabra
568\family typewriter
569\series bold
570pserver
571\family default
572\series default
573 por la palabra
574\family typewriter
575\series bold
576ext
577\family default
578\series default
579, así como establecer otra variable de entorno denominada
580\family typewriter
581CVS_RSH
582\family default
583 con valor
584\begin_inset Quotes eld
585\end_inset
586
587
588\family typewriter
589ssh
590\family default
591
592\begin_inset Quotes erd
593\end_inset
594
595.
596\layout Subsection
597
598Acceso al CVS a través del usuario anónimo
599\layout Standard
600
601En caso de que no tenga una cuenta de usuario para acceder al CVS, puede
602 emplear el usuario
603\begin_inset Quotes eld
604\end_inset
605
606
607\family typewriter
608\series bold
609anonymous
610\family default
611\series default
612
613\begin_inset Quotes erd
614\end_inset
615
616.
617 En ese caso tiene que establecer la variable de entorno
618\family typewriter
619CVSROOT
620\family default
621 al siguiente valor
622\begin_inset Quotes eld
623\end_inset
624
625
626\family typewriter
627:pserver:anonymous@cvs.tol-project.org:/home/tolcvs
628\family default
629
630\begin_inset Quotes erd
631\end_inset
632
633.
634\layout Subsection
635
636Descargar un módulo
637\layout Standard
638
639Actualmente el CVS cuenta con los siguientes módulos:
640\family typewriter
641tol
642\family default
643,
644\family typewriter
645toltcl
646\family default
647 y
648\family typewriter
649tolbase
650\family default
651.
652\layout Standard
653
654Para descargar alguno de ellos es necesario usar el comando
655\family typewriter
656checkout
657\family default
658 del cvs:
659\layout Standard
660
661
662\family typewriter
663cvs -z4 checkout -r HEAD nombredelmódulo
664\layout Standard
665
666La opción
667\family typewriter
668-r
669\family default
670 le dice al cvs que rama del módulo quiere descargar.
671 Si no se indica ninguna rama con la opción
672\family typewriter
673-r
674\family default
675 se descarga el módulo de la rama principal,
676\family typewriter
677HEAD
678\family default
679.
680\layout Standard
681
682
683\family typewriter
684cvs -z4 checkout nombredelmódulo
685\layout Standard
686
687Para descargar la rama Tol_1_1_10 del módulo tol utilizaremos el comando:
688\layout Standard
689
690
691\family typewriter
692cvs -z4 checkout -r Tol_1_1_10 tol
693\layout Subsection
694
695Descargar un directorio contenido en un módulo
696\layout Standard
697
698En algunas circunstancias puede que solo le interese trabajar con determinados
699 directorios de un módulo.
700 Para descargar solo determinados directorio de un módulo podemos emplear
701 la opción -l del cvs que indica que no descargue recursivamente todos los
702 subdirectorios contenidos en el módulo indicado:
703\layout Standard
704
705
706\family typewriter
707cvs -z4 co -l tol
708\layout Standard
709
710
711\family typewriter
712cvs -z4 co -l tol/bdat
713\layout Standard
714
715El primer comando descarga el contenido del directorio raíz del módulo tol,
716 es decir, sus ficheros, sin descargar ninguno de sus directorios hijos.
717 El segundo comando descargará el directorio bdat contenido en el módulo
718 tol y lo ubicará dentro del anterior directorio.
719\layout Subsection
720
721Actualización del código previamente descargado
722\layout Standard
723
724El código que ha desargado del CVS puede estar siendo modificado por otros
725 desarrolladores que trabajan con sus copias descargadas en sus sistemas.
726 El código modificado, después de ser probado, es enviado al repositorio.
727 Dispone de otro comando que le permite actualizar la copia de código que
728 descargó y así permanecer actualizado a los cambios que se realizan en
729 el CVS.
730 Dicho comando es el comando
731\family typewriter
732update
733\family default
734 del cvs:
735\layout Standard
736
737
738\family typewriter
739cvs -z4 update -P -d tol
740\layout Standard
741
742Si ya se encuentra dentro del directorio quiere actualizar no es necesario
743 especificarlo:
744\layout Standard
745
746
747\family typewriter
748cvs -z4 update -P -d
749\layout Standard
750
751La opción
752\family typewriter
753-P
754\family default
755 indica que sean eliminados los directorios vacios, la opción
756\family typewriter
757-d
758\family default
759 indica que sean construidos aquellos directorios que se hayan añadido al
760 CVS desde la última descarga.
761\layout Subsection
762
763Entregar los cambios al repositorio
764\layout Standard
765
766Para enviar los cambios al repositorio y que estos estén disponibles para
767 el resto de usuarios del CVS tenemos que emplear el comando
768\family typewriter
769commit
770\family default
771 del
772\family typewriter
773cvs
774\family default
775:
776\layout Standard
777
778
779\family typewriter
780cvs -z4 commit nomarch
781\layout Standard
782
783
784\family typewriter
785nomarch
786\family default
787 es el nombre del archivo que estamos entregando al CVS.
788 Podemos entregar una lista de archivos con una solo sentencia
789\family typewriter
790cvs commit
791\family default
792 simplemente indicando el camino y el nombre a los mismos:
793\layout Standard
794
795
796\family typewriter
797cvs -z4 commit nomarch1 camino2/nomarch2 camino3/nomarch3 ...
798 
799\layout Standard
800
801Una vez ejecutado el comando se nos solicitará una explicación de los cambios
802 que estamos entregando al CVS.
803 Todos los cambios que se realicen en el código deben ir acompañados, en
804 el
805\family typewriter
806commit
807\family default
808, de éste comentario explicativo de los cambios que se realizan, algo escueto,
809 pero lo suficientemente descriptivo.
810 Podemos indicar la opción
811\family typewriter
812-m
813\family default
814 a
815\family typewriter
816commit
817\family default
818 para incluir directamente el comentario en la linea de comando:
819\layout Standard
820
821
822\family typewriter
823cvs -z4 commit -m
824\begin_inset Quotes eld
825\end_inset
826
827set macros *_C_DECLS to use C functions with C++ code
828\begin_inset Quotes erd
829\end_inset
830
831 tol_bcommon.h
832\layout Standard
833
834Puedes establecer la variable de entorno
835\family typewriter
836EDITOR
837\family default
838 o
839\family typewriter
840CVSEDITOR
841\family default
842 a tu editor favorito para que el cvs lo invoque al hacer el
843\family typewriter
844commit
845\family default
846 sin la opción
847\family typewriter
848-m
849\family default
850.
851\layout Subsection
852
853Añadir un fichero
854\layout Standard
855
856Para añadir un fichero
857\family typewriter
858nomarch.cpp
859\family default
860 a un directorio
861\family typewriter
862dir
863\family default
864:
865\layout Standard
866
867
868\family typewriter
869cd dir
870\layout Standard
871
872
873\family typewriter
874cvs add nomarch.cpp
875\layout Standard
876
877
878\family typewriter
879cvs commit -m
880\begin_inset Quotes eld
881\end_inset
882
883explanatory comment
884\begin_inset Quotes erd
885\end_inset
886
887 nomarch.cpp
888\layout Standard
889
890Hasta que no hagamos el
891\family typewriter
892cvs commit
893\family default
894 el nuevo fichero no pasará a formar parte del directorio
895\family typewriter
896dir
897\family default
898 en el CVS.
899\layout Subsection
900
901Borrar un fichero
902\begin_inset LatexCommand \label{sec:Borrar-un-fichero}
903
904\end_inset
905
906
907\layout Standard
908
909Para borrar un fichero nomarch.cpp de un directorio dir:
910\layout Standard
911
912
913\family typewriter
914cd dir
915\layout Standard
916
917
918\family typewriter
919rm nomarch.cpp
920\layout Standard
921
922
923\family typewriter
924cvs remove nomarch.cpp
925\layout Standard
926
927
928\family typewriter
929cvs commit -m
930\begin_inset Quotes eld
931\end_inset
932
933explanatory comment
934\begin_inset Quotes erd
935\end_inset
936
937
938\layout Subsection
939
940Añadir un directorio
941\layout Standard
942
943Si necesitamos añadir código al proyecto y tenemos que hacerlo en un nuevo
944 directorio, hay que seguir los siguientes pasos.
945 Suponiendo que el directorio que queremos crear se llama
946\family typewriter
947nomdir
948\family default
949 y que vamos a añadir el fichero
950\family typewriter
951nomarch.cpp
952\family default
953 al directorio
954\family typewriter
955nomdir
956\family default
957, todo ello bajo el directorio del proyecto
958\family typewriter
959tol
960\family default
961:
962\layout Standard
963
964
965\family typewriter
966cd tol
967\layout Standard
968
969
970\family typewriter
971mkdir nomdir
972\layout Standard
973
974ahora escribimos el nuevo fichero (
975\family typewriter
976nomarch.cpp
977\family default
978)
979\layout Standard
980
981
982\family typewriter
983cvs add nomdir
984\layout Standard
985
986
987\family typewriter
988cvs add nomarch.cpp
989\layout Standard
990
991
992\family typewriter
993cvs commit -m
994\begin_inset Quotes eld
995\end_inset
996
997explanatory comment
998\begin_inset Quotes erd
999\end_inset
1000
1001
1002\layout Standard
1003
1004El fichero y el directorio no se añadirá al repositorio hasta que no ejecute
1005 el
1006\family typewriter
1007commit
1008\family default
1009.
1010 Para poder añadir un directorio al repositorio es necesario que éste contenga
1011 ficheros.
1012\layout Subsection
1013
1014Borrar un directorio
1015\layout Standard
1016
1017Para borrar un directorio es necesario primero borrar todos el contenido
1018 de éste.
1019 Por ejemplo, para borrar el directorio nomdir, que contiene el fichero
1020 nomarch.cpp:
1021\layout Standard
1022
1023
1024\family typewriter
1025cd tol/nomdir
1026\layout Standard
1027
1028ahora borramos el fichero nomarch.cpp siguiendo el método explicado en
1029\begin_inset LatexCommand \ref{sec:Borrar-un-fichero}
1030
1031\end_inset
1032
1033, y continuamos borrando el directorio:
1034\layout Standard
1035
1036
1037\family typewriter
1038cd ..
1039\layout Standard
1040
1041
1042\family typewriter
1043cvs -P update
1044\layout Standard
1045
1046El último comando eliminará el directorio nomdir localmente.
1047\layout Subsection
1048
1049Almacenar las opción habituales
1050\layout Standard
1051
1052El sistema CVS ofrece la posibilidad de almacenar las opciones más usadas
1053 en un fichero de recurso, ~/.cvsrc.
1054 Recomendamos emplear los siguientes valores en dicho fichero:
1055\layout Standard
1056
1057
1058\family typewriter
1059cvs -z4
1060\layout Standard
1061
1062
1063\family typewriter
1064diff -u
1065\layout Standard
1066
1067
1068\family typewriter
1069update -dP
1070\layout Standard
1071
1072
1073\family typewriter
1074checkout -P
1075\layout Standard
1076
1077La primera linea indica que la opción -
1078\family typewriter
1079z4
1080\family default
1081 se aplicará cada vez que aparezca el comando
1082\family typewriter
1083cvs
1084\family default
1085en la linea de comandos.
1086 La opción
1087\family typewriter
1088-z4
1089\family default
1090 aplica el nivel 4 de compresión.
1091 La segunda linea indica que la salida del comando
1092\family typewriter
1093cvs diff
1094\family default
1095 sea conforme al formato unidiff, más sencilla de interpretar que la salida
1096 normal.
1097 Las opciones
1098\family typewriter
1099-dP
1100\family default
1101 dadas a
1102\family typewriter
1103update
1104\family default
1105 indican que se obtengan los nuevos directorios del árbol y que se borren
1106 aquellos que hayan quedado vacíos.
1107 La opción
1108\family typewriter
1109-P
1110\family default
1111 de
1112\family typewriter
1113checkout
1114\family default
1115 indica que no se descarguen los directorios vacíos.
1116\layout Section
1117
1118Software adicional y compilación
1119\layout Standard
1120
1121Existen actualmente tres proyectos englobados bajo el nombre TOL-project:
1122\layout Standard
1123
1124La biblioteca libTol, que contiene el lenguaje, la biblioteca libTolTcl
1125 que sirve de enlace entre Tol y el lenguaje Tcl, y la extensión de Tcl
1126 denominada tolBase (interfaz gráfica de usuario para el manejo del lenguaje
1127 Tol).
1128\layout Standard
1129
1130Cada una de estas piezas se construyen por separado y tienen unos requerimientos
1131 distintos de compilación.
1132\layout Standard
1133
1134La biblioteca libTol requiere la presencia de otras bibliotecas para su
1135 compilación.
1136 Éstas son la GSL (GNU Scientifc Library) y una implementación de ODBC,
1137 que en el caso de estar compilando en Unix o Linux puede ser la implementación
1138 UnixODBC o la que realiza Open Link llamada iODBC.
1139\layout Standard
1140
1141Por lo que respecta a la biblioteca libTolTcl de enlace entre Tol y Tcl,
1142 es necesario tener instalado las bibliotecas de código de Tcl/Tk del lenguaje
1143 así como los ficheros include que lo componen.
1144\layout Standard
1145
1146El programa TolBase requiere para su correcto funcionamiento de Tcl/tk 8.4,
1147 Tktable2.7, TclODBC, BLT2.4 y Tol.
1148\layout Subsection
1149
1150Compilación del Código Fuente
1151\layout Standard
1152
1153Tanto si se accede al código a través del CVS como a través de los tarball,
1154 cada uno de los proyectos dispone de la información para construir el software
1155 en sistemas Unix y gnu/Linux empleando las herramientas comúnmente conocidas
1156 como GNU Autotools.
1157\layout Standard
1158
1159Cada proyecto cuenta con un guión bootstrap que toma el fichero
1160\family sans
1161configure.in
1162\family default
1163 para crear un shell script
1164\family sans
1165configure
1166\family default
1167.
1168 El shell script configure creará los ficheros
1169\family sans
1170Makefile
1171\family default
1172 necesarios para construir cada proyecto.
1173 En cada proyecto se incluye un fichero
1174\family sans
1175INSTALL
1176\family default
1177 con instrucciones que explican cúales son las opciones que podemos emplear
1178 para invocar
1179\family sans
1180configure
1181\family default
1182 adecuadamente.
1183\layout Standard
1184
1185Bajo el directorio win se incluyen los ficheros que necesita el entorno
1186 de compilación Visual C de Microsoft.
1187 Aunque bajo dicho sistema operativo, previa instalación de la implementación
1188 de Shell Cygwin (
1189\family sans
1190http://www.cygwin.com
1191\family default
1192), se pueden utizar las GNU Autotools.
1193\layout Section
1194
1195Documentación
1196\layout Standard
1197
1198Es necesario documentar el trabajo de desarrollo.
1199 En dicho trabajo existen dos actividades de documentación: la documentación
1200 del código, y la documentación general.
1201\layout Standard
1202
1203La documentación del código de la biblioteca de tol, libTol, se analiza
1204 por Doxygen, una herramienta de generación automática de documentación,
1205 y se generan las páginas HTML de la API de Tol, disponibles en
1206\family sans
1207http://devel.tol-project.org/tolapi/index.html
1208\family default
1209.
1210 Con apenas aplicar ciertas normas de estilo en los comentarios del código
1211 fuente, Doxygen generará una atractiva documentación muy útil para navegar
1212 por el código.
1213\layout Standard
1214
1215La documentación general del trabajo de desarrollo es aquella relacionada
1216 con la explicación, en un formato humanizado, del trabajo realizado.
1217 Explicar para que sirven las nuevas funciones creadas, o algún nuevo tipo
1218 de utilidad que se haya añadido al lenguaje, o explicar los cambios que
1219 se han realizado y como hay que emplear las nuevas características.
1220 Esta documentación esta disponible en
1221\family sans
1222http://devel.tol-project.org/doc/index.html
1223\family default
1224, en los formatos:
1225\family sans
1226html
1227\family default
1228,
1229\family sans
1230ps
1231\family default
1232,
1233\family sans
1234dvi
1235\family default
1236 y
1237\family sans
1238pdf
1239\family default
1240.
1241 Para generar la nueva documentación se pueden usar editores como LyX (
1242\family sans
1243http://www.lyx.org
1244\family default
1245).
1246\layout Subsection
1247
1248Documentando el Código Fuente
1249\layout Standard
1250
1251Las reglas básicas que se emplean para documentar el código empleando Doxygen
1252 se explican en el documento
1253\begin_inset Quotes eld
1254\end_inset
1255
1256Source Code Organization
1257\begin_inset Quotes erd
1258\end_inset
1259
1260 (
1261\family sans
1262http://devel.tol-project.org/doc/srcCodeOrg.html
1263\family default
1264), pero aqui hacemos una breve explicación de las mismas.
1265\layout Standard
1266
1267Siempre que sea n
1268\layout Subsubsection
1269
1270Tipos de comentarios de documentación
1271\layout Standard
1272
1273Para que Doxygen genere documentación a partir de los comentarios en una
1274 línea de C++ o los comentarios en múltiples líneas comunes a C y C++, es
1275 necesario acompañarlos del signo de admiración.
1276 Los comentarios en una linea tienen el siguiente aspecto:
1277\layout Verbatim
1278
1279//! comentario en una línea para que sea captado por Doxygen
1280\layout Standard
1281
1282Los comentario en múltiples lineas tienen éste otro aspecto:
1283\layout Verbatim
1284
1285/*! Esto es un comentario en
1286\newline
1287 *  múltiples líneas para que lo
1288\newline
1289 *  capte Doxygen
1290\newline
1291 */
1292\layout Subsubsection
1293
1294Comentar Atributos
1295\layout Standard
1296
1297Los comentarios de los atributos de una clase aparecen comentados así:
1298\layout Verbatim
1299
1300Any* buffer_; //!< Storage pointer
1301\layout Verbatim
1302
1303BInt maxSize_; //!< Maximum number of items that has been stored
1304\layout Subsubsection
1305
1306Comentar Métodos y Funciones
1307\layout Verbatim
1308
1309//! Add a new obj to buffer_
1310\layout Verbatim
1311
1312/*! Verify if
1313\backslash
1314a obj exist in buffer_ using a function of type
1315\newline
1316 *  BorderCriterium and calling Find method.
1317 Then insert
1318\backslash
1319a obj
1320\newline
1321 *  in buffer_ with Add method.
1322\newline
1323 */
1324\newline
1325BBool AddUnique(const Any@ obj, BOrderCriterium order)
1326\newline
1327{
1328\newline
1329  BBool unique = (Find(obj, order)<0);
1330\newline
1331  if(unique) { Add(obj); }
1332\newline
1333  return (unique);
1334\newline
1335}
1336\layout Standard
1337
1338El primero comentario, el de una sola línea, aparecera como comentario breve
1339 en la documentación junto a la declaración del método.
1340 El comentario de múltiples líneas aparecerá en la descripción detallada
1341 del método.
1342 Doxygen tiene elementos que permiten resaltar los parámetros de los métodos
1343 y funciones, y los tipos devueltos.
1344 También permite crear enlaces html a otras funciones mencionadas en el
1345 comentario.
1346\layout Section
1347
1348Envio de código a TOL-project
1349\layout Standard
1350
1351Si esta participando en el desarrollo de alguno de los proyectos de TOL
1352 pero no tiene una cuenta en el CVS (algo frecuente si las colaboraciones
1353 son esporádicas o se realizan solo en determinadas partes del código) el
1354 código se envia por correo electrónico a alguno de los mantenedores de
1355 los proyectos con los que tiene contacto.
1356 Las direcciones de correo electrónico de estas personas se encuentran a
1357 menudo en los ficheros fuente de los proyectos o bien en el fichero AUTHORS
1358 de cada proyecto.
1359\layout Section
1360
1361Acerca de éste documento
1362\layout Subsection
1363
1364Dónde encontrarlo
1365\layout Standard
1366
1367La versión actualizada de éste documento se puede encontrar en
1368\family sans
1369http://devel.tol-project.org/doc/comoDesarrolloDeTol/
1370\layout Subsection
1371
1372Otros Formatos
1373\layout Standard
1374
1375Se puede encontrar una copia de éste documento en formato html, ps, dvi
1376 y pdf en el URL anterior.
1377\layout Subsection
1378
1379Cambios
1380\layout Standard
1381
1382Cambios desde la versión <14 de Noviembre de 2003> a <fijar_fecha>
1383\layout Itemize
1384
1385Cambio 1
1386\layout Itemize
1387
1388Cambio 2
1389\layout Itemize
1390
1391...
1392\the_end
Note: See TracBrowser for help on using the repository browser.