simonjwright / coldframe

ColdFrame generates Ada framework code and documentation from UML models.
https://simonjwright.github.io/coldframe
GNU General Public License v2.0
8 stars 1 forks source link

Issues encountered while installing and setting up #4

Closed AlexProudfoot closed 3 years ago

AlexProudfoot commented 3 years ago

Hi Simon. Trying this out after a long layoff. Using Linux Mint 19 VM on VMware Workstation 15 Player on Windows 10.

AlexProudfoot commented 3 years ago

Installation Prerequisites

ArgoUML

ArgoUML 0.35.1 (ArgoUML-0.35.1.tar.gz) obtained from https://github.com/argouml-tigris-org/argouml/releases/tag/VERSION_0_35_1. This is the latest release. The project has been moved from its original website to GitHub. Maybe the installation guide needs to state this.

TextUML

I'll edit this in later.

GNAT

GNAT Community 2020 (gnat-2020-20200818-x86_64-linux-bin) obtained from https://www.adacore.com/download. This is the latest release.

Saxon

Saxon 6 (saxon6-5-5.zip) obtained from https://sourceforge.net/projects/saxon/files/saxon6/6.5.5/. The latest release is Saxon 10 (SaxonHE10-3J.zip) which does not support ColdFrame. Maybe the installation guide needs to state this.

TclAdaShell

Release 20200802 (tcladashell-Rel_20200802.tar.gz) obtained from https://github.com/simonjwright/tcladashell/releases/tag/Rel_20200802. This is the latest release. The project has been moved from its original website to GitHub. Maybe the installation guide needs to state this. This needs to be configured and built.

  1. ./setup.tcl works (TCL_INCLUDE: -I/usr/include -I/usr/include/tcl changed to -I/usr/include -I/usr/include/tcl8.6)
  2. make all works as expected
  3. make test works as expected
AlexProudfoot commented 3 years ago

ColdFrame Setup

alex@mint-vm$ make setup

Main

Setup produces no error messages.

gprbuild -p -P ColdFrame
Setup
   [mkdir]        object directory for project ColdFrame
   [mkdir]        library directory for project ColdFrame
Compile
   [Ada]          coldframe-project-log_info.adb
   [Ada]          coldframe-project-events-standard-test_trace.ads
   [Ada]          coldframe-project-events-monitoring-test_trace.ads
   [Ada]          coldframe-project-events-monitoring-trace.ads
   [Ada]          coldframe-project-events-standard-inspection.ads
   [Ada]          coldframe-project-events-standard.ads
   [Ada]          coldframe-project-held_events-signature.ads
   [Ada]          coldframe-project-event_support.ads
   [Ada]          coldframe-project-times.adb
   [Ada]          coldframe-project-events-callback_manager.ads
   [Ada]          coldframe-project-events-standard-test.ads
   [Ada]          coldframe-project-held_events-inspection_signature.ads
   [Ada]          coldframe-project-events-standard-trace.ads
   [Ada]          coldframe-project-held_events-inspection.adb
   [Ada]          coldframe-project-events-monitoring-test.ads
   [Ada]          coldframe-project-log_error.adb
   [Ada]          coldframe-project-events-monitoring.ads
   [Ada]          coldframe-project-events.ads
   [Ada]          coldframe-project-events-standard-test_debug.ads
   [Ada]          coldframe-project-high_resolution_time.ads
   [Ada]          coldframe-project-limits.adb
   [Ada]          coldframe-project-logging_support.adb
   [Ada]          coldframe-project-storage_pools.ads
   [Ada]          coldframe-project-calendar.adb
   [Ada]          coldframe-project-held_events.adb
   [Ada]          coldframe-project.ads
   [Ada]          coldframe-events_g-callback_manager_g.adb
   [Ada]          coldframe-hash-strings-unbounded.adb
   [Ada]          coldframe-event_basis.adb
   [Ada]          coldframe-simulation_time.adb
   [Ada]          coldframe-exceptions-message.adb
   [Ada]          coldframe-exceptions-symbolic_traceback.adb
   [Ada]          coldframe-events_g-monitoring_g.adb
   [Ada]          coldframe-exceptions-traceback.adb
   [Ada]          coldframe-stubs.adb
   [Ada]          coldframe-events_g-standard_g-inspection_g.adb
   [Ada]          coldframe-synchronization.adb
   [Ada]          coldframe-unbounded_storage_pools.adb
   [Ada]          coldframe-bounded_storage_pools.adb
   [Ada]          coldframe-events_g-debug_g.adb
   [Ada]          coldframe-interrupts.adb
   [Ada]          coldframe-events_g-trace_g.adb
   [Ada]          coldframe-unbounded_strings.adb
   [Ada]          coldframe-events_g-held_event_queue_signature-inspection_signature.ads
   [Ada]          coldframe-events_g-standard_g.adb
   [Ada]          coldframe-events_g.adb
   [Ada]          coldframe-task_deletion.adb
   [Ada]          coldframe-events_g-held_event_queue_signature.ads
   [Ada]          coldframe-callbacks.adb
   [Ada]          coldframe-smart_pointers.adb
   [Ada]          coldframe-hash-strings-bounded.adb
   [Ada]          coldframe-events_g-test_g.adb
   [Ada]          coldframe-task_deletion_g.adb
   [Ada]          coldframe-hash-strings.ads
   [Ada]          coldframe-memory_streams.adb
   [Ada]          coldframe-hash.ads
   [Ada]          coldframe-instances.ads
   [Ada]          coldframe.ads
   [Ada]          coldframe-hash-access_hash.adb
   [Ada]          coldframe-hash-instance_access_hash.ads
   [Ada]          coldframe-hash-strings-standard.adb
   [Ada]          coldframe-time_signature.ads
   [Ada]          coldframe-exceptions.ads
