[Jack-Devel] jack-headers merge ( the future of JACK(2))

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[Jack-Devel] jack-headers merge ( the future of JACK(2))

Bugzilla from micuintus@gmx.de

Hello dear friends
(and enemies) of JACK1, JACK2, netJACK, jackDBUS, ...

Recently I tool the plunge and did a diff between

    <https://github.com/jackaudio/headers> (the one from jack1) and
    <https://github.com/jackaudio/jack2/tree/master/common/jack>

to realize that the diff isn't actually as bad I feared it would be.

I quickly glanced through the differences, and most of what I found looks like
it shouldn't be too hard to fix (sth. like jackctl_sigmask_t being defined as
an opaque type in JACK2 etc.).

I'd like to offer my precious time for giving a jack-headers merge another
shot (I know Paul asked for some help on that already in 2012...).

As a first step I'd suggest moving the current JACK2 headers
to its own branch in

    <https://github.com/jackaudio/headers>

and start using the headers repository in JACK2, as well.

But before I start digging into the work,
I'd like to ask whether you'd be actually interested in that?
(Or in other words: whether someone is there to review and merge the PR ;)
I noticed some open pull requests are lingering in the JACK2 repository and I
wonder whether the development of JACK2 is stalled?)



Apart from that I'd like to ask a more generic question about the future of
JACK(2): As Paul mentioned in his step down notice, many GNU/Linux
distributions nowadays use JACK2 by default, and on Windows and OSX I'd
personally rather recommend using JACK2. In other words, I myself still am a
JACK2 fan naturally ;) (which doesn't mean I am against JACK1 or sth. like
that).

Paul mentioned some people having criticism about the JACK2 design, but I
wasn't able to find any information about the specific points of criticism.
Could you maybe provide me with some resources about that (links to blogs,
mailing list posts)?

Don't get me wrong: I please do NOT want to start a flame war here, but I'd
like to gain a better picture of the current situation.


Kind regards,
micu
--
OpenPGP / GnuPG: 0xE4CB4E80
Fingerprint: 1A15 A480 1F8B 07F6 9D12 3426 CEFE 7455 E4CB 4E80

<<</>>

http://www.micuintus.de
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: jack-headers merge ( the future of JACK(2))

Adrian Knoth
On Sun, Jan 15, 2017 at 06:21:25PM +0100, micu wrote:

+sletz for comments, if any

> I'd like to offer my precious time for giving a jack-headers merge another
> shot (I know Paul asked for some help on that already in 2012...).
>
> As a first step I'd suggest moving the current JACK2 headers
> to its own branch in
>
>     <https://github.com/jackaudio/headers>
>
> and start using the headers repository in JACK2, as well.
>
> But before I start digging into the work,
> I'd like to ask whether you'd be actually interested in that?
> (Or in other words: whether someone is there to review and merge the PR ;)

I promise to merge your PR, assuming folks are comfortable with the
changes.

I vaguely recall that single-repo was easier for sletz to compile on
OSX and Windows.

So instead of using git submodules for JACK2, how about we bring the
headers repo in sync and then simply copy the files over to JACK2?

I know it's not super elegant, but it avoids breaking sletz's existing
workflow.

> Paul mentioned some people having criticism about the JACK2 design, but I
> wasn't able to find any information about the specific points of criticism.
> Could you maybe provide me with some resources about that (links to blogs,
> mailing list posts)?

Again vague and fading recollection from 2012 when we were more active:
the OOP approach with a deep inheritance hierarchy was considered
off-putting - for feature work, you had to have a mental map of the
entire code base and then change multiple locations.

Since I never did much besides drivers, I cannot provide first-hand
experience, and it may also depend a lot on your personal preference.

If you're comfortable with complex C++ code, you might enjoy it.


Happy hacking!

--
mail: [hidden email]   http://adi.thur.de        PGP/GPG: key via keyserver

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: jack-headers merge ( the future of JACK(2))

John Emmas
On 24/01/2017 21:12, Adrian Knoth wrote:

> On Sun, Jan 15, 2017 at 06:21:25PM +0100, micu wrote:
>
>> I'd like to offer my precious time for giving a jack-headers merge another
>> shot (I know Paul asked for some help on that already in 2012...).
>>
>> As a first step I'd suggest moving the current JACK2 headers
>> to its own branch in
>>
>>      <https://github.com/jackaudio/headers>
>>
> [...]
>
> instead of using git submodules for JACK2, how about we bring the
> headers repo in sync and then simply copy the files over to JACK2?
>

Sorry, what are you proposing to merge here?  Are there currently two
different lots of Jack2 headers?  Or are you proposing to merge the
headers from Jack2 and Jack1?  Or something else?

IIRC Jack2 currently has some structs which need to get built with
1-byte alignment for the various struct fields (except on one particular
platform).  Let's say the Jack1 & Jack2 headers got merged...  wouldn't
that problem get amplified and possibly break compatibility for either
Jack1 or Jack2?

