X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2FTODO;h=c6249c120ffae245c683ed8ca5a97e81568f5995;hb=9b6bef920da10d33e6fcd43c1bc06cf528f4f507;hp=b67b9d90cac4d8f339e30aa68b98c4b8d929ef58;hpb=84500b84beb8a03298beaf731d36faee5323b4d5;p=sbcl.git diff --git a/contrib/sb-posix/TODO b/contrib/sb-posix/TODO index b67b9d9..c6249c1 100644 --- a/contrib/sb-posix/TODO +++ b/contrib/sb-posix/TODO @@ -1,4 +1,4 @@ -1) optional arguments +1) optional arguments (e.g. OPEN) 3) partial list of section 2 manpages from Debian Linux box: functions we may want to consider interfaces for. Some of the obviously @@ -7,192 +7,53 @@ have the ones we've already got bindings for, but even so, inclusion in this list does _not_ imply we've definitely decided something needs adding. -FD_CLR -FD_ISSET -FD_SET -FD_ZERO -accept -acct -adjtime -adjtimex -bdflush -bind -break -brk -cacheflush -capget -capset -chroot -clone -connect -creat -create_module -delete_module -execve -exit -fcntl -fdatasync -flock -fork -fstat -fstatfs -fsync -ftime -ftruncate -getcontext -getdents -getdomainname -getdtablesize -getgroups -gethostid -gethostname -getitimer -getpagesize -getpeername -getpriority -getrlimit -getrusage -getsockname -getsockopt -gettimeofday -gtty -idle -init_module -ioctl -ioctl_list -ioperm -iopl -listen -llseek -lock -lseek -lstat -madvise -mincore -mknod -mlock -mlockall -mmap -modify_ldt -mount -mprotect -mpx -mremap -msgctl -msgget -msgop -msgrcv -msgsnd -msync -munlock -munlockall -munmap -nanosleep -nice -open -pause -pipe -poll -prctl -pread -prof -profil -pselect -ptrace -pwrite -query_module -quotactl -read -readdir -readlink -readv -reboot -recv -recvfrom -recvmsg -rename -rmdir -sbrk -sched_get_priority_max -sched_get_priority_min -sched_getparam -sched_getscheduler -sched_rr_get_interval -sched_setparam -sched_setscheduler -sched_yield -select -semctl -semget -semop -send -sendfile -sendmsg -sendto -setcontext -setdomainname -setgroups -sethostid -sethostname -setitimer -setpgrp -setpriority -setrlimit -setsid -setsockopt -settimeofday -sgetmask -shmat -shmctl -shmdt -shmget -shmop -shutdown -sigaction -sigaltstack -sigblock -siggetmask -sigmask -signal -sigpause -sigpending -sigprocmask -sigreturn -sigsetmask -sigsuspend -sigvec -socket -socketcall -socketpair -ssetmask -stat -statfs -stime -stty -swapoff -swapon -symlink -sync -syscalls -sysctl -sysfs -sysinfo -syslog -time -times -truncate -ulimit -umask -umount -uname -ustat -utime -utimes -vfork -vhangup -wait -wait3 -wait4 -waitpid -write -writev +FD_CLR FD_ISSET FD_SET FD_ZERO accept acct adjtime adjtimex bdflush +bind break brk cacheflush capget capset chroot clone connect +create_module delete_module execve exit flock +fstatfs ftime getcontext getdents getdomainname +getdtablesize getgroups gethostid gethostname getitimer +getpeername getpriority getrlimit getrusage getsockname getsockopt +gettimeofday gtty idle init_module ioctl_list ioperm iopl listen +llseek lock madvise mincore mknod mlock mlockall +modify_ldt mount mprotect mpx mremap msgctl msgget msgop msgrcv msgsnd +munlock munlockall nanosleep nice pause poll +prctl pread prof profil pselect ptrace pwrite query_module quotactl +read readlink readv reboot recv recvfrom recvmsg +sbrk sched_get_priority_max sched_get_priority_min sched_getparam +sched_getscheduler sched_rr_get_interval sched_setparam +sched_setscheduler sched_yield select semctl semget semop send +sendfile sendmsg sendto setcontext setdomainname setgroups sethostid +sethostname setitimer setpgrp setpriority setrlimit setsid setsockopt +settimeofday sgetmask shmat shmctl shmdt shmget shmop shutdown +sigaction sigaltstack sigblock siggetmask sigmask signal sigpause +sigpending sigprocmask sigreturn sigsetmask sigsuspend sigvec socket +socketcall socketpair ssetmask statfs stime stty swapoff swapon +syscalls sysctl sysfs sysinfo times +ulimit umount uname ustat vfork vhangup wait3 +wait4 write writev + +4) In the spec but not implemented: + +- buffers + +5) fill out TODO/TBD stuff in the spec + +6) sort out exports. All interface functions, all constants, all + type coercion functions + +7) variable-length functions > like execvp()? Do they take a list, or +vector or either? "Either" sounds good. Which is to say, a sequence. + +8) In some cases, errno is used for "normal" exit, not just for +exceptional exit. For example, EINTR, EAGAIN, reading or writing big +buffers, etc... It may be more efficient to just compare two integers +than going thru an exception mechanism that will be invoked everytime. + +9) proper alien definitions of structures [ possibly an sb-grovel +problem, but the way we define calls exposes the problem -- see +readdir() ] [ isn't this done? ] + +10) some functions (e.g. fdatasync, putenv) have a return value which +is purely an error indicator. Currently we're returning the 0 on +success, but maybe it would make more sense for them to return +(values).