On 21 May 2010 16:55, Andrei Vishneuski <[email protected]> wrote:
> On 05/21/2010 02:06 AM, Lex Trotman wrote: > > > > On 21 May 2010 02:49, Andrei Vishneuski <[email protected]> wrote: > >> >> On 20 mei 2010, at 12:48, Lex Trotman wrote: >> >> >> >> On 20 May 2010 20:20, Andrei Vishneuski <[email protected]> wrote: >> >>> >>> On 20 mei 2010, at 11:42, Lex Trotman wrote: >>> >>> >>> >>> On 20 May 2010 19:28, Andrei Vishneuski <[email protected]> wrote: >>> >>>> >>>> On 19 mei 2010, at 22:34, Enrico Tröger wrote: >>>> >>>> > On Tue, 18 May 2010 21:40:03 +0200, Andrei wrote: >>>> > >>>> >> On 05/18/2010 01:31 PM, Andrei Vishneuski wrote: >>>> >>> >>>> >>> >>>> >>> On 18 mei 2010, at 13:22, Lex Trotman wrote: >>>> >>> >>>> >>>> >>>> >>>> >>>> >>>> On 18 May 2010 20:37, Andrei Vishneuski <[email protected] >>>> >>>> <mailto:[email protected]>> wrote: >>>> >>>> >>>> >>>> I am big fun of Geany and have used it in Windows and Linux as >>>> >>>> my primary development editor. >>>> >>>> The problem is usage of Geany under Mac OSx. >>>> >>>> Basically under Mac osx you have three options: >>>> >>>> >>>> >>>> 1) Install port and install geany through the port. This is the >>>> >>>> most simple way. Geany looks a little bit ugly but workable >>>> >>>> and fast. 2) Deploy native Mac OSx GTK (see gtk-osx). More >>>> >>>> complicated way to use Geany. Geany looks more integrated with Mac >>>> >>>> OSx, but it is SLOW ! >>>> >>>> 3) Use virtual (Linux) machine. Not a graceful way but better >>>> >>>> than nothing. >>>> >>>> >>>> >>>> I have tried all three options. And unfortunately only third >>>> >>>> option is applicable. >>>> >>>> >>>> >>>> Options 1) and 2) has critical bug. If you try to build >>>> >>>> something geany starts consuming 100% CPU time ! >>>> >>>> It seems there is something wrong with process output reading, >>>> >>>> geany cannot correctly finalize it and stuck somewhere in >>>> >>>> reading loop. >>>> >>>> >>>> >>>> Does anybody have the same experience and may be just by chance >>>> >>>> has found a workaround ? >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Which versions of Geany and Glib and GTK? >>>> >>>> >>>> >>> Geany 0.18.1 >>>> >>> 1) Mac OSx port GTK2 2.18.2 >>>> >>> 2) native gtk-osx GTK2 don't know exact version they are supporting >>>> >>> (have to see my home PC to give you more information) >>>> >> >>>> >> I little bit more about gtk-osx version: geany 0.18.1 (built on May >>>> >> 18 2010 with GTK 2.18.2, GLib 2.22.2) >>>> >> Geany and gtk-osx has been compiled as i386 applications since 64bits >>>> >> version of gtk-osx is no stable yet. >>>> >> >>>> >> PS: frankly speaking I think it is not GTK related bug, since I have >>>> > >>>> > It doesn't need to be a GTK/GLib bug but maybe we just use it wrong or >>>> > it behaves differently on MacOSX or MacOSX behaves differently than >>>> > Linux/Unix. I can't say what's wrong and I don't have access to a >>>> > MacOSX system :(. >>>> >>>> >>>> Could you give me a brief use case how the build feature works >>>> (several general steps) and point the file >>>> where I can find code responsible for it. May be I will try to take a >>>> look at the >>>> problem closer (cannot guarantee since I have not used C/C++ for ages >>>> :)). As far as I can see practically everything works: >>>> it executes appropriate tool for compilation, gets output from the tool, >>>> parses output and makes parsed results visible in compile >>>> window. But after that geany CPU load is 100%. >>>> >>> >>> Oh, the load remains 100% forever after??? Do you get a success message >>> in the status bar? >>> >>> Can you try the nightly build version but configure the "build" to run a >>> shell script that just does a delay so you can check if the load starts >>> before the end of the build or after completion. >>> >>> >>> >>>> >>>> I have tried geany night build and geany 0.17. They have the same >>>> problem. >>>> >>>> >>> Ok, thanks, 0.17 lets out new build bits I added :-) but we've still got >>> to fix the problem :-( >>> >>> >>>> PS: Buy the way, several days ago VirtualBox 3.2 has been released. One >>>> of the very interested >>>> feature is support for Mac OSx. That means it is possible to install >>>> original Mac OSx from >>>> original oficial DVD. It could be a good way to test geany for this >>>> platform. >>>> >>> >>> If one has a DVD, doesn't a Mac come from a place with golden arches?? >>> Thats how much I know about them I'm afraid. >>> >>> >>> The problem with Mac OSx is mac hardware uses more modern PC (EFI >>> instead of BIOS) architecture and of course it is impossible >>> just to take official Mac OSx DVD and install it on any PC even if the >>> hardware has identical CPU/GPU/etc. And reverse: it is >>> impossible to install Linux/Windows on mac hardware as is, without >>> special boot loaders that emulates BIOS existence. >>> >>> There are several unofficial projects that modify (hack) original DVD >>> (most of them add special boot loader which makes Mac OSx feels like >>> it starts on PC with EFI). What Virtual Box does it has started >>> supporting the modern PC architecture and as result you can take original >>> Mac OSx >>> (as far as I know it possible to buy Snow Leopard legally in apple store) >>> and install it as virtual machine. Of course, there are still several >>> problems, your hardware (CPU/GPU/etc) should be compatible with what Mac >>> OSx can support. >>> >>> >>> >> AFAIK none of the Geany developers uses Macs so there is no reason for >> anyone to spend money do it. >> >> But if you can help we are happy to provide all the guidance we can if you >> can contribute by looking at the problem. >> >> If you get a chance to look at when the 100% starts would be good. >> >> As I said in a post a couple back to Enrico (I see I didn't clearly >> indicate I was talking to him, oops sorry) if the problem can't be >> definitely found, another option is to try the way builds are run on >> Windows, where they are synchronous and different methods are used to >> interface to the subprocess. So all is not lost yet. >> >> To answer your question about where to look, all is in build.c, you will >> see that there are #ifdefs that separate the windows and unix code, look at >> the section headed "execute commands and handle results" and the whole >> process starts at build_spawn_command(). If you can use a debugger to find >> what loop its stuck in maybe we can narrow it down. I would assume its in >> the GTK event/monitor loop, otherwise the application wouldn't continue to >> work, possibly the monitor of the subprocess pipe isn't terminating right >> and GTK keeps calling it with no characters?? >> >> Cheers >> Lex >> >> >> >> The only thing I can say right now is "build_iofunc()" executed >> infinitely, the function always returns TRUE (that is the reason why it is >> never terminated, I think). >> Will see why ii is always true ... >> >> >> Ok, thats where I thought it would be, I'm not sure why, maybe its > GTK2.18 or OSX pipes but whatever, can you try the attached patch that tries > to pick up more conditions to stop. > > > Debugging indicated that the section below starts getting condition = > G_IO_IN forever, but "g_io_channel_read_line" can read nothing. > I have tried to use additional reading method like read_char, > read_to_the_end. I have tried to flush pipe. None of it helped. > The result workaround I have used shown below: > > if (cond & (G_IO_IN | G_IO_PRI)) > { > gchar *msg; > + int count = 0; > > while (g_io_channel_read_line(ioc, &msg, NULL, NULL, NULL) && > msg) > { > gint color = (GPOINTER_TO_INT(data)) ? COLOR_DARK_RED : > COLOR_BLACK; > > process_build_output_line(msg, color); > g_free(msg); > + count++ > } > > + if (count == 0) return FALSE; > } > > > It works, but doesn't give an answer why pipe says "there is still > something to read in the pipe". > > > Hmmmmm.... Did you have a chance to test the patch that checks the return from g_io_channel_read_line? Cheers Lex > > > _______________________________________________ > Geany mailing list > [email protected] > http://lists.uvena.de/cgi-bin/mailman/listinfo/geany > >
_______________________________________________ Geany mailing list [email protected] http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
