Skip to content

Instantly share code, notes, and snippets.

View piscisaureus's full-sized avatar
🦕

Bert Belder piscisaureus

🦕
View GitHub Profile
2011-05-12 03:27:43 <piscisaureus> How will you do stuff like fs.read when we're using liboio?
2011-05-12 03:27:50 <ryah> can we rename to libxx ?
2011-05-12 03:28:07 <piscisaureus> fien
2011-05-12 03:28:09 <piscisaureus> fine
2011-05-12 03:28:24 <ryah> sed is broken on my macintosh
2011-05-12 03:28:26 <ryah> :/
2011-05-12 03:28:44 <piscisaureus> maybe rename oio_buf to oio_buf_t too
2011-05-12 03:28:49 <ryah> oh, nevermind
2011-05-12 03:31:52 <ryah> xx is a way cooler name
2011-05-12 03:32:18 <piscisaureus> yeah but http://code.google.com/p/libxx/
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
piscisaureus@test:~/334240 (master) $ cat bla
bla
piscisaureus@test:~/334240 (master) $ cat test.php
<?php
D:\>v8-svn\build\Debug\d8 test.js --print_code --print_code_verbose --code_comments --nouse_inlining
--- Raw source ---
var counter = 0;
function it() {
if (counter > 100000) return;
return ++counter;
}
function call_iota() {
LD_LIBRARY_PATH=/root/node/out/Release/lib.host:/root/node/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../.; mkdir -p /root/node/out/Release/obj.target/node/src; dtrace -G -xnolibs -s src/node_provider.d "/root/nod
e/out/Release/obj.target/node/src/node_dtrace.o" -o "/root/node/out/Release/obj.target/node/src/node_dtrace_provider.o"
./gyp-sun-tool flock /root/node/out/Release/linker.lock g++ -rdynamic -m32 -pthreads -Wl,--dynamic-list=../deps/openssl/export/unix/openssl.sym -Wl,-z,allextract -o /root/node/out/Release/node -Wl,--start-group /root/node/out/Release/obj
.target/node/src/fs_event_wrap.o /root/node/out/Release/obj.target/node/src/cares_wrap.o /root/node/out/Release/obj.target/node/src/handle_wrap.o /root/node/out/Release/obj.target/node/src/node.o /root/node/out/Release/obj.target/node/src/n
ode_buffer.o /root/node/out/Release/obj.target/node/src/node_constants.o /root/node/out/Release/obj.target/node/src/node_extensions.o /root/node/out/Release/obj.target/node/src/node
D:\node4>vcbuild.bat release x64 test
{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'clang': 0,
'host_arch': 'ia32',
'node_install_npm': 'true',
'node_prefix': '',
% time seconds usecs/call calls function
------ ----------- ----------- --------- --------------------
60.92 694.154838 224 3090523 pthread_getspecific
15.85 180.634891 277 650932 pthread_mutex_lock
13.25 150.958049 231 650932 pthread_mutex_unlock
2.63 29.967062 164 182587 memcpy
1.35 15.381315 346 44350 malloc
1.05 12.002619 226 52927 free
0.97 11.050119 279 39472 memmove
0.71 8.072805 680 11869 sem_post
void* sync_fetch_and_set_ptr(void* volatile* target, void* new_value)
{
void* previous_value;
int retry;
__asm__ volatile(
"1: ldrex %0, [%1];"
" strex %3, %2, [%1];"
" teq %3, #0;"
" bne 1b;"
:"=r"(previous_value)
typedef struct {
int fds[2];
} lamelock_t;
void lamelock_release(lamelock_t* lock);
int lamelock_init(lamelock_t* lock) {
char data = 42;
LIBRARY openssl
EXPORTS
"ACCESS_DESCRIPTION_free"
"ACCESS_DESCRIPTION_it"
"ACCESS_DESCRIPTION_new"
"AES_bi_ige_encrypt"
"AES_cbc_encrypt"
"AES_cfb128_encrypt"
"AES_cfb1_encrypt"
"AES_cfb8_encrypt"