Build Libraries
   [gprlib]       coldframe.lexch
   [archive]      libcoldframe.a
   [index]        libcoldframe.a
for s in lib tools examples; do     \
  make -C $s setup;         \
done

Lib

Setup produces no error messages.

make[1]: Entering directory '/home/alex/coldframe/lib'
java -cp /home/alex/saxon/saxon.jar com.icl.saxon.StyleSheet            \
  ../models/ColdFrameProfile.uml                    \
  ../scripts/normalize-profile.xsl  \
  >ColdFrameProfile.xmi
make[1]: Leaving directory '/home/alex/coldframe/lib'

Tools

Setup fails to find XIA project file. Maybe XIA should be listed with the other prerequisites.

make[1]: Entering directory '/home/alex/coldframe/tools'
ADA_PROJECT_PATH=~/xia:/home/alex/coldframe:ADA_PROJECT_PATH:/home/alex/coldframe gprbuild -p -P tools.gpr
tools.gpr:15:06: unknown project file: "XIA"
gprbuild: "tools.gpr" processing failed
Makefile:24: recipe for target 'setup' failed
make[1]: *** [setup] Error 4
make[1]: Leaving directory '/home/alex/coldframe/tools'

After installing XIA, setup still fails. The Ada compiler doesn't recognise the switch -gnat05.

make[1]: Entering directory '/home/alex/coldframe/tools'
ADA_PROJECT_PATH=~/xia:/home/alex/coldframe:ADA_PROJECT_PATH:/home/alex/coldframe gprbuild -p -P tools.gpr
Setup
   [mkdir]        object directory for project Tools
Compile
   [Ada]          generated_lines.adb
gnat1: invalid switch: -gnat05
gprbuild: *** compilation phase failed
Makefile:24: recipe for target 'setup' failed
make[1]: *** [setup] Error 4
make[1]: Leaving directory '/home/alex/coldframe/tools'

Examples

Setup produces no error messages.

make[1]: Entering directory '/home/alex/coldframe/examples'
for s in arduino microbit stm32f4; do       \
  make -C $s setup;         \
done
make[2]: Entering directory '/home/alex/coldframe/examples/arduino'
ln -s ../Digital_IO.impl .
ln -s ../Simple_Buttons.impl .
make[2]: Leaving directory '/home/alex/coldframe/examples/arduino'
make[2]: Entering directory '/home/alex/coldframe/examples/microbit'
ln -s ../Digital_IO.impl .
ln -s ../Simple_Buttons.impl .
make[2]: Leaving directory '/home/alex/coldframe/examples/microbit'
make[2]: Entering directory '/home/alex/coldframe/examples/stm32f4'
ln -s ../Digital_IO.impl .
ln -s ../Simple_Buttons.impl .
make[2]: Leaving directory '/home/alex/coldframe/examples/stm32f4'
make[1]: Leaving directory '/home/alex/coldframe/examples'
AlexProudfoot commented 3 years ago

Building the tools subproject fails because the compiler switch -gnat05 is unrecognised. Only -gnat12, the default, is recognised. I don't know whether or not this is intentional in GNAT Community 2020. I also don't know whether or not the switch is really needed.

AlexProudfoot commented 3 years ago

Another unlisted prerequisite is "scripted_testing".

simonjwright commented 3 years ago

I hope I’ve addressed all these problems! let me know ... The commits are: cb2d2db 8a78370 2cdfa80 cfb48ca

PS Thanks for the report! Good to see you again, hope all goes well

AlexProudfoot commented 3 years ago

Thanks for your prompt reply. It's good to see you again too. Today's problems are:

  1. README.md still points at the old location of ArgoUML
  2. Scripted Testing doesn't build due to the -gnat05 switch. I'll raise this on the Scripted Testing repo.

OK. There don't seem to be any more problems reported by make setup. Onward and upward.

