Debuggers? We don't need no debuggers.
Show him how to develop incrementally with tests then he won't have to spend so much time in a debugger.
-Patrick
-----Original Message----- From: gambit-list-bounces@iro.umontreal.ca [mailto:gambit-list-bounces@iro.umontreal.ca] On Behalf Of Bradley Lucier Sent: Friday, September 02, 2005 1:47 PM To: Marc Feeley Cc: Gambit List Subject: [gambit-list] Graphical environment
Marc:
I have a student who wants to use various C compilers rather than gambit because of the graphical debuggers he can use with compiled code in C.
At one time or another you've had the beginnings of various graphical IDEs with integrated debuggers running.
What do you have now?
Brad
PS: Yes, I can "force" him to use Gambit, but I'm getting tired of this. _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca http://mailman.iro.umontreal.ca/mailman/listinfo/gambit-list
Afficher les réponses par date
On Sep 2, 2005, at 3:53 PM, Logan, Patrick D wrote:
Debuggers? We don't need no debuggers.
Show him how to develop incrementally with tests then he won't have to spend so much time in a debugger.
It's not as easy as all that. These are programs that explore experimentally various corners of mathematics; it could be that our mathematical assumptions are wrong, but the programs work as they should.
Brad
On 2-Sep-05, at 4:59 PM, Bradley Lucier wrote:
On Sep 2, 2005, at 3:53 PM, Logan, Patrick D wrote:
Debuggers? We don't need no debuggers.
Show him how to develop incrementally with tests then he won't have to spend so much time in a debugger.
It's not as easy as all that. These are programs that explore experimentally various corners of mathematics; it could be that our mathematical assumptions are wrong, but the programs work as they should.
Brad _______________________________________________ Gambit-list mailing list Gambit-list@iro.umontreal.ca http://mailman.iro.umontreal.ca/mailman/listinfo/gambit-list
Well... the source code to GUIDE (Gambit Universal IDE) is distributed with Gambit. The code works but I haven't had the time to automate the build process (i.e. the makefile is broken). If your student, or some makefile expert would like to help out that would be great.
Of course, there is always the emacs interface, which is the development environment I use most (it support single stepping, source code pinpointing when there is an error, etc). Surely you can force your student to use emacs!
Marc
On 2-Sep-05, at 5:41 PM, Marc Feeley wrote:
Well... the source code to GUIDE (Gambit Universal IDE) is distributed with Gambit. The code works but I haven't had the time to automate the build process (i.e. the makefile is broken). If your student, or some makefile expert would like to help out that would be great.
Of course, there is always the emacs interface, which is the development environment I use most (it support single stepping, source code pinpointing when there is an error, etc). Surely you can force your student to use emacs!
Marc
Oh, and there are two other options... you can wait for the "web browser IDE" that Guillaume Germain is writing as an example of Termite for his master's thesis.
Second option is to roll your own using your favorite GUI framework. It's not too hard to control Tk from Gambit using open-process. Here's a small example. A reasonably complete interface to Tk should not take more than a few days to write.
(define tk (open-process "wish"))
(define (tk-send . lst) (display lst tk) (newline tk) (force-output tk))
(define (button name label action) (tk-send "button " name " -text " label " -command " (export action)) name)
(define (pack . lst) (tk-send "pack" (map (lambda (x) (list " " x)) lst)))
(define make-tag (let ((n 0)) (lambda () (set! n (+ n 1)) n)))
(define (export proc) (list "{puts (" (register (make-tag) proc) ")}"))
(define (register tag proc) (table-set! registry tag proc) tag)
(define registry (make-table))
(define b1 (button '.b1 "hello" (lambda () (pp 'hello-clicked)))) (define b2 (button '.b2 "world" (lambda () (pp 'world-clicked)))) (pack b1 b2)
(let loop () ; event loop (let ((cmd (read tk))) (if (list? cmd) (begin (apply (table-ref registry (car cmd)) (cdr cmd)) (loop)))))
Marc