Re: SpiderMonkey 1.8.5 upgrades

2011-04-02 Thread Robert Newson
+1 for supporting 1.8.5 exclusively from trunk (i.e, 1.2) upwards.
Leave couchjs as is on 1.0.x and 1.1.x

B.


On 2 April 2011 02:59, Adam Kocoloski kocol...@apache.org wrote:
 On Apr 1, 2011, at 7:26 PM, Paul Davis wrote:

 Hey,

 Mozilla released a SM 1.8.5 source distribution this morning [1].
 We've been getting requests from various places to upgrade our couchjs
 to use this newer version for a couple weeks and now that its
 available, there's no better time to act.

 As can be expected, this new SpiderMonkey has a fairly significant API
 change from what we've been using in couchjs. Up until now we've been
 able to get away with supporting 1.7 and the 1.8.0rc1 tarballs without
 much hassle. The new API makes this much more difficult. Chris C
 Coulson from Ubuntu has been working on a patch that'll allow us to
 work with 1.8.5 and (IIRC) should work with the 1.8.0rc1 but it
 includes some extra gnarly ifdef magic to make things work.

 So my question is what versions of SM should we support? I would
 probably vote to drop everything in favor of 1.8.5 and no longer
 support the older APIs. There is a possibility of just having two
 versions of couchjs that we choose at compile time. But from what I've
 heard and seen, we're basically not going to be able to have a single
 compile time ifdef decision on versions without some super screw code.

 Thoughts?

 [1] http://ftp.mozilla.org/pub/mozilla.org/js/

 Well, we need to continue to support SM 1.7 on the 1.0.x branch, and if that 
 means 1.0.x doesn't work with SM 1.8.5 then so be it.  For 1.1.0 I'd want to 
 know what the availability of SM 1.8.5 in various package repositories looks 
 like before dropping support for SM 1.7. Ideally I'd like to ship at least 
 one version of CouchDB that works with both SM 1.7 and SM 1.8.5, but I've 
 seen Chris' work in COUCHDB-1078 and I don't relish the thought of making 
 that any more complicated than it already is.

 Trunk can drop support for SM 1.7.

 Adam




[jira] [Updated] (COUCHDB-1116) Documentation for jquery.couch.js

