arigato changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end ) | use cffi for calling C | mac OS and Fedora are not Windows
lritter has quit [Ping timeout: 246 seconds]
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
speeder39_ has quit [Quit: Connection closed for inactivity]
jcea has quit [Quit: jcea]
<_aegis_> is there a recipe for doing mingw windows builds from a linux host?
dddddd has quit [Remote host closed the connection]
<mattip> _aegis_: neither cross-compilation nor mingw are really supported
<mattip> of the two, mingw has some support in the code, so it must have worked at one point
<mattip> and 64-bit windows support is also lacking
tsaka__ has quit [Ping timeout: 258 seconds]
wleslie has joined #pypy
<tos9> seems reproducible, looks like pypy3 is not happy with pyyaml on windows
<tos9> but I don't have a windows machine to check
<tos9> anyone else do?
<arigato> tos9: first thing to try would be some more recent pypy3
<tos9> ah indeed, didn't even notice that was the 3.5.3
<arigato> I think I've seen this problem long ago
<tos9> OK, now I guess to figure out how I can modify their provisioning script
<arigato> (may be slightly different of course)
<arigato> but I can also try, just "pypy3 -m pip install pyyaml" on windows?
<mattip> tos9: you can do something like what NumPy does
<mattip> to download a latest nightly
<arigato> tos9: it works for me with pypy3.6 7.1.1
<tos9> arigato: Cool thanks!
<tos9> mattip: That's windows? Or linux?
<mattip> tos9: github-actions (which is azure pipelines) can use bash scripts on windows,
<mattip> can add a step to download a latest nightly
<arigato> tos9: on Windows
<tos9> mattip: Huh. Interesting.
<tos9> mattip: Cool, will try that.
<tos9> What I want is obviously the elusive "works on all 3 oses and runs your CI" yaml script
<tos9> That I then just apply to all my packages (and my package creation template)
<tos9> And never have to think about CI ever again hooray (will hold my breath for that one)
<arigato> :-)
<mattip> maybe you have to do something with the `run` step to tell it to use bash, and use some variable to hold the platform name
<arigato> mattip: re a6c1ae0: oops, I already merged that into py3.6-sandbox-2 but somehow forgot to merge into py3.6
<arigato> I can merge default -> py3.6 now if you like
<arigato> and then deal with py3.6 -> py3.6-sandbox-2
<mattip> I think I did it, I added the eintr_retry=False to the changed exception
<arigato> yes, eintr_retry should remain I think---thanks
<mattip> just checking that there are no obvious problems
<arigato> great
<mattip> why is the einter_retry only on py3.6?
<arigato> that's because only in CPython3 the default is generally to retry on EINTR
<arigato> so this flag disables this new behaviour
<kenaan> mattip py3.6 1b696e1a6058 /: merge default into py3.6
<arigato> umh ok no, sorry: the default of this flag is False anyway
<arigato> so I think there is no real point in passing it explicitly to False
<arigato> unless you want to make it clear
<mattip> so why did 63df1181a419 add it?
<mattip> ahh, the commit message says "the goal would be to remove the default value of the argument, to be sure we're complete")
<mattip> so I guess a WIP
<mattip> mercurial makes it clear what this was a part of - the branch is called eintr-pep475
<arigato> is this another attempt at justifying why git would not have worked with our work style? :-)
<mattip> yup
<arigato> just to be clear, after looking into the matter, I'm not saying now "hg is better" or "git is worse", but instead I agree that the kind of repo you end up building is a bit different in both cases
<arigato> so for a large repo built using one the tools, switching to the other tool can create a lot of friction
<mattip> when I am doing archeology on numpy commits, I have to find the merge-to-default commit, figure out which github PR this is, and only when I go to github can I figure out what the commit was part of
<mattip> anyhow, for the matter at hand, I think eintr_retry=False is correct
<arigato> eintr_retry=False: agreed too
<bbot2_> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6405 [mattip: force build, py3.6]
<bbot2_> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6405 [mattip: force build, py3.6]
<tos9> mattip: (FWIW I know this conversation was had already :D but just in case you haven't seen them before, maybe you'd find `git log --merges <YOURCOMMIT>` or https://github.com/mhagger/git-when-merged handy)
<tos9> ls
ionelmc has quit [Quit: Connection closed for inactivity]
<kenaan> mattip py3.6 f922a8f2c952 /pypy/module/posix/interp_posix.py: typo
<mattip> posix/test/test_ztranslation passed with that typo :(
<bbot2_> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6406 [mattip: force build, py3.6]
<arigato> mattip: yes, I know why
<arigato> I've written this comment in py3.6-sandbox-2 (which should be merged to py3.6 at some point):
<arigato> about def urandom() in interp_posix.py:
<arigato> # NOTE: this is not used for 'os.urandom' on POSIX; instead,
<arigato> # is needed (or complete enough) nowadays.
<arigato> # app_posix.urandom() is. However, module/_random/ actually
<arigato> # calls this code directly. XXX Unsure the version in app_posix
<arigato> so I don't know why we have two versions
<mattip> confusing
<arigato> definitely
<arigato> maybe we should (1) remove the app_posix version; (2) add the check for errno in the interp-level version
<mattip> on default, right?
<arigato> on py3.6
<arigato> ah, the (2) part, yes, it should probably go on default too
<arigato> fwiw, this shows up in the sandboxing branches because "/dev/urandom" is not available by default to the sandboxed process, and the stdlib contains code like "try: os.urandom(); except NotImplementedError:"
<arigato> (I think it contains such code only on default, no longer in py3.6)
<bbot2_> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6406 [mattip: force build, py3.6]
Dejan has joined #pypy
tsaka__ has joined #pypy
lritter has joined #pypy
iko has quit [Ping timeout: 246 seconds]
iko has joined #pypy
<kenaan> stevie_92 cpyext-gc-cycle d326d15810a4 /: Fixed bug when traversing rrc lists in gc
lritter has quit [Quit: Leaving]
nunatak has joined #pypy
<kenaan> stevie_92 cpyext-gc-cycle adc05b1fd46b /rpython/memory/gc/: Adapted rrc gc to support incremental collections (still need to reduce pauses)
nunatak has quit [Quit: Leaving]
dddddd has joined #pypy
Rhy0lite has joined #pypy
lritter has joined #pypy
<kenaan> rlamy py3.6 c0d46759b1dc /lib-python/3/test/test_class.py: fix typo
<Dejan> I know that 3.6 support is still alpha, yet i wonder is there a plan to start the 3.7 support?
<simpson> Dejan: Are you interested in contributing? Which PEPs or features are you hoping to use in PyPy?
<Dejan> simpson, I am not sure I can contribute...
<Dejan> I know nothing about PyPy internals
<simpson> No worries. That's how everybody starts out. Which 3.7 features are you wanting to see in PyPy?
<tos9> Dejan: There's a plan, yes -- 3.6 isn't done yet though, so basically 3.7 will start after all the 3.6 tests pass
<Dejan> fair enough
<Dejan> simpson, data classes are interesting to me, and resource imports
<Dejan> i fear i need to know PyPy too deeply for context variables
<kenaan> rlamy py3.6 7ace73ce896a /pypy/: Fix error handler calls when encoding to utf-16
<arigato> well, the py3.6 status is kind of good, and we were thinking about starting a py3.7 branch soon I think
<arigato> Dejan: are data classes implemented in more than pure python?
<ronan> yes, there are still a few things to do on py3.6, but it might be time to open py3.7 for non-core contributors
<Dejan> arigato, no idea to be frank
<Dejan> i have recently started using pypy 3.6 on my aarach64 vps, and started using it on my aarch laptops :)
<simpson> Looks reasonably portable at a glance. I'm sure that there's Fun lurking underneath.
<Dejan> simpson, yes, i would assume dataclasses should be fairly easy
<Dejan> arigato, i think it is just pure python
<arigato> hopefully there is nothing to do
<Dejan> but to me personally aarch64 support in PyPy3 is the most welcome feature :D
<ronan> I'm wondering why utf8_encode_utf_16_helper() has a fallback for invalid utf-8 input, that's never supposed to happen
<arigato> ronan: even if the utf8 source has random surrogates?
<arigato> otherwise, it's maybe a leftover dating back to the pre-utf8 world
<ronan> to be precise, the input is supposed to be a valid utf8sp encoded string
<ronan> rutf8.codepoint_at_pos() can't fail on it, unless we have a broken unicode object to start with
<arigato> it can be called from cpyext.unicodeobject
<arigato> ah but also only on space.utf8_w(...)
<arigato> so no idea why
<arigato> I'm also failing to see where the utf8_encode_utf_16*() functions are used
<arigato> it's either dead code (apart from the _helper one) or there is metaprogramming that I'm not managing to find
<ronan> hmm
<arigato> ah, in module._codecs.interp_codecs there is getattr(unicodehelper, ...)
<arigato> ...which also always passes "w_arg._utf8", so yes, I think you're correct
<arigato> ronan: do you feel like starting the py3.7 branch, or should I attempt to?
* ronan wishes RPython had a utf8-encoded string type
<ronan> arigato: I was thinking of doing it later this week
<arigato> cool, I'll let you do it then
<arigato> thanks!
<ronan> ok
<mattip> hi. unicode_helper kind of grew out of a bunch of different branches, so there might be dead code there
<mattip> and I tried to make it the same on default and py3.6, don't know if I succeeded
xcm has quit [Ping timeout: 245 seconds]
<kenaan> rlamy py3.6 9abe3f6c09a4 /pypy/interpreter/unicodehelper.py: Remove confusing and unused error path for invalid-at-interplevel input in encoders
niceplace_ has joined #pypy
xcm has joined #pypy
ekaologik has joined #pypy
<_aegis_> mattip: yeah, I keep reading that windows 64-bit doc and wondering if I'm going to be the person to do it, probably going to ship cpython3.7 on windows for now and circle back around though
<_aegis_> I hope it's just rpython types and not like a lot of windows apis changing
<_aegis_> is there a major reason cross compiling *shouldn't* work? wouldn't it be easier to use 64-bit linux pypy to do the first translation?
<_aegis_> than to hack up cpython or something
<_aegis_> like expect a "pypy linux + mingw-w64 + wine" environment to exist during bootstrapping
<mattip> there are places we use the translating python to ask about the host platform, so those must be carefully refactored
<_aegis_> ah interesting
<_aegis_> at least allow a command line flag override?
<mattip> like sys.maxsize and sys.platform, those would all have to become target.maxsize, target.platform
<_aegis_> rpython support cross-translating a 64-bit pypy from 32-bit pypy?
<_aegis_> *does
<_aegis_> otherwise maxsize should be the same
<_aegis_> and no maxint or int type in python3
<mattip> I thought we were talking about rpython translation
<_aegis_> has the rpython tree drifted much in the pypy3 branches?
<_aegis_> I'd only really want to do this work once, and I care way more about pypy3
<mattip> rpython should only have 1 or two diffs between default - py3.6, mainly due to windows
<mattip> pypy has diverged much more
<arigato> there is no way at this point we can support cross-compiling from a "too different" platform
<arigato> 32bit vs 64bit definitely counts as "too different"
<arigato> anything posix-y versus windows, too
<arigato> so I fear there is no way around the hack I described
<arigato> I think mingw versus real windows is also "too different"
<_aegis_> my thought is from linux to mingw
<_aegis_> and mingw is at least posixy
<arigato> depends what your goal is
<_aegis_> I want a 64-bit windows C abi dll
<_aegis_> and mingw should provide that
<arigato> if the goal is a mingw64-based pypy, then you can probably do that by reviving the mingw hacks and using only mingw (no linux)
<_aegis_> ah, but if I used mingw on windows I'd still run into the 64-bit translation issue? since there's no 64-bit windows pypy yet
<arigato> how does cpython2.7 compile on mingw64 anyway? what is sys.maxint?
<_aegis_> in mingw long is still 32-bit
<arigato> ok then cross-compiling from linux to mingw64 is not going to work either
<_aegis_> dang it, I'm trying to avoid a windows box in my build pipeline :)
<arigato> that's a lot cause if the goal is a 64-bit windows
<arigato> s/lot/lost
ekaologik has quit [Quit: https://quassel-irc.org - Komfortabler Chat. Überall.]
<kenaan> rlamy default 578667b3fef9 /pypy/module/_warnings/: CPython compatibility (bpo-31285)
Rhy0lite has quit [Quit: Leaving]
lazka has joined #pypy
<lazka> I tried building with mingw64 two years ago for an evening, but never finished it: https://github.com/lazka/msys2-staging/tree/master/mingw-w64-pypy
<lazka> I think it started to compile at least, but failed quickly there
lazka has quit [Remote host closed the connection]
<cfbolz> ronan: I actually really like the idea of an rpython utf-8 type. It could also know its two lengths. Would need a bit of design to get it right of course
marvin__ has quit [Ping timeout: 268 seconds]
marvin has joined #pypy
marvin is now known as Guest19661
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
antocuni has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
tsaka__ has quit [Ping timeout: 272 seconds]
lritter has quit [Quit: Leaving]
antocuni has quit [Ping timeout: 245 seconds]
Taggnostr has joined #pypy