Csound Csound-dev Csound-tekno Search About

[Csnd-dev] MSVC: Latest

Date2017-03-08 00:58
FromSteven Yi
Subject[Csnd-dev] MSVC: Latest
Hi All,

Another update: I'm continuing to work with Stephen and we've gotten a
bit further. I've added a few functions to the csound.h API:

void* csoundCreateCondVar()
void csoundCondWait(void*, void*)
void csoundCondSignal(void*)

These were added so that csPerfThread.cpp could have its direct calls
to pthread-related functions replaced.  (I added implementations for
pthreads, Windows, and default in threads.c).

Stephen reports a full build. I have some issues due to dependencies.
One issue is the use of dirent.h.  Windows does not include one, but
there is one someone made here:

https://github.com/tronkko/dirent

that Stephen has used and successfully compiled the files requiring
dirent.h (e.g., ftsamplebank).  The file has an MIT license and the
project instructions allows adding to other source trees.  It
recommends to make it only added as an include when compiling on MSVC.
I think it would be pretty simple to add to our sourcetree and
conditionally include on MSVC-only.  I think it would also be okay to
use in terms of license, but wanted to double-check here.

Also, Stephen referred me to vcpkg
(https://github.com/Microsoft/vcpkg), a Microsoft tool for installing
3rd party dependencies.  I've gotten it to install and have started to
experiment with it but still need more time to research.  One of the
interesting things is that it is supposed to integrate very well with
CMake; I *think* it will automatically pull down dependencies, but I
need to verify that.  We'll need to see if it will have the
dependencies we need.

Finally, Visual Studio 2017 has just been released today. It includes
support for CMake out of the box.  I'm experimenting with the feature
now, but MS seems to have added a lot of support for CMake now.

Thanks!

Date2017-03-08 08:29
FromVictor Lazzarini
SubjectRe: [Csnd-dev] MSVC: Latest
Wonderful news. Are there any changes for programs currently using the API threading functions?
========================
Prof. Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy,
Maynooth University,
Maynooth, Co Kildare, Ireland
Tel: 00 353 7086936
Fax: 00 353 1 7086952 

> On 8 Mar 2017, at 00:58, Steven Yi  wrote:
> 
> Hi All,
> 
> Another update: I'm continuing to work with Stephen and we've gotten a
> bit further. I've added a few functions to the csound.h API:
> 
> void* csoundCreateCondVar()
> void csoundCondWait(void*, void*)
> void csoundCondSignal(void*)
> 
> These were added so that csPerfThread.cpp could have its direct calls
> to pthread-related functions replaced.  (I added implementations for
> pthreads, Windows, and default in threads.c).
> 
> Stephen reports a full build. I have some issues due to dependencies.
> One issue is the use of dirent.h.  Windows does not include one, but
> there is one someone made here:
> 
> https://github.com/tronkko/dirent
> 
> that Stephen has used and successfully compiled the files requiring
> dirent.h (e.g., ftsamplebank).  The file has an MIT license and the
> project instructions allows adding to other source trees.  It
> recommends to make it only added as an include when compiling on MSVC.
> I think it would be pretty simple to add to our sourcetree and
> conditionally include on MSVC-only.  I think it would also be okay to
> use in terms of license, but wanted to double-check here.
> 
> Also, Stephen referred me to vcpkg
> (https://github.com/Microsoft/vcpkg), a Microsoft tool for installing
> 3rd party dependencies.  I've gotten it to install and have started to
> experiment with it but still need more time to research.  One of the
> interesting things is that it is supposed to integrate very well with
> CMake; I *think* it will automatically pull down dependencies, but I
> need to verify that.  We'll need to see if it will have the
> dependencies we need.
> 
> Finally, Visual Studio 2017 has just been released today. It includes
> support for CMake out of the box.  I'm experimenting with the feature
> now, but MS seems to have added a lot of support for CMake now.
> 
> Thanks!

Date2017-03-08 20:23
FromSteven Yi
SubjectRe: [Csnd-dev] MSVC: Latest
There shouldn't be, this is just an additive change.  That said, we
still need to double-check that the thread related changes are working
as expected. (I saw the error from the last push to the no-pthread
branch caused travis to time out on testPerfThread.)

On Wed, Mar 8, 2017 at 3:29 AM, Victor Lazzarini
 wrote:
> Wonderful news. Are there any changes for programs currently using the API threading functions?
> ========================
> Prof. Victor Lazzarini
> Dean of Arts, Celtic Studies, and Philosophy,
> Maynooth University,
> Maynooth, Co Kildare, Ireland
> Tel: 00 353 7086936
> Fax: 00 353 1 7086952
>
>> On 8 Mar 2017, at 00:58, Steven Yi  wrote:
>>
>> Hi All,
>>
>> Another update: I'm continuing to work with Stephen and we've gotten a
>> bit further. I've added a few functions to the csound.h API:
>>
>> void* csoundCreateCondVar()
>> void csoundCondWait(void*, void*)
>> void csoundCondSignal(void*)
>>
>> These were added so that csPerfThread.cpp could have its direct calls
>> to pthread-related functions replaced.  (I added implementations for
>> pthreads, Windows, and default in threads.c).
>>
>> Stephen reports a full build. I have some issues due to dependencies.
>> One issue is the use of dirent.h.  Windows does not include one, but
>> there is one someone made here:
>>
>> https://github.com/tronkko/dirent
>>
>> that Stephen has used and successfully compiled the files requiring
>> dirent.h (e.g., ftsamplebank).  The file has an MIT license and the
>> project instructions allows adding to other source trees.  It
>> recommends to make it only added as an include when compiling on MSVC.
>> I think it would be pretty simple to add to our sourcetree and
>> conditionally include on MSVC-only.  I think it would also be okay to
>> use in terms of license, but wanted to double-check here.
>>
>> Also, Stephen referred me to vcpkg
>> (https://github.com/Microsoft/vcpkg), a Microsoft tool for installing
>> 3rd party dependencies.  I've gotten it to install and have started to
>> experiment with it but still need more time to research.  One of the
>> interesting things is that it is supposed to integrate very well with
>> CMake; I *think* it will automatically pull down dependencies, but I
>> need to verify that.  We'll need to see if it will have the
>> dependencies we need.
>>
>> Finally, Visual Studio 2017 has just been released today. It includes
>> support for CMake out of the box.  I'm experimenting with the feature
>> now, but MS seems to have added a lot of support for CMake now.
>>
>> Thanks!