John
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: ?==?utf-8?q? jack-headers merge ( the future of JACK(2))

Ralf Mattes
 
Am Mittwoch, 25. Januar 2017 09:24 CET, John Emmas <[hidden email]> schrieb:
 

> On 24/01/2017 21:12, Adrian Knoth wrote:
> > On Sun, Jan 15, 2017 at 06:21:25PM +0100, micu wrote:
> >
> >> I'd like to offer my precious time for giving a jack-headers merge another
> >> shot (I know Paul asked for some help on that already in 2012...).
> >>
> >> As a first step I'd suggest moving the current JACK2 headers
> >> to its own branch in
> >>
> >>      <https://github.com/jackaudio/headers>
> >>
> > [...]
> >
> > instead of using git submodules for JACK2, how about we bring the
> > headers repo in sync and then simply copy the files over to JACK2?
> >
>
> Sorry, what are you proposing to merge here?  Are there currently two
> different lots of Jack2 headers?  Or are you proposing to merge the
> headers from Jack2 and Jack1?  Or something else?

IIRC the idea as that both jack1 and jack2 (or better: all jack implementations)
share the same header.

> IIRC Jack2 currently has some structs which need to get built with
> 1-byte alignment for the various struct fields (except on one particular
> platform).  Let's say the Jack1 & Jack2 headers got merged...  wouldn't
> that problem get amplified and possibly break compatibility for either
> Jack1 or Jack2?

I think that that "public" jack header would only contain declarations for
jack's public API, and that should be the same for all implementations since
the idea is that any application should be able to interact with any implementation.
So that API would also be an ABI.

 Cheers, Ralf Mattes

>
> John
> _______________________________________________
> Jack-Devel mailing list
> [hidden email]
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
 
 
 
 


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: ?==?utf-8?q? jack-headers merge ( the future of JACK(2))

Ralf Mattes
In reply to this post by Adrian Knoth
 
Am Dienstag, 24. Januar 2017 22:12 CET, Adrian Knoth <[hidden email]> schrieb:
 

>
> I vaguely recall that single-repo was easier for sletz to compile on
> OSX and Windows.

??? That sounds strange. I can't comment on the windows situation but on
MacOS and Linux 'git submodule init' and 'git submodule update' work perfectly
fine (and I can't imagine this would'nt work on Windows).
 
> So instead of using git submodules for JACK2, how about we bring the
> headers repo in sync and then simply copy the files over to JACK2?

That's the worst of all solitions. While the git-submodule solution give us
clearly defined dependencies under version control, that solution depends on
some poor maintainer (actually, one for each implementation) keeping the
header files in sync.
From the last vew post I didn't get the impression that there's a huge crowd of
jack maintainers ;-)
 
> I know it's not super elegant, but it avoids breaking sletz's existing
> workflow.

I'd really like to know in what ways ....


>
> Happy hacking!

Same to you, and thanks for all the work

 Ralf Mattes



_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: ?==?utf-8?q? jack-headers merge ( the future of JACK(2))

Hanspeter Portner
On 25.01.2017 10:49, Ralf Mattes wrote:
>> So instead of using git submodules for JACK2, how about we bring the
>> headers repo in sync and then simply copy the files over to JACK2?
>
> That's the worst of all solitions. While the git-submodule solution give us
> clearly defined dependencies under version control, that solution depends on
> some poor maintainer (actually, one for each implementation) keeping the
> header files in sync.

If using 'git submodule' really should not be an option (for whatever reasons),
at least import and keep in sync the header subdirectory properly with 'git
subtree' which will keep header commit history intact.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: jack-headers merge ( the future of JACK(2))

John Emmas
In reply to this post by Ralf Mattes
On 25/01/2017 09:41, Ralf Mattes wrote:

>  
> Am Mittwoch, 25. Januar 2017 09:24 CET, John Emmas <[hidden email]> schrieb:
>  
>> IIRC Jack2 currently has some structs which need to get built with
>> 1-byte alignment for the various struct fields (except on one particular
>> platform).  Let's say the Jack1 & Jack2 headers got merged...  wouldn't
>> that problem get amplified and possibly break compatibility for either
>> Jack1 or Jack2?
> I think that that "public" jack header would only contain declarations for
> jack's public API, and that should be the same for all implementations
>

A very quick search through the source files suggests that there are 2
such structs in the public header file (jack/types.h) - namely:-

       _jack_latency_range
       _jack_position

Whoever's doing the merge will need to be aware that the above structs
require 1-byte alignment in Jack2 which is probably different from their
alignment in Jack1 (assuming they're also present in Jack1).

For some background...  the above structs (plus several others)
originally used the more conventional, 8-byte alignment.  But it turned
out that gcc and msvc couldn't agree on what constituted 8-byte
alignment.  This meant that a Jack2 client built with msvc would crash
if the server was built with gcc (or vice versa).  This got fixed by
changing the alignment to 1-byte.

John
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org