Repository navigation
Releases: aletheia-works/paludarium
Releases · aletheia-works/paludarium
Release list
v0.9.0
Features
- kernel: answer FIGETBSZ with the block size stat gives (#219) (a02aa65)
- kernel: exchange UDP datagrams between guest sockets on the loopback (#222) (fcbe7e8)
- kernel: serve TCP on the guest's own loopback with bind, listen and accept (#221) (ae21376)
- kernel: shut a UDP socket down as Linux does (#223) (69eceac)
v0.8.0
v0.7.0
Features
- kernel: answer DNS over TCP, and mark truncated datagram answers (#212) (2db3387)
- kernel: let epoll_wait note full sockets on its ready list, as Linux does (#213) (5f62cb4)
- kernel: pass the sender's pidfd on socket pairs with SO_PASSPIDFD (#214) (13c85b1)
- kernel: send O_ASYNC signals from TCP and UDP sockets as Linux does (#208) (7736739)
v0.6.0
Features
- kernel: add setsockopt, getsockopt and F_SETOWN with SIGURG for socket pairs (#191) (5f8a90e)
- kernel: answer FIOCLEX, FIONCLEX, FIOASYNC and FIOQSIZE for every file (#204) (4b999cb)
- kernel: answer FIONREAD and SIOCOUTQ for pipes, socket pairs and files (#203) (693372a)
- kernel: connect guests over TCP and resolve names through the host (#206) (7c10f79)
- kernel: implement chown, fchown, lchown and fchownat with owners kept in memory (#177) (f413946)
- kernel: keep a stream's out-of-band byte as Linux's AF_UNIX does (#190) (4b1a508)
- kernel: limit socket waits with SO_RCVTIMEO and SO_SNDTIMEO (#192) (6c4dc2f)
- kernel: map files shared and writable through a page cache (#179) (aa2988f)
- kernel: pass credentials over socket pairs with SO_PASSCRED and SCM_CREDENTIALS (#195) (e39d5da)
- kernel: pass descriptors over socket pairs with sendmsg, recvmsg and SCM_RIGHTS (#174) (462728a)
- kernel: raise SIGBUS past the end of a mapped file and let mremap grow file mappings (#182) (9f90be8)
- kernel: send SIGIO for O_ASYNC pipes and sockets, with F_SETSIG and F_SETOWN_EX (#194) (52dfa5f)
- kernel: send stream writes on socket pairs in parts, as Linux does (#197) (af30315)
- kernel: show the page cache in private file mappings until they write a page (#183) (3f90f18)
- kernel: take MSG_PEEK, MSG_WAITALL, MSG_TRUNC and the other socket flags (#189) (7c93b84)
- kernel: take SO_RCVLOWAT and SO_PEEK_OFF on socket pairs (#196) (b4a6757)
- kernel: timestamp socket pair messages with SO_TIMESTAMP and SO_TIMESTAMPNS (#198) (c537639)
- mmu: share private pages on fork until either process writes them (#185) (67fedd9)
- wasm: give Node.js guests the network that the network option allows (#207) (9bf18c3)
Bug Fixes
- kernel: let fchmod and fchown change pipes and sockets (#178) (9a78192)
- kernel: restart read, recv and send after a SA_RESTART handler (#193) (462c9db)
- kernel: send O_ASYNC signals as Linux does for waiting readers and full buffers (#199) (ed9db62)
- kernel: take addresses and flags in sendto and recvfrom as sendmsg and recvmsg do (#176) (f8f3169)
- loader: let MADV_DONTNEED read a read-only segment from the executable again (#186) (2430f0a)
Performance Improvements
v0.5.0
Features
- host: take SEEK_DATA, SEEK_HOLE and st_blocks of mounted host files from the host (#163) (74ea9d5)
- kernel: add /dev with the memory devices and the fd links (#134) (edd867c)
- kernel: add /proc/self/fd (#132) (8497261)
- kernel: add close_range (#126) (9eea6a3)
- kernel: add copy_file_range and sendfile (#124) (4767b1d)
- kernel: add fallocate (#129) (14d1f45)
- kernel: add getpriority and setpriority (#130) (451c824)
- kernel: add memfd_create and file seals (#131) (efd4d97)
- kernel: add rt_sigqueueinfo and rt_tgsigqueueinfo, so signals carry their siginfo (#160) (7dce9e5)
- kernel: add setsid and getsid, and check sessions in setpgid (#127) (6d435cb)
- kernel: add statx (#125) (214c4ad)
- kernel: enforce RLIMIT_FSIZE on regular file writes, as Linux does (#123) (7599e14)
- kernel: enforce RLIMIT_NOFILE on descriptor numbers, as Linux does (#122) (ec0593f)
- kernel: resume a timed futex wait a stop interrupts through restart_syscall (#115) (59e271f)
- kernel: share signal dispositions between processes cloned with CLONE_SIGHAND (#118) (19c13ea)
- kernel: write a core file and report CLD_DUMPED, as Linux's default core_pattern does (#159) (957b761)
- let embedders limit a guest's tasks and open files (#147) (0bc9509)
- runtime: limit guest memory as a cgroup's memory.max (#171) (fa85c44)
- vfs: keep files sparse as tmpfs does, with st_blocks and SEEK_DATA/SEEK_HOLE (#161) (edda9c6)
Bug Fixes
- kernel: discard a signal's pending instances when sigaction makes it ignored (#149) (00bb0d5)
- kernel: give a signal's sender in si_pid, as Linux does (#157) (bd0a7b4)
- kernel: keep process signals in one queue, so they arrive in Linux's order (#164) (54627f7)
- kernel: kill every other process when the first one exits, as init does (#158) (eee7c06)
- kernel: make the host's stdin readable only with input or at its end, as Linux does (#166) (0692004)
- kernel: read only the low 32 bits of clone's flags, as Linux does (#119) (fd67a10)
- kernel: reap a child at once when its parent ignores SIGCHLD or set SA_NOCLDWAIT (#148) (b054148)
- kernel: refuse setpgid for an exec'd child and count zombies in groups (#128) (9657e13)
- kernel: reparent the children of an exiting process as Linux does (#151) (070c776)
- kernel: send kill to a process group or to every process, as Linux does (#156) (3d853cb)
- kernel: send SIGHUP and SIGCONT to a stopped process group that an exit orphans (#155) (46a6e28)
- linux-dev: give each checkout its own build volumes, so runs never mix crates (#162) (7ed6017)
- loader: lay out ELF segments as Linux does, so MADV_DONTNEED resets .data and .bss (#143) (706e888)
- mmu: read a private file mapping from its file again after MADV_DONTNEED (#138) (6bd4c04)
- release: require the restored aube steps in the wasm acceptance evidence (#120) (53d5e23)
v0.4.0
Features
- kernel: add pause and rt_sigsuspend (#110) (710a5bf)
- kernel: add ppoll, select and pselect6 (#111) (d6af0d6)
- kernel: add pread64, pwrite64, readv, preadv and pwritev (#108) (aece79c)
- kernel: fill SIGCHLD's siginfo with the child's PID, status and CLD_* code (#105) (5dfaa6f)
- kernel: restart a blocking syscall that a stop interrupts, as Linux does (#106) (785bab0)
- kernel: resume timed sleeps and polls a stop interrupts through restart_syscall (#112) (49754ec)
- wasm: raise the per-file limit to 128 MiB, so an 83.5 MB biome fits (#114) (d2dbab1)
Bug Fixes
v0.3.0
Features
- cli: say which fault killed the guest, and list ENOSYS calls with --report-enosys (#77) (fcf35a2)
- cpu: add the scalar single-precision SSE instructions and the memory fences (#100) (3f66e9a)
- decode prefetch hints and add madvise, uname, sched_getaffinity and the user ID calls (#73) (2d6a36f)
- kernel: add access, sysinfo, getgroups, sched_yield, resource limits and process groups (#79) (500e47b)
- kernel: add AF_UNIX SOCK_SEQPACKET socket pairs, which Rust std needs to spawn by fork (#81) (456ebda)
- kernel: add clone3, running it as the clone it describes (#91) (b043a2a)
- kernel: add F_SETPIPE_SZ and F_GETPIPE_SZ, so brush's here-docs work (#94) (ca84510)
- kernel: add getrusage and /proc/self/status, so brush's umask and time work (#93) (4c85461)
- kernel: add mremap and msync (#87) (e7aa8de)
- kernel: add POSIX timers, rt_sigtimedwait and prctl, so uutils timeout works (#82) (0eecf77)
- kernel: add PR_SET_NAME/PR_GET_NAME and SIGEV_THREAD_ID timers (#90) (4455898)
- kernel: add SOCK_DGRAM socket pairs, and raise SIGPIPE only for SOCK_STREAM (#89) (c9aaef0)
- kernel: add statfs, fstatfs and a generated mount table, so df works (#83) (bf3c08e)
- kernel: add the CPU-time clocks, clock_getres, times and real getrusage values (#97) (21d615d)
- kernel: add timerfd_create, timerfd_settime and timerfd_gettime (#103) (eaddf00)
- kernel: add umask, the chmod family, utimensat, fsync/fdatasync, sync and fadvise64 (#78) (d167272)
- kernel: add waitid, pidfd_open and pidfd_send_signal, and wait by process group (#92) (31f91d3)
- kernel: map files with mmap as a copy, so ripgrep searches through a memory map (#84) (e396b68)
- kernel: report stopped and continued children to wait4 and waitid, and add rt_sigpending (#101) (115e933)
- wasm: build a filesystem from snapshot entries, with directories, symlinks and hard links (#99) (c039391)
Bug Fixes
v0.2.0
⚠ BREAKING CHANGES
- jit: the u14-cost-profile feature of paludarium-cpu, paludarium-jit and paludarium-runtime (published in 0.1.1) is now cost-profile.