373 karma · joined July 17, 2020
f/1;#/+
is parsed differently depending on the day. On Friday it's [ "f", "/1;#/", "+" ]
Other days it's parsed as [ "f", "/", "1", ";" ].Perl is parsing /1;#/ is a regex based on whether f takes arguments. Otherwise it parses the slash as division and then the hash is a comment.
Another example could be:
foo() {
some_func / 1;#/; die "It died"
foo
}
Which depends on some_func to not halt. some_func could come from another file, set by whoever invokes the current file. Whatever, it's determed at runtime.This leads to a proof that perl is a actually impossible to parse.
https://www.perlmonks.org/?node_id=663393
Which means you can't do a lot of static tooling on perl because you just can't analyses the source accurately. (Compared to say python, which parses source before running it)
I know why (I think there's some bs about not running HDCP over DVI even though it's basically HDMI in most Configs) But it was bizzare to actually see it.
Or it could just be these tweets: https://twitter.com/lilly_wachowski/status/12621047544963399...
Things like signals, file locking and mmap are still pretty important. Even if your using dbus. (Eg use dbus to share a file and mmap it)
1: By exists I mean a public API. Even some APIs that aren't intended to be used by applications have documentation. Eg: RtlGenRandom.
Going forward extensions in the Chrome Web store will have to use Manifest v3. Which has less capabilities than previous version. Which will stop ad blockers working.
tl;dr. Ad blockers will not longer be possible in Chrome.
https://googleprojectzero.blogspot.com/2014/08/the-poisoned-...
But they didn't really compensate for exploiting this to do things that were actually impossible. (ie speed hacks)