Skip to content

Instantly share code, notes, and snippets.

View marijnh's full-sized avatar

Marijn Haverbeke marijnh

View GitHub Profile
<html>
<body>
<script>
var frame = document.createElement("IFRAME");
frame.src = "javascript:false";
document.body.appendChild(frame);
var win = frame.contentWindow;
win.document.open();
win.document.write("<html><body>XX<script>document.write('YY');<\/script></body></html>");
win.document.close();
@marijnh
marijnh / gist:865862
Created March 11, 2011 13:14
Rust Makefile issue
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for x86_64-pc-linux-gnu
Reading makefiles...
Reading makefile `Makefile'...
cfg: building on Linux x86_64
import std._vec;
import std._str;
import std.option;
import middle.ty;
import front.ast;
import util.common;
// Compact string representation for ty.t values. API ty_str & parse_from_str.
// (The second has to be authed pure.) Extra parameters are for converting
// to/from def_ids in the string rep. Whatever format you choose should not
@marijnh
marijnh / phpsimple.js
Created March 26, 2011 20:47
non-embedded PHP mode for codemirror
(function() {
function keywords(str) {
var obj = {}, words = str.split(" ");
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
return obj;
}
var phpKeywords =
keywords("abstract and array as break case catch cfunction class clone const continue declare " +
"default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends " +
"final for foreach function global goto if implements interface instanceof namespace " +
cc1plus: warnings being treated as errors
In file included from ./src/rt/rust_internal.h:48,
from ./src/rt/rust.cpp:1:
./src/rt/sync/lock_free_queue.h: In member function ‘bool lock_free_queue<T>::compare_and_swap(lock_free_queue<T>::pointer_t*, lock_free_queue<T>::pointer_t*, lock_free_queue<T>::pointer_t) [with T = rust_message*]’:
./src/rt/sync/lock_free_queue.h:154: instantiated from ‘void lock_free_queue<T>::enqueue(T) [with T = rust_message*]’
./src/rt/rust_message.h:119: instantiated from here
./src/rt/sync/lock_free_queue.h:91: error: dereferencing type-punned pointer will break strict-aliasing rules
make: *** [rt/rust.o] Error 1
tag name { long(str); short(char); }
fn main() {
if (long("Abc") == long("Def")) {
log_err "ARGH";
}
}
commit ff98487d35883e8a55827c992da9c2f43fa55068
Author: Marijn Haverbeke <marijnh@gmail.com>
Date: Thu Apr 28 14:20:35 2011 +0200
stab at taking/dropping function args
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 3e316ab..335b706 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@marijnh
marijnh / gist:1006016
Created June 3, 2011 07:44
deftable example
(defclass test-data ()
((id :col-type serial :initarg :id :accessor test-id)
(a :col-type (or (varchar 100) db-null) :initarg :a :accessor test-a)
(b :col-type boolean :col-default nil :initarg :b :accessor test-b))
(:metaclass dao-class)
(:table-name dao-test)
(:keys id))
(deftable test-data
tag a {
left(int);
right(bool);
}
fn sabotage(@rec(mutable a foo) x) {
x.foo = left(0);
}
fn main() {
(gdb) bt
#0 0xf7fdf430 in __kernel_vsyscall ()
#1 0xf6d02ea1 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xf6d062ce in abort () at abort.c:92
#3 0xf6cfb7c8 in __assert_fail (assertion=0xf7b3b818 "Ty && \"Invalid GetElementPtrInst indices for type!\"",
file=0xf7b3b544 "/home/marijn/prog/llvm/include/llvm/Instructions.h", line=703, function=0xf7dc5540 "llvm::Type* llvm::checkGEPType(llvm::Type*)")
at assert.c:81
#4 0xf7a045b1 in llvm::IRBuilder<true, llvm::ConstantFolder, llvm::IRBuilderDefaultInserter<true> >::CreateInBoundsGEP(llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::Twine const&) () from /home/marijn/src/rust/stage1/librustllvm.so
#5 0xf6b9f068 in ?? ()
#6 0x79543a3a in ?? ()