Skip to content

onlyuser/Sandbox

Repository files navigation

Build Status

Sandbox

Copyright (C) 2011-2017 mailto:onlyuser@gmail.com

About

Sandbox is a collection of experimental code and tutorials.

Currently, it includes the following:

  • test_backtrace -- test for backtrace
  • test_c -- test for c-language curiosities
  • test_coroutine -- test for coroutine
  • test_fork -- test for fork
  • test_functor -- test for stl functor
  • test_lexyacc -- test for Lex-Yacc
  • test_llvm -- test for LLVM
  • test_math -- test for math libraries
  • test_ncurses -- test for ncurses
  • test_opengl -- test for OpenGL
  • test_pipe -- test for pipe
  • test_pthread -- test for pthread
  • test_regex -- test for posix regex
  • test_ticpp -- test for ticpp
  • test_tinyxml -- test for tinyxml
  • test_tokenize -- test for stl tokenize
  • test_variant -- test for boost variant
  • test_visitor -- test for visitor pattern

Requirements

Unix tools and 3rd party components (accessible from $PATH):

gcc boost llvm ticpp tinyxml coroutine

Environment variables:

  • $EXTERN_INCLUDE_PATH:

      where "coroutine/coroutine.h" resides
      where "ticpp/ticpp.h" resides
      where "tinyxml/tinyxml.h" resides
      
  • $EXTERN_LIB_PATH -- where "libticppd.a" resides

Make Targets

target action
all make binaries
test all + run tests
clean remove all intermediate files

References

"Coroutines in C"
http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
"Function Objects"
http://www.sgi.com/tech/stl/functors.html
"Lex & Yacc Tutorial"
http://epaperpress.com/lexandyacc/
"Kaleidoscope: Implementing a Language with LLVM"
http://llvm.org/docs/tutorial/index.html
"ticpp"
http://code.google.com/p/ticpp/
"tinyxml"
http://sourceforge.net/projects/tinyxml/
"Chapter 34. Boost.Variant"
http://www.boost.org/doc/libs/1_52_0/doc/html/variant.html
"Cooperative VisitorIFace: A Template Technique for VisitorIFace Creation"
http://www.artima.com/cppsource/cooperative_visitor.html
"Stack Backtracing Inside Your Program"
http://www.linuxjournal.com/article/6391
"Listing 3. Using the SA_SIGINFO Option"
http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/063/6391/6391l3.html
"How to generate a stacktrace when my gcc C++ app crashes"
http://stackoverflow.com/questions/77005/how-to-generate-a-stacktrace-when-my-gcc-c-app-crashes/77336#77336
"C++ Code Snippet - Print Stack Backtrace Programmatically with Demangled Function Names"
http://panthema.net/2008/0901-stacktrace-demangled/
"How it's better to invoke gdb from program to print its stacktrace?"
http://stackoverflow.com/questions/3151779/how-its-better-to-invoke-gdb-from-program-to-print-its-stacktrace/4611112#4611112
"Stack trace for C++ using gcc"
http://stackoverflow.com/questions/4636456/stack-trace-for-c-using-gcc/4732119#4732119
"How do you capture a group with regex?"
http://stackoverflow.com/questions/2577193/how-do-you-capture-a-group-with-regex
"Universal References in C++11 - Scott Meyers"
http://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers
"POSIX thread (pthread) libraries"
http://www.cs.cmu.edu/afs/cs/academic/class/15492-f07/www/pthreads.html
"Setting up an OpenGL development environment in Ubuntu Linux"
http://www.codeproject.com/Articles/182109/Setting-up-an-OpenGL-development-environment-in-Ub
"The Official Guide to Learning OpenGL, Version 1.1 - Chapter 1 - Introduction to OpenGL"
http://www.glprogramming.com/red/chapter01.html
"OpenGL Programming/Modern OpenGL Introduction"
http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Introduction
"Anton's OpenGL 4 Tutorials"
http://antongerdelan.net/opengl/
"OpenGL Mathematics (GLM) - A C++ mathematics library for graphics programming - Code samples"
http://glm.g-truc.net/0.9.4/code.html
"NCURSES Programming HOWTO"
http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
"Most vexing parse"
https://en.wikipedia.org/wiki/Most_vexing_parse
"How to get file descriptor of buffer in memory?"
http://stackoverflow.com/questions/1558772/how-to-get-file-descriptor-of-buffer-in-memory

Keywords

stl, boost, functor, Lex, Yacc, OpenGL, glm, LLVM, visitor, variant, tinyxml, ticpp, regex, backtrace, Scott Meyer's "Most Vexing Parse", pipe