Skip to content

Instantly share code, notes, and snippets.

View malkia's full-sized avatar

Dimiter 'malkia' Stanev malkia

View GitHub Profile
@malkia
malkia / dotkey.lua
Created June 6, 2012 23:04
Returns the value of a dot encoded key from the table t
local dotkey = {}
----------------------------------------------------------
-- Returns the value of a dot encoded key from the table t
-- Returns nil if the key is not found.
-- Example: local t = { one = { two = 12 } }
-- print( dotkey.get( t, "one.two" ) ) -- prints 12
function dotkey.get(t, key)
local b, s, p = string.byte, string.sub, 1
for i=1, key:len()+1 do
@malkia
malkia / lua51-x86-msvcrt.imports
Created June 6, 2012 00:36
Imports of all msvcrt.dll functions from lua51.dll
_CIcosh
_CIsinh
_CItanh
_XcptFilter
__CxxFrameHandler
__badioinfo
__dllonexit
__lc_codepage
__lc_collate_cp
__lc_handle
@malkia
malkia / winxp-sp3-msvcrt.exports
Created June 6, 2012 00:33
Windows XP 2002 Professional MSVCRT.DLL exports (depends c:\windows\system32\msvcrt.dll)
__non_rtti_object::__non_rtti_object(class __non_rtti_object const &)
__non_rtti_object::__non_rtti_object(char const *)
bad_cast::bad_cast(char const * const *)
bad_cast::bad_cast(char const * const &)
bad_cast::bad_cast(class bad_cast const &)
bad_cast::bad_cast(char const *)
bad_typeid::bad_typeid(class bad_typeid const &)
bad_typeid::bad_typeid(char const *)
exception::exception(char const * const &)
exception::exception(class exception const &)
@malkia
malkia / safe_array.lua
Created April 24, 2012 17:18 — forked from stevedonovan/safe_array.lua
This defines an array with strict bounds checking. It is also impossible to set any existing index to a nil value, so the array remains free of holes. The table functions will not work on such arrays because they are userdata, giving an extra layer of pro
local function out_of_range(i,n)
if type(i) == 'number' then
if i > 0 and i <= n then return true
else error('out of range',3)
end
else
error 'cannot index array by non-number type'
end
end
@malkia
malkia / .emacs
Created April 11, 2012 22:34
.emacs
(server-start)
(require 'package)
(package-initialize)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
@malkia
malkia / tenzo.lua
Created April 11, 2012 18:50
tenzo
-- Reads a dotted key from t
local function read(t, key)
local b,s,l = string.byte,string.sub,1
for i=1, key:len()+1 do
local c = b(key, i)
if c==nil or c==46 then
if l==i then
error( "Invalid key: [" .. tostring(key) .. "] at character position: " .. tostring(l) )
end
t,l = type(t)~="table" and nil or t[s(key, l, i-1)],i+1
@malkia
malkia / hack.sh
Created April 1, 2012 04:25 — forked from erikh/hack.sh
OSX For Hackers
#!/usr/bin/env sh
##
# This is script with usefull tips taken from:
# https://github.com/mathiasbynens/dotfiles/blob/master/.osx
#
# install it:
# curl -sL https://raw.github.com/gist/2108403/hack.sh | sh
#
@malkia
malkia / platforms.build
Created March 31, 2012 09:37
another build primer
+win # MSVC Compilers
-host.win ERROR="No cross compiling possible outside Windows (yet there is some WINE stuff..."
+host.win
+host.win.vs2005 +host.win.vs2008 +host.win.vs2010 +host.win.vs2011
INIT="c:/Prorams Files/.../setvars32.cmd"
+host.win.sdk ERROR="Not Finished yet"
+host.win.wdk
WDK=`wdk-location.cmd`
CL=${WDK}/bin/cl.exe
@malkia
malkia / ten20.txt
Created March 27, 2012 02:09
ten20 examples
+webos.pre lib
+webos.pixi lib
+webos.emul lib
# ten20 sample +webos.pre
# Pre-Build (p4 edit, other)
# Build
# Post-Build (copy, post build)
@malkia
malkia / luajit.lib.build
Created March 20, 2012 15:50
build script
+ffi="Enable he FFI extension. Disabling it would reduce the size of the LuaJIT executable. But please consider that the FFI library is compiled-in, but NOT loaded by default. It only allocates any memory, if you actually make use of it"
-lua52compat="Enable some upwards-compatible features from Lua 5.2 that are unlikely to break existing code (e.g. __pairs). Note that this does not provide"
+jit="Enable the JIT compiler, disabling it would turn LuaJIT into a pure interpreter"
+sse2="x86 only: use SSE2 instead of x87 instructions in the interpreter"
+cmov="Enable the use of CMOV and FCOMI*/FUCOMI* instructions in the interpreter. Disable it only if you intend to use REALLY ANCIENT CPUs (before Pentium Pro, or on the VIA C3). This generally slows down the interpreter. Don't bother if your OS wouldn't run on them, anyway."
+nummode1="Some architectures (e.g. PPC) can use either single-number (+nummode1) or dual-number (+nummode2) mode. Please see LJ_ARCH_NUMMODE in lj_arch.h for details."
+nummode2=-nummode1
-s