Skip to content

Instantly share code, notes, and snippets.

@klutzy
klutzy / build-rust.sh
Last active March 9, 2024 13:38
rust cross-build script: mingw -> mingw-w64
#!/bin/sh
# this assumes you are using mingw-w64 platform.
# if not, add --linker=x86_64-w64-mingw32-g++.exe option
TARGET=x86_64-w64-mingw32
RUST_ROOT=/c/home/stone/rust
# copy mingw runtime dlls to the dir to prevent dll hell.
@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.rs
Last active April 26, 2016 19:15
Rust with Emscripten
// emscripten uses le32-unknown-nacl triple but rustc doesn't know it now.
// So just use similar target instead.
// `rustc hello.rs --target=i686-unknown-linux --emit-llvm -S --cfg libc`
// `emcc hello.ll -o hello.js`
// no `extern mod`.
#[no_std];
#[feature(macro_rules)];
use core::container::Container;
@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.