simonjwright commented 3 years ago

The README.md issue fixed in 7643b4c. Scripted Testing issue: see simonjwright/scripted_testing@eed03e5.

AlexProudfoot commented 3 years ago

The Examples

House_Management_Scripting

This seems OK.

alex@mint-vm$ ./house_management-scripting h.tcl
script starting
echo: checking that all lamps are off
echo: checking output 0 is in state false
echo: checking output 1 is in state false
echo: checking output 2 is in state false
echo: checking output 3 is in state false
echo: pushing button 0
ColdFrame: INFO: posting a HOUSE_MANAGEMENT.BUTTON.DIGITAL_IO_INPUT_SIGNAL_STATE.CALLBACK_EVENT
ColdFrame: INFO: dispatching a HOUSE_MANAGEMENT.BUTTON.DIGITAL_IO_INPUT_SIGNAL_STATE.CALLBACK_EVENT
ColdFrame: INFO: setting a Timer for a HOUSE_MANAGEMENT.TIMED_BUTTON.TIMEOUT, delay 5.000000000
echo: lamps 0 and 1 should be set
echo: checking output 0 is in state true
echo: checking output 1 is in state true
echo: checking output 2 is in state false
echo: checking output 3 is in state false
echo: waiting until just before the timeout
echo: checking the lamps are still set
echo: checking output 0 is in state true
echo: checking output 1 is in state true
echo: checking output 2 is in state false
echo: checking output 3 is in state false
echo: waiting until just after the timeout
ColdFrame: INFO: posting a COLDFRAME.PROJECT.EVENTS.HELD_EVENT
ColdFrame: INFO: dispatching a COLDFRAME.PROJECT.EVENTS.HELD_EVENT
ColdFrame: INFO: dispatching a HOUSE_MANAGEMENT.TIMED_BUTTON.TIMEOUT: state HOUSE_MANAGEMENT.TIMED_BUTTON.SET
ColdFrame: INFO: .. new state HOUSE_MANAGEMENT.TIMED_BUTTON.RESET
echo: checking the lamps are now clear
echo: checking output 0 is in state false
echo: checking output 1 is in state false
echo: checking output 2 is in state false
echo: checking output 3 is in state false
echo: done.

Interrupt_Handling

The control-c interrupt is not being seen. This is really odd because I'm pretty sure it was working at one time.

alex@mint-vm$ ./interrupt_handling-harness

Interrupt_Handling.Harness.
---------------------------

This program demonstrates handling a Signal, which is the
nearest thing to an interrupt available in standard OSs.

On Mac OS X and Linux systems, run the program and type C-c
(ctrl-c) to see the interrupt being reported.

On Windows, this doesn't work from a Cygwin Bash shell;
instead, run from a Command Shell started from Start/Run.

entered state IDLE
Interrupt_Handling.Device.T running
Interrupt_Handling.Device.T started
entered state IDLE
^Centered state IDLE
^Centered state IDLE
^Centered state IDLE
entered state IDLE
^Z
[1]+  Stopped                 ./interrupt_handling-harness

Library

This seems OK.

alex@mint-vm$ ./library_test_harness

OK Association tests : 1:mc, b->a, null input handle
OK Association tests : 1:mc, b->a
OK Association tests : 1:mc, a->b, null input handle
OK Association tests : 1:mc, a->b, empty result
OK Association tests : 1:mc, a->b, multiple results
OK Association tests : 1:mc, vector b->a, null input
OK Association tests : 1:mc, vector b->a
OK Association tests : 1:mc, vector a->b, null input
OK Association tests : 1:mc, vector a->b
OK Association tests : 1-(1c:mc), create duplicate link
OK Association tests : 1-(1c:mc), b->a, null input handle
OK Association tests : 1-(1c:mc), b->a, null result
OK Association tests : 1-(1c:mc), b->a
OK Association tests : 1-(1c:mc), a->b, null input handle

Total Tests Run:   14
Successful Tests:  14
Failed Assertions: 0
Unexpected Errors: 0

Performance

This seems OK.

alex@mint-vm$ ./performance-harness
no-op: 0.000000080
average creation time (identifier, enum): 0.000000115
average find time (identifier, enum): 0.000000000
average deletion time (identifier, enum): 0.000000153
average deletion time (handle): 0.000000038
obtain all instances (per instance): 0.000000038
average creation time (auto, set 1 attr): 0.000000538
average link time (simple): 0.000000038
average navigation time (simple, easy): 0.000000038
average navigation time (simple, hard): 0.000005807
average unlink time (simple): 0.000000038
average link time (associative): 0.000000346
average navigation time (associative, to assoc): 0.000006423
average navigation time (associative, to other): 0.000006423
average unlink time (associative): 0.000000000
average create_tree time: 0.000000500
average find_parent time: 0.000000038
average dispatching call time: 0.000000038
average inherited call time: 0.000000038
average lock claim time: 0.000000900
average event dispatch (same domain): 0.000001490
average event dispatch (other domain): 0.000011550
timer firing (same dispatcher): 0.000005210

Problem_Reporting

This seems OK.

alex@mint-vm$ ./problem_reporting_harness
Component:bar
  problem 1: complex: very hairy
Component:quux
  problem 2: boring: tedious
Component:foo
  problem 2: boring: very tedious
  problem 1: complex: hairy
Component:baz
.. no defects.

deleting a simple Component, and then adding a new Component:
Component:bar
  problem 1: complex: very hairy
Component:squeeg
.. no defects.
Component:quux
  problem 2: boring: tedious
Component:foo
  problem 2: boring: very tedious
  problem 1: complex: hairy

deleting a Component with defects:
Component:bar
  problem 1: complex: very hairy
Component:squeeg
.. no defects.
Component:quux
  problem 2: boring: tedious

deleting a Component with defects (should delete DPR):
bar: deleting orphaned DPR: 1
Component:squeeg
.. no defects.
Component:quux
  problem 2: boring: tedious

Simple_Buttons

This is not built.

alex@mint-vm$ ./simple_buttons-scripting s.tcl
bash: ./simple_buttons-scripting: No such file or directory

stairwell_demo

This is not built.

alex@mint-vm$ ./stairwelllights.tcl
./stairwelllights.tcl: 4: exec: ./stairwell_demo: not found

States

This is not built.

alex@mint-vm$ ./states-t
bash: ./states-t: No such file or directory

Van_Fleet

This is not built.

alex@mint-vm$ ./van_fleet-demo
bash: ./van_fleet-demo: No such file or directory
AlexProudfoot commented 3 years ago

Here is the output from making the examples in case the above is explained by it.

alex@mint-vm$ make
# XXX This is a workround for ArgoUML Issue 6385.
(grep -q "xmlns:argouml" /home/alex/coldframe/models/ColdFrame_Examples.uml && cp /home/alex/coldframe/models/ColdFrame_Examples.uml /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr~1) ||      \
sed                             \
  -e "s;<pgml ;<pgml xmlns:argouml='http://argouml.org' ;"  \
  </home/alex/coldframe/models/ColdFrame_Examples.uml               \
  >/home/alex/coldframe/coldframeout/ColdFrame_Examples.rr~1
java -cp /home/alex/saxon/saxon.jar com.icl.saxon.StyleSheet              \
  /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr~1           \
  /home/alex/coldframe/scripts/resolve-references.xsl         \
  library_path=/home/alex/coldframe/lib/              \
  >/home/alex/coldframe/coldframeout/ColdFrame_Examples.rr~2              \
  || (echo "Resolution problem."; rm -f -f /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr~?; exit 1)
# XXX This is a workround for an XML/Ada issue.
sed                             \
  -e "s;org.omg.xmi.namespace.UML;http://www.omg.org/spec/XMI;" \
  </home/alex/coldframe/coldframeout/ColdFrame_Examples.rr~2            \
  >/home/alex/coldframe/coldframeout/ColdFrame_Examples.rr
/home/alex/coldframe/tools/normalize_xmi    \
  -c /home/alex/coldframe/scripts/emacs_case_exceptions \
            \
  /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr
Reading case exceptions from '/home/alex/coldframe/scripts/emacs_case_exceptions'
Processing /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr
 checking domain Van_Fleet
Association A1 already formalized
 checking domain Library
 checking domain House_Management
 checking domain Digital_IO.Tcl
 checking domain Interrupt_Handling
 checking domain States
 checking domain Performance
 checking domain Digital_IO
 checking domain Problem_Reporting
 checking domain Digital_IO_Interface
touch ColdFrame_Examples.norm-stamp
generating House_Management.ada ...
generating House_Management.gen ...
  extra source file House_Management.impl/stairwell_demo_application.ads
  extra source file House_Management.impl/stairwell_demo_application.adb
  extra source file House_Management.impl/stairwell_demo.adb
    removing House_Management.gen/house_management-button-notify_connected_lamps.adb
    removing House_Management.gen/house_management-button-changed.adb
    removing House_Management.gen/house_management-toggle_button-changed.adb
    removing House_Management.gen/house_management-lamp-output_for_lamp.adb
    removing House_Management.gen/house_management-timed_button-set_timeout.adb
    removing House_Management.gen/house_management-timed_button-get_state.adb
    removing House_Management.gen/house_management-toggle_button-get_state.adb
    removing House_Management.gen/house_management-lamp-changed.adb
    removing House_Management.gen/house_management-timed_button-clear_timeout.adb
    removing House_Management.gen/house_management-lamp-initialize.adb
    removing House_Management.gen/house_management-timed_button-changed.adb
checking for unimplemented bodies ...
... none.
make -f /home/alex/coldframe/Makefile.inc Digital_IO_Interface.gen \
  GENERATE_STUBS=yes
make[1]: Entering directory '/home/alex/coldframe/examples'
generating Digital_IO_Interface.ada ...
generating Digital_IO_Interface.gen ...
checking for unimplemented bodies ...
... none.
rm Digital_IO_Interface.ada
make[1]: Leaving directory '/home/alex/coldframe/examples'
gprbuild -p -PHouse_Management_Scripting
Setup
   [mkdir]        object directory for project ColdFrame_Scripting
   [mkdir]        library directory for project ColdFrame_Scripting
   [mkdir]        object directory for project House_Management_Scripting
Compile
   [Ada]          house_management-scripting.adb
   [Ada]          coldframe-project-scripted_testing.ads
   [Ada]          coldframe-stubs-scripting.adb
   [Ada]          coldframe-callbacks-scripting.adb
   [Ada]          coldframe-scripted_testing_g.adb
   [Ada]          digital_io.adb
   [Ada]          digital_io-initialize.adb
   [Ada]          digital_io-scripting.adb
   [Ada]          house_management.ads
   [Ada]          house_management-initialize.adb
   [Ada]          digital_io-events.adb
   [Ada]          house_management-button.adb
   [Ada]          house_management-button-cf_class_initialize.adb
   [Ada]          house_management-events.adb
   [Ada]          house_management-lamp.adb
   [Ada]          house_management-lamp-cf_initialize.adb
   [Ada]          house_management-a1.adb
   [Ada]          house_management-timed_button.adb
   [Ada]          house_management-toggle_button.adb
   [Ada]          house_management-button-digital_io_input_signal_state.ads
   [Ada]          digital_io-input_signal_state_callback.ads
   [Ada]          house_management-timed_button-inheritance.adb
   [Ada]          house_management-toggle_button-inheritance.adb
   [Ada]          house_management-a1-selection_function.adb
   [Ada]          house_management-button-inheritance.adb
Build Libraries
   [gprlib]       coldframe_scripting.lexch
   [archive]      libcoldframe_scripting.a
   [index]        libcoldframe_scripting.a
Bind
   [gprbind]      house_management-scripting.bexch
   [Ada]          house_management-scripting.ali
Link
   [link]         house_management-scripting.adb
generating Interrupt_Handling.ada ...
generating Interrupt_Handling.gen ...
  extra source file Interrupt_Handling.impl/interrupt_handling-harness.ads
  extra source file Interrupt_Handling.impl/interrupt_handling-harness.adb
    removing Interrupt_Handling.gen/interrupt_handling-device-clear_timeout.adb
    removing Interrupt_Handling.gen/interrupt_handling-device-t.adb
    removing Interrupt_Handling.gen/interrupt_handling-events-initialize.adb
    removing Interrupt_Handling.gen/interrupt_handling-device-report_entry.adb
    removing Interrupt_Handling.gen/interrupt_handling-device-set_timeout.adb
    removing Interrupt_Handling.gen/interrupt_handling-device-initialize.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -PInterrupt_Handling
Setup
   [mkdir]        object directory for project Interrupt_Handling
Compile
   [Ada]          interrupt_handling-harness.adb
   [Ada]          interrupt_handling.ads
   [Ada]          interrupt_handling-initialize.adb
   [Ada]          interrupt_handling-device.adb
   [Ada]          interrupt_handling-device-cf_class_initialize.adb
   [Ada]          interrupt_handling-device-cf_initialize.adb
   [Ada]          interrupt_handling-events.adb
Bind
   [gprbind]      interrupt_handling-harness.bexch
   [Ada]          interrupt_handling-harness.ali
Link
   [link]         interrupt_handling-harness.adb
generating Library.ada ...
generating Library.gen ...
  extra source file Library.impl/library-test.ads
  extra source file Library.impl/library_test_harness.adb
  extra source file Library.impl/library-tests.ads
  extra source file Library.impl/library-test.adb
  extra source file Library.impl/library-tests.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -PLibrary
Compile
   [Ada]          library_test_harness.adb
   [Ada]          library.ads
   [Ada]          library-test.adb
   [Ada]          library-tests.adb
   [Ada]          library-authorship.adb
   [Ada]          library-authorship-from_vectors.adb
   [Ada]          library-book.adb
   [Ada]          library-book-all_instances.adb
   [Ada]          library-borrower.adb
   [Ada]          library-borrower-all_instances.adb
   [Ada]          library-current.adb
   [Ada]          library-history.adb
   [Ada]          library-initialize.adb
   [Ada]          library-tear_down.adb
   [Ada]          library-book-selection_function.adb
   [Ada]          library-current-selection_function.adb
   [Ada]          library-events.adb
   [Ada]          library-history-selection_function.adb
   [Ada]          library-book-cf_tear_down.adb
   [Ada]          library-borrower-cf_tear_down.adb
   [Ada]          library-current-cf_tear_down.adb
   [Ada]          library-history-cf_tear_down.adb
