Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Kuba Ober <kuba@mareimbrium.org>
To: Andrej.Bauer@andrej.com
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Teaching ocaml programming
Date: Sat, 11 Oct 2008 11:58:47 -0400	[thread overview]
Message-ID: <200810111158.49053.kuba@mareimbrium.org> (raw)
In-Reply-To: <48EF8BF8.4050102@andrej.com>

On Friday 10 October 2008, Andrej Bauer wrote:
> Kuba Ober wrote:
> >> The requirements are very simple: 1. easy access to toplevel (with
> >> line-editing) 2. editor which can send stuff to toplevel, points to
> >> errors in source code, and is not Emacs.
> >
> > I've been reading through this thread and it all seems like a
> > 300-liner in Qt/C++ (yes, it's that powerful) (excluding syntax
> > definition for Qt's editor widget, if one doesn't exist somewhere for
> > grabs).
>
> I should have added a 0-th requirement:
>
> 0. easy to install on Windows.
>
> This means that anything which requires more than clicking on setup.exe
> and following some instructions is out of the question (which is why,
> for example, drocaml is out of question).

I don't think I want to get involved in wrapping Ocaml's installation, but
all you'd need is to run two installers: Ocaml's, followed by the IDE's.
Due to the way Ocaml works under Windows, it seems that the only option
you have is to use the bytecode, as compiled code requires either an
implementation of MASM and a linker, or Cygwin (or rather, fixes to mingw
so that it can do what Cygwin does for Ocaml).

> >> > Python has IDLE. Scheme has drscheme. Java has drjava. What does
> >> > Haskell have?
> >
> > If IDLE is an IDE, then I'm Santa Claus ;)
>
> So where exactly did I claim it was an IDE? I just said "easy to use
> interface". Yup, definitely Santa Claus.

;)

OK, I'm off to work on tonight and tomorrow. My minimal goals are:
1. Editor with at least skeleton syntax highligting
2. Output window so that you can see results of your program running
3. Toplevel window so that you can run interactive sessions.

The toplevel initially won't have "readline" support, as I have to
code it from scratch, but since it's all clickable and selectable, it
should be a good first approximation to readline.

I'm still thinking how to organize the windows: should there be tabs and
an SDI-like interface? Here's how I'll do it initially:
1. One window, with a menu and a tabbed area.
2. On startup, there's a tab for toplevel.
3. If you edit a file and choose to run it, the output tab will appear,
showing the output. If there are errors, they will be highlighted
in the source. I have to check how easy it is to capture errors from
Windows version of Ocaml, and whether there should be a separate
Error sub-window under the tabbed area.

I also need to think about how to support the debugger, even though I admit
I have never used Ocaml's debugger. This would be for another weekend, though.
The goal is to have something where you can edit your sources and run them,
with errors being handled "intuitively enough".

The thing will be written in C++, as getting the necessary Ocaml bindings
generated for Qt would take too much time initially. Maybe later I'd port
it to Ocaml, as long as I can get the bindings to work well on Windows.
In the long run I'd need to patch mingw as appropriate so that Ocaml could use
it without subjecting people to Cygwin, and so that the whole thing could
be actually easily built once you install Ocaml, Mingw and Qt's sources.
Mingw toolchain needs relatively few files to run, and is rather trivial to
set up (just copy a bunch of files into a directory, and set up the path).

Cheers, Kuba


  reply	other threads:[~2008-10-11 15:58 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-26 11:30 Andrej Bauer
2008-09-26 11:44 ` [Caml-list] " Lukasz Stafiniak
2008-09-26 11:52   ` Andrej Bauer
2008-09-26 12:07     ` Andrej Bauer
2008-09-26 14:31     ` Richard Jones
2008-09-26 14:49       ` Peng Zang
2008-09-26 12:10 ` Brighten Godfrey
2008-09-26 12:41   ` Andrej Bauer
2008-09-26 12:55     ` Mehdi Dogguy
2008-09-26 17:44     ` Yaron Minsky
2008-09-26 18:59       ` Andrej Bauer
2008-09-26 19:23         ` Hezekiah M. Carty
2008-09-26 20:46     ` David Teller
2008-10-09 21:36     ` Kuba Ober
2008-09-26 22:09   ` Nathaniel Gray
2008-09-26 13:11 ` Hugo Ferreira
2008-09-26 13:33   ` Andrej Bauer
2008-09-26 13:43     ` Hugo Ferreira
2008-09-26 16:15     ` Arthur Chan
2008-09-26 16:52       ` Richard Jones
2008-09-26 22:16         ` Erik de Castro Lopo
2008-09-27  9:44         ` OCaml support on Ubuntu David MENTRE
2008-09-27  9:55           ` [Caml-list] " Erik de Castro Lopo
2008-09-27 11:21           ` Stefano Zacchiroli
2008-09-27 12:17             ` David MENTRE
2008-09-26 16:55       ` [Caml-list] Teaching ocaml programming Andrej Bauer
2008-09-26 17:11       ` Stefano Zacchiroli
2008-09-26 18:16         ` Hugo Ferreira
2008-09-26 22:20         ` Erik de Castro Lopo
2008-09-26 22:08       ` Erik de Castro Lopo
2008-09-27  6:15         ` Vu Ngoc San
2008-09-27  9:22         ` Stefano Zacchiroli
2008-09-27  9:33           ` Erik de Castro Lopo
2008-09-27  9:36             ` Erik de Castro Lopo
2008-09-27 11:16             ` Stefano Zacchiroli
2008-09-26 14:29 ` Peng Zang
2008-09-26 15:18 ` Dario Teixeira
2008-09-26 16:17   ` Andrej Bauer
2008-09-26 16:55     ` Richard Jones
2008-09-26 17:01     ` Peng Zang
2008-09-28  0:06       ` Brighten Godfrey
2008-09-26 20:30 ` David Teller
2008-09-26 22:05 ` Nathaniel Gray
2008-10-09 21:41 ` Kuba Ober
2008-10-10 17:08   ` Andrej Bauer
2008-10-11 15:58     ` Kuba Ober [this message]
2008-10-11 16:19       ` Kuba Ober
2008-10-11 21:18         ` Andrej Bauer
2008-10-13 23:21           ` Kuba Ober

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200810111158.49053.kuba@mareimbrium.org \
    --to=kuba@mareimbrium.org \
    --cc=Andrej.Bauer@andrej.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox