part-cw / lambdanative

LambdaNative is a cross-platform development environment written in Scheme, supporting Android, iOS, BlackBerry 10, OS X, Linux, Windows, OpenBSD, NetBSD, FreeBSD and OpenWrt.
http://www.lambdanative.org
Other
1.4k stars 86 forks source link

debug and test environment guide #74

Closed 11111000000 closed 9 years ago

11111000000 commented 9 years ago

We need guide to debug and test applications, based on Gambit and Lambdanative, in REPL iterative style. I.e. we like to see application running and have EMACS (Geiser?) interface to it.

mgorges commented 9 years ago

This would indeed be quite useful, even though I personally wouldn't want to use Emacs for it. For a start have a look at Debugging, which is mainly a summary from Issues #51, #64, #33, and #29.

clpetersen commented 9 years ago

Just a comment: I agree this could be interesting. Gambit does have an emacs interface to the gsi interpreter. I'm not sure how that would work with lambdanative, as you would need to have the payload loaded in order to have a productive workflow. We sometimes build DemoConsole with the modules of a particular application added, giving us REPL interaction with the application code.. that is somewhat similar to what you describe. We do not use emacs for development though, which makes it a bit difficult for us to address this. Also, Geiser does not have gambit support afaik..

dleslie commented 9 years ago

Hi, a Geiser contributor here,

It is the case that Geiser does not currently support Gambit; there's an open ticket for this, but it's been a long time since I have heard from the person who claimed to be working on it. Anyhow, here's the ticket:

https://github.com/jaor/geiser/issues/56

Geiser allows implementations to optionally provide a subset of its features, which the Chicken implementation exploits. IMHO, supporting Gambit via Geiser shouldn't be too hard, so long as there exists some equivalent option to Chicken's 'apropos' functionality; with that, it could be a matter of simply working from the Chicken implementation. Module mutation is something that Geiser purports to support, but Chicken doesn't support the mutation of symbols exported from modules, and so if this is a limitation on Gambit then it shouldn't pose an issue.

Otherwise, a basic implementation need not support jump-to-source, documentation, and so forth.

clpetersen commented 9 years ago

Hi Dan,

Thanks for your input. It would be great if someone would complete the Gambit support in Geiser. We can't really contribute to that effort here, but for now I'll investigate if there is a way for us to support the standard gambit emacs mode.

Chris

11111000000 commented 9 years ago

Another way (Chicken Scheme): https://github.com/Adellica/cocoscheme

clpetersen commented 9 years ago

I've now added a preliminary emacs framework in commit a22f0a9. Documentation is here https://github.com/part-cw/lambdanative/wiki/Using-Emacs This uses quack for the time being. I'm no emacs wiz, so hopefully others can test, tweak and contribute. Also happy to switch to another emacs mode (i.e. Geiser) later when Gambit support is ready. Closing the issue for now.

11111000000 commented 9 years ago

Looks good! Thanks!