Bind
   [gprbind]      library_test_harness.bexch
   [Ada]          library_test_harness.ali
Link
   [link]         library_test_harness.adb
generating Performance.ada ...
generating Performance.gen ...
  extra source file Performance.impl/performance-event_timing.adb
  extra source file Performance.impl/performance-event_timing.ads
  extra source file Performance.impl/performance-harness.adb
  extra source file Performance.impl/performance-harness.ads
    removing Performance.gen/performance-pet-eat.adb
    removing Performance.gen/performance-cat-speak.adb
checking for unimplemented bodies ...
Performance.gen/performance-dog-speak.adb
gprbuild -p -PPerformance
Compile
   [Ada]          performance-harness.adb
   [Ada]          performance.ads
   [Ada]          performance-a1.adb
   [Ada]          performance-a2.adb
   [Ada]          performance-a2-all_instances.adb
   [Ada]          performance-cat.adb
   [Ada]          performance-cat-inheritance.adb
   [Ada]          performance-event_timing.adb
   [Ada]          performance-initialize.adb
   [Ada]          performance-owner.adb
   [Ada]          performance-owner-inheritance.adb
   [Ada]          performance-person.adb
   [Ada]          performance-person-all_instances.adb
   [Ada]          performance-pet.adb
   [Ada]          performance-tear_down.adb
   [Ada]          performance-pet-selection_function.adb
   [Ada]          performance-a2-selection_function.adb
   [Ada]          performance-pet-inheritance.adb
   [Ada]          performance-events.adb
   [Ada]          performance-person-inheritance.adb
   [Ada]          performance-a2-cf_tear_down.adb
   [Ada]          performance-cat-cf_tear_down.adb
   [Ada]          performance-dog.adb
   [Ada]          performance-dog-cf_tear_down.adb
   [Ada]          performance-owner-cf_tear_down.adb
   [Ada]          performance-person-cf_tear_down.adb
   [Ada]          performance-pet-cf_tear_down.adb
Bind
   [gprbind]      performance-harness.bexch
   [Ada]          performance-harness.ali
Link
   [link]         performance-harness.adb
generating Problem_Reporting.ada ...
generating Problem_Reporting.gen ...
  extra source file Problem_Reporting.impl/problem_reporting_harness.adb
    removing Problem_Reporting.gen/problem_reporting-component-clean.adb
    removing Problem_Reporting.gen/problem_reporting-public-add_component.adb
    removing Problem_Reporting.gen/problem_reporting-public-note_defect.adb
    removing Problem_Reporting.gen/problem_reporting-public-report_problems.adb
    removing Problem_Reporting.gen/problem_reporting-component-report_all.adb
    removing Problem_Reporting.gen/problem_reporting-defect-report.adb
    removing Problem_Reporting.gen/problem_reporting-component-report.adb
    removing Problem_Reporting.gen/problem_reporting-public-reject_problem.adb
    removing Problem_Reporting.gen/problem_reporting-public-add_problem.adb
    removing Problem_Reporting.gen/problem_reporting-public-delete_component.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -PProblem_Reporting
Compile
   [Ada]          problem_reporting_harness.adb
   [Ada]          problem_reporting.ads
   [Ada]          problem_reporting-initialize.adb
   [Ada]          problem_reporting-public.adb
   [Ada]          problem_reporting-events.adb
   [Ada]          problem_reporting-component.adb
   [Ada]          problem_reporting-defect.adb
   [Ada]          problem_reporting-diagnosed_problem_report.adb
   [Ada]          problem_reporting-problem_report.adb
   [Ada]          problem_reporting-rejected_problem_report.adb
   [Ada]          problem_reporting-unallocated_problem_report.adb
   [Ada]          problem_reporting-component-all_instances.adb
   [Ada]          problem_reporting-component-iterate.adb
   [Ada]          problem_reporting-defect-from_vectors.adb
   [Ada]          problem_reporting-defect-iterate.adb
   [Ada]          problem_reporting-diagnosed_problem_report-iterate.adb
   [Ada]          problem_reporting-defect-selection_function.adb
Bind
   [gprbind]      problem_reporting_harness.bexch
   [Ada]          problem_reporting_harness.ali
Link
   [link]         problem_reporting_harness.adb
/home/alex/coldframe/scripts/tuml2xmi.py --output=/home/alex/coldframe/coldframeout/Simple_Buttons.xmi /home/alex/coldframe/models/Simple_Buttons.tuml
Traceback (most recent call last):
  File "/home/alex/coldframe/scripts/tuml2xmi.py", line 33, in <module>
    import ply.lex as lex
