Hello Matthias. I can understand your need for determining the most reliable version of Gambit. Usually, “releases” (the commits tagged with a version number in git) are produced when the system passes all the unit tests and is able to bootstrap itself (which exercices many parts of the system). Of course bugs can go unnoticed and there have been a handful of releases with important bugs (these are normally corrected by issuing a new release within a few days of the buggy release).
Personally, I don’t keep track of which release is the most reliable. I’m always working on the bleeding edge. I would say the best way to tell which release is the most reliable is with the git log and the github issue tracker.
I urge you to submit github issue reports whenever you encounter problems with the system so that they can be addressed promptly and other users can be aware of these issues, for example the issues you are having on Android.
Also, when you encounter a situation where Gambit is acting unexpectedly or crashing, please try to create a unit test that will reproduce the problem. Then this can be added to the current set of unit tests to ensure that this issue will not happen in future releases. If the issue occurs on a certain platform (Android?) then some continuous integration service supporting that platform should be added to Gambit (currently every commit is tested by Travis CI and Appveyor, and this covers linux, macOS and Windows with various C compilers and configuration options).
I’d like to hear what other users have to say about Gambit's reliability, and how it can be improved and tracked.
Marc
On Jun 21, 2016, at 11:51 AM, Gorges, Matthias MGorges@cw.bc.ca wrote:
Greetings, I have a question for the community in general, and Marc in particular. As some of you may know the Pediatric Anesthesia Research team at UBC uses Gambit as part of their LambdaNative framework (http://www.lambdanative.org/) to develop medical software. Some of our applications are mission and safety critical as they control drug delivery to patients (doi: 10.1145/2635648.2635651), or provide decision support during triage of pregnant women by community health workers (doi: 10.1109/JBHI.2014.2301156). Hence, we are trying to identify which version of Gambit to use, with the main deciding factor being reliability and stability.
While the main LambdaNative branch uses 4.7.9 - we are considering updating to 4.8.5 once we figure out how to integrated the revised tracing into our exception handler/logger, we use much older versions for our production-quality applications: Specifically, we use 4.7.2 for our mobile Android apps, as there were issues with both the ##thread-heartbeat! and other hard-to-reproduce crashes in very large Android apps with later Gambit versions. For our closed-loop system on Linux we reverted back even further at 4.7.0. Here, our attempt to update to 4.7.9 resulted in weeks of debugging after the application segfaulted during clinical pilot testing, having passed weeks of both manual and automated system tests in the lab. Unfortunately, we were never to identify the exact crash location, but all we could show was that the crash did not originate from our (user-level) code but the Gambit infrastructure code.
I appreciate that the project's current goals are more along the line of making a more universal output language processor, which is a laudable endeavor e.g. for improved in-browser support. However, I would appreciate some guidance in helping us chose a "stable" version without potentially wasting man-months in testing (and failing) to identify such a version ourselves.
Many Thanks, Matthias _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list