On Wed, Mar 28, 2012 at 11:02 PM, Corey O'Connor <coreyocon...@gmail.com> wrote:
> On Wed, Mar 28, 2012 at 1:23 AM, Jean-Philippe Bernardy
> <berna...@chalmers.se> wrote:
>> I'll just throw my two cents.
>>
>> I am not sure what are your goals, but my main issue with developing
>> was the time it took to compile the sources. I think at the moment
>> "cabal install" compile (nearly) every module twice. This should be
>> avoidable by using the new cabal functionality to depend on a library
>> built in the same cabal package.
>
> I'll look into using that feature:
> http://factisresearch.blogspot.com/2010/08/speeding-up-your-cabal-builds.html
>
> My overarching goal is to reduce the development cycle. Reducing the
> compile time for the executable would contribute.
>
> My thinking is that the requirement for yi to be built into a library
> can be removed. Instead the custom yi could be compiled with the Yi
> module source directory being in it's include path. The custom yi
> compile would not need yi to be built as a library and would only
> compile the modules needed. This would avoid unnecessary compilation
> of Yi modules. For instance: the vim keymap for a emacs keymap user.
> The cabal step of packaging up the compiled modules into a library and
> installing the library would also be eliminated.

I would add that making the build cabal-dev friendly as well would be
a good idea.

Having yi-contrib and yi be separate build makes compiling both with
cabal-dev less
easy than it could be.

>
> Cheers,
> Corey
>
>> On Wed, Mar 28, 2012 at 3:32 AM, Corey O'Connor <coreyocon...@gmail.com> 
>> wrote:
>>> I have been considering how to improve the developer experience. The
>>> goal is to make the compile/test cycle shorter. There are a lot of way
>>> to do this. However I'm thinking of going a bit nuts and integrating
>>> the process into yi itself. Code on Yi directly from within Yi and
>>> have the re-config process automagically incorporate the changes.
>>>
>>> Sounds like hacker mode huh? Very similar. WE just need to remove the hack!
>>>
>>> I would like to consider changing the system such that:
>>> * yi, the executable, does *not* contain the full yi library. The yi
>>> executable would be responsible for compiling the users config in an
>>> environment that exposes the appropriate Yi modules and dependent
>>> packages.
>>> * The Yi modules would always reside in a git clone. The yi executable
>>> would know where this git clone resides on disk. Either the system
>>> running yi would have a yi clone in a shared location OR the user has
>>> their own yi repo clone OR yi checks out a new clone.
>>> * On reconfigure the yi executable would: take the serialized out
>>> state of Yi, run the recompile and either: Resume the yi that
>>> initiated the reconfigure to present errors; Or start a new yi-custom
>>> with the serialized state.
>>> * The yi executables dependencies would match the base dependencies of
>>> the yi library. When the yi executable is installed it would retain
>>> the versions of the libraries it was compiled against. This would form
>>> the environment that the custom yi would be compiled under.
>>>
>>> Optionally, the yi executable can compile a set of Yis that use some
>>> pre-defined configs. Such as a yi-emacs and yi-vim etc. Which could be
>>> used to install a system-wide yi version that requires no setup by the
>>> user.
>>>
>>> Ideas? Thoughts? Yah/neh?
>>>
>>> -Corey O'Connor
>>> coreyocon...@gmail.com
>>> http://corebotllc.com/
>>>
>>> --
>>> Yi development mailing list
>>> yi-devel@googlegroups.com
>>> http://groups.google.com/group/yi-devel
>>
>> --
>> Yi development mailing list
>> yi-devel@googlegroups.com
>> http://groups.google.com/group/yi-devel
>
> --
> Yi development mailing list
> yi-devel@googlegroups.com
> http://groups.google.com/group/yi-devel

-- 
Yi development mailing list
yi-devel@googlegroups.com
http://groups.google.com/group/yi-devel

Reply via email to