mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-10-24 10:10:59 +00:00
Actually Portable Python is now outperforming the Python binaries
that come bundled with Linux distros, at things like HTTP serving.
You can now have a fully featured Python install in just one .com
file that runs on six operating systems and is about 10mb in size.
With tuning, the tiniest is ~1mb. We've got most of the libraries
working, including pysqlite, and the repl now feels very pleasant.
The things you can't do quite yet are: threads and shared objects
but that can happen in the future, if the community falls in love
with this project and wants to see it developed further. Changes:
- Add siginterrupt()
- Add sqlite3 to Python
- Add issymlink() helper
- Make GetZipCdir() faster
- Add tgamma() and finite()
- Add legacy function lutimes()
- Add readlink() and realpath()
- Use heap allocations when appropriate
- Reorganize Python into two-stage build
- Save Lua / Python shell history to dotfile
- Integrate Python Lib embedding into linkage
- Make isregularfile() and isdirectory() go faster
- Make Python shell auto-completion work perfectly
- Make crash reports work better if changed directory
- Fix Python+NT open() / access() flag overflow error
- Disable Python tests relating to \N{LONG NAME} syntax
- Have Python REPL copyright() show all notice embeddings
The biggest technical challenge at the moment is working around
when Python tries to be too clever about filenames.
34 lines
944 B
C
34 lines
944 B
C
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_REPARSEDATABUFFER_H_
|
|
#define COSMOPOLITAN_LIBC_NT_STRUCT_REPARSEDATABUFFER_H_
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
struct NtReparseDataBuffer {
|
|
uint32_t ReparseTag;
|
|
uint16_t ReparseDataLength;
|
|
uint16_t Reserved;
|
|
union {
|
|
struct {
|
|
uint16_t SubstituteNameOffset;
|
|
uint16_t SubstituteNameLength;
|
|
uint16_t PrintNameOffset;
|
|
uint16_t PrintNameLength;
|
|
uint32_t Flags;
|
|
char16_t PathBuffer[1];
|
|
} SymbolicLinkReparseBuffer;
|
|
struct {
|
|
uint16_t SubstituteNameOffset;
|
|
uint16_t SubstituteNameLength;
|
|
uint16_t PrintNameOffset;
|
|
uint16_t PrintNameLength;
|
|
char16_t PathBuffer[1];
|
|
} MountPointReparseBuffer;
|
|
struct {
|
|
uint8_t DataBuffer[1];
|
|
} GenericReparseBuffer;
|
|
};
|
|
};
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_LIBC_NT_STRUCT_REPARSEDATABUFFER_H_ */
|