Guia de Instalación Modula-31: Critical Mass Modula-3, cm32



Contents

1 Paquetes para (k)ubuntu edgy

sudo apt-get install <paquetes>

paquetes previos que deben ser instalados.

sudo apt-get install autoconf automake autotools-dev build-essential cpp-4.1 freeglut3-dev gcc-4.1 gcc-4.1-base libgl1-mesa-dev libglu1-mesa-dev libice-dev libltdl3 libncurses5-dev libsm-dev libx11-dev libxau-dev libxaw7-dev libxaw-headers libxdmcp-dev libxext-dev libxmu-dev libxmu-headers libxpm-dev libxt-dev mesa-common-dev odbcinst1debian1 texinfo unixodbc x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xtrans-dev dpkg-dev g++ m4 flex lesstif2-dev lesstif-bin

En caso de no encontrar algún paquete buscarlo en internet http://packages.ubuntu.com/<paquete> descargarlo e instalarlo manualmente.

2 Instalación bootstrap de cm3

El compilador y runtime cm3 versión 5.4.0 están escritos en Modula-3, es necesario tener instalado unos ejecutables binarios (bootstrap) previamente para poder iniciar el proceso de compilación del cm3 completo:

Entrar en una consola para seguir los pasos.

2.1 Crear carpeta cm3-boot dentro del home del usuario admin##

  1. cd
  2. mkdir cm3-boot
  3. cd cm3-boot
  4. Descargar cm3-min-POSIX-LINUXLIBC6-5.4.0.tgz del sitio (dentro de la UN) ftp://linux.unal.edu.co/m3/cm3/ y dejar el archivo en la carpeta cm3-boot
  5. Descomprimir con

    tar zxvf cm3-min-POSIX-LINUXLIBC6-5.4.0.tgz

2.2 Configuración del bootstrap

  1. Ejecutar el archivo cminstall con

    sudo ./cminstall

  2. Contestar las preguntas que permiten instalar en el sistema el bootstrap, considerando los siguientes aspectos:

    1. La primera pregunta es sobre que directorio dejará instalado cm3, la respuesta entre corchetes [] (por defecto) es [/usr/local/cm3]. Si previamente no se instaló un cm3, esta respeusta es correcta.
    2. Si la pregunta se trata de librerias (Motif, X11, ODBC):

      1. La respuesta preferida es: /usr/lib
      2. Cualquier pregunta que después de ser contestada avise que no existen todos los archivos buscados en /usr/lib, tales como libXmu.a, libX11.a, etc, por ejemplo, hará dos preguntas derivadas a contestar de la siguiente manera: no, yes:

        1. Primero pregunta si quiere cambiale de nombre a las bibliotecas, se le contesta que no: 'Would you like to change the library names? [yes]:' no
        2. Luego de esto preguntará que si desea continuar de todas maneras, decimos si: 'Would you like to continue nonetheless? [yes]:' yes
    3. Si la pregunta se trata de un programa (vi, gcc, as, ar):

      1. Contestar con: /usr/bin/<programa> donde programa es vi, gcc, ar o as. En estos casos se puede dar enter sin dar la respuesta pues cminstall asume la respuesta igual a entre corchetes [/usr/bin/programa]
      2. Si una pregunta se repite, verificar que el programa se encuentre en la ruta indicada en la respuesta.

2.3 Ajustar las Opciones del archivo de configuración /usr/local/cm3/bin/cm3.cfg

Debido a que cm3 compila por default el sistema de hilos con la libreía Pthread del sistema Linux, debemos introducir la ubicación de Pthreads en el archivo de configuración de cm3 con:

kdesu kate /usr/local/cm3/bin/cm3.cfg

  1. Dentro del arreglo SYSTEM_LIBS introducir está linea antes de la última variable de ese arreglo, TCP:

    ...

    "PTHREAD" : [ "-L/usr/lib", "-lpthread" ],

    "TCP" : [ ]

    }

  2. También se debe incluir la nueva variable en el array que está más adelante en el arreglo SYSTEM_LIBORDER, escribiendo , "PTHREAD" antes de cerrar los corchetes [], quedando así :

    SYSTEM_LIBORDER = [ "OPENGL", "DECPEX", "MOTIF", "X11", "TCP", "ODBC", "POSTGRES95", "FLEX-BISON", "LEX-YACC", "LIBC", "PTHREAD" ]

  3. Guardar los cambios.

2.4 Verificar cm3

  1. Comprobar el funcionamiento y correcto del archivo de configuración invocando:

    /usr/local/cm3/bin/cm3
    Observar si hay salida de error por el archivo cm3.cfg.

    1. Si el mensaje es

      -- building in LINUXLIBC6 -- pero no termina, dar Ctrl+C para terminar el proceso. En este caso es posible que nos diga también

      Fatal Error: unable to get absolute path for "../ruta/extraña": Invalid Pathname. Esto quiere decir que intentó buscar archivos fuentes de Modula-3 pero no encontró una ruta apropiada. De todas maneras el bootstrap está bien instalado.

    2. Si el mensaje es, nothing to be build, el bootstrap está bien instalado.
    3. Si el mensaje indica, quake runtime error, verificar el archivo cm3.cfg.
  2. Verificar si en el directorio actual se generó una carpeta con el nombre LINUXLIBC6 y borrarla en tal caso

    ls

    rm -rf LINUXLIBC6

3 Compilación de las fuentes de cm3-5.4

3.1 Descomprimir fuentes

  1. Crear carpeta de fuentes de cm3 (estando en el home) llamada cm3-5.4:

    1. cd
    2. mkdir cm3-src
      cd cm3-src
  2. Bajar las fuentes (cm3-5.4.tgz) de cm3 que se encuentran en ftp://linux.unal.edu.co/m3/cm3, alternativamente por konqueror usar sftp con alguna máquina que tenga el servidor ssh y los archivos listos. Dejar el archivo en la carpeta creada.
  3. Descomprimir las fuentes

    tar zxvf cm3-5.4.tgz

3.2 Entorno

Ajustar las variables de entorno para que sepa de los binarios de cm3, agregar en el archivo ~/.bashrc al final las siguientes tres export: (Ejecutar el comando kate ~/.bashrc para agregar las lineas).

  1. Avisar que queremos usar cm3 con la variable PTHREAD

    export CM3="/usr/local/cm3/bin/cm3 -DPTHREAD"

  2. Avisar de todos los binarios de cm3 incluido el compilador:

    export PATH=''/usr/local/cm3/bin'':$PATH

  3. Configurar el linker para que sepa de las librerias dinámicas presentes de cm3:

    export LD_LIBRARY_PATH=''/usr/local/cm3/lib'':$LD_LIBRARY_PATH

  4. Configurar las págian de ayuda de man

    export MANPATH=''/usr/local/cm3/man'':$MANPATH

  5. Guardar cambios y recargar las nuevas variables en la consola ejecutando el comando

    bash

3.3 Actualizar cache

sudo ldconfig -v

3.4 Compilar fuentes

Ir a la carpeta de scripts de cm3:

cd cm3/scripts

  1. Abrir el archivo cm3/scripts/def-std-pkgs.sh con kate y cambiar en las lineas 149 hasta la 152, introduciendo el simbolo # (comentariando) en el comienzo de cada linea, con el fin de no compilar este editor:

    # The Juno-2 graphical constraint based editor

    #....

  2. Ejecutar el script desde la consola, dejándola abierta. Recordar que este proceso tardará de media hora a 45 minutos si no hay más ventanas o procesos corriendo dentro del SO:

    sudo ./do-cm3-std.sh buildship

  3. Si aparecen errores, no preocuparse, el script termina y avisa del error pero se puede recomenzar con el anterior comando después de analizar la causa y hacer la corrección (en cm3.cfg, o instalar algún paquete del SO), sin recompilar lo que ya se habia compilado ahorrando tiempo.
  4. En caso extremo de errores numerosos se borra lo instalado en /usr/local/cm3 y se reinstala cminstall, y se refresca la carpeta de fuentes de cm3, por que queda con archivos de lo que se alcanzó a compilar, es decir se repite el proceso totoalmente.
  5. Al final de la compilación si todo termina bien se verá en la consola las fuentes exportadas:

    El mensaje de salida deberia ser al terminar toda la compilación del paquete mentor:

    ../src/wheeler => /usr/local/cm3/pkg/mentor/src/wheeler

    MiscFmt.m3 MiscFmt.i3 Wheeler.m3 Wheeler.i3

    CharArraySort.m3 CharArraySort.i3

    ../src/zpaper => /usr/local/cm3/pkg/mentor/src/zpaper

    Fn.i3 AlgFn.m3 AlgFn.i3 ViewFn.m3

    ViewFn.i3 ViewMFn.m3 ViewMFn.i3 ViewHisto.m3

    ViewHisto.i3

    . => /usr/local/cm3/bin

    mentor

    ==> /home/danielb/cm3-5.4-Rc_/cm3/m3-demo/mentor done

4 Pruebas a mentor (m3-demo)

4.1 Comprobar funcionamiento del programa mentor

Invocar desde la consola

mentor

En la ventana MENTOR, ver las animaciones de la Session Dgraph del algoritmo Depth First Search (parte izquierda en la ventanade mentor), y con varias vistas (mostradas en la parte derecha) de la ventana de Mentor. Explorar las demás animaciones también.

4.2 Argumentos del runtime @M3

mentor @M3showheap=showheap

mentor @M3shownew=shownew

Los Argumentos @M3x=x permiten ver información sobre el proceso de Modula-3 con el que se les invoca en una nueva ventana.

  1. Showheap3: Dar click sobre ''start'' en la ventana de ShowHeap; esta vista muestra las páginas de objetos localizadas en el heap del proceso mentor por el runtime de cm3.
  2. ShowNew4: muestra la actividad del heap del proceso identificando por nombre los objetos creados. Se comienza el proceso con click en el boton Control, y luego en Start.

4.3 Repetir pruebas en la cuenta usuario

Realizar las pruebas bajo la cuenta de usuario agregando en el .bashrc las variables de entorno de la sección 3.2.

About this document ...

Guia de Instalación Modula-31: Critical Mass Modula-3, cm32

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)


Footnotes

... Modula-31
UN-Ing. Grupo de software libre EIDOS. http://dis.unal.edu.co/eidos, https://linux.unal.edu.co, ftp://linux.unal.edu.co.
... cm32
Elego Software Solutions http://modula3.elegosoft.com/cm3
... Showheap3
Ver man showheap
... ShowNew4
Ver man shownew
Daniel Benavides 2007-05-28
Hosted by www.Geocities.ws

1