We want the format to be compact, but quickly searchable.
For it to be compact, it needs to have variable sized entries so that we can store common (small) offsets compactly, but handle large offsets if needed.
For it to be searchable quickly, we need to support binary search giving us log(n) performance in all cases.
-Binary search typically assumes fixed size entries, but that is not necesary, as long as we can identify the start of an entry.
+Binary search typically assumes fixed size entries, but that is not necessary, as long as we can identify the start of an entry.
It is worth noting that the size (end-start) is always smaller than the end, so we encode the entries as:
start, size, target, depth, push-lasti
BaseException_dealloc(PyBaseExceptionObject *self)
{
PyObject_GC_UnTrack(self);
- // bpo-44348: The trashcan mecanism prevents stack overflow when deleting
+ // bpo-44348: The trashcan mechanism prevents stack overflow when deleting
// long chains of exceptions. For example, exceptions can be chained
// through the __context__ attributes or the __traceback__ attribute.
Py_TRASHCAN_BEGIN(self, BaseException_dealloc)
flo = 0;
++fhi;
if (fhi >> 28) {
- /* And it also progagated out of the next 28 bits. */
+ /* And it also propagated out of the next 28 bits. */
fhi = 0;
++e;
if (e >= 2047)
* would still work without any stack errors), but there are some constructs
* that limit jumping:
*
- * o Any excpetion handlers.
+ * o Any exception handlers.
* o 'for' and 'async for' loops can't be jumped into because the
* iterator needs to be on the stack.
* o Jumps cannot be made from within a trace function invoked with a
* and merge adjacent runs on the stack with greater power. See listsort.txt
* for more info.
*
- * It's the caller's responsibilty to push the new run on the stack when this
+ * It's the caller's responsibility to push the new run on the stack when this
* returns.
*
* Returns 0 on success, -1 on error.
return PyObject_RichCompareBool(v, w, Py_LT);
}
-/* Homogeneous compare: safe for any two compareable objects of the same type.
+/* Homogeneous compare: safe for any two comparable objects of the same type.
* (ms->key_richcompare is set to ob_type->tp_richcompare in the
* pre-sort check.)
*/
extension on most platforms, but not all, and there's no uniform spelling
on the platforms that support it.
-- Integer divison on an integer type twice as wide as needed to hold the
+- Integer division on an integer type twice as wide as needed to hold the
list length. But the latter is Py_ssize_t for us, and is typically the
widest native signed integer type the platform supports.
As noted above, even the simplest Python comparison triggers a large pile of
C-level pointer dereferences, conditionals, and function calls. This can be
partially mitigated by pre-scanning the data to determine whether the data is
-homogenous with respect to type. If so, it is sometimes possible to
+homogeneous with respect to type. If so, it is sometimes possible to
substitute faster type-specific comparisons for the slower, generic
PyObject_RichCompareBool.
/*
* Alignment of addresses returned to the user. 8-bytes alignment works
- * on most current architectures (with 32-bit or 64-bit address busses).
+ * on most current architectures (with 32-bit or 64-bit address buses).
* The alignment value is also used for grouping small requests in size
* classes spaced ALIGNMENT bytes apart.
*
/* Optimization: When the other set is more than 8 times
larger than the base set, replace the other set with
- interesection of the two sets.
+ intersection of the two sets.
*/
if ((PySet_GET_SIZE(other) >> 3) > PySet_GET_SIZE(so)) {
other = set_intersection(so, other);
#endif
/* INT_MAX is the theoretical largest chunk (or INT_MAX / 2 when
- transcoding from UTF-16), but INT_MAX / 4 perfoms better in
+ transcoding from UTF-16), but INT_MAX / 4 performs better in
both cases also and avoids partial characters overrunning the
length limit in MultiByteToWideChar on Windows */
#define DECODING_CHUNK_SIZE (INT_MAX/4)
_Py_error_handler error_handler;
error_handler = get_error_handler_wide(config->filesystem_errors);
if (error_handler == _Py_ERROR_UNKNOWN) {
- PyErr_SetString(PyExc_RuntimeError, "unknow filesystem error handler");
+ PyErr_SetString(PyExc_RuntimeError, "unknown filesystem error handler");
return -1;
}
Returns NULL, or a pointer that should be freed.
XXX - this code is pretty strange, as it used to also
- work on Win16, where the buffer sizes werent available
+ work on Win16, where the buffer sizes were not available
in advance. It could be simplied now Win16/Win32s is dead!
*/
static wchar_t *
/* Normal mode of operation: return a new token when asked in interactie mode */
IUNDERFLOW_NORMAL,
/* Forcefully return ENDMARKER when asked for a new token in interactive mode. This
- * can be used to prevent the tokenizer to promt the user for new tokens */
+ * can be used to prevent the tokenizer to prompt the user for new tokens */
IUNDERFLOW_STOP,
};