Results 984 comments of Nathaniel J. Smith

The main purpose the limit exists in the first place is to prevent attackers trying to perform memory exhaustion attacks or trigger super-linear parsing times. I wasn't thinking much about...

The thing is that we want to allow ``` connection.receive_data(b"POST / HTTP/1.0\r\n" + b"Content-Length: 1000000000\r\n\r\n" + one_gb_of_chars) connection.next_event() ``` This is a totally normal, legit HTTP transaction, and forcing users...

There are two challenges: - There's no guarantee that all your packages will be installed into a single `site-packages/` directory. There are lots of ways to set up a Python...

Well, one could argue that that proposal will actually reduce complexity, because if extras are just packages with funny names then we can throw away most of the code for...

Like I mentioned in chat: this might be a good idea, but I think it's hard to tell right now. The unknowns for me are: - how much trouble does...

So yeah having slept on this a bit I think I'd be fine with a reworked version of this PR that issued the deprecation at the point of spawning a...

I'm not sure cancelling the system nursery is a great idea... until now, we had an invariant that system tasks would only be cancelled (a) after the main task exited,...

Maybe possibly we could do something like this? ```python async def init(self, async_fn, args): async with open_nursery() as system_nursery: self.system_nursery = system_nursery async with open_nursery() as main_task_nursery: #####

I like the overall approach. I wonder if we can simplify it though? In particular having 4 different protection states seems like a lot. - "This and all its callees...

The immediate fix here is almost certainly to force the manylinux compilers to default to `-march=x86-64` somehow, given that the current `-march=x86-64-v2` default is, empirically, breaking stuff. Longer term maybe...