From 1c99d0cae017fbda0d424f71309e3d53329599fb Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 14 Apr 2010 21:50:30 -0700 Subject: [PATCH] update libc to use FUNCTION: and FUNCTION-ALIAS: --- basis/libc/libc.factor | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/basis/libc/libc.factor b/basis/libc/libc.factor index 27d7555d67..5495ec2705 100644 --- a/basis/libc/libc.factor +++ b/basis/libc/libc.factor @@ -2,15 +2,18 @@ ! Copyright (C) 2007, 2010 Slava Pestov ! Copyright (C) 2007, 2008 Doug Coleman ! See http://factorcode.org/license.txt for BSD license. -USING: alien alien.c-types assocs continuations alien.destructors kernel -namespaces accessors sets summary destructors destructors.private ; +USING: alien alien.c-types alien.syntax assocs continuations +alien.destructors kernel namespaces accessors sets summary +destructors destructors.private ; IN: libc -: errno ( -- int ) - int "factor" "err_no" { } alien-invoke ; +LIBRARY: factor -: set-errno ( int -- ) - void "factor" "set_err_no" { int } alien-invoke ; +FUNCTION-ALIAS: errno + int err_no ( ) ; + +FUNCTION-ALIAS: set-errno + void set_err_no ( int err-no ) ; : clear-errno ( -- ) 0 set-errno ; @@ -18,17 +21,19 @@ IN: libc : preserve-errno ( quot -- ) errno [ call ] dip set-errno ; inline -: (malloc) ( size -- alien ) - void* "libc" "malloc" { ulong } alien-invoke ; +LIBRARY: libc -: (calloc) ( count size -- alien ) - void* "libc" "calloc" { ulong ulong } alien-invoke ; +FUNCTION-ALIAS: (malloc) + void* malloc ( ulong size ) ; -: (free) ( alien -- ) - void "libc" "free" { void* } alien-invoke ; +FUNCTION-ALIAS: (calloc) + void* calloc ( ulong count, ulong size ) ; -: (realloc) ( alien size -- newalien ) - void* "libc" "realloc" { void* ulong } alien-invoke ; +FUNCTION-ALIAS: (free) + void free ( void* alien ) ; + +FUNCTION-ALIAS: (realloc) + void* realloc ( void* alien, ulong size ) ; : free ( alien -- ) >c-ptr [ delete-malloc ] [ (free) ] bi ; -: memcpy ( dst src size -- ) - void "libc" "memcpy" { void* void* ulong } alien-invoke ; +FUNCTION: void memcpy ( void* dst, void* src, ulong size ) ; -: memcmp ( a b size -- cmp ) - int "libc" "memcmp" { void* void* ulong } alien-invoke ; +FUNCTION: int memcmp ( void* a, void* b, ulong size ) ; : memory= ( a b size -- ? ) memcmp 0 = ; -: strlen ( alien -- len ) - size_t "libc" "strlen" { c-string } alien-invoke ; +FUNCTION: size_t strlen ( c-string alien ) ; DESTRUCTOR: free DESTRUCTOR: (free)