assorted-commits Mailing List for Assorted projects (Page 53)
Brought to you by:
yangzhang
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(9) |
Dec
(12) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(86) |
Feb
(265) |
Mar
(96) |
Apr
(47) |
May
(136) |
Jun
(28) |
Jul
(57) |
Aug
(42) |
Sep
(20) |
Oct
(67) |
Nov
(37) |
Dec
(34) |
2009 |
Jan
(39) |
Feb
(85) |
Mar
(96) |
Apr
(24) |
May
(82) |
Jun
(13) |
Jul
(10) |
Aug
(8) |
Sep
(2) |
Oct
(20) |
Nov
(31) |
Dec
(17) |
2010 |
Jan
(16) |
Feb
(11) |
Mar
(17) |
Apr
(53) |
May
(31) |
Jun
(13) |
Jul
(3) |
Aug
(6) |
Sep
(11) |
Oct
(4) |
Nov
(17) |
Dec
(17) |
2011 |
Jan
(3) |
Feb
(19) |
Mar
(5) |
Apr
(17) |
May
(3) |
Jun
(4) |
Jul
(14) |
Aug
(3) |
Sep
(2) |
Oct
(1) |
Nov
(3) |
Dec
(2) |
2012 |
Jan
(3) |
Feb
(7) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
(4) |
Aug
(5) |
Sep
(2) |
Oct
(3) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(9) |
Apr
(5) |
May
|
Jun
(2) |
Jul
(1) |
Aug
(10) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
(3) |
Mar
(3) |
Apr
(1) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(5) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <yan...@us...> - 2008-03-05 06:10:46
|
Revision: 602 http://assorted.svn.sourceforge.net/assorted/?rev=602&view=rev Author: yangzhang Date: 2008-03-04 22:10:46 -0800 (Tue, 04 Mar 2008) Log Message: ----------- moved setup.bash to project root Added Paths: ----------- simple-build/trunk/setup.bash Removed Paths: ------------- simple-build/trunk/src/setup.bash Copied: simple-build/trunk/setup.bash (from rev 593, simple-build/trunk/src/setup.bash) =================================================================== --- simple-build/trunk/setup.bash (rev 0) +++ simple-build/trunk/setup.bash 2008-03-05 06:10:46 UTC (rev 602) @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +pkg=simple-build +. simple-setup.bash + +install_strip bin/ src/googlecode_upload.py +install bin/ src/{build.bash,capture-javac-deps,out/simple-build} +install share/$pkg/ src/build-templates Deleted: simple-build/trunk/src/setup.bash =================================================================== --- simple-build/trunk/src/setup.bash 2008-03-05 05:49:10 UTC (rev 601) +++ simple-build/trunk/src/setup.bash 2008-03-05 06:10:46 UTC (rev 602) @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -pkg=simple-build -. simple-setup.bash - -install_strip bin/ googlecode_upload.py -install bin/ build.bash capture-javac-deps out/simple-build -install share/$pkg/ build-templates This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-05 05:49:10
|
Revision: 601 http://assorted.svn.sourceforge.net/assorted/?rev=601&view=rev Author: yangzhang Date: 2008-03-04 21:49:10 -0800 (Tue, 04 Mar 2008) Log Message: ----------- updated chew Modified Paths: -------------- numa-bench/trunk/src/build numa-bench/trunk/src/chew.bash numa-bench/trunk/src/chew.cc Modified: numa-bench/trunk/src/build =================================================================== --- numa-bench/trunk/src/build 2008-03-04 06:31:56 UTC (rev 600) +++ numa-bench/trunk/src/build 2008-03-05 05:49:10 UTC (rev 601) @@ -1,8 +1,7 @@ chew: srcs: [chew.cc] - libs: [pthread] + libs: [pthread, numa] avail: srcs: [avail.cc] libs: [pthread] - Modified: numa-bench/trunk/src/chew.bash =================================================================== --- numa-bench/trunk/src/chew.bash 2008-03-04 06:31:56 UTC (rev 600) +++ numa-bench/trunk/src/chew.bash 2008-03-05 05:49:10 UTC (rev 601) @@ -2,42 +2,67 @@ set -o errexit -o nounset -make -s chew-opt +reps=3 -function run { - for i in {1..3} - do out/chew-opt "$@" +make -s chew-dbg + +run() { + for i in {1..$reps} + do out/chew-dbg "$@" done } +K=000 M=000000 G=000000000 KB=000 MB=000000 GB=000000000 -# ncpus size nreps shuffle par pin local write cross rrnodes nnodes ncpus +# ncpus size opcount nreps shuffle par pin local write cross rrnodes nnodes ncpus -echo writes -run 16 100$MB 1 0 0 1 0 1 0 1 4 16 -run 16 1000$MB 1 0 0 1 0 1 0 1 4 16 -run 16 100$MB 10 0 0 1 0 1 0 1 4 16 -run 16 100$MB 1 1 0 1 0 1 0 1 4 16 +if true ; then -echo reads -run 16 1000$MB 1 0 0 1 0 0 0 1 4 16 -run 16 100$MB 1 1 0 1 0 0 0 1 4 16 +#echo writes +#run 16 100$MB 100$M 1 0 0 1 0 1 0 1 4 16 +#run 16 1000$MB 1000$M 1 0 0 1 0 1 0 1 4 16 +#run 16 100$MB 100$M 10 0 0 1 0 1 0 1 4 16 +#run 16 1000$GB 100$M 1 1 0 1 0 1 0 1 4 16 +# +#echo reads +#run 16 1000$MB 100$M 1 0 0 1 0 0 0 1 4 16 +#run 16 1000$MB 10$M 1 1 0 1 0 0 0 1 4 16 for n in 1 2 4 8 12 16 ; do echo par - run $n 10$MB 1 0 1 1 0 0 0 1 4 16 - run $n 10$MB 1 1 1 1 0 0 0 1 4 16 - run $n 10$MB 1 0 1 1 1 0 0 1 4 16 - run $n 10$MB 1 1 1 1 1 0 0 1 4 16 - run $n 10$MB 1 0 1 1 0 1 0 1 4 16 - run $n 10$MB 1 1 1 1 0 1 0 1 4 16 - run $n 10$MB 1 0 1 1 1 1 0 1 4 16 - run $n 10$MB 1 1 1 1 1 1 0 1 4 16 + run $n 1000$MB 10$M 1 0 1 1 0 0 0 1 4 16 + run $n 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 + run $n 1000$MB 10$M 1 0 1 1 1 0 0 1 4 16 + run $n 1000$MB 10$M 1 1 1 1 1 0 0 1 4 16 + run $n 1000$MB 10$M 1 0 1 1 0 1 0 1 4 16 + run $n 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 + run $n 1000$MB 10$M 1 0 1 1 1 1 0 1 4 16 + run $n 1000$MB 10$M 1 1 1 1 1 1 0 1 4 16 - echo cross - run $n 10$MB 1 0 1 1 0 0 1 1 4 16 - run $n 10$MB 1 1 1 1 0 0 1 1 4 16 - run $n 10$MB 1 0 1 1 0 1 1 1 4 16 - run $n 10$MB 1 1 1 1 0 1 1 1 4 16 +# echo cross +# run $n 1000$MB 10$M 1 0 1 1 0 0 1 1 4 16 +# run $n 1000$MB 10$M 1 1 1 1 0 0 1 1 4 16 +# run $n 1000$MB 10$M 1 0 1 1 0 1 1 1 4 16 +# run $n 1000$MB 10$M 1 1 1 1 0 1 1 1 4 16 done + +else + +#run 1 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 +#run 2 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 +#run 3 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 +#run 4 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 +#run 8 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 +#run 12 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 +#run 16 1000$MB 10$M 1 1 1 1 0 1 0 1 4 16 + +run 1 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 +#run 2 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 +#run 3 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 +#run 4 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 +#run 8 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 +#run 12 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 +run 16 1000$MB 10$M 1 1 1 1 0 0 0 1 4 16 + +fi Modified: numa-bench/trunk/src/chew.cc =================================================================== --- numa-bench/trunk/src/chew.cc 2008-03-04 06:31:56 UTC (rev 600) +++ numa-bench/trunk/src/chew.cc 2008-03-05 05:49:10 UTC (rev 601) @@ -3,6 +3,8 @@ #include <sched.h> +#include <numa.h> + #include <boost/bind.hpp> #include <commons/check.h> @@ -15,8 +17,12 @@ using namespace commons; using namespace std; -pthread_barrier_t cross_barrier; +// TODO Make into command line flags? +const bool debug = false, pretouch = false, do_warmup = false, use_numa = false; +pthread_barrier_t cross_barrier, startup_barrier; pthread_mutex_t iomutex; +void*** partitions; +int global_sum; struct config { @@ -31,6 +37,11 @@ const size_t size; /** + * The number of operations. + */ + const unsigned int opcount; + + /** * Number of repetitions to chew. */ const unsigned int nreps; @@ -86,16 +97,25 @@ const unsigned int ncpus; }; -void*** partitions; -int global_sum; +void * +alloc(size_t sz) +{ + return use_numa ? numa_alloc_local(sz) : malloc(sz); +} +void +dealloc(void *p, size_t sz) +{ + return use_numa ? numa_free(p, sz) : free(p); +} + /** * \param p The buffer to chew. * \param config The experiment configuration. * \param len Length of the buffer. */ void -chew1(void* pp, config config, size_t len) +chew1(void* pp, config config, size_t len, unsigned int seed) { int* p = (int*) pp; const size_t count = len / sizeof(int); @@ -104,14 +124,14 @@ // TODO: see these with random numbers generated from a global (serial) rand // NOTE: Using rand as the index assumes that rand generates large-enough // values. - posix_rand rand(current_time_millis() ^ gettid()); + posix_rand rand(current_time_millis() ^ gettid() ^ seed); if (config.write) { // Write to the region. if (config.shuffle) { // Random access into the memory region. for (unsigned int c = 0; c < config.nreps; c++) { - for (size_t i = 0; i < count; i++) { + for (size_t i = 0; i < config.opcount; i++) { int r = rand(); sum += p[r % count] += r; } @@ -119,7 +139,7 @@ } else { // Sequential scan through the memory region. for (unsigned int c = 0; c < config.nreps; c++) { - for (size_t i = 0; i < count; i++) { + for (size_t i = 0; i < config.opcount; i++) { sum += p[i] += rand(); } } @@ -129,14 +149,14 @@ if (config.shuffle) { // Random access into the memory region. for (unsigned int c = 0; c < config.nreps; c++) { - for (size_t i = 0; i < count; i++) { + for (size_t i = 0; i < config.opcount; i++) { sum += p[rand() % count]; } } } else { // Sequential scan through the memory region. for (unsigned int c = 0; c < config.nreps; c++) { - for (size_t i = 0; i < count; i++) { + for (size_t i = 0; i < config.opcount; i++) { sum += p[i] + rand(); } } @@ -166,7 +186,29 @@ pin_thread(cpu); } - void* p = config.local ? malloc(config.size) : pp; + void* p = config.local ? alloc(config.size) : pp; + if (pretouch) { + int *is = (int*) p; + for (size_t i = 0; i < config.size / sizeof(int); i++) { + is[i] = i; + } + int sum = 0; + for (size_t i = 0; i < config.size / sizeof(int); i++) { + sum += is[i]; + } + global_sum += sum; + } + if (debug) { + check(pthread_mutex_lock(&iomutex) == 0); + cout << worker << " alloc " << p << endl; + check(pthread_mutex_unlock(&iomutex) == 0); + } + if (!warmup) { + int barrier_result = pthread_barrier_wait(&startup_barrier); + check(barrier_result == PTHREAD_BARRIER_SERIAL_THREAD || + barrier_result == 0); + } + posix_rand rand(current_time_millis()); timer t(": "); if (!warmup && config.cross) { @@ -180,10 +222,10 @@ // TODO: make this more interesting than just a sequential traversal over // the partitions. for (unsigned int i = 0; i < config.nworkers; i++) { - chew1(partitions[i][worker], config, len); + chew1(partitions[i][worker], config, len, rand()); } } else { - chew1(p, config, config.size); + chew1(p, config, config.size, rand()); } // Print the elapsed time and "result". @@ -193,7 +235,7 @@ t.print(); check(pthread_mutex_unlock(&iomutex) == 0); - if (config.local) free(p); + if (config.local) dealloc(p, config.size); return NULL; } @@ -206,8 +248,8 @@ if (argc < 13) { cerr << argv[0] << - " <nworkers> <size> <nreps> <shuffle> <par> <pin>" - " <local> <write> <rrnodes> <nnodes>" << endl; + " <nworkers> <size> <opcount> <nreps> <shuffle> <par> <pin>" + " <local> <write> <rrnodes> <nnodes> <ncpus>" << endl; return 1; } @@ -224,12 +266,14 @@ atoi(argv[ 9]), atoi(argv[10]), atoi(argv[11]), - atoi(argv[12]) + atoi(argv[12]), + atoi(argv[13]) }; cout << "config:" << " nworkers " << config.nworkers << " size " << config.size + << " opcount " << config.opcount << " nreps " << config.nreps << " shuffle " << config.shuffle << " par " << config.par @@ -242,6 +286,8 @@ << " ncpus " << config.ncpus << endl; + check(config.shuffle || config.opcount <= config.size / sizeof(int)); + void *p = malloc(config.size); check(p != NULL); @@ -254,12 +300,13 @@ } // Warmup. - chew(p, 0, config, true); + if (do_warmup) chew(p, 0, config, true); if (config.par) { // Chew the memory area from each core in parallel (and also chew own). pthread_t ts[config.nworkers]; check(0 == pthread_barrier_init(&cross_barrier, NULL, config.nworkers)); + check(0 == pthread_barrier_init(&startup_barrier, NULL, config.nworkers)); for (unsigned int i = 0; i < config.nworkers; i++) { ts[i] = spawn(bind(chew, p, i, ref(config), false)); } @@ -267,6 +314,7 @@ check(pthread_join(ts[i], NULL) == 0); } check(0 == pthread_barrier_destroy(&cross_barrier)); + check(0 == pthread_barrier_destroy(&startup_barrier)); } else { // Chew the memory area from each core in sequence. for (unsigned int i = 0; i < config.nworkers; i++) { @@ -278,6 +326,8 @@ ofstream trash("/dev/null"); trash << "result: " << global_sum << endl; + cout << "result: " << global_sum << endl; + check(pthread_mutex_destroy(&iomutex) == 0); return 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 06:31:49
|
Revision: 600 http://assorted.svn.sourceforge.net/assorted/?rev=600&view=rev Author: yangzhang Date: 2008-03-03 22:31:56 -0800 (Mon, 03 Mar 2008) Log Message: ----------- updated experiments Modified Paths: -------------- numa-bench/trunk/src/chew.bash numa-bench/trunk/src/chew.cc Modified: numa-bench/trunk/src/chew.bash =================================================================== --- numa-bench/trunk/src/chew.bash 2008-03-04 04:12:34 UTC (rev 599) +++ numa-bench/trunk/src/chew.bash 2008-03-04 06:31:56 UTC (rev 600) @@ -12,32 +12,32 @@ KB=000 MB=000000 GB=000000000 -# ncpus size nreps shuffle par pin local write cross rrnodes nnodes +# ncpus size nreps shuffle par pin local write cross rrnodes nnodes ncpus echo writes -run 16 100$MB 1 0 0 1 0 1 0 1 4 -run 16 1000$MB 1 0 0 1 0 1 0 1 4 -run 16 100$MB 10 0 0 1 0 1 0 1 4 -run 16 100$MB 1 1 0 1 0 1 0 1 4 +run 16 100$MB 1 0 0 1 0 1 0 1 4 16 +run 16 1000$MB 1 0 0 1 0 1 0 1 4 16 +run 16 100$MB 10 0 0 1 0 1 0 1 4 16 +run 16 100$MB 1 1 0 1 0 1 0 1 4 16 echo reads -run 16 1000$MB 1 0 0 1 0 0 0 1 4 -run 16 100$MB 1 1 0 1 0 0 0 1 4 +run 16 1000$MB 1 0 0 1 0 0 0 1 4 16 +run 16 100$MB 1 1 0 1 0 0 0 1 4 16 for n in 1 2 4 8 12 16 ; do echo par - run $n 10$MB 1 0 1 1 0 0 0 1 4 - run $n 10$MB 1 1 1 1 0 0 0 1 4 - run $n 10$MB 1 0 1 1 1 0 0 1 4 - run $n 10$MB 1 1 1 1 1 0 0 1 4 - run $n 10$MB 1 0 1 1 0 1 0 1 4 - run $n 10$MB 1 1 1 1 0 1 0 1 4 - run $n 10$MB 1 0 1 1 1 1 0 1 4 - run $n 10$MB 1 1 1 1 1 1 0 1 4 + run $n 10$MB 1 0 1 1 0 0 0 1 4 16 + run $n 10$MB 1 1 1 1 0 0 0 1 4 16 + run $n 10$MB 1 0 1 1 1 0 0 1 4 16 + run $n 10$MB 1 1 1 1 1 0 0 1 4 16 + run $n 10$MB 1 0 1 1 0 1 0 1 4 16 + run $n 10$MB 1 1 1 1 0 1 0 1 4 16 + run $n 10$MB 1 0 1 1 1 1 0 1 4 16 + run $n 10$MB 1 1 1 1 1 1 0 1 4 16 echo cross - run $n 10$MB 1 0 1 1 0 0 1 1 4 - run $n 10$MB 1 1 1 1 0 0 1 1 4 - run $n 10$MB 1 0 1 1 0 1 1 1 4 - run $n 10$MB 1 1 1 1 0 1 1 1 4 + run $n 10$MB 1 0 1 1 0 0 1 1 4 16 + run $n 10$MB 1 1 1 1 0 0 1 1 4 16 + run $n 10$MB 1 0 1 1 0 1 1 1 4 16 + run $n 10$MB 1 1 1 1 0 1 1 1 4 16 done Modified: numa-bench/trunk/src/chew.cc =================================================================== --- numa-bench/trunk/src/chew.cc 2008-03-04 04:12:34 UTC (rev 599) +++ numa-bench/trunk/src/chew.cc 2008-03-04 06:31:56 UTC (rev 600) @@ -16,16 +16,14 @@ using namespace std; pthread_barrier_t cross_barrier; +pthread_mutex_t iomutex; struct config { /** - * The number of CPUs to test. This is a parameter (rather than - * auto-detected) because it additionally serves to mean the number of CPUs - * we want to test in parallel. As this program evolves, these may be - * separated. + * The number of workers to run (usually this means the CPUs to test). */ - const unsigned int ncpus; + const unsigned int nworkers; /** * Size in bytes of the buffer to chew. @@ -77,8 +75,15 @@ /** * The number of nodes on this machine. + * TODO: auto-detect */ const unsigned int nnodes; + + /** + * The number of CPUs on this machine. + * TODO: auto-detect + */ + const unsigned int ncpus; }; void*** partitions; @@ -95,15 +100,18 @@ int* p = (int*) pp; const size_t count = len / sizeof(int); int sum = 0; + + // TODO: see these with random numbers generated from a global (serial) rand + // NOTE: Using rand as the index assumes that rand generates large-enough + // values. posix_rand rand(current_time_millis() ^ gettid()); + if (config.write) { // Write to the region. if (config.shuffle) { // Random access into the memory region. for (unsigned int c = 0; c < config.nreps; c++) { for (size_t i = 0; i < count; i++) { - // NOTE: Using r as the index assumes that rand generates large-enough - // values. int r = rand(); sum += p[r % count] += r; } @@ -122,8 +130,6 @@ // Random access into the memory region. for (unsigned int c = 0; c < config.nreps; c++) { for (size_t i = 0; i < count; i++) { - // NOTE: Using r as the index assumes that rand generates large-enough - // values. sum += p[rand() % count]; } } @@ -150,10 +156,11 @@ { // Pin this thread to a CPU. if (config.pin) { + // Round-robin is only applicable if we're doing a parallel test. unsigned int ncpus = config.ncpus, nnodes = config.nnodes, cpuspernode = ncpus / nnodes, - cpu = !config.rrnodes ? + cpu = !config.par || !config.rrnodes ? worker : (cpuspernode * worker) % ncpus + worker / cpuspernode; pin_thread(cpu); @@ -163,8 +170,8 @@ timer t(": "); if (!warmup && config.cross) { - size_t len = config.size / config.ncpus; - for (unsigned int i = 0; i < config.ncpus; i++) { + size_t len = config.size / config.nworkers; + for (unsigned int i = 0; i < config.nworkers; i++) { partitions[worker][i] = new char[len]; } int barrier_result = pthread_barrier_wait(&cross_barrier); @@ -172,7 +179,7 @@ barrier_result == 0); // TODO: make this more interesting than just a sequential traversal over // the partitions. - for (unsigned int i = 0; i < config.ncpus; i++) { + for (unsigned int i = 0; i < config.nworkers; i++) { chew1(partitions[i][worker], config, len); } } else { @@ -180,9 +187,11 @@ } // Print the elapsed time and "result". + check(pthread_mutex_lock(&iomutex) == 0); if (warmup) cout << "warmup: "; cout << worker; t.print(); + check(pthread_mutex_unlock(&iomutex) == 0); if (config.local) free(p); @@ -195,9 +204,9 @@ // So that our global shared malloc takes place on the CPU 0's node. pin_thread(0); - if (argc < 12) { + if (argc < 13) { cerr << argv[0] << - " <ncpus> <size> <nreps> <shuffle> <par> <pin>" + " <nworkers> <size> <nreps> <shuffle> <par> <pin>" " <local> <write> <rrnodes> <nnodes>" << endl; return 1; } @@ -214,30 +223,34 @@ atoi(argv[ 8]), atoi(argv[ 9]), atoi(argv[10]), - atoi(argv[11]) + atoi(argv[11]), + atoi(argv[12]) }; cout << "config:" - << " ncpus " << config.ncpus - << " size " << config.size - << " nreps " << config.nreps - << " shuffle " << config.shuffle - << " par " << config.par - << " pin " << config.pin - << " local " << config.local - << " write " << config.write - << " cross " << config.cross - << " rrnodes " << config.rrnodes - << " nnodes " << config.nnodes + << " nworkers " << config.nworkers + << " size " << config.size + << " nreps " << config.nreps + << " shuffle " << config.shuffle + << " par " << config.par + << " pin " << config.pin + << " local " << config.local + << " write " << config.write + << " cross " << config.cross + << " rrnodes " << config.rrnodes + << " nnodes " << config.nnodes + << " ncpus " << config.ncpus << endl; void *p = malloc(config.size); check(p != NULL); + check(pthread_mutex_init(&iomutex, NULL) == 0); + if (config.cross) { - partitions = new void**[config.ncpus]; - for (unsigned int i = 0; i < config.ncpus; i++) - partitions[i] = new void*[config.ncpus]; + partitions = new void**[config.nworkers]; + for (unsigned int i = 0; i < config.nworkers; i++) + partitions[i] = new void*[config.nworkers]; } // Warmup. @@ -245,18 +258,18 @@ if (config.par) { // Chew the memory area from each core in parallel (and also chew own). - pthread_t ts[config.ncpus]; - check(0 == pthread_barrier_init(&cross_barrier, NULL, config.ncpus)); - for (unsigned int i = 0; i < config.ncpus; i++) { + pthread_t ts[config.nworkers]; + check(0 == pthread_barrier_init(&cross_barrier, NULL, config.nworkers)); + for (unsigned int i = 0; i < config.nworkers; i++) { ts[i] = spawn(bind(chew, p, i, ref(config), false)); } - for (unsigned int i = 0; i < config.ncpus; i++) { + for (unsigned int i = 0; i < config.nworkers; i++) { check(pthread_join(ts[i], NULL) == 0); } check(0 == pthread_barrier_destroy(&cross_barrier)); } else { // Chew the memory area from each core in sequence. - for (unsigned int i = 0; i < config.ncpus; i++) { + for (unsigned int i = 0; i < config.nworkers; i++) { chew(p, i, config, false); } } @@ -265,5 +278,7 @@ ofstream trash("/dev/null"); trash << "result: " << global_sum << endl; + check(pthread_mutex_destroy(&iomutex) == 0); + return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 04:12:31
|
Revision: 599 http://assorted.svn.sourceforge.net/assorted/?rev=599&view=rev Author: yangzhang Date: 2008-03-03 20:12:34 -0800 (Mon, 03 Mar 2008) Log Message: ----------- added clarification Modified Paths: -------------- sandbox/trunk/src/cc/scopes.cc Modified: sandbox/trunk/src/cc/scopes.cc =================================================================== --- sandbox/trunk/src/cc/scopes.cc 2008-03-04 04:11:53 UTC (rev 598) +++ sandbox/trunk/src/cc/scopes.cc 2008-03-04 04:12:34 UTC (rev 599) @@ -15,7 +15,7 @@ // The following doesn't work; x is out of scope. // cout << x << endl; - // Here, the initialization to 1 occurs on each iteration. + // Here, the initialization to 1 occurs on each iteration, so this loops forever! while (int x = 1) { cout << x-- << endl; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 04:11:54
|
Revision: 598 http://assorted.svn.sourceforge.net/assorted/?rev=598&view=rev Author: yangzhang Date: 2008-03-03 20:11:53 -0800 (Mon, 03 Mar 2008) Log Message: ----------- added scoping demo Added Paths: ----------- sandbox/trunk/src/cc/scopes.cc Added: sandbox/trunk/src/cc/scopes.cc =================================================================== --- sandbox/trunk/src/cc/scopes.cc (rev 0) +++ sandbox/trunk/src/cc/scopes.cc 2008-03-04 04:11:53 UTC (rev 598) @@ -0,0 +1,24 @@ +// Demonstrate the scoping of control structures. Before, I thought that only +// for loops had this kind of scoping. + +#include <iostream> +using namespace std; + +int +main() +{ + if (int x = 1) { + cout << "true " << x << endl; // This is printed, as expected. + } else { + cout << "false " << x << endl; + } + // The following doesn't work; x is out of scope. + // cout << x << endl; + + // Here, the initialization to 1 occurs on each iteration. + while (int x = 1) { + cout << x-- << endl; + } + + return 0; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 04:07:37
|
Revision: 597 http://assorted.svn.sourceforge.net/assorted/?rev=597&view=rev Author: yangzhang Date: 2008-03-03 20:07:43 -0800 (Mon, 03 Mar 2008) Log Message: ----------- removed stray file Removed Paths: ------------- sandbox/trunk/src/cc/gps.cc Deleted: sandbox/trunk/src/cc/gps.cc =================================================================== --- sandbox/trunk/src/cc/gps.cc 2008-03-04 03:08:18 UTC (rev 596) +++ sandbox/trunk/src/cc/gps.cc 2008-03-04 04:07:43 UTC (rev 597) @@ -1 +0,0 @@ -link /home/yang/icedb/src/adapters/gps-adapter.cc \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 03:08:14
|
Revision: 596 http://assorted.svn.sourceforge.net/assorted/?rev=596&view=rev Author: yangzhang Date: 2008-03-03 19:08:18 -0800 (Mon, 03 Mar 2008) Log Message: ----------- tagged 0.1 release Added Paths: ----------- java-reactor/tags/ java-reactor/tags/0.1/ Copied: java-reactor/tags/0.1 (from rev 593, java-reactor/trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 03:08:02
|
Revision: 595 http://assorted.svn.sourceforge.net/assorted/?rev=595&view=rev Author: yangzhang Date: 2008-03-03 19:08:01 -0800 (Mon, 03 Mar 2008) Log Message: ----------- tagged 0.1 release Added Paths: ----------- scala-commons/tags/ scala-commons/tags/0.1/ Copied: scala-commons/tags/0.1 (from rev 593, scala-commons/trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-04 02:31:12
|
Revision: 594 http://assorted.svn.sourceforge.net/assorted/?rev=594&view=rev Author: yangzhang Date: 2008-03-03 18:29:07 -0800 (Mon, 03 Mar 2008) Log Message: ----------- fix args Modified Paths: -------------- numa-bench/trunk/src/chew.bash numa-bench/trunk/src/chew.cc Modified: numa-bench/trunk/src/chew.bash =================================================================== --- numa-bench/trunk/src/chew.bash 2008-03-03 23:57:43 UTC (rev 593) +++ numa-bench/trunk/src/chew.bash 2008-03-04 02:29:07 UTC (rev 594) @@ -12,32 +12,32 @@ KB=000 MB=000000 GB=000000000 -# ncpus size nreps shuffle par pin local write cross rrnodes +# ncpus size nreps shuffle par pin local write cross rrnodes nnodes echo writes -run 16 100$MB 1 0 0 1 0 1 0 1 -run 16 1000$MB 1 0 0 1 0 1 0 1 -run 16 100$MB 10 0 0 1 0 1 0 1 -run 16 100$MB 1 1 0 1 0 1 0 1 +run 16 100$MB 1 0 0 1 0 1 0 1 4 +run 16 1000$MB 1 0 0 1 0 1 0 1 4 +run 16 100$MB 10 0 0 1 0 1 0 1 4 +run 16 100$MB 1 1 0 1 0 1 0 1 4 echo reads -run 16 1000$MB 1 0 0 1 0 0 0 1 -run 16 100$MB 1 1 0 1 0 0 0 1 +run 16 1000$MB 1 0 0 1 0 0 0 1 4 +run 16 100$MB 1 1 0 1 0 0 0 1 4 for n in 1 2 4 8 12 16 ; do echo par - run $n 10$MB 1 0 1 1 0 0 0 1 - run $n 10$MB 1 1 1 1 0 0 0 1 - run $n 10$MB 1 0 1 1 1 0 0 1 - run $n 10$MB 1 1 1 1 1 0 0 1 - run $n 10$MB 1 0 1 1 0 1 0 1 - run $n 10$MB 1 1 1 1 0 1 0 1 - run $n 10$MB 1 0 1 1 1 1 0 1 - run $n 10$MB 1 1 1 1 1 1 0 1 + run $n 10$MB 1 0 1 1 0 0 0 1 4 + run $n 10$MB 1 1 1 1 0 0 0 1 4 + run $n 10$MB 1 0 1 1 1 0 0 1 4 + run $n 10$MB 1 1 1 1 1 0 0 1 4 + run $n 10$MB 1 0 1 1 0 1 0 1 4 + run $n 10$MB 1 1 1 1 0 1 0 1 4 + run $n 10$MB 1 0 1 1 1 1 0 1 4 + run $n 10$MB 1 1 1 1 1 1 0 1 4 echo cross - run $n 10$MB 1 0 1 1 0 0 1 1 - run $n 10$MB 1 1 1 1 0 0 1 1 - run $n 10$MB 1 0 1 1 0 1 1 1 - run $n 10$MB 1 1 1 1 0 1 1 1 + run $n 10$MB 1 0 1 1 0 0 1 1 4 + run $n 10$MB 1 1 1 1 0 0 1 1 4 + run $n 10$MB 1 0 1 1 0 1 1 1 4 + run $n 10$MB 1 1 1 1 0 1 1 1 4 done Modified: numa-bench/trunk/src/chew.cc =================================================================== --- numa-bench/trunk/src/chew.cc 2008-03-03 23:57:43 UTC (rev 593) +++ numa-bench/trunk/src/chew.cc 2008-03-04 02:29:07 UTC (rev 594) @@ -195,7 +195,7 @@ // So that our global shared malloc takes place on the CPU 0's node. pin_thread(0); - if (argc < 11) { + if (argc < 12) { cerr << argv[0] << " <ncpus> <size> <nreps> <shuffle> <par> <pin>" " <local> <write> <rrnodes> <nnodes>" << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 23:57:38
|
Revision: 593 http://assorted.svn.sourceforge.net/assorted/?rev=593&view=rev Author: yangzhang Date: 2008-03-03 15:57:43 -0800 (Mon, 03 Mar 2008) Log Message: ----------- fixes; added vim modelines Modified Paths: -------------- simple-build/trunk/src/build-templates/cpp simple-build/trunk/src/build-templates/java Modified: simple-build/trunk/src/build-templates/cpp =================================================================== --- simple-build/trunk/src/build-templates/cpp 2008-03-03 23:40:17 UTC (rev 592) +++ simple-build/trunk/src/build-templates/cpp 2008-03-03 23:57:43 UTC (rev 593) @@ -45,3 +45,5 @@ $(ORIGTARGET): $(TARGET) .PHONY: $(ORIGTARGET) + +# vim:noet:sw=2:ts=2:ft=make Modified: simple-build/trunk/src/build-templates/java =================================================================== --- simple-build/trunk/src/build-templates/java 2008-03-03 23:40:17 UTC (rev 592) +++ simple-build/trunk/src/build-templates/java 2008-03-03 23:57:43 UTC (rev 593) @@ -27,14 +27,14 @@ $(SCRIPT): $(MAKEFILE_LIST) mkdir -p $(@D) if [ ! -z "$(MAINCLASS)" ]; then \ - echo "#!/usr/bin/env bash\n\nexec java -cp $(JAR):$(CLASSPATH) $(JRUNFLAGS) $(MAINCLASS) \"\$$@\"" > $(SCRIPT) ;\ + echo -e "#!/usr/bin/env bash\n\nexec java -cp $(JAR):$(CLASSPATH) $(JRUNFLAGS) $(MAINCLASS) \"\$$@\"" > $(SCRIPT) ;\ chmod +x $(SCRIPT) ;\ fi else $(SCRIPT): $(MAKEFILE_LIST) mkdir -p $(@D) if [ ! -z "$(MAINCLASS)" ]; then \ - echo "#!/usr/bin/env bash\n\nJAVA_OPTS=\"$(JRUNFLAGS) \$${JAVA_OPTS:-}\" exec scala -cp $(JAR):$(CLASSPATH) $(MAINCLASS) \"\$$@\"" > $(SCRIPT) ;\ + echo -e "#!/usr/bin/env bash\n\nJAVA_OPTS=\"$(JRUNFLAGS) \$${JAVA_OPTS:-}\" exec scala -cp $(JAR):$(CLASSPATH) $(MAINCLASS) \"\$$@\"" > $(SCRIPT) ;\ chmod +x $(SCRIPT) ;\ fi endif @@ -59,3 +59,5 @@ rm -rf $(SCRIPT) $(JAR) $(CLASSDIR) .PHONY: $(TARGET) clean + +# vim:noet:sw=2:ts=2:ft=make This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 23:40:38
|
Revision: 592 http://assorted.svn.sourceforge.net/assorted/?rev=592&view=rev Author: yangzhang Date: 2008-03-03 15:40:17 -0800 (Mon, 03 Mar 2008) Log Message: ----------- removed garbage makefile Removed Paths: ------------- numa-bench/trunk/src/GNUmakefile Deleted: numa-bench/trunk/src/GNUmakefile =================================================================== --- numa-bench/trunk/src/GNUmakefile 2008-03-03 23:39:39 UTC (rev 591) +++ numa-bench/trunk/src/GNUmakefile 2008-03-03 23:40:17 UTC (rev 592) @@ -1,376 +0,0 @@ -OUTDIR := /home/yang/work/assorted/numa-bench/trunk/src/out -SRCDIR := /home/yang/work/assorted/numa-bench/trunk/src -SRCPATH := /home/yang/work/assorted/numa-bench/trunk/src -all: chew avail -PREFIX_0 := /opt/chew -BINDIR_0 := $(PREFIX_0)/bin - -LIBS_0 := -lpthread -SRCS_0 := $(SRCDIR)/chew.cc -ORIGTARGET_0 := chew -AUTOLIBS_0 := -LANG_0 := cpp -TARGET_0 := chew-dbg -FLAGS_0 := -g3 - -OBJDIR_0 := $(OUTDIR)/$(TARGET_0)-obj -FLAGS_0 := -Wall -Werror $(FLAGS_0) -CFLAGS_0 := $(FLAGS_0) $(CFLAGS) -CXXFLAGS_0 := $(FLAGS_0) $(CXXFLAGS) -CPPFLAGS_0 := $(CPPFLAGS) -LDFLAGS_0 := $(LDFLAGS) $(LIBS_0) $(AUTOLIBS_0) -EXE_0 := $(OUTDIR)/$(TARGET_0) - -OBJS_0 := $(foreach ext, c cc cpp cxx, \ - $(patsubst $(SRCDIR)/%.$(ext), $(OBJDIR_0)/%.o, \ - $(filter %.$(ext), $(SRCS_0)))) - -CC_0 := gcc -CXX_0 := g++ -ifeq ($(LANG_0),c) -COMPILER_0 := $(CC_0) -else -COMPILER_0 := $(CXX_0) -endif - -$(TARGET_0): $(EXE_0) - -$(EXE_0): $(OBJS_0) - $(COMPILER_0) $(LDFLAGS_0) -o $@ $^ - -$(OBJDIR_0)/%.o: $(SRCDIR)/%.c - mkdir -p $(@D) - $(CC_0) $(CPPFLAGS_0) $(CFLAGS_0) -MD -c -o $@ $< - -$(OBJDIR_0)/%.o: $(SRCDIR)/%.cc - mkdir -p $(@D) - $(CXX_0) $(CPPFLAGS_0) $(CXXFLAGS_0) -MD -c -o $@ $< - -$(OBJDIR_0)/%.o: $(SRCDIR)/%.cpp - mkdir -p $(@D) - $(CXX_0) $(CPPFLAGS_0) $(CXXFLAGS_0) -MD -c -o $@ $< - -$(OBJDIR_0)/%.o: $(SRCDIR)/%.cxx - mkdir -p $(@D) - $(CXX_0) $(CPPFLAGS_0) $(CXXFLAGS_0) -MD -c -o $@ $< - -clean-$(TARGET_0): - rm -rf $(OBJDIR_0) $(EXE_0) - -$(ORIGTARGET_0): $(TARGET_0) - -.PHONY: $(ORIGTARGET_0) -PREFIX_1 := /opt/chew -BINDIR_1 := $(PREFIX_1)/bin - -LIBS_1 := -lpthread -SRCS_1 := $(SRCDIR)/chew.cc -ORIGTARGET_1 := chew -AUTOLIBS_1 := -LANG_1 := cpp -TARGET_1 := chew-opt -FLAGS_1 := -O3 - -OBJDIR_1 := $(OUTDIR)/$(TARGET_1)-obj -FLAGS_1 := -Wall -Werror $(FLAGS_1) -CFLAGS_1 := $(FLAGS_1) $(CFLAGS) -CXXFLAGS_1 := $(FLAGS_1) $(CXXFLAGS) -CPPFLAGS_1 := $(CPPFLAGS) -LDFLAGS_1 := $(LDFLAGS) $(LIBS_1) $(AUTOLIBS_1) -EXE_1 := $(OUTDIR)/$(TARGET_1) - -OBJS_1 := $(foreach ext, c cc cpp cxx, \ - $(patsubst $(SRCDIR)/%.$(ext), $(OBJDIR_1)/%.o, \ - $(filter %.$(ext), $(SRCS_1)))) - -CC_1 := gcc -CXX_1 := g++ -ifeq ($(LANG_1),c) -COMPILER_1 := $(CC_1) -else -COMPILER_1 := $(CXX_1) -endif - -$(TARGET_1): $(EXE_1) - -$(EXE_1): $(OBJS_1) - $(COMPILER_1) $(LDFLAGS_1) -o $@ $^ - -$(OBJDIR_1)/%.o: $(SRCDIR)/%.c - mkdir -p $(@D) - $(CC_1) $(CPPFLAGS_1) $(CFLAGS_1) -MD -c -o $@ $< - -$(OBJDIR_1)/%.o: $(SRCDIR)/%.cc - mkdir -p $(@D) - $(CXX_1) $(CPPFLAGS_1) $(CXXFLAGS_1) -MD -c -o $@ $< - -$(OBJDIR_1)/%.o: $(SRCDIR)/%.cpp - mkdir -p $(@D) - $(CXX_1) $(CPPFLAGS_1) $(CXXFLAGS_1) -MD -c -o $@ $< - -$(OBJDIR_1)/%.o: $(SRCDIR)/%.cxx - mkdir -p $(@D) - $(CXX_1) $(CPPFLAGS_1) $(CXXFLAGS_1) -MD -c -o $@ $< - -clean-$(TARGET_1): - rm -rf $(OBJDIR_1) $(EXE_1) - -$(ORIGTARGET_1): $(TARGET_1) - -.PHONY: $(ORIGTARGET_1) -PREFIX_2 := /opt/chew -BINDIR_2 := $(PREFIX_2)/bin - -LIBS_2 := -lpthread -SRCS_2 := $(SRCDIR)/chew.cc -ORIGTARGET_2 := chew -AUTOLIBS_2 := -LANG_2 := cpp -TARGET_2 := chew-gprof -FLAGS_2 := -pg - -OBJDIR_2 := $(OUTDIR)/$(TARGET_2)-obj -FLAGS_2 := -Wall -Werror $(FLAGS_2) -CFLAGS_2 := $(FLAGS_2) $(CFLAGS) -CXXFLAGS_2 := $(FLAGS_2) $(CXXFLAGS) -CPPFLAGS_2 := $(CPPFLAGS) -LDFLAGS_2 := $(LDFLAGS) $(LIBS_2) $(AUTOLIBS_2) -EXE_2 := $(OUTDIR)/$(TARGET_2) - -OBJS_2 := $(foreach ext, c cc cpp cxx, \ - $(patsubst $(SRCDIR)/%.$(ext), $(OBJDIR_2)/%.o, \ - $(filter %.$(ext), $(SRCS_2)))) - -CC_2 := gcc -CXX_2 := g++ -ifeq ($(LANG_2),c) -COMPILER_2 := $(CC_2) -else -COMPILER_2 := $(CXX_2) -endif - -$(TARGET_2): $(EXE_2) - -$(EXE_2): $(OBJS_2) - $(COMPILER_2) $(LDFLAGS_2) -o $@ $^ - -$(OBJDIR_2)/%.o: $(SRCDIR)/%.c - mkdir -p $(@D) - $(CC_2) $(CPPFLAGS_2) $(CFLAGS_2) -MD -c -o $@ $< - -$(OBJDIR_2)/%.o: $(SRCDIR)/%.cc - mkdir -p $(@D) - $(CXX_2) $(CPPFLAGS_2) $(CXXFLAGS_2) -MD -c -o $@ $< - -$(OBJDIR_2)/%.o: $(SRCDIR)/%.cpp - mkdir -p $(@D) - $(CXX_2) $(CPPFLAGS_2) $(CXXFLAGS_2) -MD -c -o $@ $< - -$(OBJDIR_2)/%.o: $(SRCDIR)/%.cxx - mkdir -p $(@D) - $(CXX_2) $(CPPFLAGS_2) $(CXXFLAGS_2) -MD -c -o $@ $< - -clean-$(TARGET_2): - rm -rf $(OBJDIR_2) $(EXE_2) - -$(ORIGTARGET_2): $(TARGET_2) - -.PHONY: $(ORIGTARGET_2) -$(OUTDIR)/.deps: $(shell find $(OUTDIR) -name '*.d' 2> /dev/null || true) - mkdir -p $(OUTDIR) - [ "$^" ] && cat $^ > $@ - --include $(OUTDIR)/.deps - - - -PREFIX_3 := /opt/avail -BINDIR_3 := $(PREFIX_3)/bin - -LIBS_3 := -lpthread -SRCS_3 := $(SRCDIR)/avail.cc -ORIGTARGET_3 := avail -AUTOLIBS_3 := -lnuma -LANG_3 := cpp -TARGET_3 := avail-dbg -FLAGS_3 := -g3 - -OBJDIR_3 := $(OUTDIR)/$(TARGET_3)-obj -FLAGS_3 := -Wall -Werror $(FLAGS_3) -CFLAGS_3 := $(FLAGS_3) $(CFLAGS) -CXXFLAGS_3 := $(FLAGS_3) $(CXXFLAGS) -CPPFLAGS_3 := $(CPPFLAGS) -LDFLAGS_3 := $(LDFLAGS) $(LIBS_3) $(AUTOLIBS_3) -EXE_3 := $(OUTDIR)/$(TARGET_3) - -OBJS_3 := $(foreach ext, c cc cpp cxx, \ - $(patsubst $(SRCDIR)/%.$(ext), $(OBJDIR_3)/%.o, \ - $(filter %.$(ext), $(SRCS_3)))) - -CC_3 := gcc -CXX_3 := g++ -ifeq ($(LANG_3),c) -COMPILER_3 := $(CC_3) -else -COMPILER_3 := $(CXX_3) -endif - -$(TARGET_3): $(EXE_3) - -$(EXE_3): $(OBJS_3) - $(COMPILER_3) $(LDFLAGS_3) -o $@ $^ - -$(OBJDIR_3)/%.o: $(SRCDIR)/%.c - mkdir -p $(@D) - $(CC_3) $(CPPFLAGS_3) $(CFLAGS_3) -MD -c -o $@ $< - -$(OBJDIR_3)/%.o: $(SRCDIR)/%.cc - mkdir -p $(@D) - $(CXX_3) $(CPPFLAGS_3) $(CXXFLAGS_3) -MD -c -o $@ $< - -$(OBJDIR_3)/%.o: $(SRCDIR)/%.cpp - mkdir -p $(@D) - $(CXX_3) $(CPPFLAGS_3) $(CXXFLAGS_3) -MD -c -o $@ $< - -$(OBJDIR_3)/%.o: $(SRCDIR)/%.cxx - mkdir -p $(@D) - $(CXX_3) $(CPPFLAGS_3) $(CXXFLAGS_3) -MD -c -o $@ $< - -clean-$(TARGET_3): - rm -rf $(OBJDIR_3) $(EXE_3) - -$(ORIGTARGET_3): $(TARGET_3) - -.PHONY: $(ORIGTARGET_3) -PREFIX_4 := /opt/avail -BINDIR_4 := $(PREFIX_4)/bin - -LIBS_4 := -lpthread -SRCS_4 := $(SRCDIR)/avail.cc -ORIGTARGET_4 := avail -AUTOLIBS_4 := -lnuma -LANG_4 := cpp -TARGET_4 := avail-opt -FLAGS_4 := -O3 - -OBJDIR_4 := $(OUTDIR)/$(TARGET_4)-obj -FLAGS_4 := -Wall -Werror $(FLAGS_4) -CFLAGS_4 := $(FLAGS_4) $(CFLAGS) -CXXFLAGS_4 := $(FLAGS_4) $(CXXFLAGS) -CPPFLAGS_4 := $(CPPFLAGS) -LDFLAGS_4 := $(LDFLAGS) $(LIBS_4) $(AUTOLIBS_4) -EXE_4 := $(OUTDIR)/$(TARGET_4) - -OBJS_4 := $(foreach ext, c cc cpp cxx, \ - $(patsubst $(SRCDIR)/%.$(ext), $(OBJDIR_4)/%.o, \ - $(filter %.$(ext), $(SRCS_4)))) - -CC_4 := gcc -CXX_4 := g++ -ifeq ($(LANG_4),c) -COMPILER_4 := $(CC_4) -else -COMPILER_4 := $(CXX_4) -endif - -$(TARGET_4): $(EXE_4) - -$(EXE_4): $(OBJS_4) - $(COMPILER_4) $(LDFLAGS_4) -o $@ $^ - -$(OBJDIR_4)/%.o: $(SRCDIR)/%.c - mkdir -p $(@D) - $(CC_4) $(CPPFLAGS_4) $(CFLAGS_4) -MD -c -o $@ $< - -$(OBJDIR_4)/%.o: $(SRCDIR)/%.cc - mkdir -p $(@D) - $(CXX_4) $(CPPFLAGS_4) $(CXXFLAGS_4) -MD -c -o $@ $< - -$(OBJDIR_4)/%.o: $(SRCDIR)/%.cpp - mkdir -p $(@D) - $(CXX_4) $(CPPFLAGS_4) $(CXXFLAGS_4) -MD -c -o $@ $< - -$(OBJDIR_4)/%.o: $(SRCDIR)/%.cxx - mkdir -p $(@D) - $(CXX_4) $(CPPFLAGS_4) $(CXXFLAGS_4) -MD -c -o $@ $< - -clean-$(TARGET_4): - rm -rf $(OBJDIR_4) $(EXE_4) - -$(ORIGTARGET_4): $(TARGET_4) - -.PHONY: $(ORIGTARGET_4) -PREFIX_5 := /opt/avail -BINDIR_5 := $(PREFIX_5)/bin - -LIBS_5 := -lpthread -SRCS_5 := $(SRCDIR)/avail.cc -ORIGTARGET_5 := avail -AUTOLIBS_5 := -lnuma -LANG_5 := cpp -TARGET_5 := avail-gprof -FLAGS_5 := -pg - -OBJDIR_5 := $(OUTDIR)/$(TARGET_5)-obj -FLAGS_5 := -Wall -Werror $(FLAGS_5) -CFLAGS_5 := $(FLAGS_5) $(CFLAGS) -CXXFLAGS_5 := $(FLAGS_5) $(CXXFLAGS) -CPPFLAGS_5 := $(CPPFLAGS) -LDFLAGS_5 := $(LDFLAGS) $(LIBS_5) $(AUTOLIBS_5) -EXE_5 := $(OUTDIR)/$(TARGET_5) - -OBJS_5 := $(foreach ext, c cc cpp cxx, \ - $(patsubst $(SRCDIR)/%.$(ext), $(OBJDIR_5)/%.o, \ - $(filter %.$(ext), $(SRCS_5)))) - -CC_5 := gcc -CXX_5 := g++ -ifeq ($(LANG_5),c) -COMPILER_5 := $(CC_5) -else -COMPILER_5 := $(CXX_5) -endif - -$(TARGET_5): $(EXE_5) - -$(EXE_5): $(OBJS_5) - $(COMPILER_5) $(LDFLAGS_5) -o $@ $^ - -$(OBJDIR_5)/%.o: $(SRCDIR)/%.c - mkdir -p $(@D) - $(CC_5) $(CPPFLAGS_5) $(CFLAGS_5) -MD -c -o $@ $< - -$(OBJDIR_5)/%.o: $(SRCDIR)/%.cc - mkdir -p $(@D) - $(CXX_5) $(CPPFLAGS_5) $(CXXFLAGS_5) -MD -c -o $@ $< - -$(OBJDIR_5)/%.o: $(SRCDIR)/%.cpp - mkdir -p $(@D) - $(CXX_5) $(CPPFLAGS_5) $(CXXFLAGS_5) -MD -c -o $@ $< - -$(OBJDIR_5)/%.o: $(SRCDIR)/%.cxx - mkdir -p $(@D) - $(CXX_5) $(CPPFLAGS_5) $(CXXFLAGS_5) -MD -c -o $@ $< - -clean-$(TARGET_5): - rm -rf $(OBJDIR_5) $(EXE_5) - -$(ORIGTARGET_5): $(TARGET_5) - -.PHONY: $(ORIGTARGET_5) -$(OUTDIR)/.deps: $(shell find $(OUTDIR) -name '*.d' 2> /dev/null || true) - mkdir -p $(OUTDIR) - [ "$^" ] && cat $^ > $@ - --include $(OUTDIR)/.deps - - -clean: clean-$(TARGET_2) clean-$(TARGET_3) clean-$(TARGET_0) clean-$(TARGET_5) clean-$(TARGET_1) clean-$(TARGET_4) -clean: - rm -rf $(OUTDIR) -GNUmakefile: /home/yang/work/assorted/numa-bench/trunk/src/build - simple-build -clean-build: - rm GNUmakefile -clean-all: clean clean-build -.PHONY: clean all clean-build clean-all This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 23:39:35
|
Revision: 590 http://assorted.svn.sourceforge.net/assorted/?rev=590&view=rev Author: yangzhang Date: 2008-03-03 15:39:27 -0800 (Mon, 03 Mar 2008) Log Message: ----------- fixes and updates; works on josmp.csail Modified Paths: -------------- configs/trunk/bootstrap.bash Modified: configs/trunk/bootstrap.bash =================================================================== --- configs/trunk/bootstrap.bash 2008-03-03 23:39:00 UTC (rev 589) +++ configs/trunk/bootstrap.bash 2008-03-03 23:39:27 UTC (rev 590) @@ -66,6 +66,7 @@ prefix=~/.local; \ pkg="$prefix/pkg"; \ armed="$prefix/armed"; \ + export PATH="$prefix/armed/bin:$HOME/.toast/armed/bin:$PATH" ;; * ) echo "must specify global or local" ; exit 1 ;; esac @@ -79,14 +80,18 @@ type wget ! use_sudo || type sudo -python -c " +if use_sudo ; then + python -c " import pwd, sys try: pwd.getpwnam('$pkg_user') except: print >> sys.stderr, 'you must add user: $pkg_user'; sys.exit(1) " +fi dosu mkdir -p "$armed" -dosu chown pkg "$armed" +if use_sudo +then dosu chown pkg "$armed" +fi # cd into the current directory, set locations @@ -122,10 +127,11 @@ # setup latest bash to avoid major bugs (like segfaults interpreting this script!) -ver="$( bash --version | grep ' version ' | sed 's/.* version //' )" -if [[ "$ver" < '3.2' ]] ; then +# ver="$( bash --version | grep ' version ' | sed 's/.* version //' )" +if [[ "$BASH_VERSION" < '3.2' ]] ; then dosu toast arm bash - bash "$@" + hash bash + bash "$0" "$@" fi # setup gnu coreutils This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 23:39:35
|
Revision: 591 http://assorted.svn.sourceforge.net/assorted/?rev=591&view=rev Author: yangzhang Date: 2008-03-03 15:39:39 -0800 (Mon, 03 Mar 2008) Log Message: ----------- more sensible value Modified Paths: -------------- shell-tools/trunk/src/bash-commons/bashrc.bash Modified: shell-tools/trunk/src/bash-commons/bashrc.bash =================================================================== --- shell-tools/trunk/src/bash-commons/bashrc.bash 2008-03-03 23:39:27 UTC (rev 590) +++ shell-tools/trunk/src/bash-commons/bashrc.bash 2008-03-03 23:39:39 UTC (rev 591) @@ -98,7 +98,7 @@ # my own -export SCALA_COMMONS_SRC="$HOME/scom/.." +export SCALA_COMMONS_SRC="$HOME/scom/src" export SIMPLEBUILD="$GLOBAL_PREFIX/share/simple-build" export CVS_RSH=ssh This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 23:39:00
|
Revision: 589 http://assorted.svn.sourceforge.net/assorted/?rev=589&view=rev Author: yangzhang Date: 2008-03-03 15:39:00 -0800 (Mon, 03 Mar 2008) Log Message: ----------- updated for greater portability (works on josmp.csail) Modified Paths: -------------- simple-build/trunk/src/Makefile simple-build/trunk/src/setup.bash Modified: simple-build/trunk/src/Makefile =================================================================== --- simple-build/trunk/src/Makefile 2008-03-03 06:18:37 UTC (rev 588) +++ simple-build/trunk/src/Makefile 2008-03-03 23:39:00 UTC (rev 589) @@ -1,8 +1,17 @@ +JYAML := jyaml-1.3.jar +SCALA_COMMONS := ~/scom/src + +-include site.mk + +jyaml-1.3.jar: + wget 'http://downloads.sourceforge.net/jyaml/jyaml-1.3.jar' + all: meta/SimpleBuild.class -meta/SimpleBuild.class: SimpleBuild.scala +meta/SimpleBuild.class: SimpleBuild.scala $(JYAML) mkdir -p meta - fsc -deprecation -unchecked -d meta -cp jyaml-1.3.jar SimpleBuild.scala -sourcepath ~/scom/.. + fsc -deprecation -unchecked -d meta -cp $(JYAML) \ + -sourcepath $(SCALA_COMMONS) SimpleBuild.scala run: meta/SimpleBuild.class scala -cp meta:jyaml-1.3.jar SimpleBuild Modified: simple-build/trunk/src/setup.bash =================================================================== --- simple-build/trunk/src/setup.bash 2008-03-03 06:18:37 UTC (rev 588) +++ simple-build/trunk/src/setup.bash 2008-03-03 23:39:00 UTC (rev 589) @@ -4,5 +4,5 @@ . simple-setup.bash install_strip bin/ googlecode_upload.py -install bin/ build.bash capture-javac-deps +install bin/ build.bash capture-javac-deps out/simple-build install share/$pkg/ build-templates This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 06:18:33
|
Revision: 588 http://assorted.svn.sourceforge.net/assorted/?rev=588&view=rev Author: yangzhang Date: 2008-03-02 22:18:37 -0800 (Sun, 02 Mar 2008) Log Message: ----------- updates Modified Paths: -------------- personal-site/trunk/src/recommendations.txt Modified: personal-site/trunk/src/recommendations.txt =================================================================== --- personal-site/trunk/src/recommendations.txt 2008-03-03 05:53:15 UTC (rev 587) +++ personal-site/trunk/src/recommendations.txt 2008-03-03 06:18:37 UTC (rev 588) @@ -1,14 +1,15 @@ Useful tools ------------ -Some random underdogs (I try to limit this list to things that aren't entirely -"mainstream"). +Some random underdogs. - [toast]: Automated software installation with safe compartmentalization. Works without hassle 90% of the time. Supports a variety of package types, e.g.: - autotools, plain prefix-dir, plain make, distutils, cabal, etc. + autotools, plain prefix-dir, plain make, [distutils], [Cabal], etc. [toast]: http://toastball.net/ +[Cabal]: http://www.haskell.org/cabal/ +[distutils]: http://docs.python.org/lib/module-distutils.html - [pandoc]: [Markdown] done right. A sane markup (structured text) language supporting a variety of input and output formats, including HTML, man, and @@ -29,6 +30,7 @@ [latexmk]: http://www.phys.psu.edu/~collins/software/latexmk-jcc/ <!-- TODO ensure the following is formatted correctly. --> + - [Gobby]: A collaborative text editor. I always end up underestimating the utility and power of collaborative editing. Examples of things I've used it for: @@ -42,15 +44,22 @@ [Gobby]: http://gobby.0x539.de/trac/ -- [Opera]: (Probably the most popular on this list.) Not FOSS, but for me web - browsing is too critical an application to settle for second-best, and Opera - is my favorite. And if I trusted it with my mail, M2 would also be very far - ahead as well (alas, it's too buggy). KHTML is probably the - closest-performing engine, but I've found it to be too crash-prone. +- [Opera]: And if I trusted it with my mail, M2 would also be very far ahead as + well (alas, it's too buggy). [KHTML] is probably the closest-performing + engine, but I've found it to be too crash-prone. [Opera]: http://www.opera.com/ +[KHTML]: http://en.wikipedia.org/wiki/KHTML - [gprof2dot]: A handy tool for visualizing the results of gprof, the Google CPU profiler, python cProfile, and more. [gprof2dot]: http://code.google.com/p/jrfonseca/wiki/Gprof2Dot + +- [wtf]: A filter for `g++`'s obscure page-long template errors. Error messages + are now pretty and colored. See also [gstlfilt]. + +[wtf]: http://nmstl.sourceforge.net/doc/nmstl-guide.html +[gstlfilt]: http://www.bdsoft.com/tools/stlfilt.html + +- [asdf]: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 05:53:09
|
Revision: 587 http://assorted.svn.sourceforge.net/assorted/?rev=587&view=rev Author: yangzhang Date: 2008-03-02 21:53:15 -0800 (Sun, 02 Mar 2008) Log Message: ----------- personal site updates Modified Paths: -------------- personal-site/trunk/src/index.txt personal-site/trunk/src/recommendations.txt Modified: personal-site/trunk/src/index.txt =================================================================== --- personal-site/trunk/src/index.txt 2008-03-03 05:52:23 UTC (rev 586) +++ personal-site/trunk/src/index.txt 2008-03-03 05:53:15 UTC (rev 587) @@ -41,7 +41,7 @@ item( 'Jabber (Google)', 'xmpp:', 'gmail.com', 'yaaang' ); item( 'Skype', 'callto://', 'yaaang' ); item( 'FreeNode', 'irc://irc.freenode.org/', 'zeeeee' ); // TODO fix - item( 'Office', 'MIT/CSAIL <a href="http://whereis.mit.edu/map-jpg?selection=32&Buildings=go">32</a>-<a href="http://www.csail.mit.edu/resources/maps/9G/G920.gif">G920</a>, 32 Vassar St., Cambridge, MA 02139, <a href="callto://+1-617-253-0969">(617) 253-0969</a>' ); + item( 'Office', 'MIT/CSAIL <a href="http://whereis.mit.edu/map-jpg?selection=32&Buildings=go">32</a>-<a href="http://www.csail.mit.edu/resources/maps/9G/G920.gif">G920</a>, <a href="http://www.eecs.mit.edu/stata-link.html">Stata Center</a>, <a href="http://maps.google.com/maps?f=q&hl=en&geocode=&q=32+Vassar+St,+Cambridge,+MA+02139&sll=42.357926,-71.093616&sspn=0.00842,0.01575&ie=UTF8&ll=42.362682,-71.093495&spn=0.008419,0.01575&z=16&iwloc=addr">32 Vassar St., Cambridge, MA 02139</a>, <a href="callto://+1-617-253-0969">(617) 253-0969</a>' ); item( 'GPG public key', '<a href="yang.gpg.asc">yang.gpg.asc</a> (<a href="http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xB1E65B60">MIT PKS entry</a>)' ); document.write( '</ul>' ); // ]]> @@ -53,13 +53,12 @@ Projects -------- -Here are the publicly released software projects in which I've been involved. -More details when I have time! +Here are the non-confidential projects in which I've been involved. More +details when I have time! -<!-- multi-core stuff --> <!-- JOSMP: an exokernel for multi-core x86 systems --> -<!-- [WebTables]: asdfasdf --> +- [WebTables]: web-scale information retrieval over structured data. - [Scalable Resilient Overlay Networks]: distributed algorithms and systems to enable RONs to scale to thousands of nodes. - [Collaborative Filtering Techniques for the NetFlix @@ -91,6 +90,10 @@ - [Recovery-Oriented Computing] (ROC). - [Microsoft Search] and [Microsoft SharePoint Portal Server]. +<!-- TODO upload --> + +[WebTables]: webtables-presentation-google07.pdf + [Scalable Resilient Overlay Networks]: http://nms.csail.mit.edu/ron/ [CarTel]: http://cartel.csail.mit.edu/ @@ -140,7 +143,10 @@ - Yang Zhang, Bret Hull, Hari Balakrishnan, Samuel Madden. _ICEDB: Intermittently-Connected Continuous Query Processing_. ICDE 2007. [PDF](http://db.csail.mit.edu/pubs/icde07cr.pdf) + [Slides PDF](icedb-presentation-icde07.pdf) +<!-- TODO upload above --> + - Bret Hull, Vladimir Bychkovsky, Yang Zhang, Kevin Chen, Michel Goraczko, Allen Miu, Eugene Shih, Hari Balakrishnan, Samuel Madden. _CarTel: A Distributed Mobile Sensor Computing System_. Sensys 2006. Modified: personal-site/trunk/src/recommendations.txt =================================================================== --- personal-site/trunk/src/recommendations.txt 2008-03-03 05:52:23 UTC (rev 586) +++ personal-site/trunk/src/recommendations.txt 2008-03-03 05:53:15 UTC (rev 587) @@ -1,5 +1,9 @@ -Some random underdogs. +Useful tools +------------ +Some random underdogs (I try to limit this list to things that aren't entirely +"mainstream"). + - [toast]: Automated software installation with safe compartmentalization. Works without hassle 90% of the time. Supports a variety of package types, e.g.: autotools, plain prefix-dir, plain make, distutils, cabal, etc. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 05:52:18
|
Revision: 586 http://assorted.svn.sourceforge.net/assorted/?rev=586&view=rev Author: yangzhang Date: 2008-03-02 21:52:23 -0800 (Sun, 02 Mar 2008) Log Message: ----------- updates Modified Paths: -------------- assorted-site/trunk/index.txt Modified: assorted-site/trunk/index.txt =================================================================== --- assorted-site/trunk/index.txt 2008-03-03 05:00:13 UTC (rev 585) +++ assorted-site/trunk/index.txt 2008-03-03 05:52:23 UTC (rev 586) @@ -10,19 +10,19 @@ providing only a brief description and the development status. More information to come later. -- ZDB: simple object database with an emphasis on semantics (active) +- ZDB: object database with an emphasis on semantics (active) - General-purpose libraries ("commons") for various languages or platforms - [Python Commons](python-commons) (passive) - [Scala Commons](scala-commons) (active) - - Java Reactor: simple event loop for single-threaded asynchronous IO and - task scheduling (done) - - C++ Commons (hiatus) - - Haskell Commons (active) - - TeX Commons (active) - - Shell Tools: programs written in a variety of languages and - oriented toward shell scripting and systems management (passive) + - [Java Reactor](java-reactor): simple event loop for single-threaded + asynchronous IO and task scheduling (done) + - [C++ Commons](cpp-commons) (active) + - Haskell Commons (passive) + - TeX Commons (passive) + - [Shell Tools](shell-tools): programs written in a variety of languages and + oriented toward shell scripting and system administration (passive) - AFX: extensions (e.g. threading support) for the AF asynchronous - programming framework (active) + programming framework (passive) - UI libraries - Scala TUI: a declarative reactive programming toolkit for constructing [ncurses]-based text user interfaces (hiatus) @@ -30,12 +30,15 @@ - LZXGrid: an editable table (spreadsheet) widget in [OpenLaszlo] (done) - System utilities - UDP Prober: small program that logs the RTTs of periodic UDP pings, and an - exercise in using [`boost::asio`] (active) + exercise in using [`boost::asio`] (hiatus) - Throttled Repeater: small program that sends a fixed number of lines at a time from a file to a server over TCP (done) + - NanoHTTPD: a do-nothing web server skeleton (done) - Meta programming - - Object code generation: currently targets Java serialization, emphasizing - compactness, speed, and simplicity (done) + - [Simple-Build](simple-build): YAML-based meta-build system for generating + Makefiles; you do not want to use this (active) + - [Object Code Generator](object-codegen): currently targets Java + serialization, emphasizing compactness, speed, and simplicity (done) - TopCoder tools: crawl [TopCoder] rankings to analyze players. Currently only produces language statistics. (done) - Simple Pre-Processor (spp): tiny implementation of the C preprocessor's @@ -69,10 +72,13 @@ optimizing parameters (done) - BattleCode Composer: express and mix strategies quickly (abandoned) - Exploration and experimentation - - Hash distribution: for observing the distribution of hash functions on - supplied data. - - Parallel hash join: for exploring the scalability of hash joins on - many-core systems (active) + - [Hash distribution](hash-dist): for observing the distribution of hash + functions on supplied data (done) + - PRNG distribution: for observing the distribution of PRNGs (hiatus) + - [Parallel hash join](hash-join): for exploring the scalability of hash + joins on many-core systems (active) + - [NUMA benchmark suite](numa-bench): tests for understanding the performance + behavior of NUMA systems (active) - Sandbox: heap of small test cases to explore (mostly programming language details, bugs, corner cases, features, etc.) (passive) - Miscellanea @@ -93,7 +99,7 @@ - passive: under continual but gradual growth - active: development is happening at a faster pace - abandoned: incomplete; no plans to pick it up again -- hitaus: incomplete; plan to resume development +- hiatus: incomplete; plan to resume development Other links: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 05:00:07
|
Revision: 585 http://assorted.svn.sourceforge.net/assorted/?rev=585&view=rev Author: yangzhang Date: 2008-03-02 21:00:13 -0800 (Sun, 02 Mar 2008) Log Message: ----------- new readme for publisher Modified Paths: -------------- simple-build/trunk/README Modified: simple-build/trunk/README =================================================================== --- simple-build/trunk/README 2008-03-03 04:55:33 UTC (rev 584) +++ simple-build/trunk/README 2008-03-03 05:00:13 UTC (rev 585) @@ -1,6 +1,3 @@ -% SimpleBuild -% Yang Zhang - Overview -------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:55:28
|
Revision: 584 http://assorted.svn.sourceforge.net/assorted/?rev=584&view=rev Author: yangzhang Date: 2008-03-02 20:55:33 -0800 (Sun, 02 Mar 2008) Log Message: ----------- tagged 0.2 release Added Paths: ----------- python-commons/tags/0.2/ python-commons/tags/0.2/README python-commons/tags/0.2/publish.bash python-commons/tags/0.2/setup.py python-commons/tags/0.2/src/commons/__init__.py python-commons/tags/0.2/src/commons/files.py python-commons/tags/0.2/src/commons/setup.py Removed Paths: ------------- python-commons/tags/0.2/README python-commons/tags/0.2/setup.py python-commons/tags/0.2/src/commons/__init__.py python-commons/tags/0.2/src/commons/files.py python-commons/tags/0.2/src/commons/setup.py Copied: python-commons/tags/0.2 (from rev 473, python-commons/trunk) Deleted: python-commons/tags/0.2/README =================================================================== --- python-commons/trunk/README 2008-02-19 09:09:41 UTC (rev 473) +++ python-commons/tags/0.2/README 2008-03-03 04:55:33 UTC (rev 584) @@ -1,5 +0,0 @@ -To install, run setup.py or setup.bash. - -Future releases will come with scripts to build the epydoc API -documentation, but for now please refer to the project homepage for -the full documentation: http://assorted.sf.net/python-commons Copied: python-commons/tags/0.2/README (from rev 565, python-commons/trunk/README) =================================================================== --- python-commons/tags/0.2/README (rev 0) +++ python-commons/tags/0.2/README 2008-03-03 04:55:33 UTC (rev 584) @@ -0,0 +1,35 @@ +[documentation](doc) + +Overview +-------- + +Python Commons is a general-purpose library for Python. To get a sense of +what it provides, please glance over the [documentation](doc). + +Requirements +------------ + +- [Python](http://python.org/) 2.5 +- [setuptools](http://peak.telecommunity.com/DevCenter/setuptools) 0.6 + +Certain sub-modules have extra requirements: + +- `async` requires [Twisted](http://twistedmatrix.com/trac/) 2.5 +- `files` requires [path](http://www.jorendorff.com/articles/python/path/) 2.2 + +This library has only been tested on Linux. + +Setup +----- + +To install, run `easy_install python-commons`, or download the source tarball +and run `python setup.py install`. + +Related Work +------------ + +- [ASPN Cookbook]: a valuable repository of Python snippets +- [AIMA Utilities]: accompaniment to a popular AI textbook + +[ASPN Cookbook]: http://aspn.activestate.com/ASPN/Cookbook/Python +[AIMA Utilities]: http://aima.cs.berkeley.edu/python/utils.py Copied: python-commons/tags/0.2/publish.bash (from rev 566, python-commons/trunk/publish.bash) =================================================================== --- python-commons/tags/0.2/publish.bash (rev 0) +++ python-commons/tags/0.2/publish.bash 2008-03-03 04:55:33 UTC (rev 584) @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +post-stage() { + epydoc -o $stagedir/doc src/commons/ +} + +fullname='Python Commons' +version=0.2 +license=psf +websrcs=( README ) +rels=( pypi: ) +. assorted.bash "$@" Deleted: python-commons/tags/0.2/setup.py =================================================================== --- python-commons/trunk/setup.py 2008-02-19 09:09:41 UTC (rev 473) +++ python-commons/tags/0.2/setup.py 2008-03-03 04:55:33 UTC (rev 584) @@ -1,44 +0,0 @@ -#!/usr/bin/env python -# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- -# vim:ft=python:et:sw=4:ts=4 - -import os,sys -sys.path.insert( 0, os.path.join( os.path.dirname( sys.argv[0] ), 'src' ) ) -from commons import setup - -pkg_info_text = """ -Metadata-Version: 1.1 -Name: python-commons -Version: 0.2 -Author: Yang Zhang -Author-email: yaaang NOSPAM at REMOVECAPS gmail -Home-page: http://assorted.sourceforge.net/python-commons -Download-url: http://assorted.sourceforge.net/python-commons/download -Summary: Python Commons -License: Python Software Foundation License -Description: General-purpose library of utilities and extensions to the - standard library. -Keywords: Python,common,commons,utility,utilities,library,libraries -Platform: any -Provides: commons -Classifier: Development Status :: 4 - Beta -Classifier: Environment :: No Input/Output (Daemon) -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Python Software Foundation License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Topic :: Communications -Classifier: Topic :: Database -Classifier: Topic :: Internet -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: System -Classifier: Topic :: System :: Filesystems -Classifier: Topic :: System :: Logging -Classifier: Topic :: System :: Networking -Classifier: Topic :: Text Processing -Classifier: Topic :: Utilities -""" - -setup.run_setup( pkg_info_text, - #scripts = ['frontend/py_hotshot.py'], - ) Copied: python-commons/tags/0.2/setup.py (from rev 564, python-commons/trunk/setup.py) =================================================================== --- python-commons/tags/0.2/setup.py (rev 0) +++ python-commons/tags/0.2/setup.py 2008-03-03 04:55:33 UTC (rev 584) @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- +# vim:ft=python:et:sw=4:ts=4 + +import os,sys +sys.path.insert( 0, os.path.join( os.path.dirname( sys.argv[0] ), 'src' ) ) +from commons import setup + +pkg_info_text = """ +Metadata-Version: 1.1 +Name: python-commons +Version: 0.2 +Author: Yang Zhang +Author-email: yaaang NOSPAM at REMOVECAPS gmail +Home-page: http://assorted.sourceforge.net/python-commons +Summary: Python Commons +License: Python Software Foundation License +Description: General-purpose library of utilities and extensions to the + standard library. +Keywords: Python,common,commons,utility,utilities,library,libraries +Platform: any +Provides: commons +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: No Input/Output (Daemon) +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Communications +Classifier: Topic :: Database +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: System +Classifier: Topic :: System :: Filesystems +Classifier: Topic :: System :: Logging +Classifier: Topic :: System :: Networking +Classifier: Topic :: Text Processing +Classifier: Topic :: Utilities +""" + +setup.run_setup( pkg_info_text, + #scripts = ['frontend/py_hotshot.py'], + ) Deleted: python-commons/tags/0.2/src/commons/__init__.py =================================================================== --- python-commons/trunk/src/commons/__init__.py 2008-02-19 09:09:41 UTC (rev 473) +++ python-commons/tags/0.2/src/commons/__init__.py 2008-03-03 04:55:33 UTC (rev 584) @@ -1,48 +0,0 @@ -# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- -# vim:ft=python:et:sw=4:ts=4 - -""" -U{Python Commons<http://assorted.sf.net/python-commons>} is a collection of -general-purpose utilities released under the U{PSF -license<http://www.python.org/psf/license.html>} (the same license as what -Python is distributed under). - -You can download the latest releases -U{here<http://assorted.sf.net/python-commons/download>}. To install, -run setup.py or setup.bash. setup.bash requires -U{simple-setup<http://assorted.sf.net/shell-tools/simple-setup>} which -is part of U{shell-tools<http://assorted.sf.net/shell-tools>}. - -@author: Yang Zhang -@copyright: Yang Zhang unless otherwise noted -@license: PSF -""" - -__version__ = ( 0, 2, 0 ) -__all__ = [ 'async', - 'control', - 'decs', - 'environ', - 'exceps', - 'files', - 'interp', - 'log', - 'misc', - 'networking', - 'progress', - 'seqs', - 'servers', - 'startup', - 'strs', - 'structs', - 'threads', - 'trace' ] - -# TODO more resources: -# http://aima.cs.berkeley.edu/python/utils.py -# http://aspn.activestate.com/ASPN/Cookbook/Python -# http://aspn.activestate.com/ASPN/Cookbook/Python?&recipe_status=editors -# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/413486 -# interesting: -# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/259174 -# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/473790 Copied: python-commons/tags/0.2/src/commons/__init__.py (from rev 568, python-commons/trunk/src/commons/__init__.py) =================================================================== --- python-commons/tags/0.2/src/commons/__init__.py (rev 0) +++ python-commons/tags/0.2/src/commons/__init__.py 2008-03-03 04:55:33 UTC (rev 584) @@ -0,0 +1,40 @@ +# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- +# vim:ft=python:et:sw=4:ts=4 + +""" +U{Python Commons<http://assorted.sf.net/python-commons>} is a +general-purpose library. + +@author: Yang Zhang +@copyright: Yang Zhang unless otherwise noted +@license: PSF +""" + +__version__ = ( 0, 2, 0 ) +__all__ = [ 'async', + 'control', + 'decs', + 'environ', + 'exceps', + 'files', + 'interp', + 'log', + 'misc', + 'networking', + 'progress', + 'seqs', + 'servers', + 'startup', + 'strs', + 'structs', + 'threads', + 'trace' ] + +# TODO more resources: +# http://aima.cs.berkeley.edu/python/utils.py +# http://aspn.activestate.com/ASPN/Cookbook/Python +# http://aspn.activestate.com/ASPN/Cookbook/Python?&recipe_status=editors +# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/413486 +# interesting: +# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/259174 +# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/473790 Deleted: python-commons/tags/0.2/src/commons/files.py =================================================================== --- python-commons/trunk/src/commons/files.py 2008-02-19 09:09:41 UTC (rev 473) +++ python-commons/tags/0.2/src/commons/files.py 2008-03-03 04:55:33 UTC (rev 584) @@ -1,115 +0,0 @@ -# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- -# vim:ft=python:et:sw=4:ts=4 - -""" -File and directory manipulation. - -@var invalid_filename_chars: The characters which are usually -prohibited on most modern file systems. - -@var invalid_filename_chars_regex: A regex character class constructed -from L{invalid_filename_chars}. -""" - -from __future__ import with_statement - -import os, re, tempfile - -from path import path - -def soft_makedirs( path ): - """ - Emulate C{mkdir -p} (doesn't complain if it already exists). - - @param path: The path of the directory to create. - @type path: str - - @raise OSError: If it cannot create the directory. It only - swallows OS error 17. - """ - try: - os.makedirs( path ) - except OSError, ex: - if ex.errno == 17: - pass - else: - raise - -def temp_dir( base_dir_name, do_create_subdir = True ): - """ - Get a temporary directory without polluting top-level /tmp. This follows - Ubuntu's conventions, choosing a temporary directory name based on - the given name plus the user name to avoid user conflicts. - - @param base_dir_name: The "name" of the temporary directory. This - is usually identifies the purpose of the directory, or the - application to which the temporary directory belongs. E.g., if joe - calls passes in C{"ssh-agent"} on a standard Linux/Unix system, - then the full path of the temporary directory will be - C{"/tmp/ssh-agent-joe"}. - @type base_dir_name: str - - @param do_create_subdir: If C{True}, then creates a - sub-sub-directory within the temporary sub-directory (and returns - the path to that). The sub-sub-directory's name is randomized - (uses L{tempfile.mkdtemp}). - @type do_create_subdir: bool - - @return: The path to the temporary (sub-)sub-directory. - @rtype: str - """ - base_dir_name += '-' + os.environ[ 'USER' ] - base_dir = paths.path( tempfile.gettempdir() ) / base_dir_name - soft_makedirs( base_dir ) - if do_create_subdir: - return tempfile.mkdtemp( dir = base_dir ) - else: - return base_dir - -invalid_filename_chars = r'*|\/:<>?' -invalid_filename_chars_regex = r'[*|\\\/:<>?]' - -def cleanse_filename( filename ): - """ - Replaces all problematic characters in a filename with C{"_"}, as - specified by L{invalid_filename_chars}. - - @param filename: The filename to cleanse. - @type filename: str - """ - pattern = invalid_filename_chars_regex - return re.sub( pattern, '_', filename ) - -class disk_double_buffer( object ): - """ - A simple disk double-buffer. One file is for reading, the other is for - writing, and a facility for swapping the two roles is provided. - """ - def __init__( self, path_base, do_persist = True ): - self.paths = map( path, [ path_base + '.0', path_base + '.1' ] ) - self.do_persist = do_persist - self.switch_status = path( path_base + '.switched' ) - if not do_persist or not self.switch_status.exists(): - self.w, self.r = 0, 1 # default - else: - self.w, self.r = 1, 0 - self.reload_files() - def reload_files( self ): - self.writer = file( self.paths[ self.w ], 'w' ) - if not self.paths[ self.r ].exists(): - self.paths[ self.r ].touch() - self.reader = file( self.paths[ self.r ] ) - def switch( self ): - self.close() - if self.do_persist: - if self.w == 0: self.switch_status.touch() - else: self.switch_status.remove() - self.r, self.w = self.w, self.r - self.reload_files() - def write( self, x ): - self.writer.write( x ) - def read( self, len = 8192 ): - return self.reader.read( len ) - def close( self ): - self.reader.close() - self.writer.close() Copied: python-commons/tags/0.2/src/commons/files.py (from rev 567, python-commons/trunk/src/commons/files.py) =================================================================== --- python-commons/tags/0.2/src/commons/files.py (rev 0) +++ python-commons/tags/0.2/src/commons/files.py 2008-03-03 04:55:33 UTC (rev 584) @@ -0,0 +1,115 @@ +# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- +# vim:ft=python:et:sw=4:ts=4 + +""" +File and directory manipulation. + +@var invalid_filename_chars: The characters which are usually +prohibited on most modern file systems. + +@var invalid_filename_chars_regex: A regex character class constructed +from L{invalid_filename_chars}. +""" + +from __future__ import with_statement + +import os, re, tempfile + +from path import path + +def soft_makedirs( path ): + """ + Emulate C{mkdir -p} (doesn't complain if it already exists). + + @param path: The path of the directory to create. + @type path: str + + @raise OSError: If it cannot create the directory. It only + swallows OS error 17. + """ + try: + os.makedirs( path ) + except OSError, ex: + if ex.errno == 17: + pass + else: + raise + +def temp_dir( base_dir_name, do_create_subdir = True ): + """ + Get a temporary directory without polluting top-level /tmp. This follows + Ubuntu's conventions, choosing a temporary directory name based on + the given name plus the user name to avoid user conflicts. + + @param base_dir_name: The "name" of the temporary directory. This + is usually identifies the purpose of the directory, or the + application to which the temporary directory belongs. E.g., if joe + calls passes in C{"ssh-agent"} on a standard Linux/Unix system, + then the full path of the temporary directory will be + C{"/tmp/ssh-agent-joe"}. + @type base_dir_name: str + + @param do_create_subdir: If C{True}, then creates a + sub-sub-directory within the temporary sub-directory (and returns + the path to that). The sub-sub-directory's name is randomized + (uses L{tempfile.mkdtemp}). + @type do_create_subdir: bool + + @return: The path to the temporary (sub-)sub-directory. + @rtype: str + """ + base_dir_name += '-' + os.environ[ 'USER' ] + base_dir = path( tempfile.gettempdir() ) / base_dir_name + soft_makedirs( base_dir ) + if do_create_subdir: + return tempfile.mkdtemp( dir = base_dir ) + else: + return base_dir + +invalid_filename_chars = r'*|\/:<>?' +invalid_filename_chars_regex = r'[*|\\\/:<>?]' + +def cleanse_filename( filename ): + """ + Replaces all problematic characters in a filename with C{"_"}, as + specified by L{invalid_filename_chars}. + + @param filename: The filename to cleanse. + @type filename: str + """ + pattern = invalid_filename_chars_regex + return re.sub( pattern, '_', filename ) + +class disk_double_buffer( object ): + """ + A simple disk double-buffer. One file is for reading, the other is for + writing, and a facility for swapping the two roles is provided. + """ + def __init__( self, path_base, do_persist = True ): + self.paths = map( path, [ path_base + '.0', path_base + '.1' ] ) + self.do_persist = do_persist + self.switch_status = path( path_base + '.switched' ) + if not do_persist or not self.switch_status.exists(): + self.w, self.r = 0, 1 # default + else: + self.w, self.r = 1, 0 + self.reload_files() + def reload_files( self ): + self.writer = file( self.paths[ self.w ], 'w' ) + if not self.paths[ self.r ].exists(): + self.paths[ self.r ].touch() + self.reader = file( self.paths[ self.r ] ) + def switch( self ): + self.close() + if self.do_persist: + if self.w == 0: self.switch_status.touch() + else: self.switch_status.remove() + self.r, self.w = self.w, self.r + self.reload_files() + def write( self, x ): + self.writer.write( x ) + def read( self, len = 8192 ): + return self.reader.read( len ) + def close( self ): + self.reader.close() + self.writer.close() Deleted: python-commons/tags/0.2/src/commons/setup.py =================================================================== --- python-commons/trunk/src/commons/setup.py 2008-02-19 09:09:41 UTC (rev 473) +++ python-commons/tags/0.2/src/commons/setup.py 2008-03-03 04:55:33 UTC (rev 584) @@ -1,98 +0,0 @@ -#!/usr/bin/env python -# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- -# vim:ft=python:et:sw=4:ts=4 - -""" -Common code for setup.py files. -""" - -arg_keys = """ -name -version -author -author_email -description: Summary -download_url: Download-url -long_description: Description -keywords: Keywords -url: Home-page -license -classifiers: Classifier -platforms: Platform -""" - -import sys -if not hasattr(sys, "version_info") or sys.version_info < (2, 3): - from distutils.core import setup - _setup = setup - def setup(**kwargs): - for key in [ - # distutils >= Python 2.3 args - # XXX probably download_url came in earlier than 2.3 - "classifiers", "download_url", - # setuptools args - "install_requires", "zip_safe", "test_suite", - ]: - if kwargs.has_key(key): - del kwargs[key] - # Only want packages keyword if this is a package, - # only want py_modules keyword if this is a single-file module, - # so get rid of packages or py_modules keyword as appropriate. - if kwargs["packages"] is None: - del kwargs["packages"] - else: - del kwargs["py_modules"] - apply(_setup, (), kwargs) -else: - from setuptools import setup, find_packages - -def run_setup( pkg_info_text, *orig_args, **orig_kwargs ): - list_keys = set( [ 'Classifier' ] ) - pkg_info = {} - for line in pkg_info_text.split( '\n' ): - if line.strip() != '': - if line.startswith( ' '*8 ): - pkg_info[ key ] += line[ 7 : ] - else: - key, value = line.split( ': ', 1 ) - if key in list_keys: - try: - pkg_info[ key ].append( value ) - except: - pkg_info[ key ] = [ value ] - else: - pkg_info[ key ] = value - - args_nontranslations = set() - args_translations = {} - for line in arg_keys.split( '\n' ): - if line.strip() != '': - splitted = line.split( ': ', 1 ) - dest_name = splitted[ 0 ] - if len( splitted ) == 2: - source_name = splitted[ 1 ] - args_translations[ source_name ] = dest_name - else: - args_nontranslations.add( dest_name ) - - args = {} - for key, value in pkg_info.iteritems(): - dest_name = None - try: - dest_name = args_translations[ key ] - except KeyError: - key = key.lower().replace('-','_') - if key in args_nontranslations: - dest_name = key - if dest_name is not None: - args[ dest_name ] = value - - # this also allows user to override our args - args.update( orig_kwargs ) - - setup( *orig_args, - package_dir = {'':'src'}, - packages = find_packages('src'), - zip_safe = True, - **args, - ) Copied: python-commons/tags/0.2/src/commons/setup.py (from rev 567, python-commons/trunk/src/commons/setup.py) =================================================================== --- python-commons/tags/0.2/src/commons/setup.py (rev 0) +++ python-commons/tags/0.2/src/commons/setup.py 2008-03-03 04:55:33 UTC (rev 584) @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- mode: python; tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4; -*- +# vim:ft=python:et:sw=4:ts=4 + +""" +Common code for setup.py files. +""" + +arg_keys = """ +name +version +author +author_email +description: Summary +download_url: Download-url +long_description: Description +keywords: Keywords +url: Home-page +license +classifiers: Classifier +platforms: Platform +""" + +import sys +if not hasattr(sys, "version_info") or sys.version_info < (2, 3): + from distutils.core import setup + _setup = setup + def setup(**kwargs): + for key in [ + # distutils >= Python 2.3 args + # XXX probably download_url came in earlier than 2.3 + "classifiers", "download_url", + # setuptools args + "install_requires", "zip_safe", "test_suite", + ]: + if kwargs.has_key(key): + del kwargs[key] + # Only want packages keyword if this is a package, + # only want py_modules keyword if this is a single-file module, + # so get rid of packages or py_modules keyword as appropriate. + if kwargs["packages"] is None: + del kwargs["packages"] + else: + del kwargs["py_modules"] + apply(_setup, (), kwargs) +else: + from setuptools import setup, find_packages + +def run_setup( pkg_info_text, *orig_args, **orig_kwargs ): + list_keys = set( [ 'Classifier' ] ) + pkg_info = {} + for line in pkg_info_text.split( '\n' ): + if line.strip() != '': + if line.startswith( ' '*8 ): + pkg_info[ key ] += line[ 7 : ] + else: + key, value = line.split( ': ', 1 ) + if key in list_keys: + try: + pkg_info[ key ].append( value ) + except: + pkg_info[ key ] = [ value ] + else: + pkg_info[ key ] = value + + args_nontranslations = set() + args_translations = {} + for line in arg_keys.split( '\n' ): + if line.strip() != '': + splitted = line.split( ': ', 1 ) + dest_name = splitted[ 0 ] + if len( splitted ) == 2: + source_name = splitted[ 1 ] + args_translations[ source_name ] = dest_name + else: + args_nontranslations.add( dest_name ) + + args = {} + for key, value in pkg_info.iteritems(): + dest_name = None + try: + dest_name = args_translations[ key ] + except KeyError: + key = key.lower().replace('-','_') + if key in args_nontranslations: + dest_name = key + if dest_name is not None: + args[ dest_name ] = value + + # this also allows user to override our args + args.update( orig_kwargs ) + args.update( { + 'package_dir': {'':'src'}, + 'packages': find_packages('src'), + 'zip_safe': True, + } ) + + setup( *orig_args, **args ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:52:40
|
Revision: 583 http://assorted.svn.sourceforge.net/assorted/?rev=583&view=rev Author: yangzhang Date: 2008-03-02 20:52:46 -0800 (Sun, 02 Mar 2008) Log Message: ----------- new publisher Modified Paths: -------------- simple-build/trunk/publish.bash Modified: simple-build/trunk/publish.bash =================================================================== --- simple-build/trunk/publish.bash 2008-03-03 04:52:28 UTC (rev 582) +++ simple-build/trunk/publish.bash 2008-03-03 04:52:46 UTC (rev 583) @@ -1,7 +1,9 @@ #!/usr/bin/env bash -clean=true -project=simple-build +fullname='Simple-Build' +version=0.1 +license=gpl3 websrcs=( README ) -webfiles=() +rels=( src-tgz: ) +nodl=true . assorted.bash || exit 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:52:23
|
Revision: 582 http://assorted.svn.sourceforge.net/assorted/?rev=582&view=rev Author: yangzhang Date: 2008-03-02 20:52:28 -0800 (Sun, 02 Mar 2008) Log Message: ----------- new publisher Modified Paths: -------------- scala-commons/trunk/publish.bash Modified: scala-commons/trunk/publish.bash =================================================================== --- scala-commons/trunk/publish.bash 2008-03-03 04:46:55 UTC (rev 581) +++ scala-commons/trunk/publish.bash 2008-03-03 04:52:28 UTC (rev 582) @@ -2,7 +2,7 @@ . common.bash || exit 1 -post-stage() { +pre-stage() { make -sC src/ doc } @@ -10,6 +10,6 @@ version=0.1 license=scala websrcs=( README ) -webfiles=( src/doc src/out/scala-commons.jar ) +webfiles=( src/doc ) rels=( src-tgz: scala-ant: ) . assorted.bash "$@" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:46:50
|
Revision: 581 http://assorted.svn.sourceforge.net/assorted/?rev=581&view=rev Author: yangzhang Date: 2008-03-02 20:46:55 -0800 (Sun, 02 Mar 2008) Log Message: ----------- new publisher Modified Paths: -------------- hash-dist/trunk/README hash-dist/trunk/publish.bash Modified: hash-dist/trunk/README =================================================================== --- hash-dist/trunk/README 2008-03-03 04:45:44 UTC (rev 580) +++ hash-dist/trunk/README 2008-03-03 04:46:55 UTC (rev 581) @@ -1,6 +1,3 @@ -% Hash Distribution Test -% Yang Zhang - Overview -------- @@ -41,21 +38,3 @@ [Scala]: http://scala-lang.org/ [Scala Commons]: http://assorted.sf.net/scala-commons/ [Simple Build]: http://assorted.sf.net/simple-build/ - -License -------- - -This software is released under the [GNU GPL3]. - -[GNU GPL3]: http://www.gnu.org/licenses/gpl.txt - -Contact -------- - -Copyright 2008 [Yang Zhang]. -All rights reserved. - -Back to [assorted.sf.net]. - -[Yang Zhang]: http://www.mit.edu/~y_z/ -[assorted.sf.net]: http://assorted.sf.net/ Modified: hash-dist/trunk/publish.bash =================================================================== --- hash-dist/trunk/publish.bash 2008-03-03 04:45:44 UTC (rev 580) +++ hash-dist/trunk/publish.bash 2008-03-03 04:46:55 UTC (rev 581) @@ -1,7 +1,9 @@ #!/usr/bin/env bash -project=hash-dist -clean=false +fullname='Hash Distribution Test' +version=0.1 +license=gpl3 websrcs=( README ) -webfiles=() +rels=( src-tgz: ) +nodl=true . assorted.bash "$@" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:45:41
|
Revision: 580 http://assorted.svn.sourceforge.net/assorted/?rev=580&view=rev Author: yangzhang Date: 2008-03-02 20:45:44 -0800 (Sun, 02 Mar 2008) Log Message: ----------- updated for new publisher Modified Paths: -------------- hash-join/trunk/README hash-join/trunk/publish.bash Modified: hash-join/trunk/README =================================================================== --- hash-join/trunk/README 2008-03-03 04:41:41 UTC (rev 579) +++ hash-join/trunk/README 2008-03-03 04:45:44 UTC (rev 580) @@ -1,6 +1,3 @@ -% Parallel Hash Join -% Yang Zhang - Overview -------- @@ -55,7 +52,7 @@ $ svn --quiet co https://assorted.svn.sourceforge.net/svnroot/assorted/hash-join/trunk hash-join $ ln -s "$PWD/cpp-commons/src/commons" hash-join/src/ $ cd hash-join/src/ - $ make hashjoin-opt + $ CPATH="$PWD" make hashjoin-opt $ out/hashjoin-opt 16 $MOVIEDATA/{movies,actresses}.dat Supporting Tools Modified: hash-join/trunk/publish.bash =================================================================== --- hash-join/trunk/publish.bash 2008-03-03 04:41:41 UTC (rev 579) +++ hash-join/trunk/publish.bash 2008-03-03 04:45:44 UTC (rev 580) @@ -1,7 +1,10 @@ #!/usr/bin/env bash -project=hash-join -clean=false +fullname='Parallel Hash-Join' +version=0.1 +license=gpl3 websrcs=( README doc/analysis.txt ) webfiles=( tools/data/*.pdf ) +rels=( src-tgz: ) +nodl=true . assorted.bash "$@" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:41:36
|
Revision: 579 http://assorted.svn.sourceforge.net/assorted/?rev=579&view=rev Author: yangzhang Date: 2008-03-02 20:41:41 -0800 (Sun, 02 Mar 2008) Log Message: ----------- updated and published readme Modified Paths: -------------- object-codegen/trunk/README Modified: object-codegen/trunk/README =================================================================== --- object-codegen/trunk/README 2008-03-03 04:41:30 UTC (rev 578) +++ object-codegen/trunk/README 2008-03-03 04:41:41 UTC (rev 579) @@ -1,6 +1,25 @@ +Overview +-------- + +Object Code Generator is a tool for generating repetitive boilerplate code. + +Currently, this tool generates Java code for serialization and deserialization +of objects that serve primarily as data structures. + Dependencies -============ +------------ -- scala -- scala commons -- uncrustify: optional; for formatting +- [Scala] 2.6 +- [Scala Commons] 0.1 +- [uncrustify]: optional; for formatting + +[Scala]: http://www.scala-lang.org/ +[Scala Commons]: http://assorted.sf.net/scala-commons/ +[uncrustify]: http://uncrustify.sourceforge.net/ + +Related Work +------------ + +- [autogen]: I don't know anything about this. + +[autogen]: http://www.gnu.org/software/autogen/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yan...@us...> - 2008-03-03 04:41:24
|
Revision: 578 http://assorted.svn.sourceforge.net/assorted/?rev=578&view=rev Author: yangzhang Date: 2008-03-02 20:41:30 -0800 (Sun, 02 Mar 2008) Log Message: ----------- added publisher Added Paths: ----------- object-codegen/trunk/publish.bash Added: object-codegen/trunk/publish.bash =================================================================== --- object-codegen/trunk/publish.bash (rev 0) +++ object-codegen/trunk/publish.bash 2008-03-03 04:41:30 UTC (rev 578) @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +fullname='Object Code Generator' +version=0.1 +license=gpl3 +websrcs=( README ) +rels=( src-tgz: scala-ant: ) +nodl=true +. assorted.bash "$@" Property changes on: object-codegen/trunk/publish.bash ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |