Skip to content

Instantly share code, notes, and snippets.

@klutzy
klutzy / Makefile
Last active August 29, 2015 13:56
rust struct abi
all: c.dll rs.exe cl.exe hand.exe
c.dll: c.c
gcc -shared -o $@ $<
rs.exe: rs.rs
rustc --opt-level=0 -Z no-opt -L . $< -o rs.ll --emit ir
rustc --opt-level=0 -Z no-opt -L . $< -o rs.s --emit asm
rustc --opt-level=0 -Z no-opt -L . $< -o $@ -C save-temps
@klutzy
klutzy / hello.rs
Last active August 29, 2015 14:05
// let's build rust program with msvc linker!
#![feature(intrinsics, lang_items)]
#![no_std]
#![no_main]
// (this is not required for msvc, but for "standard" build.)
#[no_mangle]
pub extern "C" fn rust_stack_exhausted() {}
@klutzy
klutzy / main.rs
Last active December 23, 2015 12:19
for extern "C++"
extern mod syntax;
extern mod rustc;
pub use syntax::ast;
pub use rustc::middle::ty;
pub use rustc::middle::ty::t;
fn cpp_arg_mangle(arg: t) -> ~str {
let arg = ty::get(arg);
match arg.sty {
@klutzy
klutzy / gist:7351873
Last active December 27, 2015 15:59
test code for mingw / libuv / _CRT_NON_CONFORMING_SWPRINTFS
// test code for mingw / libuv / _CRT_NON_CONFORMING_SWPRINTFS
// compare result with libuv built with different configurations:
// $ make
// $ make CFLAGS="-D_CRT_NON_CONFORMING_SWPRINTFS"
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include "uv.h"
@klutzy
klutzy / generate.py
Created November 10, 2013 05:32
android-design-ko: mirror -> mirror-converted 변환 스크립트
#-*- encoding: utf8 -*-
import os
import shutil
from lxml import html
def parse(text):
h = html.fromstring(text)
content = h.get_element_by_id('content')
ret = u''
@klutzy
klutzy / gist:7447208
Created November 13, 2013 10:56
rust `make check` on mingw-w64 (32bit)
$ make check
...
failures:
[run-pass] run-pass/extern-pass-TwoU64s-ref.rs
[run-pass] run-pass/extern-pass-TwoU64s.rs
[run-pass] run-pass/extern-return-TwoU64s.rs
[run-pass] run-pass/glob-std.rs
[run-pass] run-pass/linkage-visibility.rs
@klutzy
klutzy / gist:7450792
Created November 13, 2013 15:21
cur dir race
use std::os;
use std::io;
use std::io::fs;
fn main() {
let tmp_path = os::tmpdir();
for i in range(0u, 20u) {
let path = tmp_path.join(i.to_str());
do spawn {
io::result(|| fs::mkdir(&path, io::UserRWX));
@klutzy
klutzy / gist:7459581
Created November 14, 2013 01:16
rustpkg test failure on windows
$ make check-stage2-T-i686-pc-mingw32-H-i686-pc-mingw32-rustpkg
cfg: build triple i686-pc-mingw32
cfg: host triples i686-pc-mingw32
cfg: target triples i686-pc-mingw32
cfg: enabling more debugging (CFG_ENABLE_DEBUG)
cfg: host for i686-pc-mingw32 is i386
cfg: os for i686-pc-mingw32 is pc-mingw32
cfg: using gcc
cfg: disabling valgrind due to its unreliability on this platform
@klutzy
klutzy / gist:7627128
Created November 24, 2013 13:12
rust on mingw-w64: 64-bit / 32-bit comparison
# win64; host = target = x86_64-w64-mingw32
$ rustc.exe ~/stone/rust/src/libstd/lib.rs -Z time-passes
time: 25.673 s parsing
time: 0.136 s gated feature checking
time: 0.051 s std macros injection
time: 0.209 s configuration 1
time: 17.854 s expansion
time: 0.322 s configuration 2
time: 0.304 s maybe building test harness
time: 0.000 s std injection
@klutzy
klutzy / hello.windows.rs
Created December 6, 2013 07:45
Rust with Emscripten and win32.js
// From rust get `libstd/libc.rs` to the working dir.
// From rust-windows <https://github.com/klutzy/rust-windows>
// copy whole `ll/` dir to the working dir and
// patch some code: (TODO)
// From win32.js <https://github.com/klutzy/win32.js>, copy
// `library_win32.js` and `window.js` to working dir.
//
// emscripten uses le32-unknown-nacl triple but rustc doesn't know it now.
// So just use similar target instead.
// Here I use `win32` because libc.rs needs it.