<owlz>
i implemented the cffi setuptools call for my package, but i'm wondering if it's possible to have CFFI silently fail if it cannot compile
<owlz>
it's a package for Windows and, while I'd like to have it compile, i can probably still fall back to in-line mode if i have to
<owlz>
i should clarify that i'm utilizing "cffi_modules" in setuptools, it's working just fine but want to be able to handle the case where someone wants to install on a windows box and doesn't have windows compilers installed (not uncommon)
mattip has joined #pypy
<njs>
owlz: if you distribute a wheel then they won't need a compiler?
tilgovi has quit [Quit: No Ping reply in 180 seconds.]
<owlz>
i'd think there would be possible compatability problems at that point
<owlz>
because the python library i compile into the binary that then gets loaded into cffi might be different enough than the version they're using
tilgovi has joined #pypy
<njs>
owlz: wheels are tagged with the version of python that they were built for, and pip won't install a wheel that has tags that don't match the python in use
<njs>
owlz: also I *think* cffi in particular might generate wheels that use a special subset of the python ABI that is guaranteed to be compatible across versions? not sure though
<owlz>
yeah, certainly an option worth exploring
<owlz>
would still like to know if there's a clean way to fail the build in setuptools hooks that cffi has though
<owlz>
otherwise, i could hook setuptools myself i guess
<owlz>
but was nice to have that taken care of
jamadden has quit [Quit: Leaving.]
<owlz>
njs: happen to know of a automated <free> build site that runs windows and has the right c dev libraries to build the wheels?
<owlz>
looks like the wheel builds are down to the minor version as well... that could be a pita if it's not automated
<kenaan>
tobweber stmgc[c8-adaptive-trx-length-prolonged-backoff] 6b4b7aedc3d1 /c8/stm/nursery.c: Use simple on off mechanism for the adaptive mode
<kenaan>
tobweber stmgc[c8-adaptive-trx-length-prolonged-backoff] 707bc6a2c0a8 /c8/stm/nursery.c: Backed out changeset 6b4b7aedc3d1
<kenaan>
tobweber stmgc[c8-adaptive-trx-length-prolonged-backoff] 22ebd85e36fd /c8/stm/nursery.c: Set exponential base of trx length modifier to 1000
<kenaan>
tobweber stmgc[c8-adaptive-trx-length-prolonged-backoff] 8170562e2157 /c8/stm/nursery.c: Set exponential base back to two because the effect was insignificant
jamesaxl has joined #pypy
<kenaan>
antocuni faster-rstruct-2 d73762117bd5 /rpython/rlib/buffer.py: specialize on TP
<kenaan>
antocuni faster-rstruct-2 474ad89b70a8 /rpython/rlib/rstruct/: refactor rstruct.runpack to use the new Buffer.typed_read functionality, instead of deprecated strstora...
<kenaan>
antocuni faster-rstruct-2 1a2232f24cad /: fix module/struct to use the new functionality. Add a passing test to check that struct.unpack(..., <st...
<kenaan>
antocuni faster-rstruct-2 ed8803b41b6c /rpython/rlib/: implement and test SubBuffer.typed_read; this fixes pypy/module/struct/test/test_struct.py:test_unpack_...
<kenaan>
antocuni faster-rstruct-2 a3cde44d8c93 /rpython/rlib/: kill as_str_and_offset_maybe, as it is no longer needed/used anywhere
antocuni has quit [Ping timeout: 260 seconds]
jamadden has joined #pypy
jcea has joined #pypy
Tiberium has joined #pypy
jacob22_ has quit [Quit: Konversation terminated!]
q4 has joined #pypy
Demeisen has quit [Remote host closed the connection]
Demeisen has joined #pypy
Demeisen has quit [Remote host closed the connection]
<rguillebert>
I might have time to pick it up again soon btw
<rguillebert>
We'll see
<ebarrett>
that's the one!
arigato has quit [Read error: Connection reset by peer]
<antocuni>
ebarrett: what do you need it for, btw?
vkirilichev has quit [Ping timeout: 260 seconds]
vkirilic_ has joined #pypy
yuyichao has quit [Ping timeout: 246 seconds]
oberstet3 is now known as oberstet
marky1991_2 has joined #pypy
realitix has quit [Ping timeout: 240 seconds]
vkirilic_ has quit [Remote host closed the connection]
amaury has joined #pypy
<kenaan>
antocuni faster-rstruct-2 037cc12c66ea /rpython/rlib/buffer.py: if we don't ensure that StringBuffer.value is not None, the annotator crashes as soon as you call str2c...
kostia has quit [Ping timeout: 240 seconds]
lritter_ has quit [Ping timeout: 240 seconds]
Tiberium has quit [Read error: Connection reset by peer]
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium_ has joined #pypy
Tiberium_ has quit [Remote host closed the connection]
Tiberium__ has joined #pypy
Tiberium__ has quit [Remote host closed the connection]
Rhy0lite has joined #pypy
Tiberium has quit [Quit: Leaving]
Tiberium has joined #pypy
yuyichao has joined #pypy
marky1991_2 is now known as marky1991
marky1991 has quit [Changing host]
marky1991 has joined #pypy
kostia has joined #pypy
amaury has quit [Ping timeout: 240 seconds]
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
cstratak has quit [Quit: Leaving]
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium_ has joined #pypy
Tiberium_ has quit [Remote host closed the connection]
<kenaan>
antocuni faster-rstruct-2 3542b2943610 /pypy/: implement typed_read for BytearrayBuffer and test that struct.unpack takes the fast path. However this ...
<kenaan>
amauryfa default 5b724c72fb87 /pypy/module/cpyext/: Populate tp_descr_get and tp_descr_set slots
<kenaan>
amauryfa default f452cdf49d49 /pypy/module/struct/: Issue 2551: Struct should be initialized in __init__, not __new__
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
ArchDebian has joined #pypy
<kenaan>
amauryfa default 0a70dce2070a /pypy/module/__builtin__/: ast.parse(some_ast, ...) should return its first argument.
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
Tiberium has quit [Remote host closed the connection]
<Nyg>
where is a list of 'sane' database drivers that I can use with my simple hug project?
<Nyg>
I was initially going for Django, but its database drivers are are all C extension-based...
<Nyg>
MySQL is insanity... psycopg2cffi is 2x slow, sqlite3 requires blocking access and not scalable
<Nyg>
so I changed my mind to use Django
<Nyg>
also someone in a pypy talk said Django is slow af
<Nyg>
I'm now going for hug (as, it now may seem project is simple, but it'll rather get very complicated, insomuch that I don't want to be writing Cython code)
<simpson>
Nyg: I know that sqlite works. I think that oursql and pg8000 work as well.
<simpson>
I don't know what "hug" is.
<Nyg>
simpson: nvm
<Nyg>
it's a simple REST framework, only handles input and output via JSON and routing
<Nyg>
the question is that is it fast compared to its native CPython ones (based on generic benchmarks, if possible)
<Nyg>
"The latest release of pg8000 is version 1.08, released on June 8th, 2010."
<Nyg>
oh wrong page
<Nyg>
it was some pybrary documentation page
<Nyg>
but the github has commits from 3m ago
<Nyg>
so it's probably good
<Nyg>
'PROBABLY'
<Nyg>
simpson: ok
<Nyg>
I don't want mysql tbh
<Nyg>
it just seems to be too commercialized
<Nyg>
postgresql is way superior
<Nyg>
but psycopg2cffi is 2x slow and psycopg2 just doesn't even compile
ArchDebian has joined #pypy
<Nyg>
lots of thinking
<Nyg>
it now seems the best option currently is, to replace SQL with MongoEngine with its MongoDB
<Nyg>
benchmarks say that pymongo gets faster with PyPy and it doesn't have much of C
Tiberium has joined #pypy
vkirilichev has joined #pypy
<simpson>
Nyg: What's your current stack use and what are your performance targets?
ArchDebian has quit [Quit: Konversation terminated!]
<simpson>
Also what's your target rate for data loss?
<Nyg>
simpson: data loss can't be accepted
<Nyg>
I am currently using a Python-based SPA which wants JSON-serialized REST APIs
<simpson>
Nyg: Well, that rules out Mongo.
<Nyg>
but my code is not oriented much with model
<Nyg>
DRF Is too model-oriented
<Nyg>
AFAIK, Mongo has no schema
<Nyg>
but does it also have data loss?
<Nyg>
my data is semi-structured, so I thought using a ODM like MongoEngine will work
<simpson>
The SQL options you listed off all have some notion of ACID. Mongo doesn't.
<Nyg>
it won't be too interrelated
<simpson>
Anyway, this isn't really PyPy-related any more, I think.
<Nyg>
simpson: the bindings and their compatibility, plus the speed
<Nyg>
isn't that related to pypy
<Nyg>
a simple question then, which binding is sane for pypy, just forget all of my requirements
<Nyg>
most of the bindings I see is C extension-based
<simpson>
Nyg: Sure, but the fact of the matter is that bindings are not really likely to be your bottleneck.
<Nyg>
simpson: hmm, the other bottlenecks are mostly minimal
<Nyg>
most of the code I'm going to be using is pure python
<simpson>
Nyg: Nonetheless, it sounds like you should build a couple prototypes and see how they fare.
<Nyg>
minimal libraries, except the places where I must, e.g. serialization, db, validation, etc.
<Nyg>
simpson: already done
<Nyg>
I've made a django-psy2copgcffi prototype, abysmal
<Nyg>
pypy benchmark was 2x slower than cpython one, was surprised
<Nyg>
also weird server-side cursor errors that only happen in pypy
<Nyg>
tried a falcon-lmdb one, was too hard to use
<Nyg>
so currently checking out mongoengine and hug, will report how it goes
<o11c>
Nyg: mongo is well-known for having heavy data loss
<Nyg>
hmm
<Nyg>
I'll look into that
<Nyg>
but for now, given the state of bindings and their speed in python, mongodb is the best bet
<Nyg>
mongodb's data loss seems to be very outdated, almost 5y passed since the mainstream allegations
Taggnostr has quit [Read error: Connection reset by peer]
Taggnostr has joined #pypy
Tiberium has quit [Read error: Connection reset by peer]