ImportError: No module named ply.lex
../Makefile.inc:200: recipe for target '/home/alex/coldframe/coldframeout/Simple_Buttons.xmi' failed
make: *** [/home/alex/coldframe/coldframeout/Simple_Buttons.xmi] Error 1
rm Problem_Reporting.ada Library.ada /home/alex/coldframe/coldframeout/ColdFrame_Examples.rr Performance.ada House_Management.ada Interrupt_Handling.ada
AlexProudfoot commented 3 years ago

Hmmm. ply.lex. How do I get that?

alex@mint-vm$ sudo apt install python-pip
alex@mint-vm$ pip install ply
AlexProudfoot commented 3 years ago

OK. That seems to have helped. Maybe the python dependency should be documented too.

alex@mint-vm$ make
gprbuild -p -PHouse_Management_Scripting
gprbuild: "house_management-scripting" up to date
gprbuild -p -PInterrupt_Handling
gprbuild: "interrupt_handling-harness" up to date
gprbuild -p -PLibrary
gprbuild: "library_test_harness" up to date
gprbuild -p -PPerformance
gprbuild: "performance-harness" up to date
gprbuild -p -PProblem_Reporting
gprbuild: "problem_reporting_harness" up to date
/home/alex/coldframe/scripts/tuml2xmi.py --output=/home/alex/coldframe/coldframeout/Simple_Buttons.xmi /home/alex/coldframe/models/Simple_Buttons.tuml
Generating LALR tables
WARNING: 1 shift/reduce conflict
/home/alex/coldframe/tools/normalize_xmi    \
  -c /home/alex/coldframe/scripts/emacs_case_exceptions \
            \
  /home/alex/coldframe/coldframeout/Simple_Buttons.xmi
Reading case exceptions from '/home/alex/coldframe/scripts/emacs_case_exceptions'
Processing /home/alex/coldframe/coldframeout/Simple_Buttons.xmi
 checking domain Simple_Buttons
touch Simple_Buttons.tuml-norm-stamp
generating Simple_Buttons.ada ...
generating Simple_Buttons.gen ...
    removing Simple_Buttons.gen/simple_buttons-button-receive_change.adb
    removing Simple_Buttons.gen/simple_buttons-led-initialize.adb
    removing Simple_Buttons.gen/simple_buttons-led-changed.adb
    removing Simple_Buttons.gen/simple_buttons-button-set_lit_timeout.adb
    removing Simple_Buttons.gen/simple_buttons-button-changed.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -PSimple_Buttons_Scripting
Setup
   [mkdir]        object directory for project Simple_Buttons_Scripting
Compile
   [Ada]          simple_buttons-scripting.adb
   [Ada]          digital_io.adb
   [Ada]          digital_io-initialize.adb
   [Ada]          digital_io-scripting.adb
   [Ada]          simple_buttons.ads
   [Ada]          simple_buttons-initialize.adb
   [Ada]          digital_io-events.adb
   [Ada]          simple_buttons-button.adb
   [Ada]          simple_buttons-button-cf_class_initialize.adb
   [Ada]          simple_buttons-events.adb
   [Ada]          simple_buttons-led.adb
   [Ada]          simple_buttons-led-cf_initialize.adb
   [Ada]          simple_buttons-a1.adb
   [Ada]          simple_buttons-button-digital_io_input_signal_state.ads
   [Ada]          digital_io-input_signal_state_callback.ads
   [Ada]          simple_buttons-a1-selection_function.adb
Bind
   [gprbind]      simple_buttons-scripting.bexch
   [Ada]          simple_buttons-scripting.ali
Link
   [link]         simple_buttons-scripting.adb
generating States.ada ...
generating States.gen ...
  extra source file States.impl/states-t.ads
  extra source file States.impl/states-t.adb
    removing States.gen/states-monitor-receive.adb
    removing States.gen/states-monitor-clear_warmup_timeout.adb
    removing States.gen/states-monitor-set_6_second_warmup_timeout.adb
    removing States.gen/states-monitor-setup.adb
    removing States.gen/states-monitor-set_heartbeat_timeout.adb
    removing States.gen/states-monitor-clear_heartbeat_timeout.adb
    removing States.gen/states-monitor-set_2_second_warmup_timeout.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -PStates
Compile
   [Ada]          states-t.adb
   [Ada]          states.ads
   [Ada]          states-events.adb
   [Ada]          states-initialize.adb
   [Ada]          states-monitor.adb
   [Ada]          states-monitor-cf_initialize.adb
Bind
   [gprbind]      states-t.bexch
   [Ada]          states-t.ali
Link
   [link]         states-t.adb
generating Digital_IO.ada ...
generating Digital_IO.gen ...
  extra source file Digital_IO.impl/digital_io_support.adb
  extra source file Digital_IO.impl/digital_io_support.ads
    removing Digital_IO.gen/digital_io-get.adb
    removing Digital_IO.gen/digital_io-set.adb
checking for unimplemented bodies ...
... none.
generating Digital_IO.Tcl.ada ...
generating Digital_IO.Tcl.gen ...
  extra source file Digital_IO.Tcl.impl/digital_io-tcl-input_cache.ads
  extra source file Digital_IO.Tcl.impl/digital_io-tcl_support.adb
  extra source file Digital_IO.Tcl.impl/digital_io-tcl_support.ads
    removing Digital_IO.Tcl.gen/digital_io-tcl-hci-set_input.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -Pstairwell_demo
Compile
   [Ada]          stairwell_demo.adb
   [Ada]          stairwell_demo_application.adb
   [Ada]          digital_io.adb
   [Ada]          digital_io-initialize.adb
   [Ada]          digital_io-tcl.ads
   [Ada]          digital_io-tcl-hci.adb
   [Ada]          digital_io-tcl-initialize.adb
   [Ada]          house_management.ads
   [Ada]          house_management-initialize.adb
   [Ada]          digital_io_support.adb
   [Ada]          digital_io-events.adb
   [Ada]          digital_io-input_signal_state_callback.ads
   [Ada]          digital_io-tcl-input_cache.ads
   [Ada]          digital_io-tcl-events.adb
   [Ada]          digital_io-tcl_support.adb
   [Ada]          house_management-button.adb
   [Ada]          house_management-button-cf_class_initialize.adb
   [Ada]          house_management-events.adb
   [Ada]          house_management-lamp.adb
   [Ada]          house_management-lamp-cf_initialize.adb
   [Ada]          house_management-button-digital_io_input_signal_state.ads
   [Ada]          house_management-a1.adb
   [Ada]          house_management-timed_button.adb
   [Ada]          house_management-toggle_button.adb
   [Ada]          house_management-timed_button-inheritance.adb
   [Ada]          house_management-toggle_button-inheritance.adb
   [Ada]          house_management-a1-selection_function.adb
   [Ada]          house_management-button-inheritance.adb
Bind
   [gprbind]      stairwell_demo.bexch
   [Ada]          stairwell_demo.ali
Link
   [link]         stairwell_demo.adb
generating Van_Fleet.ada ...
Warning: Service: no rule to hash Date
generating Van_Fleet.gen ...
  extra source file Van_Fleet.impl/van_fleet-demo.ads
  extra source file Van_Fleet.impl/van_fleet-demo.adb
    removing Van_Fleet.gen/van_fleet-van-returned.adb
    removing Van_Fleet.gen/van_fleet-hired_van-cleanup.adb
    removing Van_Fleet.gen/van_fleet-van-lend.adb
    removing Van_Fleet.gen/van_fleet-pool_van-image.adb
    removing Van_Fleet.gen/van_fleet-hired_van-image.adb
checking for unimplemented bodies ...
... none.
gprbuild -p -PVan_Fleet
Compile
   [Ada]          van_fleet-demo.adb
   [Ada]          van_fleet.ads
   [Ada]          van_fleet-customer.adb
   [Ada]          van_fleet-initialize.adb
   [Ada]          van_fleet-pool_van.adb
   [Ada]          van_fleet-pool_van-inheritance.adb
   [Ada]          van_fleet-van.adb
   [Ada]          van_fleet-van-all_instances.adb
   [Ada]          van_fleet-events.adb
   [Ada]          van_fleet-a2.adb
   [Ada]          van_fleet-hired_van.adb
   [Ada]          van_fleet-van-inheritance.adb
   [Ada]          van_fleet-hired_van-selection_function.adb
   [Ada]          van_fleet-a1.adb
   [Ada]          van_fleet-hired_van-inheritance.adb
   [Ada]          van_fleet-pool_van-all_instances.adb
   [Ada]          van_fleet-service.adb
   [Ada]          van_fleet-service-selection_function.adb
Bind
   [gprbind]      van_fleet-demo.bexch
   [Ada]          van_fleet-demo.ali
Link
   [link]         van_fleet-demo.adb
rm Van_Fleet.ada /home/alex/coldframe/coldframeout/Simple_Buttons.xmi Digital_IO.Tcl.ada States.ada Simple_Buttons.ada Digital_IO.ada
AlexProudfoot commented 3 years ago

All the tests have been built now.

simonjwright commented 3 years ago

So I think this issue is done now? (fingers crossed)

AlexProudfoot commented 3 years ago

Haha. Pretty much done now. Not really part of installing and setting up but is there a way to fix the control-c interrupt handling? I tend to use examples as a confidence check that everything is working as expected.

simonjwright commented 3 years ago

I’ve raised the C-c interrupt handling as the separate issue #5, so as to be able to close this. I think it really is a separate problem, since the demo works fine on macOS.