* Camelia progress @ 2008-10-17 13:55 Kuba Ober 2008-10-17 14:05 ` [Caml-list] " David Teller ` (4 more replies) 0 siblings, 5 replies; 13+ messages in thread From: Kuba Ober @ 2008-10-17 13:55 UTC (permalink / raw) To: caml-list Here's the update from the trenches: I'm about 75% done porting Camelia code to Qt4, the editor-related parts took longer than anticipated since a lot of code had to change due to the arguably better way that Qt4 handles text editing. The code shrinks quite a bit in the process (20% or so, per the line counts), so that's hopefully good ;) The debugging will surely take quite some time. I'm in the process of getting admin rights to the sourceforge project and setting up an SVN repository for the code. The upcoming version will be 2.0, and I hope to add some features to it before it's final. I'm sure of Ocamlbuild support. Any other features that people would like? I'll keep you guys posted, this is obviously a "slightly"* larger project than initially anticipated, but the codebase is OK to work with, and it'll have way more features than anything done from scratch in a weekend would ;) My plan is to have the final 2.0 release support all OCaml builds out of the box on Windows (MSVC, MinGW and Cygwin), although I will put 3.11.0 as the minimum supported version of OCaml due to debugger and other woes. Linux and OSX will also be supported; Linux-wise I can only test on FC9, but bug reports will be welcome of course. Cheers, Kuba * - "slightly" in the log scale, so just one order of magnitude is "not much" ;) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress 2008-10-17 13:55 Camelia progress Kuba Ober @ 2008-10-17 14:05 ` David Teller 2008-10-20 13:01 ` [Caml-list] Camelia progress, indenter Kuba Ober 2008-10-17 15:13 ` Camelia progress Sylvain Le Gall ` (3 subsequent siblings) 4 siblings, 1 reply; 13+ messages in thread From: David Teller @ 2008-10-17 14:05 UTC (permalink / raw) To: Kuba Ober; +Cc: caml-list A notion of projects would be nice, which would give the ability to save/load multiple files. And "slight" thanks for your work, David :) On Fri, 2008-10-17 at 09:55 -0400, Kuba Ober wrote: > The upcoming version will be 2.0, and I hope to add some features > to it before it's final. I'm sure of Ocamlbuild support. > Any other features that people would like? > * - "slightly" in the log scale, so just one order of magnitude > is "not much" ;) -- David Teller-Rajchenbach Security of Distributed Systems http://www.univ-orleans.fr/lifo/Members/David.Teller Angry researcher: French Universities need reforms, but the LRU act brings liquidations. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress, indenter 2008-10-17 14:05 ` [Caml-list] " David Teller @ 2008-10-20 13:01 ` Kuba Ober 2008-10-20 13:22 ` David Teller 0 siblings, 1 reply; 13+ messages in thread From: Kuba Ober @ 2008-10-20 13:01 UTC (permalink / raw) To: caml-list On Friday 17 October 2008, David Teller wrote: > A notion of projects would be nice, which would give the ability to > save/load multiple files. At first, I will add "Save all" to the menu (if not already there), so that all modified documents will be saved with a single action. As for real project support, there will be a parser/generator for ocamlbuild files, although I have never played with ocamlbuild before so I have to see first how to go about it. Cheers, Kuba ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress, indenter 2008-10-20 13:01 ` [Caml-list] Camelia progress, indenter Kuba Ober @ 2008-10-20 13:22 ` David Teller 2008-10-20 13:35 ` Kuba Ober 0 siblings, 1 reply; 13+ messages in thread From: David Teller @ 2008-10-20 13:22 UTC (permalink / raw) To: Kuba Ober; +Cc: caml-list I'm not sure that parsing ocamlbuild file is the right thing to do. For a simple OCaml project (which would probably mean most Camelia projects), there are no OCamlBuild files at all. Mmmhhh.... there's .itarget (i.e. a list of files you wish generated after compilation), but that's about it. And, again, most projects don't have any. Cheers, David On Mon, 2008-10-20 at 09:01 -0400, Kuba Ober wrote: > On Friday 17 October 2008, David Teller wrote: > > A notion of projects would be nice, which would give the ability to > > save/load multiple files. > > At first, I will add "Save all" to the menu (if not already there), so > that all modified documents will be saved with a single action. > > As for real project support, there will be a parser/generator for ocamlbuild > files, although I have never played with ocamlbuild before so I have to see > first how to go about it. > > Cheers, Kuba > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- David Teller-Rajchenbach Security of Distributed Systems http://www.univ-orleans.fr/lifo/Members/David.Teller Angry researcher: French Universities need reforms, but the LRU act brings liquidations. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress, indenter 2008-10-20 13:22 ` David Teller @ 2008-10-20 13:35 ` Kuba Ober 2008-10-20 14:46 ` Romain Bardou 0 siblings, 1 reply; 13+ messages in thread From: Kuba Ober @ 2008-10-20 13:35 UTC (permalink / raw) To: caml-list > I'm not sure that parsing ocamlbuild file is the right thing to do. For > a simple OCaml project (which would probably mean most Camelia > projects), there are no OCamlBuild files at all. > > Mmmhhh.... there's .itarget (i.e. a list of files you wish generated > after compilation), but that's about it. And, again, most projects don't > have any. OK, so I'll focuse on .itarget instead, since that's the thing that the debugger has to cooperate with to decide what executable to run and debug. Cheers, Kuba ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress, indenter 2008-10-20 13:35 ` Kuba Ober @ 2008-10-20 14:46 ` Romain Bardou 2008-10-20 20:02 ` Kuba Ober 0 siblings, 1 reply; 13+ messages in thread From: Romain Bardou @ 2008-10-20 14:46 UTC (permalink / raw) To: caml-list caml-list Kuba Ober a écrit : >> I'm not sure that parsing ocamlbuild file is the right thing to do. For >> a simple OCaml project (which would probably mean most Camelia >> projects), there are no OCamlBuild files at all. >> >> Mmmhhh.... there's .itarget (i.e. a list of files you wish generated >> after compilation), but that's about it. And, again, most projects don't >> have any. > > OK, so I'll focuse on .itarget instead, since that's the thing that the > debugger has to cooperate with to decide what executable to run and debug. Err... I'm not sure .itarget is what you want. It's close of what you want, sure, but you may have several .itarget for the same project, things like that. A typical project may have: * some source files (.ml .mli .mly .mll); * several main targets (.byte .native .mllib .mlpack), that may or may not be put together in one or several .itarget; * a documentation (.odocl); * some special rules (_tags myocamlbuild.ml), like some libraries to use; * a configure script. This is not, IMO, easily relatable to the project itself, which is simply a list of files... Given a list of files, an IDE can guess interesting targets such as: * .docdir/index.html for each .odocl; * .cma .cmxa for each .mllib; * .cmo for each .mlpack. But potentially every file can generate several interesting targets. For instance, from the file x.mlpack, one can generate x.cmo, x.cmx, x.cma, x.cmxa, x.mli, or even x.docdir/index.html. IMO, simply allowing to view the whole contents of a directory is enough, especially thanks to the fact that ocamlbuild does not pollute your source directory. -- Romain Bardou ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress, indenter 2008-10-20 14:46 ` Romain Bardou @ 2008-10-20 20:02 ` Kuba Ober 2008-10-21 8:35 ` Romain Bardou 0 siblings, 1 reply; 13+ messages in thread From: Kuba Ober @ 2008-10-20 20:02 UTC (permalink / raw) To: caml-list On Monday 20 October 2008, Romain Bardou wrote: > Kuba Ober a écrit : > >> I'm not sure that parsing ocamlbuild file is the right thing to do. For > >> a simple OCaml project (which would probably mean most Camelia > >> projects), there are no OCamlBuild files at all. > >> > >> Mmmhhh.... there's .itarget (i.e. a list of files you wish generated > >> after compilation), but that's about it. And, again, most projects don't > >> have any. > > > > OK, so I'll focuse on .itarget instead, since that's the thing that the > > debugger has to cooperate with to decide what executable to run and > > debug. > > Err... I'm not sure .itarget is what you want. It's close of what you > want, sure, but you may have several .itarget for the same project, > things like that. > > A typical project may have: > * some source files (.ml .mli .mly .mll); > * several main targets (.byte .native .mllib .mlpack), that may or > may not be put together in one or several .itarget; > * a documentation (.odocl); > * some special rules (_tags myocamlbuild.ml), like some libraries to > use; * a configure script. > This is not, IMO, easily relatable to the project itself, which is > simply a list of files... > > Given a list of files, an IDE can guess interesting targets such as: > * .docdir/index.html for each .odocl; > * .cma .cmxa for each .mllib; > * .cmo for each .mlpack. > But potentially every file can generate several interesting targets. For > instance, from the file x.mlpack, one can generate x.cmo, x.cmx, x.cma, > x.cmxa, x.mli, or even x.docdir/index.html. > > IMO, simply allowing to view the whole contents of a directory is > enough, especially thanks to the fact that ocamlbuild does not pollute > your source directory. That works for me. In future I can implement functionality similar to Visual Studio's .vcproj files, where you can basically hand-tune the build process, all without leaving the IDE. I have had a go at writing a proof-of-concept stand-alone "executor" or "builder" for .vcproj files, and it's not only doable, but the concept should be easy to duplicate and is relatively user-friendly - certainly better than dealing with Makefiles directly, and better than dealing with qmake's .pro files too. Cheers, Kuba ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress, indenter 2008-10-20 20:02 ` Kuba Ober @ 2008-10-21 8:35 ` Romain Bardou 0 siblings, 0 replies; 13+ messages in thread From: Romain Bardou @ 2008-10-21 8:35 UTC (permalink / raw) To: Kuba Ober; +Cc: caml-list > That works for me. > In future I can implement functionality similar to Visual Studio's .vcproj > files, where you can basically hand-tune the build process, all without > leaving the IDE. I have had a go at writing a proof-of-concept stand-alone > "executor" or "builder" for .vcproj files, and it's not only doable, but > the concept should be easy to duplicate and is relatively user-friendly - > certainly better than dealing with Makefiles directly, and better than > dealing with qmake's .pro files too. I do not know .vcproj files, but if you invent some syntax to describe projects, it would be great if you could do it in cooperation with some maintainer of Ocamlbuild. This is the kind of file that could be used by both by an editor and by Ocamlbuild :) -- Romain Bardou ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Camelia progress 2008-10-17 13:55 Camelia progress Kuba Ober 2008-10-17 14:05 ` [Caml-list] " David Teller @ 2008-10-17 15:13 ` Sylvain Le Gall 2008-10-17 20:42 ` [Caml-list] " Andrej Bauer ` (2 subsequent siblings) 4 siblings, 0 replies; 13+ messages in thread From: Sylvain Le Gall @ 2008-10-17 15:13 UTC (permalink / raw) To: caml-list Hello, On 17-10-2008, Kuba Ober <kuba@mareimbrium.org> wrote: > > I'm in the process of getting admin rights to the sourceforge > project and setting up an SVN repository for the code. > What about migrating it to forge.ocamlcore.org ? It seems to be a project 100% related to OCaml, so I think you will get more visibility to the OCaml community being hosted along other OCaml projects ? http://forge.ocamlcore.org You could then just made a redirection from camelia home webpage to OCamlCore forge. Regards, Sylvain Le Gall ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress 2008-10-17 13:55 Camelia progress Kuba Ober 2008-10-17 14:05 ` [Caml-list] " David Teller 2008-10-17 15:13 ` Camelia progress Sylvain Le Gall @ 2008-10-17 20:42 ` Andrej Bauer [not found] ` <e2d02be30810180555r602c5977n20122bbd9dbbedd9@mail.gmail.com> 2008-10-20 13:07 ` [Caml-list] Camelia progress - indenter (this time for real) Kuba Ober 4 siblings, 0 replies; 13+ messages in thread From: Andrej Bauer @ 2008-10-17 20:42 UTC (permalink / raw) To: Kuba Ober; +Cc: caml-list Since I am slightly responsible for getting you into this exercise, I volunteer to test the code on Ubuntu 7.04, Intel and AMD64 architectures. Let me know when you want something done. Best regards, Andrej ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <e2d02be30810180555r602c5977n20122bbd9dbbedd9@mail.gmail.com>]
* Re: [Caml-list] Camelia progress [not found] ` <e2d02be30810180555r602c5977n20122bbd9dbbedd9@mail.gmail.com> @ 2008-10-20 12:16 ` Kuba Ober 0 siblings, 0 replies; 13+ messages in thread From: Kuba Ober @ 2008-10-20 12:16 UTC (permalink / raw) To: caml-list On Saturday 18 October 2008, you wrote: > Hi, > > In the meantime, is there a public source control with the current version > or a tarball? (I'd just like to take a look at the code, not necessarily > run it). SVN is in the usual sourceforge.net location. The original 1.1 release from a couple years ago is tagged, and I'm chopping away at it in the trunk. Browse it at: http://camelia.svn.sourceforge.net/ Checkout: svn co https://camelia.svn.sourceforge.net/svnroot/camelia camelia Cheers, Kuba ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Caml-list] Camelia progress - indenter (this time for real) 2008-10-17 13:55 Camelia progress Kuba Ober ` (3 preceding siblings ...) [not found] ` <e2d02be30810180555r602c5977n20122bbd9dbbedd9@mail.gmail.com> @ 2008-10-20 13:07 ` Kuba Ober [not found] ` <e2d02be30810201102p79da38d4r6b15154aa4cce0c9@mail.gmail.com> 4 siblings, 1 reply; 13+ messages in thread From: Kuba Ober @ 2008-10-20 13:07 UTC (permalink / raw) To: caml-list Replying to myself -- must be old age ;) I know that the indenter support will be gone at least for the alpha version, as the indenter needs a revamp -- the QSyntaxHighlighter machinery can be (ab)used to modify the text in-place, and will most likely host all of the indenter. Right now, indenter has a big bunch of regexps and is a bit hard on the eyes. What I will do instead is to tokenize each line and work off the token stream; I expect this will cut the code size a lot. The syntax highlighter has a notion of state for each line, and the state of preceding line, and is automatically invoked by Qt whenever the lines change. I have to check, but I think it is also invoked when the state of the preceding line changes. So it's fairly easy to work with. Anyway, the plan is not to drop features, so the final release will have a hopefully nice indenter and whatnot. Also note that I'm submitting everything to SVN pretty much as I go, and I try to keep the code compileable, so if anyone feels like contributing, let me know. It may be easier to work on it once it all gets to compile, which is still one file away and I will of course brag once it hits the "it compiles and pretends to run" mark. Cheers, Kuba ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <e2d02be30810201102p79da38d4r6b15154aa4cce0c9@mail.gmail.com>]
* Re: [Caml-list] Camelia progress - indenter (this time for real) [not found] ` <e2d02be30810201102p79da38d4r6b15154aa4cce0c9@mail.gmail.com> @ 2008-10-20 19:59 ` Kuba Ober 0 siblings, 0 replies; 13+ messages in thread From: Kuba Ober @ 2008-10-20 19:59 UTC (permalink / raw) To: caml-list > I thought of reading through the code and maybe contributing, but the fact > that it's all in C++ is holding me back a bit. Still, I'm going to take a > look once I have time. > Actually, porting the code to pure OCaml might prove the most interesting > task to me. I wonder what is the state of QT4 bindings, though: you > mentioned they were incomplete or non-nexistant, so is it possible to > overcome this without writing the whole QT4 bindings package? It also might > be a bit early to start porting, but then, if I start now, by the time I'd > have anything basic, you would probably complete most of the features > (considering that I have little practical experience with OCaml and no > experience with QT). PyQt may be a good thing to look at, but I don't know how easy it would be to port PyQt to OCaml. The only language I found it easy to bind to almost any binary API is Lisp, since it can actually execute nontrivial programs at compilation time. I guess the starting point would be to look at Qt's C++ API and design an API for Qt in OCaml, and only then try to bridge the gap. Cheers, Kuba ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2008-10-21 8:36 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-10-17 13:55 Camelia progress Kuba Ober 2008-10-17 14:05 ` [Caml-list] " David Teller 2008-10-20 13:01 ` [Caml-list] Camelia progress, indenter Kuba Ober 2008-10-20 13:22 ` David Teller 2008-10-20 13:35 ` Kuba Ober 2008-10-20 14:46 ` Romain Bardou 2008-10-20 20:02 ` Kuba Ober 2008-10-21 8:35 ` Romain Bardou 2008-10-17 15:13 ` Camelia progress Sylvain Le Gall 2008-10-17 20:42 ` [Caml-list] " Andrej Bauer [not found] ` <e2d02be30810180555r602c5977n20122bbd9dbbedd9@mail.gmail.com> 2008-10-20 12:16 ` Kuba Ober 2008-10-20 13:07 ` [Caml-list] Camelia progress - indenter (this time for real) Kuba Ober [not found] ` <e2d02be30810201102p79da38d4r6b15154aa4cce0c9@mail.gmail.com> 2008-10-20 19:59 ` Kuba Ober
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox