<- Back
Comments (24)
- kscarletIt seems that JIT is overloaded with at least 2 meaning.The canonical definition of JIT is "compilation during execution of a program". Usually, a program is being interpreted first, then switches to compiled code in the middle of execution. This is not what this article does.What this article does is sometimes called on-the-fly AOT, or just on-the-fly compilation. I'd prefer not overloading the term "JIT".
- senkoAh, I thought this was going to be about a JITted BASIC. No such luck.
- possiblywrongFollowing is the closed form solution linked in the article (from a since-deleted Reddit comment): from functools import reduce def recurrence(ops, a0, n): def transform(x, op): return eval(repr(x) + op) ops = ops.split() m = reduce(transform, [op for op in ops if op[0] in ('*', '/')], 1) b = reduce(transform, ops, 0) for k in range(n + 1): print('Term 0: ', a0 * m ** k + b * (m ** k - 1) / (m - 1)) > This is really only interesting if a particular (potentially really large) term of the sequence is desired, as opposed to all terms up to a point. The key observation is that any sequence of the given set of operations reduces to a linear recurrence which has the given solution.
- mananaysiempre> On x86-64, pages may be 4kB, 2MB, or 1GBBut I believe sysconf(_SC_PAGESIZE) will always be 4KB, because the “may” is at the user’s discretion, not the system’s. Except on Cosmopolitan where it will always be 64KB, because Windows NT for Alpha (yes, seriously).
- MobiusHorizonsIs it just me or is the author using static wrong? Someone mentioned it in the thread on the previous post, where it felt more like an oversight. But in this article it seems much more like an actual misunderstanding. Should it actually be the function level static variable? I feel like in the right context the optimizer might be able to leave that in a register if there the calling function is in the compilation unit.
- the-smug-oneMan, I friggin despise how hard (in a very not fun way) generating x86 assembly is :-). Generating Aarch64 is a lot easier.