<div dir="ltr">[...]<div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Reference counting, not memory management, ie non-cyclic structures only,<br>
fine for GTK GUI structures, but not any old structures.  And of course it<br>
only applies to structures that support reference counting, not simple<br>
types as used in most of Geany.<br>
<br>
</blockquote>
<br></div>
Reference counting is a valid memory management strategy used in many languages like C++ or Python. Vala handles this fine and provides ways to break cycles or such as expected, and more often than not it's not even a concern while programming in Vala itself.</blockquote>
<div><br></div><div>C++ does not have memory management, and Python has a cycle breaker :) vala is fine by itself, but needs great care in the presence of existing *simple structures* (not gobjects) shared with C code as existing Geany uses.</div>
<div><br></div><div>[...]</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><br></div>
Vala exceptions, as mentioned used GError result/out parameters, so there's no change from existing code.<div class="im"><br></div></blockquote><div><br></div><div>Not what it says here <a href="https://wiki.gnome.org/Vala/Manual/Errors">https://wiki.gnome.org/Vala/Manual/Errors</a> and anything that can throw through C code can cause leaks since the C code doesn't clean up.  Same as C++, you can't use exceptions mixed with C code.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">[...]</div>
It means users who are only compiling Geany don't have to install valac, even though it's quite widely available. As usual, if they want to hack on Geany they will need a full development environment including current sources from Git.</blockquote>
<div><br></div><div>Yes, so long as the version in the repos or for windows works fine its not a problem.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><font color="#222222">[...]</font></div>
Which is partially the point of this discussion, simple Gobjectification of Geany's code, without the crufty boilerplate of Gobject/C, moving forward.<div class="im"><br></div></blockquote><div><br></div><div>Which point you failed to mention :) </div>
<div><br></div><div>I'm still to be convinced that gobjectification is automatically going to do much for us, but doing it in vala not C is definitely better.</div><div><br></div><div>[...]</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br></blockquote></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
* Has Autotools and Waf support already, and using from plain GNU Make is<br>
trivial.<br>
<br>
</blockquote>
<br>
How well does the windows version work, is it up to date, since it includes<br>
Glib and GTK which versions are they, and do they match ours?  The binaries<br>
for windows vala available seem to be 0.12, even my LTS Linux has 0.14,<br>
0.16 and 0.18 valac available, more version hell and windows issues :(<br>
<br>
</blockquote>
<br></div>
See current issues WRT Windows binaries, not much change with Vala, just one more binary application to track version of.</blockquote><div><br></div><div>Yeah, but its a binary which includes Glib and GTK IIUC, so we have to match those.  I agree its not much worse than we have now but its not very comforting that the last binaries are 2011 vala version 0.12 when even LTS Linux distros have 0.18.</div>
<div><br></div><div>[...]</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
More version hell, just what we don't need.<br>
<br>
</blockquote>
<br></div>
Not much/any worse than current situation, just more of an excuse not to care about pre-historic, deprecated, unsupported versions of stuff we shouldn't be targetting for new code :)</blockquote><div><br></div><div>I would prefer to make it *better* than the current situation rather than just replace one problem with another.</div>
<div><br></div><div>[...]</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

So long as its a version thats in LTS repos and has available binaries for<br>
windows that doesn't matter.<br>
<br>
</blockquote>
<br></div>
For developement version, IMO who the hell cares about old pre-historic LTS versions, we aren't coding for them, but for their newer counterparts. IME Windows support is not bad, at least no worse than existing G* stuff.</blockquote>
<div><br></div><div>So you propose that Geany only ever work on bleeding edge distros?  You were one of those who strongly argued against dropping windows support, but now you want to drop many of the commercial Linux users who have LTS distros? </div>
<div> </div><div>[...]</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Well, you already have done that for the plugin API IIUC, but still would<br>
be needed for the rest of Geany.<br>
<br>
</blockquote>
<br></div>
No, the rest of Geany would (eventually) be (re)written in modern GObject-style (vala-style) C thus elimitating this problem altogether (as well as the need for hand-coded bindings like we have currently). In the meantime, it's no worse than currently.</blockquote>
<div><br></div><div>No it adds another layer of complexity in the meantime with very little upside, tahts why I suggested below that the new design needs to be done first.</div><div><br></div><div>[...] </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
I don't think it matters how many know it, how many are willing to<br>
contribute is the issue, and with a mixed language application it needs two<br>
languages.<br>
<br>
And that leads to what I consider is the biggest problem with the proposal,<br>
having a project with parts in one language and parts in another.<br>
  Maintaining assumptions between them, some made by the vala compiler, some<br>
made by C coders, is going to be hard and a source of extra problems and<br>
bugs.  That alone is enough reason to not just start piling vala onto the<br>
existing Geany.<br>
</blockquote>
<br></div>
But the languages are directly related and directly compatible. It's almost impossible to know one without the other and gradually our source could move towards the other. There's no way around this without just saying "no", no matter which language you choose (including proper GObject-style C code).<div class="im">
<br></div></blockquote><div><br></div><div>Ok, so I'm saying "No".  Geany doesn't need another language and more complexity, it needs to be properly designed and then progressed to that design.  Using another language to do that is a detail only.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
[...]
</blockquote>
<br></div>
The beauty of Vala is that it does allow for this. You can integrate existing C libraries (ex. TM or Scintilla) with or without changing everything to Vala and even just to small parts of new code in Vala and have it be completely compatible and callable from existing C code that hasn't/isnt' to be changed yet. It's like the best of all worlds.<div class="im">
<br></div></blockquote><div><br></div><div>Which is why I suggested it.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im">
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Cheers<br>
Lex<br>
<br>
PS we discussed the inappropriateness of +-1 as a reply to something this<br>
complex on IRC, won't repeat here.<br>
<br>
</blockquote>
<br></div>
Just to keep down in-depth discussions before higher-level concensus is reached :)</blockquote><div><br></div><div>Its not consensus if you don't know what you are agreeing to :)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5"><br>
<br>
Cheers,<br>
Matthew Brush<br>
<br>
______________________________<u></u>_________________<br>
Devel mailing list<br>
<a href="mailto:Devel@lists.geany.org" target="_blank">Devel@lists.geany.org</a><br>
<a href="https://lists.geany.org/cgi-bin/mailman/listinfo/devel" target="_blank">https://lists.geany.org/cgi-<u></u>bin/mailman/listinfo/devel</a><br>
</div></div></blockquote></div><br></div></div>