IRC Log


Friday August 27, 2010

[Time] NameMessage
[03:01] andrewvc cremes, you around?
[03:03] AndrewBC Woah, hi. :D
[03:10] andrewvc we have similar names eh?
[03:21] AndrewBC Indeed
[03:27] andrewvc Quick question about pub/sub if anyone's got a moment
[03:28] andrewvc is it best practice to send the topic separately with SNDMORE, then send the rest separately? Or is that just optional. I've seen examples both using and not using that technique
[04:24] sustrik andrewvc: it's up to you
[04:24] sustrik there's no fundmantal difference between the two
[04:25] sustrik other than in the former case the "topic" is cleanly separated from the "body"
[04:36] sustrik cremes, andrew_cholakian: no, it's OK to use context from multiple threads
[04:36] sustrik just use each socket only in the thread it was created in
[04:59] CIA-20 zeromq2: 03Jon Dyte 07master * r3cb84b5 10/ (src/forwarder.cpp src/queue.cpp src/streamer.cpp): forwarder and streamer devices handle multi-part messages correctly - http://bit.ly/b55mvk
[09:33] guido_g anyone experienced a problem with zmq::poll?
[09:34] guido_g _sometimes_ it doesn't sent revents correctly, as it seems
[09:34] guido_g it returns with a return value of 0, ignoring the received messages
[09:35] guido_g ØMQ version is latest from zeromq/zeromq2
[09:36] theICEBeardk Is it like this issue http://github.com/zeromq/zeromq2/issues#issue/7 ?
[09:36] guido_g reading...
[09:37] guido_g we have an issue then :)
[09:37] guido_g yep, seems to be the same problem
[09:39] guido_g any ideas why this happens?
[09:39] theICEBeardk I hope the workaround in the issue can help you
[09:39] theICEBeardk None
[09:41] guido_g scary that no one seems to be interested in this issue
[09:41] guido_g it renders nearly everything useless
[09:41] theICEBeardk agreed
[09:43] theICEBeardk Maybe the devs can't verify the problem or reproduce it. What platform are you on?
[09:43] guido_g GNU/linux Debian testing w/ 2.6.35 kernel
[09:44] theICEBeardk Okay nothing too obscure then :)
[09:44] guido_g ouch...
[09:44] guido_g the problem in the issue is different
[09:45] guido_g i had a timeout of -1
[09:46] guido_g the code says that errors other then EINTR are to be ignored
[09:48] theICEBeardk hmm, if you have some test code, I have to do the unhelpful thing and suggest you raise the issue on the github.
[09:48] theICEBeardk I know it doesn't help much.
[09:49] guido_g sure
[09:55] guido_g okay... on a different machine it works
[09:56] theICEBeardk Different os or just a different machine?
[09:57] guido_g same os, a little bit older, kernel 2.6.27.31
[09:57] guido_g and older ømq lib
[09:57] guido_g from jul 15
[09:57] guido_g hmm hmm hmm
[09:58] theICEBeardk ah a release and not from github
[09:58] sustrik guido_g: what timeout do you use?
[09:58] guido_g -1
[09:58] guido_g hi sustrik btw :)
[09:58] sustrik hello :)
[09:59] sustrik hm, that should never return 0
[09:59] guido_g http://github.com/guidog/cpp/tree/master/zmqcpp/ <- code is receiver_poll.cpp and sender.cpp
[09:59] sustrik 0 means "timeout"
[09:59] guido_g right
[10:00] sustrik that's 2.0.8 you are using?
[10:00] guido_g yes
[10:00] sustrik let me have a look...
[10:00] guido_g cloned a few hours ago
[10:01] sustrik 2.0.8 or trunk?
[10:02] sustrik the zmq_poll code have changed immediately after 2.0.8 release
[10:02] guido_g then it is trunk i fear
[10:02] sustrik ok, wait a sec
[10:03] sustrik are you using windows or something else?
[10:04] guido_g nope, GNU/linux Debain testing
[10:04] sustrik ok
[10:05] guido_g ok, now same on the other machine that worked with 2.0.7
[10:05] sustrik guido_g: ok, the new version is buggy
[10:05] guido_g so there is something wrong in zmq
[10:06] sustrik the whole zmq_poll functionality should be in loop
[10:06] sustrik and restart the loop if there are no events to return
[10:07] sustrik it was like that in the old version
[10:07] sustrik doesn't appear to be like that now...
[10:07] guido_g 2.0.8 is safe?
[10:07] sustrik yes
[10:07] sustrik mato: summon!
[10:07] pieterh guido_g: would it be easier if there was a branch "stable" for 2.0.8?
[10:07] sustrik bug in zmq_poll!
[10:07] guido_g pieterh: YES!
[10:07] guido_g :)
[10:07] pieterh ok, please harass Mato about that
[10:08] guido_g or have a brachn vor this kind of development, so that master is always tested
[10:09] pieterh hah
[10:10] pieterh master should be tested, of course
[10:10] pieterh some disagreement about whether new code goes to master or 'develop' branch
[10:10] guido_g develop, please
[10:11] guido_g 'cause this was half a day of fuzzing for me on the software that worked
[10:11] guido_g before the update
[10:11] pieterh please make your wishes known to mato
[10:11] guido_g send location pls ]:->
[10:12] pieterh via zeromq-dev list, guido_g
[10:12] guido_g oh...
[10:12] pieterh i'd suggest simply state your requirements as user of the git
[10:12] pieterh perhaps referencing practice of other projects
[10:12] sustrik yes, that's the best
[10:13] guido_g sure, going to write a mail
[10:13] sustrik the issue is not that easy as in the future there can be several stable versions etc.
[10:13] pieterh sustrik: yes, indeed
[10:13] guido_g then we should have release branches
[10:13] pieterh but only one (max two) maintained stable version, normally
[10:14] pieterh guido_g: that would seem obvious but... last time i suggested that it was not welcomed
[10:14] pieterh however i think mato is coming round to that point of view
[10:15] guido_g pieterh: i remember there was something...
[10:15] pieterh up to now releases have been tags
[10:15] guido_g ok, then
[10:15] pieterh after 2.0.8 we immediately got a patch (zmq_term)
[10:15] guido_g how do i get the 2.0.8 release out of github?
[10:15] pieterh lol
[10:15] pieterh well, it's tagged
[10:15] pieterh checkout from the tag
[10:16] pieterh it should work *obviously* for git n00bs IMO
[10:16] pieterh none of us are linux kernel hackers
[10:17] sustrik no way it could work without knowing how to check out a branch
[10:17] sustrik i had that last week
[10:17] sustrik i had a branch i wasn't able to access
[10:17] sustrik i think it's something like:
[10:18] sustrik git checkout -b name-of-the-branch remotes/origin/name-of-the-branch
[10:20] pieterh sustrik: you had an old version of Git
[10:20] pieterh actually that command was also documented in the original proposal I made
[10:21] guido_g git show v2.0.8 <- shows commit
[10:21] pieterh but with git 1.7 you no longer need to specify the remote
[10:21] guido_g git reset <commit> seems to work
[10:21] pieterh yes, the tag is just a nicer name for the commit id
[10:22] pieterh problem is that once we need to maintain a stable release, we can't use tags
[10:22] pieterh so all the commands change
[10:22] sustrik :(
[10:22] pieterh it become git checkout branchname
[10:22] pieterh not git reset tagname
[10:22] pieterh that's why i'd prefer a branch, always, for the last stable release
[10:23] pieterh so it's always "git checkout master" or "git checkout stable" or "git checkout develop"
[10:23] guido_g right
[10:23] guido_g ok, 2.0.8 works
[10:23] pieterh then we can argue about whether master is the bleeding edge, or not
[10:23] sustrik pieterh: a patch without MIT in the mailing list
[10:24] pieterh sustrik: yeah, but it's a 1-line change...
[10:24] sustrik should i ignore it?
[10:24] guido_g pieterh: wasn't that you who posted that link to http://nvie.com/git-model?
[10:24] pieterh ... i don't think copyright applies to single line fixes
[10:25] pieterh guido_g: someone else posted it, i tried it, it's great but way too complex for our needs
[10:25] guido_g ok
[10:25] sustrik if it does and if i apply the patch, project is stuck with current license forever
[10:25] pieterh sustrik: I'd much rather have patches arriving on a website/wiki/issue tracker where it says in huge letters, BY SUBMITTING A PATCH YOU ETC.ETC.
[10:25] sustrik should i proceed?
[10:26] sustrik yes/no
[10:26] pieterh i'll do the necessary, sustrik
[10:26] pieterh hang on...
[10:27] pieterh done
[10:28] pieterh sustrik: if I had to receive patches I'd set-up an issue tracker where anyone posting a patch had to register and accept terms of use that clearly stated the licensing for their contributions
[10:28] pieterh email is really suboptimal for this except that it lets everyone see the patch (do people actually review it?)
[10:28] sustrik it should be clear what the licensing is
[10:29] pieterh there should be a template for each patch
[10:29] sustrik please write an email explaining what the current contribution policy is
[10:29] pieterh it's not changed
[10:29] pieterh it is documented on the website afair
[10:30] sustrik the anouncement about a community project have confused people
[10:30] pieterh http://www.zeromq.org/area:contribute
[10:30] sustrik so make it clear that it's still not in effect
[10:30] pieterh "Please send it to the developer mailing list and explicitly state that you are licensing the patch under the MIT/X11 license."
[10:30] pieterh sustrik: if this was the cause of confusion people would be submitting patches under LGPL
[10:31] pieterh that's not the problem here IMO
[10:31] pieterh it's just that there is no automation of this
[10:31] sustrik they do
[10:31] pieterh i missed that
[10:31] sustrik patch to LGPL'd project is a derivative work thus LGPL
[10:32] pieterh not necessarily
[10:32] pieterh a patch that is not explicitly licensed under LGPL is simply unusable
[10:32] pieterh if you redistribute code with incorrect licensing you can be asked to change it
[10:33] pieterh however it's not automatic
[10:34] pieterh no matter what policy there is, the author of a patch MUST license it, or it falls under simple copyright and cannot be reused, period
[10:34] sustrik how does linux kernel process work then?
[10:34] pieterh presumably all contributors sign off somewhere along the line
[10:34] sustrik how does that work?
[10:35] pieterh i don't know how it works in the linux kernel process, martin
[10:35] sustrik what I see is just signed-of-by someone
[10:35] sustrik no mention of licensing
[10:35] pieterh however try to submit random piece of code without license, see what happens
[10:35] sustrik that's the standard
[10:36] pieterh note how it works for the www.zeromq.org site
[10:36] pieterh sorry, i need to catch a plane
[10:36] sustrik ok, cya
[10:36] pieterh the sane model is upfront agreements
[10:36] guido_g have a safe trip
[10:36] pieterh when you join a community you agree (once) about licensing your contributions
[10:36] pieterh thanks
[10:37] pieterh this is the problem with the mailing list
[10:37] pieterh you can fix it, but i'm repeating myself, by putting patches via a web site of some kind
[10:37] pieterh where you accept Terms of Use and IP Policy when you join
[10:37] pieterh cyal
[13:01] CIA-20 zeromq2: 03Martin Sustrik 07master * r56faac7 10/ src/zmq.cpp : zmq_poll returns prematurely even if infinite timeout is set - fixed - http://bit.ly/8XghUD
[13:16] keffo any particular reason why the null delimiter between routinginfo and payload thinks it's size is 17?
[13:16] sustrik that's not a delimiter
[13:16] sustrik that's an identity
[13:16] sustrik if you don't set the identity yourself
[13:16] sustrik 0mq generates one
[13:16] sustrik it's an UUID (in binary form) thus 16 bytes
[13:17] sustrik +binary zero at the beginning to distinguish it from user defined identities
[13:17] sustrik summa summarum 17 bytes
[13:17] keffo ah makes sense
[13:19] mato sustrik: hmm, so a fd returned by ZMQ_FD can still become ready even if there are no events?
[13:20] sustrik well, there are events, such as "new connection established"
[13:21] sustrik but these don't map directly to pollin/pollout
[13:21] sustrik anyway, i've fixed it
[13:21] mato sure, but isn't that exposing an implementation detail to the api?
[13:22] sustrik if there was a workaround i would use it :(
[13:22] sustrik the whole ZMQ_FD thing is a hack
[13:22] sustrik 0MQ socket should be a _real_ file descriptor
[13:23] mato yes, yes, but i'm talking about the current state of affairs, not the ideal state of affairs in five years time
[13:23] sustrik well, the current state of affairs looks like this
[13:23] sustrik i think you cannot really fix it
[13:24] mato isn't this because the fd returned by ZMQ_FD is zeromq's internal signalling fd?
[13:24] sustrik yes
[13:24] mato ok, and, hypothetical question, couldn't ZMQ_FD return a fd that only responds to a subset of the events (i.e. those exported to the API)
[13:25] sustrik how would you filter out the other events
[13:25] sustrik ?
[13:25] mato well, the naive idea is that ZMQ_FD actually *registers* a 2nd signalling fd internally
[13:26] mato and the signalling stuff only signals the events exported to the user on that fd
[13:26] sustrik then you have a synchronisation problem
[13:26] sustrik how to get two signal streams into sync
[13:28] mato right, because the signalling is also used for synchronization
[13:28] sustrik exactly
[13:28] sustrik on a different thread: how is submitting patches done on LKML?
[13:28] sustrik there doesn't seem to be explicit licensing mentioned
[13:28] mato ah, yes, i saw the discussion
[13:28] mato yes there is
[13:28] mato and i wrote an email about it at least once to the ml
[13:29] sustrik which one was that?
[13:29] mato email?
[13:29] sustrik yes
[13:30] mato sustrik: see my replies to Pieter's RFC: ØMQ Contributions, Copyrights and Control thread
[13:30] sustrik on the wiki?
[13:30] mato no
[13:30] mato on email
[13:31] sustrik "Apropos contributions, to ensure we don't run afoul of any licensing
[13:31] sustrik problems I think it would be useful to institute a "Certificate of Origin"
[13:31] sustrik policy using Signed-Off-By: tags in patches or Git commits, similar to what
[13:31] sustrik is done by the Linux kernel.
[13:31] sustrik "
[13:31] sustrik that's it?
[13:31] mato i also explain in another reply i think where the Linux guys explain that
[13:32] mato http://lxr.linux.no/#linux+v2.6.35/Documentation/SubmittingPatches
[13:32] mato see point 12) in that document
[13:32] mato basically the presence of Signed-Off-By: on a patch or Git commit indicates acceptance of the "Developer's Certificate of Origin"
[13:33] mato so, patches w/o a Signed-Off-By: cannot be applied (or discussed in fact, the sender should just be told to go read SubmittingPatches)
[13:33] mato the Signed-Off-By: tag(s) propagate from the patch into Git
[13:33] mato and are thus kept as history
[13:34] mato git also has direct support for Signed-Off-By
[13:34] sustrik how is the certificate bound to signed-off-by?
[13:34] mato by using -s on commits, or configuring your Git install/repo to automatically sign commits
[13:34] sustrik does the developer have to sign some agreement in advance?
[13:34] mato no
[13:35] mato why should they?
[13:35] mato *they* must add the Signed-Off-By
[13:35] mato if they add it, it states their agreement with the certificate
[13:35] mato i don't see the problem
[13:35] sustrik what's the legal procedure to infer that you've signed the certificate
[13:35] sustrik if you've filled up the signed-off-by?
[13:36] mato you don't "sign" the ceritifcate
[13:36] mato IANAL, but your adding of the Signed-off-by: states your intent of agreement with the ceritifcate since it's in the project policy (SubmittingPatches in this case)
[13:37] sustrik sounds pretty creaky from legal point of view
[13:37] sustrik IANAL myself
[13:37] mato well, it was explicitly introduced after the SCO affair IIRC
[13:38] mato so it must be "good enough" for Linux...
[13:38] sustrik presumably
[13:38] sustrik i just don't see the link between certificate and the signed-off-by field
[13:38] sustrik i can write a different certificate
[13:39] sustrik and say you agree with it if you fill in siged-off-by
[13:39] sustrik then i will claim linux for myself
[13:39] sustrik muahaha
[13:40] mato sustrik: well, if you're really worried, ask some of our lawyer friends for an opinion
[13:40] mato i see it as a much better alternative to the business of someone writing in email "Yes, that patch is submitted under MIT"
[13:41] mato there is of course no perfect alternative
[13:41] sustrik yes. it's much better
[13:41] mato unless you want to force people to go through silly click-through agreements (the legality of which is questionable anyway)
[13:41] sustrik but i simply don't understand how it works
[13:41] sustrik is it a contract between Linus Torvalds and the developer?
[13:42] sustrik who'e the authority to impose particular working of the certificate and accept the sing-off-by's?
[13:42] sustrik wording*
[13:43] mato http://kerneltrap.org/node/3180
[13:44] mato there is Linus' original request for discussion from 2004
[13:44] mato sustrik: anyway, what is your worry? that it's legally unenforceable?
[13:45] sustrik nope
[13:46] sustrik i'm just wondering about what pieter said that patch for GPL'd code is not necessarily a GPL code itself
[13:46] sustrik so that when you are submitting a patch you have to explcitly state that it's GPL
[13:46] sustrik or LGPL
[13:46] sustrik or whatever
[13:47] sustrik the sign-off-by afaics is only a tracking feature
[13:47] sustrik not meant to explicitly state what license the patch is submitted under
[13:49] sustrik to my naive understanding, sending the patch to the mailing list constitutes the act of "distribution"
[13:49] mato did you read the certificate?
[13:49] mato (d) I understand and agree that this project and the contribution 319 are public and that a record of the contribution (including all 320 personal information I submit with it, including my sign-off) is 321 maintained indefinitely and may be redistributed consistent with 322 this project or the open source license(s) involved.
[13:49] sustrik and?
[13:50] sustrik what i mean it doesn't even look to be a contract
[13:50] sustrik there's only one party involved
[13:50] sustrik that's kind of strange
[13:51] mato it's a compromise to lower the overhead of contributing
[13:51] mato if you want a legal opinion, ask a lawyer
[13:51] sustrik shrug
[13:52] sustrik it's tracking system
[13:52] sustrik it's explicitly state in the preamble
[13:52] sustrik To improve tracking of who did what, ...
[13:52] mato feel free to suggest something better
[13:52] sustrik it's automatic IMO
[13:52] mato go and research how other sucessful projects do it
[13:53] sustrik patch of GPL'd work is a derivative work
[13:53] sustrik when you send it to the ML it's "distributed"
[13:53] sustrik so you are obliged to do it under the same license
[13:53] mato yes, but the point of signed-off-by is to track the original person claiming the right to distribute
[13:53] sustrik sure, that's ok
[13:54] sustrik what i was talking about was that pieter says the above reasoning doesn't apply
[13:55] mato shrug :)
[13:55] sustrik to my understanding linux relies on it and uses sign-off-by as an additional tracking measure
[13:55] mato it seems it's either that or signing over copyright explicitly
[13:56] sustrik yes
[14:17] sustrik GPLv2 says that modified versions, if released, must be “licensed … to all third parties.”
[14:22] guido_g sustrik: just tested the latest master version, poll still not working
[14:24] sustrik what happens?
[14:25] guido_g nothing on first req
[14:25] guido_g then it hangs sometimes after 2nd or 3rd message
[14:25] sustrik nothing = exits with 0
[14:25] guido_g going to put the debug output back into my test programs
[14:25] sustrik ?
[14:26] guido_g wait a second
[14:26] guido_g now poll does not return when a message has been sent
[14:27] sustrik hangs, right
[14:27] sustrik that's poll on the rep side of req/rep pair, right?
[14:28] guido_g these changes really should go into a branch
[14:28] guido_g yes, req -> xrep (with poll)
[14:28] guido_g code is http://github.com/guidog/cpp/blob/master/zmqcpp/receiver_poll.cpp
[14:29] sustrik let me try
[14:36] sustrik ok, reproduced
[14:38] guido_g ahh, good to know ,)
[14:39] cremes is there any long term plan to add some behavioral testing to 0mq so we can quickly catch regressions?
[14:40] guido_g or better a short term one?
[14:41] mato cremes, guido_g: good point, i've also been thinking about this
[14:42] guido_g mato: while you're here: how do i get the stable (not fuxxed up) 2.0.8 from github w/o typing for an hour?
[14:42] mato i'm not a fan of the various TDD methodologies, but having at least a baseline "make test" that verifies that things more or less work would be a good start
[14:42] cremes http://thechangelog.com/post/268009308/cspec-bdd-for-c
[14:42] mato guido_g: 1) clone the repo 2) git checkout v2.0.8 :)
[14:43] guido_g you can checkout a tag?
[14:43] mato sure you can
[14:43] cremes guido_g: check the ML; i posted an answer to this 1 or 2 days ago
[14:43] mato you can't easily base work off that tag w/o turning it into a branch, but that's a different issue
[14:44] guido_g going to check this git thing now...
[14:44] cremes guido_g: here's a better answer...
[14:44] cremes http://lists.zeromq.org/pipermail/zeromq-dev/2010-August/005526.html
[14:44] mato and git in fact will tell you straight away that if you want a local branch it's just git checkout -b <name> at that point
[14:44] cremes mato: what are your thoughts on a set of regression tests?
[14:45] cremes aside from 'make test'
[14:45] mato cremes: well, the major hurdle is that the system we're testing is distributed
[14:45] sustrik pretty hard to write sane tests
[14:45] mato yes and no
[14:45] sustrik some basic stuff can be done though
[14:45] guido_g why the *** hell is not mentioned those books...
[14:45] guido_g *is this
[14:46] mato tests can be written to use tcp over localhost
[14:47] mato or ipc
[14:47] mato and inproc separately since that is a different code path
[14:47] sustrik yes
[14:47] mato sustrik: in fact, we can have multiple contexts in a single process
[14:47] sustrik true
[14:47] mato so a test can even use multiple contexts if you need it
[14:47] mato basically you do all the "distributed" stuff using multiple threads
[14:48] sustrik the hard part is starting individual components in synchronised manner
[14:48] mato give me an example?
[14:48] sustrik it's often like:
[14:48] sustrik start component 1
[14:48] sustrik start component 2
[14:48] sustrik press any key at 1
[14:48] guido_g mato: any chance to write the git shuffle for a version into the README?
[14:48] sustrik etc.
[14:49] mato guido_g: well, until now the assumption was if you're wanting the stable release you don't work out of git
[14:49] guido_g ah ok
[14:50] mato guido_g: also, i'm still trying to get my head around what the best way to hold patches for a stable release in git actually is
[14:50] guido_g may i say that this assumption isn't a good one?
[14:50] mato well, ultimately, we can't teach people who want to use git how they should do that
[14:50] guido_g what about a maintenance branch?
[14:51] mato guido_g: yes, the plan is for a maintenance branch of some sort, but i've been spending the last day trying to understand what the best workflow for us (i.e. sustrik and myself) is
[14:51] mato please be patient :-)
[14:52] mato guido_g: anyhow, the tags are all there, for all past 2.0.x releases
[14:52] guido_g well, you should, 'cause these people are the user base (at least a significant part of)
[14:52] mato guido_g: sure, d'you have a git expert i can talk to ? :-)
[14:52] sustrik guido_g: are you running the code from trunk in production?
[14:52] guido_g mato: if i'd have, i'd talk to him myself first
[14:53] guido_g this is one big problem: limited understanding of the tool chain
[14:53] mato of course
[14:54] mato guido_g: anyhow, *any* code you're using in real production should come out of a release tarball in my opinon
[14:54] sustrik that's what i wanted to say
[14:54] sustrik it may work using a git for a while
[14:54] sustrik but in long run it's dangerous
[14:55] guido_g problem here is: ømq is so young, that *important* fixes and updates are quite frequent
[14:55] guido_g tarballs are only available for official releases
[14:55] mato yes, which is what the maintenance branch is for, which i'm trying to define, etc etc :)
[14:55] guido_g between the two are huge gaps
[14:56] sustrik mato: have you tried talking to martin hurton
[14:56] sustrik i don't know whether he's an expert but he's definitely with git longer than we are
[14:57] mato yeah, that's a good idea... or possibly asking for help on the Git mailing list/IRC
[14:57] mato the only problem with mailing lists/IRC is figuring out if the answers are any good :-)
[14:57] sustrik ha
[14:57] guido_g :)
[14:58] sustrik well, even if you define a viable process, there's still a question of who's going to work on the maintenance branch
[14:58] cremes try asking on stack overflow
[14:58] sustrik backporting bugfixes is not much fun
[14:59] mato sustrik: the process i want to define forces the committer applying the fix to evaluate whether or not it also applies to the maint branch
[14:59] mato sustrik: it's the only viable way at the moment imo
[14:59] sustrik you mean that every contributor would have to post a diff for every maitenence branch?
[14:59] mato no
[15:00] mato the person integrating those changes is responsible
[15:00] sustrik for bakcporting?
[15:00] mato no
[15:00] mato the point is
[15:00] mato at the moment we have a bunch of changes which are common to stable and master
[15:00] mato so those changes should be merged verbatim into both
[15:01] mato now, about backporting
[15:01] mato this is entirely voluntary
[15:01] sustrik the above _is_ backporting, no?
[15:02] mato no
[15:02] sustrik "bunch of changes which are common to stable and master"
[15:02] guido_g backporting a feature should be the exception
[15:02] cremes regarding git, this may help just a little bit
[15:02] cremes http://tom.preston-werner.com/2009/05/19/the-git-parable.html
[15:02] sustrik i meant backporting the bugfixes
[15:02] mato sustrik: if the code has not diverged there is no concept of backporting
[15:02] mato sustrik: we do have a bunch of changes like that at the moment
[15:02] sustrik cremes: what's that?
[15:02] mato sustrik: e.g. the device stuff from jon dyte
[15:03] sustrik yes, it works as long as you don't get conflicts on merge
[15:03] mato if those conflicts are trivial to solve then there is no problem
[15:04] sustrik ok, i see what you mean
[15:04] sustrik sounds viable
[15:04] mato if they are not, then you are in a different situation
[15:05] guido_g i think the other way is much more important, a bug in stable has been fixed and this has to be incorporated into dev
[15:05] sustrik it's the same thing
[15:05] sustrik "bunch of changes which are common to stable and master"
[15:06] guido_g ok
[15:06] mato well, my view would be that the stable release is a volunteer effort
[15:06] guido_g elaborate
[15:07] mato what i mean by that is: if we get a fix for stable, it's our interest to merge it also into master if relevant
[15:08] mato however, i would expect most development to be concentrated on master
[15:08] mato and the backporting of fixes into stable from master to be minimal
[15:08] mato does that make sense?
[15:08] guido_g i figure you define "development" as developing new features in contrast to bug fixes
[15:09] mato no, not really
[15:09] guido_g then it doesn't make sense
[15:09] mato ok, let me put it this way
[15:10] mato the problem is that 2.1.x and 2.0.x have diverged due to large infrastructure changes
[15:10] mato 1) if a fix is applicable trivially to both, no problem, it goes in both
[15:10] guido_g ok so far
[15:10] mato 2) if not, someone has to make a decision on what effort needs to be spent
[15:11] mato sustrik would obviously want to concentrate on master
[15:11] guido_g in this case, backports shouldn't be done. stop.
[15:12] mato yes, pretty much
[15:12] mato that's what i was trying to say
[15:12] mato unless someone actually steps up to do the work, i won't stop them :)
[15:12] sustrik i think it a question of money flow
[15:12] mato (if it is a backport of a fix, obviously features don't get backported into stable. ever.)
[15:13] sustrik if support license business launches off
[15:13] sustrik it would obviously focus on stable
[15:13] sustrik not development
[15:13] guido_g mato: which is why there is a new version, so no problem
[15:13] mato guido_g: precisely
[15:14] mato sustrik: in that case a person from said business will step up to backport fixes
[15:14] sustrik exactly
[15:14] mato the point is, *anyone* can backport fixes if they want to
[15:14] sustrik and the said business is ourselves
[15:14] guido_g or adopt fixes from stable to master
[15:15] sustrik the people on this list are probably those that can be hired to maintain the stable
[15:15] guido_g anyhow, a "stable" branch should be there
[15:15] mato sustrik: you're mixing money with community, different issues
[15:15] sustrik i mean, if a business wants stable to be supported, who are they going to hire?
[15:15] sustrik you
[15:15] sustrik me
[15:15] guido_g did I hear hired? :)
[15:15] sustrik guido
[15:16] sustrik people from the community
[15:16] mato sustrik: it's still a different issue. the point is a stable branch can be there, fixes can flow into it, and releases will be made when someone has the motivation to do so
[15:16] sustrik eh, isn't that the right word?
[15:16] mato whether that motivation comes from being hired or not is irrelevant
[15:17] mato if the community (paid or not) has no interest in further stable releases of 2.0.x then there won't be any
[15:17] sustrik i'm just commenting on the fact that maintaining stable is not a fun job
[15:17] mato maintaining anything is not a fun job
[15:17] mato you can ignore all bug fixes that don't affect you
[15:17] guido_g what about the following: if dev has a fix, it is cut down and put aside as a commit into a branch, then _someone_ can get to this branch and try to apply the fixes to stable
[15:17] mato but then other people won't use your software :)
[15:17] guido_g full ack
[15:18] guido_g had a day of today and wanted to play with ømq, instead i chased a bug...
[15:18] mato sustrik: the key point is to encourage contributions, to stable or not
[15:18] mato more people = more manpower
[15:18] sustrik sure
[15:18] mato = you find more people who are trustworthy, and you delegate to them
[15:19] keffo or a crappy tasting soup!
[15:19] guido_g unfortunately: more people -> needs more structure
[15:19] sustrik so guido_g today contributes as a tester :)
[15:19] mato precisely
[15:19] guido_g sustrik: *sigh*
[15:19] guido_g btw, just installed expect and going to use it for some tests scripts
[15:20] guido_g idea is to have small programs with defined output and using expect to verify it
[15:21] sustrik aha
[15:21] sustrik yes it would be good to put a test suite together
[15:22] guido_g and for devs a dependency like expect shouldn't be to hard to meet
[15:22] sustrik does it have to be a part of the build system?
[15:23] mato why use expect at all?
[15:23] mato the test programs themselves should either assert/abort or succeed
[15:23] mato no dependency required
[15:23] guido_g ok
[15:23] guido_g i'll rewrite my experiments (which uncoverd the poll issue) into one test program
[15:24] sustrik thanks
[15:24] mato sustrik: also, brian has a bunch of poll tests in the pyzmq repo
[15:24] mato sustrik: these could be trivially rewritten into c/c++
[15:24] sustrik ack
[15:24] sustrik but right now it exceeds my resources
[15:24] guido_g this is what i had in mind :)
[15:25] mato guido_g: take a look at the poll tests in pyzmq, it's what i had in mind
[15:25] guido_g guess what i'm doing atm? :)
[15:26] mato all that's needed is then figuring out the automake stuff to make a driver that runs the tests on "make test"
[15:26] mato i can do that
[15:26] mato it's just "run all of this stuff and error if any step asserts/aborts"
[15:26] mato which is automatic since the assert/abort will get you a non-zero exit status
[15:27] guido_g ack
[15:27] guido_g let me hack a simple test progam
[15:55] mato sustrik: guido_g: ok, i've figured out the automake stuff for tests
[15:56] guido_g oh oh
[15:56] mato sure, which is why /me figured it out for you :)
[15:56] guido_g thx a lot then :)
[15:56] mato end result is, i have a tests/ directory, with a single test case in it
[15:57] mato and you can run "make check" which runs all the tests and prints a nice summary, complains which failed/passed, etc
[15:57] mato sustrik: a couple of questions
[15:57] sustrik yes?
[15:57] guido_g mato: ok
[15:57] mato sustrik: 1) the tests should be mostly C, not C++, right?
[15:57] mato sustrik: since the C API is our main deliverable
[15:58] mato sustrik: (there can of course be C++ tests in there, later)
[15:58] sustrik yes
[15:59] mato sustrik: then the only problem i have is this business of linking C against C++ runtime when --disable-shared is used
[15:59] sustrik but iirc you had a problem compiling c files anyway
[15:59] mato well, kind of
[15:59] sustrik that's why you changed the perf tests to .cpp
[15:59] mato yes
[15:59] mato this happens when you use --disable-shared
[15:59] sustrik i'm using it
[15:59] mato :)
[15:59] guido_g mato: if you would like to check the test_poll.cpp at http://github.com/guidog/cpp/tree/master/zmqcpp
[16:00] sustrik ha, i thougt it is a project called "GUI dog"
[16:00] sustrik now i see it's guido_g :)
[16:00] guido_g *sigh* :)
[16:01] mato guido_g: yeah, nice, that's kind of the idea i have
[16:01] guido_g good
[16:01] guido_g going to fill in some more tests now
[16:01] mato except i'm wondering whether test cases should be using just the C api
[16:01] mato or not... not sure if it matters
[16:02] guido_g the c++ api is the native one, right?
[16:02] mato no, the C API is
[16:02] sustrik C++ is a wrapper
[16:02] mato the C++ API is just a thin wrapper in zmq.hpp
[16:02] sustrik but it's distributed with the package so i don't really see a problem
[16:02] sustrik and using C++ api is much easier
[16:02] mato yeah, i guess not
[16:02] guido_g but the software is written in c++
[16:02] sustrik the exceptions just run out of main
[16:03] sustrik and cause fault
[16:03] mato yup
[16:03] mato guido_g: one minor point; independent tests should be independent programs
[16:03] mato in other words, in your program, test_pair() is basically main()
[16:03] mato the reason for this is "make check" will run all the tests
[16:04] guido_g ok, going to change that
[16:04] mato not just stop at the 1st one
[16:04] mato it'll then give you a nice pass/fail summary
[16:04] guido_g what is the grouping attribute? socket type? access type? moon phase?
[16:05] mato grouping? of tests?
[16:05] guido_g yes, because having programs for every permuation of socket type for every way to access it plus special cases would lead to an enormous amount of programs
[16:06] guido_g i'd say lets do it like: test_pair, test_reqrep, test_pushpull or so
[16:06] guido_g as a start
[16:07] CIA-20 zeromq2: 03Dhammika Pathirana 07master * r98dc118 10/ src/zmq_decoder.cpp : assert on malformed messages - http://bit.ly/a3XkbQ
[16:07] guido_g later we'll likely add tests for special cases
[16:07] guido_g going to rename test_poll.cpp to test_pair.cpp and see how far it goes
[16:08] sustrik i don't believe you will ever be able to devise a systematic naming for test programs
[16:08] mato i think start somewhere
[16:08] mato we can change things as we go along
[16:08] mato no big deal, they're just test programs
[16:08] mato sustrik: ok, i'm going to have to go to dinner soon
[16:08] mato what i can do
[16:09] guido_g but they have to be maintained!
[16:09] mato of course
[16:09] mato but if you don't maintain them you'll get shot pretty quickly since they'll stop working :)
[16:09] mato so, what i can do now, if you guys want to continue
[16:09] guido_g make test would make a niche pre-push hook :)
[16:10] mato guido_g: that is some way away, but yes, autobuilders and test is what we need
[16:10] mato so much to do :)
[16:10] guido_g as usual
[16:10] mato anyhow, i can push to master the framework that adds a test/ subdirectory with my one lone silly test in it (just creates and destroys a context)
[16:11] mato then you can start adding tests as you like
[16:11] mato does that sound like a plan?
[16:11] guido_g and i will move my test_*cpp into that dir on my local clone
[16:11] guido_g and see if it works
[16:11] mato yup yup
[16:11] guido_g if it does, i do what?
[16:12] mato sustrik: last question (i can choose here): should "make" build the tests or should they only be built if you also want to run them (with make check)
[16:12] mato sustrik: /me thinks 1st option is better for now
[16:12] sustrik build them immediately
[16:12] mato ok, but they'll only get run when you do "make check"
[16:13] sustrik sure
[16:13] sustrik ultimately they'll take several minutes to run
[16:13] mato guido_g: you send a patch with your contribution to the ml, stating it's under the MIT license, as usual and sustrik or myself can apply it
[16:13] sustrik so not by default please
[16:13] mato yes, but build by default
[16:13] mato ok
[16:14] guido_g may i use this nifty git email feature?
[16:14] mato indeed you may :) the only problem is how do you get the "this is under MIT license" into it?
[16:14] mato if you can do that, please do, but email to the list of course
[16:14] guido_g ok, i'll have a look then
[16:15] mato you could for now, if sustrik is happy, even just use git-email and then reply to your own email with "Patch is under the MIT license"
[16:15] mato assuming you can't figure out a way of getting git-email to do that
[16:15] guido_g otherwise i'll send the patches as attachments and state the license stuff in the main mail
[16:15] mato yup, thx
[16:16] mato the license stuff will hopefully go away soon, there's been an RFC out about dropping the MIT requiremenet, but this is for iMatix to decide
[16:41] CIA-20 zeromq2: 03Martin Lucina 07master * r35cb1fa 10/ (Makefile.am configure.in tests/Makefile.am tests/simple.cpp):
[16:41] CIA-20 zeromq2: Add a basic framework for a test suite
[16:41] CIA-20 zeromq2: The test suite uses the standard automake support. Tests are always built,
[16:41] CIA-20 zeromq2: but run only when you do a "make check". - http://bit.ly/8YwkAR
[16:41] CIA-20 zeromq2: 03Martin Lucina 07master * r0b76f23 10/ src/zmq_decoder.cpp : Merge branch 'master' of github.com:zeromq/zeromq2 - http://bit.ly/dt0av0
[16:41] mato sustrik: guido_g: ok, there you go
[16:42] mato for now all tests need to xyz.cpp even if you're using the C API
[16:42] mato to add a test, add it's source file to tests/, update tests/Makefile.am (should be self-explanatory)
[16:42] mato make check runs the tests
[16:42] mato have to go now, cyl
[16:43] guido_g ok, thx
[16:43] sustrik vya
[16:43] sustrik cya
[16:45] mems hey, I'm trying to work out if zeromq can do what I need for my application
[16:46] mems I have a server which manages a list of compute jobs
[16:46] mems then a variable number of worker nodes that get jobs from it
[16:46] mems and (because I'm new to zmq) I can't work out if with zmq I would have to have a polling based situation
[16:48] sustrik mems: the works will be load-balanced among workers?
[16:48] mems I'd like each worker to request a job from the server and then perform it
[16:49] mems I'm not completely familiar with the terminology here... dunno if that's what you'd regard as "load-balanced"
[16:49] sustrik so it's worker who plays the active role?
[16:49] sustrik i.e. decides to do some work
[16:49] mems that was my plan
[16:50] sustrik then create a REQ socket at each worker
[16:50] sustrik and a REP socket at the server
[16:50] sustrik it's classic client/server scenario
[16:50] mems and when the server's job queue is empty?
[16:50] mems (but will be full in the future)
[16:50] sustrik no jobs then :)
[16:51] mems but would the clients have to repeatedly poll the server in that situation?
[16:51] sustrik no
[16:51] sustrik they can idly wait for the work
[16:52] mems hmm... it would appear that I'm not sure what a REP and REQ socket are
[16:52] mems are there some API docs?
[16:55] sustrik manual pages
[16:55] sustrik man zmq
[16:55] mems yup. just found them, thanks :)
[16:55] sustrik also online here:
[16:55] sustrik http://api.zeromq.org/
[16:56] mems ok, so, to complicate matters, I have multiple types of worker that work on the jobs at different points in their lifetime
[16:57] mems so the request from the worker is more like "give me a job in state X"
[16:57] mems presumably this means that the server will need to be able to say "I don't have anything in that state at the moment"
[17:00] sustrik separate REP sockets in the server for separate kind of work then
[17:02] mems hmm. I'll have a play
[17:10] guido_g ha! first tests work
[17:11] sustrik :)
[17:11] guido_g now for the patch thing...
[17:13] mems is there a way of discovered from which client a message has come from?
[17:13] mems **discovering
[17:14] sustrik no unless you put that into the message itself
[17:14] ModusPwnens Hi
[17:14] sustrik hi
[17:14] ModusPwnens are you helping someone already?
[17:14] mems sustrik: this seems odd to me -- is this not a really common requirement?
[17:14] ModusPwnens mm, that answers my question
[17:14] sustrik :)
[17:15] sustrik it's the nature of the thing
[17:15] sustrik use 0mq where you want to communicate with a lot of homogenous peers
[17:16] sustrik if you want to treat each connection separately, use standard TCP sockets, that's what they are for
[17:16] mems mmm... but then one loses zmq's framing
[17:17] sustrik shrug
[17:17] mems hehe
[17:17] sustrik framing is easy
[17:17] sustrik write the size, then data
[17:18] sustrik 0mq is a scalability solution
[17:18] mems ok
[17:18] sustrik thus it makes you communicate with an unknown number of peers
[17:18] sustrik that way you can add and remove processing nodes as you wish
[17:18] sustrik without tweaking your code
[17:21] mems ok. I see what it's going for.
[17:21] mems one last question ;)
[17:21] mems if I have a bunch of sockets, can I block on getting a message from any one of them?
[17:21] mems (zmq sockets obviously)
[17:22] sustrik have a look at zmq_poll
[17:22] mems excellent
[17:23] guido_g when it works... ]:->
[17:24] ModusPwnens oh guido is here too!
[17:24] guido_g yes
[17:26] ModusPwnens ok so, i was trying to do the throughput/latency tests that zeromq has in their install package, but for some reason the remote end doesnt think the address is valid
[17:27] ModusPwnens in the example, they use eth0 for the local end, but I don't think that identifier means anything in windows
[17:28] sustrik in windows you have no sane NIC names
[17:28] sustrik use an IP address
[17:28] sustrik guido_g: i think I've found the problem
[17:28] ModusPwnens Yeah, i tried that. I used the IPv4 address of the computer that the local test was running on
[17:30] guido_g sustrik: good, because with the current master the tests fail :)
[17:31] guido_g ok, first coffee
[17:38] guido_g ahh... format-patch is nice
[17:42] keffo finally, I got the routing working across two queues :)
[17:50] ModusPwnens so does anyone know whats going on with the test suite..?
[17:51] cremes ModusPwnens: we just started chatting about it a few hours ago
[17:54] sustrik cremes: there's a testing infrastructure added to trunk
[17:54] sustrik no tests yet though
[17:55] cremes good progress for a few hours work!
[17:55] sustrik 'make check' will run them
[17:55] sustrik cremes: btw, the diagram we've made yesterday
[17:55] cremes yes?
[17:56] sustrik what about changing the terminal nodes to REQ and REP
[17:56] sustrik that way it will show how all 4 socket types work
[17:56] ModusPwnens Really? what a coincidence..so what were you talking about regarding the test suite?
[17:56] cremes sure
[17:57] cremes since you have the source for the graphic, make the change and i'll update the text
[17:57] sustrik ok
[17:57] sustrik ModusPwnens: that it has to be done :)
[17:57] ModusPwnens but there is a test suite for zeromq already..
[17:58] ModusPwnens well at least for latency and throughput
[17:59] sustrik that are performace tests
[17:59] sustrik we were talking about functionality tests
[17:59] ModusPwnens Oh. I think there is a misunderstanding or something then. I'm just having trouble to get the performance tests running
[18:00] sustrik cremes: done
[18:01] sustrik Modus: paste you command lines here
[18:01] ModusPwnens k
[18:02] ModusPwnens on the local computer: local_thr.exe tcp://192.168.1.176:5555 1 100000
[18:02] ModusPwnens where the ipaddress used their is the ip address of that computer itself
[18:02] ModusPwnens there*
[18:03] sustrik and the remote?
[18:03] ModusPwnens well its the same thing except it uses remote_thr.exe
[18:03] sustrik what version are you using?
[18:03] ModusPwnens 2.07
[18:04] sustrik does it hang?
[18:05] ModusPwnens yeah they seem to run but not do anything..and i changed it to 10 so that i wouldn't have to wait so long
[18:06] sustrik none of the two programs exits?
[18:06] ModusPwnens Nope.
[18:07] sustrik do they or do they not?
[18:07] ModusPwnens they don't
[18:07] sustrik that's pretty strange
[18:08] sustrik the remote at least should exit after 10 seconds
[18:08] sustrik can you get the backtrace from the remote, to show where it is hanging?
[18:08] ModusPwnens maybe something else is going on. the computer i've been using has been having a slew of other problems
[18:08] ModusPwnens hmm, i will try that and get back to you
[18:19] cremes sustrik: i have a different idea
[18:20] cremes make a copy of the image as x2.png with req/rep as the terminal nodes and restore the original pic
[18:20] cremes i'll write a separate paragraph explaining the new diagram
[18:20] sustrik ok, but i already overwrote the original pic
[18:20] cremes i don't want to rewrite a bunch of the text but i have no problem adding another paragraph or two for a new config
[18:21] sustrik so x2 will be the original one
[18:21] cremes fine, then make x2.png with xreq/xrep
[18:24] sustrik cremes: there you go
[18:24] cremes thank you
[18:29] sustrik guido_g: testutil.hpp:36: error: extra ‘;’
[18:29] sustrik i'll fix it
[18:29] sustrik namespaces should not be followed by ;
[18:29] sustrik c++ syntax is plain weird
[18:30] guido_g oh the mail is through :)
[18:30] guido_g compiled here
[18:30] sustrik was that a generated email?
[18:30] guido_g no, that would have involved things via imap
[18:31] sustrik ok
[18:31] guido_g just a format-patch as attachment
[18:31] guido_g sustrik: which compiler version should one use?
[18:32] sustrik guido_g: any
[18:32] sustrik the more the better
[18:32] guido_g ok
[18:32] sustrik it even compiles on icc or xlc etc.
[18:34] guido_g c++ --version
[18:34] guido_g c++ (Debian 4.4.4-8) 4.4.5 20100728 (prerelease)
[18:35] guido_g ok, now that the process of sending patches is understood even by me, i'll produce some more
[18:35] sustrik anyway, the point is the more compilers the better so we catch all possible deviations from standard syntax
[18:35] guido_g i'll *not* try to compile ømq on my n900... no way :)
[18:36] sustrik iirc someone already did :)
[18:36] guido_g sustrik: any other remarks on the patch?
[18:36] sustrik coding style... i'll fix that
[18:36] guido_g *sigh* would be nice, but given that maemo has been killed by nokia... waste of time
[18:36] guido_g ouch yes, i tend to forget such things
[18:39] sustrik one more thing:
[18:39] sustrik when including zmq.hpp
[18:39] guido_g is there a description of the wanted coding style?
[18:39] sustrik use #include "../include/zmq.hpp"
[18:39] sustrik the headers are not yet installed
[18:39] guido_g right
[18:40] sustrik so you can end up including old headers from the previously installed version
[18:40] guido_g yup, got it
[18:40] guido_g just copied the files over from my dev dir
[18:40] sustrik http://www.zeromq.org/docs:style
[18:42] guido_g ahh... 've been looking in the wrong place
[18:52] sustrik guido_g: i would say making the context global is not a good idea
[18:52] guido_g why?
[18:52] sustrik that way zmq_term gets called _after_ the return from main
[18:52] sustrik which is kind of strange
[18:53] guido_g ok, i'll move it into main then
[18:53] sustrik i'll do it
[18:53] sustrik just commenting
[18:53] guido_g as you wish :)
[18:53] guido_g don't do too much
[18:53] guido_g i already have more changes here
[18:54] guido_g actually making the things work and such :)
[18:54] sustrik wait a sec!
[18:54] guido_g no problem
[18:54] sustrik i am reformatting it so it'll be pain in the ass to merge it
[18:55] guido_g no merges planned
[18:55] guido_g only plain typing to get used to the coding style
[18:56] sustrik ok
[18:56] sustrik using assert without including <assert.h>
[18:56] sustrik that may fail on some platforms
[18:57] guido_g did i say that my last exposure to c++ was roughly 10 years ago?
[18:57] sustrik i'm not complaining
[18:57] guido_g i really need to re-learn a lot as it seems
[18:57] sustrik just commenting so that you are aware of it
[18:57] guido_g thx
[18:58] guido_g i completely forgot what i wanted to do today...
[18:58] sustrik :o)
[19:01] sustrik why are you including iostream?
[19:01] sustrik it doesn't look to be used anywhere
[19:01] guido_g i tested the thing using cout
[19:01] sustrik ack
[19:07] sustrik ============================================
[19:07] sustrik 2 of 3 tests failed
[19:07] sustrik Please report to zeromq-dev@lists.zeromq.org
[19:07] sustrik ============================================
[19:07] sustrik woohoo!
[19:09] guido_g yeah, it's the broken poll
[19:11] sustrik guido: do you want this address attached to the patch:
[19:11] sustrik zmq@a-nugget.de
[19:11] sustrik ?
[19:11] sustrik guido_g
[19:11] guido_g it's ok with me
[19:13] guido_g at least, i did something useful today :)
[19:14] CIA-20 zeromq2: 03Guido Goldstein 07master * r4d9b046 10/ (6 files in 2 dirs): two tests added - http://bit.ly/cIptEz
[19:14] sustrik great, done
[19:14] sustrik thanks for that!
[19:14] guido_g cool, i'll pull and have a look
[19:14] guido_g you're welcome
[19:27] guido_g i'll send the fixes i have so you have some working tests
[19:27] guido_g more tests should be written once we have a working poll again
[19:27] guido_g is that ok?
[19:36] guido_g so the fixes are out
[19:41] sustrik guido_g: sure, it's ok
[19:41] sustrik thanks
[19:47] mato back for a bit
[19:47] mato guido_g: good to see the test framework is useful
[19:50] guido_g mato: it sure is
[19:50] mato i'll look at your tests over the weekend, kind of late now
[19:50] guido_g we have 2 tests for now
[19:50] mato but the general feel is good
[19:51] mato i think there will be some general guidelines we'll want to write for people contributing test cases
[19:51] guido_g they're just testing the basics of req/reqp and pair incl. poll
[19:51] mato sure, it's a start, that's good!
[19:51] guido_g ack
[19:51] guido_g i'll write more after poll is back on master
[19:57] guido_g i'm off too, good night all
[19:57] mato good night guido_g
[20:41] cremes under what circumstances should i expect to see this error? Assertion failed: false (object.cpp:342)
[20:41] cremes this is on 2.0.8
[20:42] cremes i *think* it is happening when a socket is blocked on recv and i call zmq_close() on the sockets
[20:52] cremes obviously, i am calling zmq_close on those sockets from another thread :)
[20:54] mato there you go then :-)
[21:49] tyler trying to compile with the bundled pgm (./configure --with-pgm && make) results in an error in both 2.0.7 and 2.0.8 source distributions
[21:49] tyler /usr/bin/ld: .libs/libzmq_la-txwi.o: relocation R_X86_64_PC32 against `pgm_rs_create' can not be used when making a shared object; recompile with -fPIC
[21:49] tyler /usr/bin/ld: final link failed: Bad value
[21:49] tyler any help would be appreciated
[21:54] mato tyler_: you're on redhat ?
[21:54] tyler centos 5.4
[21:54] mato thought so
[21:54] mato see this thread:
[21:54] mato http://thread.gmane.org/gmane.network.zeromq.devel/1667/focus=1670
[21:55] mato specifically:
[21:55] mato Just quickly check altering this line in src/Makefile,
[21:55] mato -DPGM_GNUC_INTERNAL=G_GNUC_INTERNAL \
[21:55] mato to
[21:55] mato -DPGM_GNUC_INTERNAL= \
[21:55] mato try that, the problem should go away
[21:57] tyler that did the trick, thank you!
[21:57] mato tyler_: no problem... as far as i can see it's a redhat 5.4 issue only with their gcc