cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
energizer has quit [Ping timeout: 256 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
marky1991 has joined #pypy
marr has quit [Ping timeout: 256 seconds]
tbodt has joined #pypy
marky1991_2 has joined #pypy
marky1991 has quit [Ping timeout: 255 seconds]
marky1991_2 has quit [Remote host closed the connection]
jcea has quit [Quit: jcea]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
chelz has quit [Ping timeout: 255 seconds]
energizer has joined #pypy
chelz has joined #pypy
dddddd has quit [Remote host closed the connection]
energizer has quit [Ping timeout: 255 seconds]
energizer has joined #pypy
energizer has quit [Remote host closed the connection]
energizer has joined #pypy
energizer has quit [Quit: Leaving]
inad924 has joined #pypy
energizer has joined #pypy
inad924 has quit [Ping timeout: 240 seconds]
nanonyme has quit [Ping timeout: 256 seconds]
tazle has quit [Ping timeout: 256 seconds]
tayfun26 has joined #pypy
jaffachief has joined #pypy
jaffachief has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lritter has joined #pypy
asmeurer has joined #pypy
tazle has joined #pypy
irclogs_io_bot has quit [Remote host closed the connection]
marself has joined #pypy
inad924 has joined #pypy
inad924 has quit [Ping timeout: 250 seconds]
irclogs_io_bot has joined #pypy
solarjoe4 has joined #pypy
inhahe_ has quit []
inhahe has joined #pypy
marr has joined #pypy
antocuni has joined #pypy
inad924 has joined #pypy
energizer has quit [Ping timeout: 246 seconds]
wleslie has joined #pypy
inad924 has quit [Ping timeout: 255 seconds]
inad924 has joined #pypy
wleslie has quit [Quit: ~~~ Crash in JIT!]
<arigato> RoseWine (logs): for me, it works if you hack back at sys.path:
<arigato> this runs with python3.5 or python3.6, and starts pypy3. Of course you need to hard-code the full sys.path you get on a normal pypy3 run.
inad924 has quit [Ping timeout: 264 seconds]
<arigato> apparently you can't ask multiprocessing to not copy sys.path
<arigato> anyway, doing something saner than multiprocessing might be possible but require quite some work
<arigato> I'm thinking about an extension module which you can import in a normal program, and which itself can "spawn" pypy threads
<arigato> it would work on CPython or on PyPy but always spawn pypy threads (possibly by importing libpypy-c.so)
<arigato> of course this is all assuming we have a solution for PyPy to run multiple entirely independent threads
lesshaste has quit [Quit: Leaving]
jamesaxl has joined #pypy
inad924 has joined #pypy
antocuni has quit [Ping timeout: 250 seconds]
tayfun26 has quit [Read error: Connection reset by peer]
jcea has joined #pypy
mcyprian has joined #pypy
mcyprian has left #pypy [#pypy]
asmeurer_____ has joined #pypy
asmeurer has quit [Ping timeout: 260 seconds]
asmeurer_____ is now known as asmeurer
mcyprian has joined #pypy
marky1991_2 has joined #pypy
tayfun26 has joined #pypy
marky1991_2 has quit [Ping timeout: 255 seconds]
jcea has quit [Quit: jcea]
jcea has joined #pypy
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
antocuni has joined #pypy
marr has quit [Ping timeout: 246 seconds]
marky1991 has joined #pypy
lritter has quit [Quit: Leaving]
dddddd has joined #pypy
lazka has joined #pypy
jamesaxl has quit [Ping timeout: 260 seconds]
jamesaxl has joined #pypy
lazka has quit [Client Quit]
marky1991 has quit [Ping timeout: 260 seconds]
Rhy0lite has joined #pypy
marr has joined #pypy
solarjoe4 has quit [Quit: Leaving]
_whitelogger has joined #pypy
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
marky1991 has quit [Ping timeout: 256 seconds]
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
Hasimir has quit [Ping timeout: 240 seconds]
<antocuni> in case anybody is interested in the behavior of the GC in a real-world scenario, I have some interesting data to show
<antocuni> first: download/unzip this PYPYLOG file from here: http://antocuni.eu/misc/controller-small.log.bz2
<antocuni> then, hg clone pypytools (you need the tip of the repo): https://bitbucket.org/antocuni/pypytools
Hasimir has joined #pypy
<antocuni> finally, launch the pypylog viewer: python -m pypytools.pypylog.view --tsc-freq=3.50Ghz controller-small.log
<antocuni> on the resulting graph, you can see minor collections, major collections and memory usage; you can click on each series on the legend to toggle visibility
<antocuni> and you can zoom by using the right button of the mouse
<antocuni> one interesting thing it shows is that near the end of a major collection, there is always one step which is very slow, up to 60 ms
<antocuni> also, another weird behavior, is that after each collection the memory drops from ~1.2GB to ~200MB, then it quickly jumps to ~700MB. Not sure what triggers such behavior, I'd expect a more slow and steady growth
marky1991 has joined #pypy
inad924 has quit [Ping timeout: 256 seconds]
inad924 has joined #pypy
inad924 has quit [Ping timeout: 240 seconds]
<tos9> hmmmmmm... I think I've seen something like that before, and also didn't really know what was happening :)
<tos9> antocuni: can you tell me how you collected that, would be interested in doing the same for my thing
dan- has quit [Ping timeout: 240 seconds]
<antocuni> tos9: PYPYLOG=gc:foo.log pypy myapp.py
<tos9> Cool, will give that a shot, and have a look at your tool
<antocuni> tos9: note that my pypylog viewer shows also JIT activity if you log that as well
<tos9> hmmmmm probably interesting, I haven't been able to get vmprof to work in awhile so maybe would want to see both
<antocuni> and you can tweak pypytools/pypylog/view.py if you need more customization
<tos9> antocuni: is that PYPYLOG=gc:gc.log,jit:jit.log ?
<antocuni> no, PYPYLOG=gc,jit:foo.log
* tos9 can probably read docs
<tos9> ah, k
<antocuni> or even: PYPYLOG=:foo.log to get everything
<antocuni> note that this produces huge logs
<antocuni> another option is to use: PYPYLOG=foo.log (without the colon)
<tos9> what kind of performance hit should I expect on that
<antocuni> this produces a log which contains only the timestamps, not the log itself; it still works in my viewer, but you loos the 'gc-minor memory' plot
<antocuni> in my experience it costs very little, but I have never done any precise measurement
<tos9> k, long as it isn't 2x it's probably fine for me
<antocuni> for my precise use case, the long GC pauses are a problem. I am thinking of starting a branch in which you can completely disable major collections, so that you can manually run them when you are not in a critical code path
<antocuni> tos9: it's definitely much less than 2x
marky1991 has quit [Ping timeout: 240 seconds]
<antocuni> tos9: PR to improve my viewer are welcome of course :)
* tos9 nods
<tos9> Cool, lemme see what hte output looks like
* antocuni afk
dan- has joined #pypy
dan- has joined #pypy
dan- has quit [Changing host]
inad924 has joined #pypy
illume has joined #pypy
mcyprian has left #pypy [#pypy]
lritter has joined #pypy
marky1991 has joined #pypy
tayfun26 has quit [Quit: tayfun26]
jacob22__ is now known as jacob22
asmeurer has quit [Quit: asmeurer]
antocuni has quit [Ping timeout: 255 seconds]
marky1991 has quit [Ping timeout: 240 seconds]
antocuni has joined #pypy
* arigato look at issue #2826
mcyprian has joined #pypy
mcyprian has quit [Ping timeout: 256 seconds]
mcyprian has joined #pypy
marr has quit [Remote host closed the connection]
<arigato> oops
<arigato> it's a merge erro from default
<arigato> error
ronan has quit [Ping timeout: 256 seconds]
inad924 has quit [Ping timeout: 240 seconds]
antocuni has quit [Ping timeout: 250 seconds]
marr has joined #pypy
user24 has joined #pypy
<kenaan> arigo py3.5 bf0a8b696526 /pypy/objspace/std/test/test_specialisedtupleobject.py: Add a failing test from issue #2826. Add also a hypothesis test that finds the problem if run a few times
<kenaan> arigo py3.5 b0d47899b958 /pypy/objspace/std/specialisedtupleobject.py: Fix issue #2826
ronan has joined #pypy
raynold has quit [Quit: Connection closed for inactivity]
mcyprian has quit [Remote host closed the connection]
<cfbolz> arigato: yes, I had a memory that we'd fixed that on default
<arigato> right, let me try to unify a bit more
<kenaan> arigo default 021cff0c0abb /pypy/objspace/std/test/test_specialisedtupleobject.py: Backport the new test
kipras`away is now known as kipras
kipras is now known as kipras`away
<kenaan> arigo default 52d2cf0086d1 /pypy/objspace/std/: unify the hash computation more with py3.5
<kenaan> arigo py3.5 e4a332215983 /: hg merge default
energizer has joined #pypy
user24 has quit [Quit: Leaving]
energizer has quit [Ping timeout: 240 seconds]
energizer has joined #pypy
lazka has joined #pypy
Taggnostr has joined #pypy
asmeurer__ has joined #pypy
tbodt has joined #pypy
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<kenaan> mwjackson default da9870c526f7 /pypy/doc/: fixes for broken parts of docs
<kenaan> mwjackson default b84ccf3ff0d6 /pypy/doc/: coalesced the 3 existing contributing docs into a single doc
<kenaan> mwjackson default 1276e6548105 /: added first contrib & deduplicated layers section
<kenaan> mwjackson default 89bbc53df999 /pypy/doc/: moved architecture overview to architecture section added short building & coding style intro
<kenaan> mwjackson default 1605da2b2315 /pypy/doc/: improved context, and source control sections
<kenaan> mwjackson default 23344fc0d549 /.hgignore: removed unnecessary hgignore lines
<kenaan> mattip default e11138105393 /pypy/doc/: fix many broken links, checked with "sphinx-build -n -b linkcheck"
<kenaan> mattip default 7513d40a257b /pypy/doc/man/pypy3.1.rst: add man page from pypy3
<kenaan> mattip default 7e57ef5dd229 /pypy/doc/: rearrange indexing, deprecate older documents
marvin has quit [Remote host closed the connection]
<mattip> hopefully the documentation rearrangement is better, it seems like it to me but who knows what is easier for beginners
<mattip> we should document -A test runners somewhere, I guess on the testing page
marvin has joined #pypy
_whitelogger has joined #pypy
asmeurer__ has quit [Quit: asmeurer__]
asmeurer_ has joined #pypy
inad924 has joined #pypy
tbodt has quit [Ping timeout: 255 seconds]
<kenaan> arigo default 662b52963394 /pypy/objspace/std/intobject.py: Document the purpose of _hash_int() more
<kenaan> arigo py3.5 6aceee434fd0 /: hg merge default
tbodt has joined #pypy
asmeurer_ has quit [Quit: asmeurer_]
lesshaste has joined #pypy
energizer has quit [Ping timeout: 240 seconds]
energizer has joined #pypy
energizer has quit [Disconnected by services]
energizer has joined #pypy
user24 has joined #pypy
energizer has quit [Disconnected by services]
energizer has joined #pypy
energizer has quit [Remote host closed the connection]
energizer has joined #pypy
energizer has quit [Disconnected by services]
energizer has joined #pypy
lritter has quit [Ping timeout: 264 seconds]
energizer has quit [Remote host closed the connection]
energizer has joined #pypy
raynold has joined #pypy
marky1991 has quit [Ping timeout: 260 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
energizer has quit [Remote host closed the connection]
lazka has quit [Quit: Leaving]
<kenaan> mattip default 82758e6d009a /pypy/doc/: start to document --runappdirect pytest option
<kenaan> mattip default d728dfde7dc1 /pypy/doc/contributing.rst: document more test requirments
kipras`away is now known as kipras
Rhy0lite has quit [Quit: Leaving]
tbodt has joined #pypy
_whitelogger has joined #pypy
marself has quit [Ping timeout: 240 seconds]
user24 has quit [Quit: Leaving]
fryguybob has quit [Remote host closed the connection]
DRMacIver is now known as DRMacIver_
DRMacIver_ is now known as DRMacIver
kipras is now known as kipras`away
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
tbodt has joined #pypy
kipras`away is now known as kipras
asmeurer_ has joined #pypy
marky1991 has quit [Read error: Connection reset by peer]
kipras is now known as kipras`away
tbodt has quit [Client Quit]
kipras`away is now known as kipras
asmeurer_ has quit [Quit: asmeurer_]
jaffachief has joined #pypy
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
tbodt has joined #pypy
kipras`away is now known as kipras
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
kipras is now known as kipras`away
kipras`away is now known as kipras
tbodt has joined #pypy
kipras is now known as kipras`away
jaffachief has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
kipras`away is now known as kipras
kipras is now known as kipras`away
Hasimir has quit [Ping timeout: 240 seconds]
Hasimir has joined #pypy
nimaje has quit [Quit: WeeChat 2.1]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
inad924 has quit [Ping timeout: 246 seconds]
commandoline has quit [Ping timeout: 256 seconds]
commandoline has joined #pypy
illume has joined #pypy
wleslie has joined #pypy
<mjacob_> wleslie: i just saw for python binding for libfirm. are you using it for any open-source projects?
<wleslie> I've started writing a pypy backend using it
<mjacob_> wleslie: let's see if it turns out to be more used than my llvm backend :)
<wleslie> you wrote a new llvm backend?
<wleslie> after I started writing, I disappeared for about a year. moved my girlfriend over, married her, set up our house, got a new job; so yeah, just getting back to free software development.
<mjacob_> wleslie: it's in the llvm-translation-backend branch
<wleslie> cool; on my to-do list (:
<mjacob_> (i didn't merge in default for a long time, but last time i tried everything worked except for one problem with threads)
<wleslie> as for python-firm; I've been using development of the tutorial to figure out what's missing from the library, once that is done I guess I'll get back to making my backend work
<wleslie> right now I am playing with some app-level stuff. I had to do it anyway but I think getting my app-level proof of concept working will encourage me to continue with my research (which the firm backend is a small part of).
<mjacob_> cool, do you have a bigger research agenda?
mjacob_ is now known as mjacob
<wleslie> I want to apply region and effect discipline to a broader range of optimisations. removing the need for garbage collection, easy parallelism of almost functional code, lazy computation of fields etc.
<mjacob> in the context of imperative programming languages?
<wleslie> yes, I especially wanted to deal with languages with first-class side effects.
<mjacob> what do you mean by "first-class side effects"?
<wleslie> you don't need anything special to write to or read from a field; only access to the object, which may be reachable from other threads..
<wleslie> and also 'external' effects, such as calls into C libraries or non-local control flow..
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<wleslie> it's just excluding the languages with strongly-typed algebraic effects and declared exceptions
<wleslie> *checked exceptions
Hasimir has quit [Ping timeout: 240 seconds]
<mjacob> i'm not sure i understand -- do you say that you want to have the advantages of, say, strongly-typed algebraic effects in languages that don't have it?
Hasimir has joined #pypy
<wleslie> I want to have some of the advantages that an optimising compiler would have when dealing with functional languages or languages with strongly-typed algebraic effects
<mjacob> ok, i think i can see where libfirm comes into play ;)
<mjacob> btw, are you familiar with the value state dependence graph?
<wleslie> it was a neat find. I wasn't looking for another compiler to a target language, but armin and fijal pushed me in that direction when I was doing some offline development (saving flowgraphs to disk and analysing them)
[Arfrever] has quit [Ping timeout: 240 seconds]
<wleslie> I am somewhat ignorant on this field of research (:
<wleslie> can't tell you what it felt like stumbling on kCFA and CFA2 for may-alias having studied region types first
<wleslie> two completely disparate fields studying an almost isomorphic concept
<mjacob> i'm pretty sure there are more examples like this ;)
<wleslie> going underground, bbl
wleslie has quit [Quit: ~~~ Crash in JIT!]
antocuni has joined #pypy
jcea has quit [Remote host closed the connection]
julius- has quit [Quit: ZNC 1.6.6+deb1 - http://znc.in]
julius has joined #pypy
wleslie has joined #pypy
<wleslie> so these seem to represent memory dependencies the same way we do in firm; but handle control differently
<wleslie> honestly I would like a better way to handle control than we do in firm, but I'm not sure if this is it.
<mjacob> this is the implementation of the same concept as the VSDG in firm
<mjacob> too bad that this thesis is in german: https://pp.ipd.kit.edu/publication.php?id=liebe11diplomarbeit
<mjacob> (i'm very sceptical about the usefulness of these loop nodes in most versions of the VSDG, but there are variants without it)