Skip to content

Instantly share code, notes, and snippets.

View cloudwu's full-sized avatar

云风 cloudwu

View GitHub Profile
@cloudwu
cloudwu / searchpath.lua
Created November 6, 2015 05:31
Lua version package.searchpath
local DIRSEP, PATSEP, MARK = package.config:match "(.-)\n(.-)\n(.-)\n"
MARK = MARK:gsub(".", function (c) return "%" .. c end)
-- todo: replace your own readable function
local function readable(filename)
local f = io.open(filename)
if f then
f:close()
return true
end
@cloudwu
cloudwu / mymod.user.lua
Created October 26, 2015 12:05
user defined loader
local M = {}
function M.test(...)
print(...)
end
return M
@cloudwu
cloudwu / testtun.lua
Last active September 23, 2017 09:58
A timeout tunnel service (skynet)
local skynet = require "skynet"
require "skynet.manager"
local mode = ...
if mode == "slave" then
skynet.start(function()
skynet.dispatch("lua", function(session, address, ti, ...)
if session == 0 then
@cloudwu
cloudwu / inject.lua
Last active March 28, 2023 16:33
Inject code with locals and upvalues
local FUNC_TEMP=[[
local $ARGS
return function(...)
$SOURCE
end,
function()
return {$LOCALS}
end
]]
local index_cache = setmetatable({} , { __mode = "k" })
local meta = {}
function meta.__newindex(t, k, v)
index_cache[t] = nil
rawset(t, k, v)
end
function meta.__pairs(t)
@cloudwu
cloudwu / mq.c
Last active July 12, 2021 09:00
concurrence fifo queue
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define QSZ (1 << 10)
#define QMSK (QSZ - 1)
struct queue {
volatile uint32_t head;
@cloudwu
cloudwu / testescape.lua
Last active August 28, 2021 09:10
Test escape
--[[
In windows 7 64, Intel i5-2500 CPU @ 3.30 GHz
$ lua testescape.lua old
Total string 44128
use time: 0.197
use mem: 18130.474609375
$ lua testescape.lua new
@cloudwu
cloudwu / sslice.c
Last active November 5, 2015 10:13
make string to slices
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct sslice {
const char *ptr;
size_t sz;
};
int
@cloudwu
cloudwu / testcjson.lua
Created July 28, 2014 12:15
test cjson
-- cjson is clone from https://github.com/mpx/lua-cjson/
-- time lua testcjson.lua 1 1000000 (decode : 15.57s)
-- time lua testcjson.lua 1000000 1 (encode : 19.53s)
local cjson = require "cjson"
local ab = {
person = {
{
name = "Alice",
@cloudwu
cloudwu / testreconnect.lua
Last active August 29, 2015 14:04
test reconnect gate
package.cpath = "luaclib/?.so"
local socket = require "clientsocket"
local crypt = require "crypt"
local input = {}
local function readpackage()
local line = table.remove(input, 1)
if line then