Skip to content

Instantly share code, notes, and snippets.

View olsonjeffery's full-sized avatar
💭
:3

Jeff Olson olsonjeffery

💭
:3
View GitHub Profile
@olsonjeffery
olsonjeffery / gist:1895065
Created February 23, 2012 21:08
mingw32 build errors...
$ LD_LIBRARY_PATH=/mingw/lib make
gcc -L./ -L/mingw/lib -I/mingw/include -I./../libuv/include test_case.c -luv -o
test
.//libuv.a(handle.o): In function `uv_close':
c:\src\libuv/src/win/handle.c:89: undefined reference to `shutdown@8'
c:\src\libuv/src/win/handle.c:93: undefined reference to `closesocket@4'
c:\src\libuv/src/win/handle.c:115: undefined reference to `closesocket@4'
.//libuv.a(udp.o): In function `uv_udp_getsockname':
c:\src\libuv/src/win/udp.c:47: undefined reference to `getsockname@12'
c:\src\libuv/src/win/udp.c:49: undefined reference to `WSAGetLastError@0'
@olsonjeffery
olsonjeffery / Makefile
Created February 25, 2012 00:26
libuv behavior wrt un_ref()'d uv_async_t handle with pending sends before uv_run()
win:
g++ -I../libuv/include test_case.c ../rust/src/libuv/uv.a -lws2_32 -lm -lIphlpapi -lpsapi -o test
linux:
g++ -I../rust/src/libuv/include test_case.c ../rust/src/libuv/uv.a -lpthread -lm -lnsl -lrt -o test
@olsonjeffery
olsonjeffery / gdb_barf.txt
Created February 27, 2012 14:38
build error in 2008r2 64bit when doing make check
$ PATH=":$PATH:i686-pc-mingw32/stage1/bin" gdb --args i686-pc-mingw32/stage1/bi
n/rustc.exe --target=i686-pc-mingw32 -o i686-pc-mingw32/stage1/bin/rustc/i686-p
c-mingw32/bin/core.dll ../src/libcore/core.rc && touch i686-pc-mingw32/stage1/b
in/rustc/i686-pc-mingw32/bin/core.dll
GNU gdb (GDB) 7.3.1
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:82:4: 97:5 error: internal compiler error: create_function: expected a resource ctor here
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:82 new(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader,
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:83 ftype: file_type) {
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:84 let tok0 = lexer::next_token(rdr);
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:85 let span0 = ast_util::mk_sp(tok0.chpos, rdr.chpos);
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:86 self.sess = sess;
/home/jeff/src/rust/src/librustsyntax/parse/parser.rs:87 self.cfg = cfg;
...
make: *** [x86_64-unknown-linux-gnu/stage0/lib/rustc/x86_64-unknown-linux-gnu/lib/librustsyntax.so] Error 101
jeff@mbp ~/src/rust/build $
# Adapted, by Jeff Olson, from:
# Scraping Made Easy with jQuery and SelectorGadget
# (http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga)
# by David Trejo
#
# Install node.js and npm:
# http://joyeur.com/2010/12/10/installing-node-and-npm/
# Then run
# npm install jsdom jquery http-agent
# node numresults.js
==16928== Thread 8:
==16928== Invalid read of size 8
==16928== at 0x535DFB4: cc::irc::compute_ircs(rust_task*, std::map<rust_opaque_box*, unsigned long, std::less<rust_opaque_box*>, std::allocator<std::pair<ru
st_opaque_box* const, unsigned long> > >&) (rust_cc.cpp:232)
==16928== by 0x535E7B7: cc::do_cc(rust_task*) (rust_cc.cpp:520)
==16928== by 0x535E8BC: cc::do_final_cc(rust_task*) (rust_cc.cpp:533)
==16928== by 0x53440CA: cleanup_task(cleanup_args*) (rust_task.cpp:118)
==16928== by 0x536C4F8: ??? (in /home/jeff/src/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/librustrt.so)
==16928== Address 0x6e24d08 is 8 bytes inside a block of size 48 free'd
==16928== at 0x4C282E0: free (vg_replace_malloc.c:366)
jeff@mbp ~/src/rust/build $ RUST_LOG=rustc=0,::rt::backtrace,std::net make check-stage1-std TESTNAME=test_gl_tcp_server_fail
cfg: shell host triple x86_64-unknown-linux-gnu
cfg: disabling rustc optimization (CFG_DISABLE_OPTIMIZE)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX)
cfg: unix-y environment
cfg: using gcc
cfg: no llnextgen found, omitting grammar-verification
cfg: including dist rules
cfg: including test rules
(gdb) bt
#0 upcall_fail (expr=0x3637200 "option none",
file=0x7ffff68af400 "/home/rustbuild/src/rustbot/workspace-snap-stage3-x86_64-unknown-linux-gnu/src/src/rustc/rustc.rc", line=1)
at /home/rustbuild/src/rustbot/workspace-snap-stage3-x86_64-unknown-linux-gnu/src/src/rt/rust_upcall.cpp:127
#1 0x00007ffff65a23e5 in map::chained::hashmap::get2628::_191dee61c5c2b4b1::_02 ()
from /home/jeff/src/rust/build/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-688fa7810161fd45-0.2.so
#2 0x00007ffff686ad09 in metadata::encoder::encode_info_for_mod::_1bdda841a04eb8ae::_02 ()
from /home/jeff/src/rust/build/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-688fa7810161fd45-0.2.so
#3 0x00007ffff686d3ae in metadata::encoder::encode_info_for_item::_d29582ccc85e2441::_02 ()
from /home/jeff/src/rust/build/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-688fa7810161fd45-0.2.so
@olsonjeffery
olsonjeffery / gist:3387303
Created August 18, 2012 15:02
failure doing make check-stage1-core
gdb --args x86_64-unknown-linux-gnu/stage1/bin/rustc --cfg stage1 --target=x86_64-unknown-linux-gnu -o x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore.so /home/jeff/src/rust/src/libcore/core.rc && touch x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore.so
break on upcall_fail ...
(gdb) bt
#0 upcall_fail (expr=0x7fffec1035b0 "connection closed", file=0x7ffff76ac940 "/home/jeff/src/rust/src/libcore/option.rs", line=179)
at /home/jeff/src/rust/src/rt/rust_upcall.cpp:96
#1 0x00007ffff4f56801 in rust_upcall_fail (expr=0x7fffec1035b0 "connection closed", file=0x7ffff76ac940 "/home/jeff/src/rust/src/libcore/option.rs",
line=179) at /home/jeff/src/rust/src/rt/rust_upcall.cpp:108
#2 0x00007ffff76985f7 in rt::rustrt::rust_upcall_fail::_96f05ec2f2882f7a::_03 ()
@olsonjeffery
olsonjeffery / gist:3420097
Created August 21, 2012 22:47
minimal test case to repro future_result pipe failure..
use std;
import task::spawn;
import io::println;
import new_future = future::spawn;
fn main() {
println("hello world!");
do spawn {
println("inside the deal");
};