2011-04-02 Thread Dale Harvey (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-1116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dale Harvey updated COUCHDB-1116:
-

Attachment: jquery.couch.js-docs.patch

 Documentation for jquery.couch.js
 -

 Key: COUCHDB-1116
 URL: https://issues.apache.org/jira/browse/COUCHDB-1116
 Project: CouchDB
  Issue Type: Improvement
  Components: Documentation
Reporter: Dale Harvey
Priority: Minor
 Attachments: jquery.couch.js-docs.patch, jquery.couch.js-docs.patch


 Creating documentation for jquery.couch.js

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: SpiderMonkey 1.8.5 upgrades

2011-04-02 Thread Paul J. Davis
Adam,

I'm with Bob on this one. 1.1 and 1.0 are forked so they stay the same. This 
should only concern trunk.

Also, just rewriting couchjs and letting configure choose for 1.2 might be 
doable. 

On Apr 2, 2011, at 6:09 AM, Robert Newson robert.new...@gmail.com wrote:

 +1 for supporting 1.8.5 exclusively from trunk (i.e, 1.2) upwards.
 Leave couchjs as is on 1.0.x and 1.1.x
 
 B.
 
 
 On 2 April 2011 02:59, Adam Kocoloski kocol...@apache.org wrote:
 On Apr 1, 2011, at 7:26 PM, Paul Davis wrote:
 
 Hey,
 
 Mozilla released a SM 1.8.5 source distribution this morning [1].
 We've been getting requests from various places to upgrade our couchjs
 to use this newer version for a couple weeks and now that its
 available, there's no better time to act.
 
 As can be expected, this new SpiderMonkey has a fairly significant API
 change from what we've been using in couchjs. Up until now we've been
 able to get away with supporting 1.7 and the 1.8.0rc1 tarballs without
 much hassle. The new API makes this much more difficult. Chris C
 Coulson from Ubuntu has been working on a patch that'll allow us to
 work with 1.8.5 and (IIRC) should work with the 1.8.0rc1 but it
 includes some extra gnarly ifdef magic to make things work.
 
 So my question is what versions of SM should we support? I would
 probably vote to drop everything in favor of 1.8.5 and no longer
 support the older APIs. There is a possibility of just having two
 versions of couchjs that we choose at compile time. But from what I've
 heard and seen, we're basically not going to be able to have a single
 compile time ifdef decision on versions without some super screw code.
 
 Thoughts?
 
 [1] http://ftp.mozilla.org/pub/mozilla.org/js/
 
 Well, we need to continue to support SM 1.7 on the 1.0.x branch, and if that 
 means 1.0.x doesn't work with SM 1.8.5 then so be it.  For 1.1.0 I'd want to 
 know what the availability of SM 1.8.5 in various package repositories looks 
 like before dropping support for SM 1.7. Ideally I'd like to ship at least 
 one version of CouchDB that works with both SM 1.7 and SM 1.8.5, but I've 
 seen Chris' work in COUCHDB-1078 and I don't relish the thought of making 
 that any more complicated than it already is.
 
 Trunk can drop support for SM 1.7.
 
 Adam
 
 


[jira] [Created] (COUCHDB-1117) Querying view with group parameter after group_level parameter is ignoring group_level parameter

2011-04-02 Thread Sameer Babu KK (JIRA)
Querying view with group parameter after group_level parameter is ignoring 
group_level parameter


 Key: COUCHDB-1117
 URL: https://issues.apache.org/jira/browse/COUCHDB-1117
 Project: CouchDB
  Issue Type: Bug
  Components: HTTP Interface
Affects Versions: 1.1
 Environment: {couchdb:Welcome,version:1.1.0a771dd47-git}
Reporter: Sameer Babu KK


Query with 

http://localhost:5984/t24-pmdata/_design/pm/_view/report?startkey=[3,%22temperature%22,2011,2,1]endkey=[3,%22temperature%22,2011,2,29]group_level=3group=true

returns different results than

http://localhost:5984/t24-pmdata/_design/pm/_view/report?startkey=[3,%22temperature%22,2011,2,1]endkey=[3,%22temperature%22,2011,2,29]group=truegroup_level=3
 

or just

http://localhost:5984/t24-pmdata/_design/pm/_view/report?startkey=[3,%22temperature%22,2011,2,1]endkey=[3,%22temperature%22,2011,2,29]group_level=3
 


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (COUCHDB-1118) Adding a NIF based JSON decoding/encoding module

2011-04-02 Thread Filipe Manana (JIRA)
Adding a NIF based JSON decoding/encoding module


 Key: COUCHDB-1118
 URL: https://issues.apache.org/jira/browse/COUCHDB-1118
 Project: CouchDB
  Issue Type: Improvement
  Components: Database Core
Reporter: Filipe Manana
 Fix For: 1.2


Currently, all the Erlang based JSON encoders and decoders are very slow, and 
decoding and encoding JSON is something that we do basically everywhere.

Via IRC, it recently discussed about adding a JSON NIF encoder/decoder. Damien 
also started a thread at the development mailing list about adding NIFs to 
trunk.

The patch/branch at [1] adds such a JSON encoder/decoder. It is based on Paul 
Davis' eep0018 project [2]. Damien made some modifications [3] to it mostly to 
add support for big numbers (Paul's eep0018 limits the precision to 32/64 bits) 
and a few optimizations. I made a few corrections and minor enhancements on top 
of Damien's fork as well [4]. Finally Benoît identified some missing 
capabilities compared to mochijson2 (on encoding, allow atoms as strings and 
strings as object properties).

Also, the version added in the patch at [1] uses mochijson2 when the C NIF is 
not loaded. Autotools configuration was adapted to compile the NIF only when 
we're using an OTP release = R13B04 (R13B03 NIF API is too limited and 
suffered many changes compared to R13B04 and R14) - therefore it should work on 
any OTP release  R13B at least.

I successfully tested this on R13B03, R13B04 and R14B02 in an Ubuntu 
environment.
I'm not sure if it builds at all on Windows - would appreciate if someone could 
verify it.
Also, I'm far from being good with the autotools, so I probably missed 
something important or I'm doing something in a not very standard way.

This NIF encoder/decoder is about one order of magnitude faster compared to 
mochijson2 and other Erlang-only solutions such as jsx. A read and writes test 
with relaximation shows this has a very positive impact, specially on reads 
(the EJSON encoding is more expensive than JSON decoding) - 
http://graphs.mikeal.couchone.com/#/graph/698bf36b6c64dbd19aa2bef634052381

@Paul, since this is based on your eep0018 effort, do you think any other 
missing files should be added (README, etap tests, etc)? Also, should we put 
somewhere a note this is based on your project?

[1] - https://github.com/fdmanana/couchdb/compare/json_nif
[2] - https://github.com/davisp/eep0018
[3] - https://github.com/Damienkatz/eep0018/commits/master
[4] - https://github.com/fdmanana/eep0018/commits/final_damien

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: SpiderMonkey 1.8.5 upgrades

2011-04-02 Thread Filipe David Manana
I'm fine with trunk requiring 1.8.5+ and not being compatible with
previous releases.

On Sat, Apr 2, 2011 at 3:22 PM, Paul J. Davis
paul.joseph.da...@gmail.com wrote:
 Adam,

 I'm with Bob on this one. 1.1 and 1.0 are forked so they stay the same. This 
 should only concern trunk.

 Also, just rewriting couchjs and letting configure choose for 1.2 might be 
 doable.

 On Apr 2, 2011, at 6:09 AM, Robert Newson robert.new...@gmail.com wrote:

 +1 for supporting 1.8.5 exclusively from trunk (i.e, 1.2) upwards.
 Leave couchjs as is on 1.0.x and 1.1.x

 B.


 On 2 April 2011 02:59, Adam Kocoloski kocol...@apache.org wrote:
 On Apr 1, 2011, at 7:26 PM, Paul Davis wrote:

 Hey,

 Mozilla released a SM 1.8.5 source distribution this morning [1].
 We've been getting requests from various places to upgrade our couchjs
 to use this newer version for a couple weeks and now that its
 available, there's no better time to act.

 As can be expected, this new SpiderMonkey has a fairly significant API
 change from what we've been using in couchjs. Up until now we've been
 able to get away with supporting 1.7 and the 1.8.0rc1 tarballs without
 much hassle. The new API makes this much more difficult. Chris C
 Coulson from Ubuntu has been working on a patch that'll allow us to
 work with 1.8.5 and (IIRC) should work with the 1.8.0rc1 but it
 includes some extra gnarly ifdef magic to make things work.

 So my question is what versions of SM should we support? I would
 probably vote to drop everything in favor of 1.8.5 and no longer
 support the older APIs. There is a possibility of just having two
 versions of couchjs that we choose at compile time. But from what I've
 heard and seen, we're basically not going to be able to have a single
 compile time ifdef decision on versions without some super screw code.

 Thoughts?

 [1] http://ftp.mozilla.org/pub/mozilla.org/js/

 Well, we need to continue to support SM 1.7 on the 1.0.x branch, and if 
 that means 1.0.x doesn't work with SM 1.8.5 then so be it.  For 1.1.0 I'd 
 want to know what the availability of SM 1.8.5 in various package 
 repositories looks like before dropping support for SM 1.7. Ideally I'd 
 like to ship at least one version of CouchDB that works with both SM 1.7 
 and SM 1.8.5, but I've seen Chris' work in COUCHDB-1078 and I don't relish 
 the thought of making that any more complicated than it already is.

 Trunk can drop support for SM 1.7.

 Adam






-- 
Filipe David Manana,
fdman...@gmail.com, fdman...@apache.org

Reasonable men adapt themselves to the world.
 Unreasonable men adapt the world to themselves.
 That's why all progress depends on unreasonable men.


[jira] [Commented] (COUCHDB-1117) Querying view with group parameter after group_level parameter is ignoring group_level parameter

2011-04-02 Thread Jan Lehnardt (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-1117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13015050#comment-13015050
 ] 

Jan Lehnardt commented on COUCHDB-1117:
---

I think the long-term solution here is to drop group=true and rename it ti 
group_level=exact. Of course, that would break BC and can't be considered 
before 2.0.0.

In the meantime, how about detecting that both group=true and group_level=N are 
set and returning an error, regardless of which order they are specified in?

 Querying view with group parameter after group_level parameter is ignoring 
 group_level parameter
 

 Key: COUCHDB-1117
 URL: https://issues.apache.org/jira/browse/COUCHDB-1117
 Project: CouchDB
  Issue Type: Bug
  Components: HTTP Interface
Affects Versions: 1.1
 Environment: {couchdb:Welcome,version:1.1.0a771dd47-git}
Reporter: Sameer Babu KK

 Query with 
 http://localhost:5984/t24-pmdata/_design/pm/_view/report?startkey=[3,%22temperature%22,2011,2,1]endkey=[3,%22temperature%22,2011,2,29]group_level=3group=true
 returns different results than
 http://localhost:5984/t24-pmdata/_design/pm/_view/report?startkey=[3,%22temperature%22,2011,2,1]endkey=[3,%22temperature%22,2011,2,29]group=truegroup_level=3
  
 or just
 http://localhost:5984/t24-pmdata/_design/pm/_view/report?startkey=[3,%22temperature%22,2011,2,1]endkey=[3,%22temperature%22,2011,2,29]group_level=3
  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (COUCHDB-1116) Documentation for jquery.couch.js

2011-04-02 Thread Jan Lehnardt (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-1116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13015051#comment-13015051
 ] 

Jan Lehnardt commented on COUCHDB-1116:
---

Fuckin' A for effort! :) — Here's what this looks like rendered: 
http://arandomurl.com/2011/04/02/jquery-couch-js-documentation.html

+1 for getting this merged.

 Documentation for jquery.couch.js
 -

 Key: COUCHDB-1116
 URL: https://issues.apache.org/jira/browse/COUCHDB-1116
 Project: CouchDB
  Issue Type: Improvement
  Components: Documentation
Reporter: Dale Harvey
Priority: Minor
 Attachments: jquery.couch.js-docs.patch, jquery.couch.js-docs.patch


 Creating documentation for jquery.couch.js

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: [jira] [Commented] (COUCHDB-1116) Documentation for jquery.couch.js

2011-04-02 Thread Peter Nolan
Great work.  Documentation of everyones code is greatly needed and furthers
usage of their code.

Will upgrade Jans grade to an A+

-Pete


[jira] [Updated] (COUCHDB-1078) Port couchjs to newest libmozjs

2011-04-02 Thread Benoit Chesneau (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Chesneau updated COUCHDB-1078:
-

Attachment: couchjs_ff185.patch

Patch from Jasper Lievisse Adriaanse done for the openbsd port. 

 Port couchjs to newest libmozjs
 ---

 Key: COUCHDB-1078
 URL: https://issues.apache.org/jira/browse/COUCHDB-1078
 Project: CouchDB
  Issue Type: Improvement
  Components: JavaScript View Server
Affects Versions: 1.0.2
Reporter: Chris Coulson
Priority: Minor
 Attachments: couchjs_ff185.patch, mozjs2.0.patch


 In the libmozjs shipped with Firefox 4 / xulrunner 2.0, jsapi has changed a 
 fair bit. It would be nice to add support to couchjs for the latest libmozjs 
 so Linux distro's don't have to support old versions of it.
 I already have a WIP patch for this

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: SpiderMonkey 1.8.5 upgrades

2011-04-02 Thread Benoit Chesneau
On Sat, Apr 2, 2011 at 1:26 AM, Paul Davis paul.joseph.da...@gmail.com wrote:
 Hey,

 Mozilla released a SM 1.8.5 source distribution this morning [1].
 We've been getting requests from various places to upgrade our couchjs
 to use this newer version for a couple weeks and now that its
 available, there's no better time to act.

 As can be expected, this new SpiderMonkey has a fairly significant API
 change from what we've been using in couchjs. Up until now we've been
 able to get away with supporting 1.7 and the 1.8.0rc1 tarballs without
 much hassle. The new API makes this much more difficult. Chris C
 Coulson from Ubuntu has been working on a patch that'll allow us to
 work with 1.8.5 and (IIRC) should work with the 1.8.0rc1 but it
 includes some extra gnarly ifdef magic to make things work.

 So my question is what versions of SM should we support? I would
 probably vote to drop everything in favor of 1.8.5 and no longer
 support the older APIs. There is a possibility of just having two
 versions of couchjs that we choose at compile time. But from what I've
 heard and seen, we're basically not going to be able to have a single
 compile time ifdef decision on versions without some super screw code.

 Thoughts?

 [1] http://ftp.mozilla.org/pub/mozilla.org/js/


+1 to just keep support for 1.8.5 it make the code easier to read.

- benoit


[jira] [Commented] (COUCHDB-1118) Adding a NIF based JSON decoding/encoding module

2011-04-02 Thread Damien Katz (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-1118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13015085#comment-13015085
 ] 

Damien Katz commented on COUCHDB-1118:
--

Looks good to me. Check it in!

 Adding a NIF based JSON decoding/encoding module
 

 Key: COUCHDB-1118
 URL: https://issues.apache.org/jira/browse/COUCHDB-1118
 Project: CouchDB
  Issue Type: Improvement
  Components: Database Core
Reporter: Filipe Manana
 Fix For: 1.2


 Currently, all the Erlang based JSON encoders and decoders are very slow, and 
 decoding and encoding JSON is something that we do basically everywhere.
 Via IRC, it recently discussed about adding a JSON NIF encoder/decoder. 
 Damien also started a thread at the development mailing list about adding 
 NIFs to trunk.
 The patch/branch at [1] adds such a JSON encoder/decoder. It is based on Paul 
 Davis' eep0018 project [2]. Damien made some modifications [3] to it mostly 
 to add support for big numbers (Paul's eep0018 limits the precision to 32/64 
 bits) and a few optimizations. I made a few corrections and minor 
 enhancements on top of Damien's fork as well [4]. Finally Benoît identified 
 some missing capabilities compared to mochijson2 (on encoding, allow atoms as 
 strings and strings as object properties).
 Also, the version added in the patch at [1] uses mochijson2 when the C NIF is 
 not loaded. Autotools configuration was adapted to compile the NIF only when 
 we're using an OTP release = R13B04 (R13B03 NIF API is too limited and 
 suffered many changes compared to R13B04 and R14) - therefore it should work 
 on any OTP release  R13B at least.
 I successfully tested this on R13B03, R13B04 and R14B02 in an Ubuntu 
 environment.
 I'm not sure if it builds at all on Windows - would appreciate if someone 
 could verify it.
 Also, I'm far from being good with the autotools, so I probably missed 
 something important or I'm doing something in a not very standard way.
 This NIF encoder/decoder is about one order of magnitude faster compared to 
 mochijson2 and other Erlang-only solutions such as jsx. A read and writes 
 test with relaximation shows this has a very positive impact, specially on 
 reads (the EJSON encoding is more expensive than JSON decoding) - 
 http://graphs.mikeal.couchone.com/#/graph/698bf36b6c64dbd19aa2bef634052381
 @Paul, since this is based on your eep0018 effort, do you think any other 
 missing files should be added (README, etap tests, etc)? Also, should we put 
 somewhere a note this is based on your project?
 [1] - https://github.com/fdmanana/couchdb/compare/json_nif
 [2] - https://github.com/davisp/eep0018
 [3] - https://github.com/Damienkatz/eep0018/commits/master
 [4] - https://github.com/fdmanana/eep0018/commits/final_damien

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Re: SpiderMonkey 1.8.5 upgrades

2011-04-02 Thread Dave Cottlehuber
On 2 April 2011 23:09, Robert Newson robert.new...@gmail.com wrote:
 +1 for supporting 1.8.5 exclusively from trunk (i.e, 1.2) upwards.
 Leave couchjs as is on 1.0.x and 1.1.x

 B.

Makes sense;  +1.

From a release perspective I would like to be clear why we are
upgrading or not depending on the branch. Is it simply speed that
folks are interested in, or is there new functionality that people
need in 1.8.5?

A+
Dave


Re: SpiderMonkey 1.8.5 upgrades

2011-04-02 Thread Paul Davis
On Sat, Apr 2, 2011 at 7:28 PM, Dave Cottlehuber d...@muse.net.nz wrote:
 On 2 April 2011 23:09, Robert Newson robert.new...@gmail.com wrote:
 +1 for supporting 1.8.5 exclusively from trunk (i.e, 1.2) upwards.
 Leave couchjs as is on 1.0.x and 1.1.x

 B.

 Makes sense;  +1.

 From a release perspective I would like to be clear why we are
 upgrading or not depending on the branch. Is it simply speed that
 folks are interested in, or is there new functionality that people
 need in 1.8.5?

 A+
 Dave


Mostly, because the last 'official' version of SM is 1.7 which we've
been required to support because there's nothing 'officially' released
since then. (1.7 was released in 2007).

Recently most people have either been using a 1.8.0rc1 tarball (which
is in a bit of a wonky position between 1.7 and 1.8.1+ where it has a
weird intermediary API) or a hash from the mozilla-central mercurial
repository.

Basically, we've been floating this upgrade because there was nothing
to latch onto. Now that 1.8.5 is out as a tarball, I reckon we'll see
most SM related projects making the jump pretty quickly. I know all of
my other projects will do so as well as soon as I find some free time.


[jira] [Commented] (COUCHDB-1078) Port couchjs to newest libmozjs

2011-04-02 Thread Paul Joseph Davis (JIRA)

[ 
https://issues.apache.org/jira/browse/COUCHDB-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13015092#comment-13015092
 ] 

Paul Joseph Davis commented on COUCHDB-1078:


@Benoit

Is it just me or is that a patch of a patch?

 Port couchjs to newest libmozjs
 ---

 Key: COUCHDB-1078
 URL: https://issues.apache.org/jira/browse/COUCHDB-1078
 Project: CouchDB
  Issue Type: Improvement
  Components: JavaScript View Server
Affects Versions: 1.0.2
Reporter: Chris Coulson
Priority: Minor
 Attachments: couchjs_ff185.patch, mozjs2.0.patch


 In the libmozjs shipped with Firefox 4 / xulrunner 2.0, jsapi has changed a 
 fair bit. It would be nice to add support to couchjs for the latest libmozjs 
 so Linux distro's don't have to support old versions of it.
 I already have a WIP patch for this

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira