[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Visual Studio is here
Re: [Chicken-users] Visual Studio is here
Mon, 24 Nov 2014 22:18:10 +0300
On 24 Nov 2014, at 12:44, Peter Bex <address@hidden> wrote:
> On Sat, Nov 22, 2014 at 11:42:29PM +0300, Oleg Kolosov wrote:
>> Well, merging back into the core will make me happy, but, before that, I
>> plan to actually implement the aforementioned features. Right now I have
>> only barely working prototypes. You, as an upstream, have strong policies
>> and obligations (like maintaining backward compatibility and such) which
>> will slow me down. I prefer to rapidly change everything without
>> discussions. So, it looks like this will be a real fork for the time being.
> Please remember that we've actually decided to _break_ backwards
> compatibility for CHICKEN 5. If there's any time to contribute large
> changes to core, it's now!
> Of course we'll still want to review changes, but this is to ensure
> quality and avoid introducing bugs, as well as to ensure that more
> people are familiar with the new code. At least two core developers
> will have looked at the code, which means we reduce the "bus factor"
> (i.e., what would happen if one core dev would be hit by a bus?).
> Everyone benefits from this: Suppose you lose interest in CHICKEN
> or something was to happen to you, who will maintain your changes
> if nobody has seen and understood them in detail?
Yes, you are right. I’m moving things around mainly to familiarise myself with
the code. I’ve received complaints from people I know personally, who would
like to contribute, that the existing code base is hard to navigate, so, to
make the job easier, I’ve removed and renamed few things, like setup-api, csc
and friends, most of the platforms and such. The conversion was pretty
mindless, I don’t think this is worthy of contribution.
The main benefit from this is that there is no more “cross chicken”: just host
and target. So it’s actually possible.
>> The development is completely public, on github, and I don’t mind breaking
>> things, maybe this will encourage people who does not want to bother with
>> patches and mailing lists to contribute.
> We already have a manpower problem, with not enough people contributing.
> Diluting this manpower across two projects is wasteful and hurts *both*
This is not my intention. Considering that commits to the core are quite rare,
by putting some action to github I was hoping to make the the project more
> But more importantly, I'd really hate to see all your work go to waste.
> I've seen it before, and done it myself even: if you just go off on your
> own and hack, merging back the work is going to be Very Hard. If you
> just send a huge patch bomb to the mailinglist, that will make it
> impossible for us to merge it back, not only due to the inevitable merge
> conflicts but also because too large patches are hard to digest.
Well, actual code changes, not counting moves and renames, are quite small. I’m
still not sure how it will work in the end. I guess most of these things will
require few tries, so to not waste anyones time I will experiment in my own
> Evntually, CHICKEN 5 may evolve beyond the ability to merge back changes
> into your branch. The same will happen vice versa. This will ensure
> people will need to choose between your branch or ours, which is unfair
> and unnecessary.
To make this clear: mine - "try you wildest ideas, don’t complain if it eats
your cat” (broken builds, merge conflicts); mainline - peer reviewed, stable
and time proven.
>> The test suite still passes and I have complex production system (thread
>> heavy and performance sensitive) which still runs, so I hope the real
>> breakage will not go unnoticed.
> How many platforms are you testing on? We have an extensive continuous
> integration system (Salmonella), which tests on several platforms.
> Writing portable code is hard enough as it is, without this safety net
> you're almost guaranteed to break a thing or two without knowing it.
Windows 7: (MSVC, MinGW32), MacOS X (Xcode and ninja build), occasionally cross
compile for Linux (x86 and MIPS) with the eggs and run on our device.