Intial commit of source code samples for GitHub repo.
This commit is contained in:
parent
5793080047
commit
9462407ba8
14 changed files with 397 additions and 1 deletions
5
COBOL/Makefile
Normal file
5
COBOL/Makefile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
COBCFLAGS=-free -x
|
||||
|
||||
|
||||
hello: hello.cob
|
||||
cobc ${COBCFLAGS} -o hello hello.cob
|
||||
6
COBOL/hello.cob
Normal file
6
COBOL/hello.cob
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. HELLO-WORLD.
|
||||
* simple hello world program
|
||||
PROCEDURE DIVISION.
|
||||
DISPLAY 'Hello COBOL world!'.
|
||||
STOP RUN.
|
||||
|
|
@ -1,2 +1,5 @@
|
|||
# src-ed
|
||||
Soruce code samples for various languages - hello name-your-language world!
|
||||
Source code samples for various languages - hello name-your-language world!
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
27
bash/hello.sh
Executable file
27
bash/hello.sh
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Sample Hello World! bash script...
|
||||
#
|
||||
|
||||
declare -A FRUIT_COLOR
|
||||
|
||||
FRUIT_COLOR=( ["apple"]="red" ["banana"]="yellow")
|
||||
VERINFO=`git describe --abbrev=7 --dirty --always --tags`
|
||||
|
||||
|
||||
# Obligatory Hello World with some version info
|
||||
echo "Hello Bash World! Version: $VERINFO"
|
||||
|
||||
# Show list of command line arguments
|
||||
echo "Command line args: $*"
|
||||
|
||||
# Determine number of physical CPU sockets
|
||||
SOCKETCOUNT=`cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l`
|
||||
echo "CPU socket count: $SOCKETCOUNT"
|
||||
|
||||
# print out our FRUIT_COLOR associative array (key/value pairs)
|
||||
declare -A sorted_fruit
|
||||
for fruit in "${!FRUIT_COLOR[@]}"; do
|
||||
echo "$fruit = ${FRUIT_COLOR["$fruit"]}";
|
||||
done | sort --reverse
|
||||
|
||||
38
openmp-c/Makefile
Normal file
38
openmp-c/Makefile
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# Sample makefile to add version/compiler info via an extra
|
||||
# object module linked to final binary.
|
||||
#
|
||||
COMPILER_VER:=$(shell gcc --version)
|
||||
COMPILER_OPTS=-fopenmp
|
||||
GIT_DESCRIBE:=$(shell git describe --abbrev=7 --dirty --always --tags --long)
|
||||
|
||||
.PHONY: all
|
||||
all: hello-omp
|
||||
|
||||
versioninfo.txt:
|
||||
@echo "@(#) Compiler version: ${COMPILER_VER}." >versioninfo.txt
|
||||
@echo "@(#) Compiler options: ${COMPILER_OPTS}." >>versioninfo.txt
|
||||
@echo "@(#) Git info: ${GIT_DESCRIBE}" >>versioninfo.txt
|
||||
|
||||
versioninfo.o: versioninfo.txt
|
||||
objcopy --input binary \
|
||||
--output elf64-x86-64 \
|
||||
--binary-architecture i386 \
|
||||
--add-section versioninfo=versioninfo.txt \
|
||||
--set-section-flags versioninfo=contents,noload \
|
||||
versioninfo.txt versioninfo.o
|
||||
|
||||
hello-omp: hello-omp.c Makefile versioninfo.o
|
||||
gcc $(COMPILER_OPTS) -DVERSIONINFO="\"$(GIT_DESCRIBE)\"" hello-omp.c \
|
||||
versioninfo.o -o hello-omp
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
(export OMP_NUM_THREADS=2; ./hello-omp)
|
||||
sleep 5
|
||||
(export OMP_NUM_THREADS=24; ./hello-omp)
|
||||
sleep 5
|
||||
(export OMP_NUM_THREADS=500; ./hello-omp)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f hello-omp versioninfo.*
|
||||
BIN
openmp-c/hello-omp
Executable file
BIN
openmp-c/hello-omp
Executable file
Binary file not shown.
43
openmp-c/hello-omp.c
Normal file
43
openmp-c/hello-omp.c
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#include <omp.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _OPENMP
|
||||
|
||||
static char versionbuf[16];
|
||||
static char gitversion[] = VERSIONINFO;
|
||||
|
||||
int main()
|
||||
{
|
||||
int tcount = 0;
|
||||
char *versionp;
|
||||
|
||||
/* Tell about the version of OpenMP API we're using.
|
||||
* Specification source: www.openmp.org.
|
||||
*/
|
||||
switch (_OPENMP) {
|
||||
case 200805:
|
||||
versionp = "3.0 (May 2008)"; break;
|
||||
case 201107:
|
||||
versionp = "3.1 (Jul 2011)"; break;
|
||||
case 201307:
|
||||
versionp = "4.0 (Jul 2013)"; break;
|
||||
default:
|
||||
sprintf(versionbuf, "(%6.6d)", _OPENMP);
|
||||
versionp = versionbuf;
|
||||
break;
|
||||
}
|
||||
printf("Using OpenMP version: %s\n", versionp);
|
||||
printf("Program git commit info: %s\n", gitversion);
|
||||
printf("Max threads = %d\n", omp_get_max_threads());
|
||||
|
||||
#pragma omp parallel
|
||||
#pragma omp atomic
|
||||
tcount++;
|
||||
|
||||
#pragma omp parallel
|
||||
/* Hello parallel world... */
|
||||
printf("Hello OpenMP World from thread %3.3d of %3.3d! (tcount=%d)\n",
|
||||
omp_get_thread_num() + 1, omp_get_num_threads(), tcount);
|
||||
}
|
||||
|
||||
#endif
|
||||
3
openmp-c/versioninfo.txt
Normal file
3
openmp-c/versioninfo.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
@(#) Compiler version: gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE..
|
||||
@(#) Compiler options: -fopenmp.
|
||||
@(#) Git info: e1e14b8-dirty
|
||||
55
perl/hello.pl
Executable file
55
perl/hello.pl
Executable file
|
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/env perl
|
||||
#
|
||||
# Perl language Hello World! (and then some...)
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my @animals = ("camel", "llama", "owl");
|
||||
my %fruit_color = (apple => "red", banana => "yellow");
|
||||
my @fruits = keys %fruit_color;
|
||||
my @colors = values %fruit_color;
|
||||
my $verinfo = `git describe --abbrev=7 --dirty --always --tags`;
|
||||
|
||||
# Obligatory Hello World with some version info
|
||||
print "Hello Perl World! Version: $verinfo\n";
|
||||
|
||||
# Show list of command line arguments
|
||||
print "Command line args: @ARGV\n";
|
||||
print "ARGV[0] = $ARGV[0]";
|
||||
print "ARGV[1] = $ARGV[1]";
|
||||
print "ARGV[2] = $ARGV[2]";
|
||||
|
||||
# print out our animals array in reverse-sorted order
|
||||
print "\nValue of animals array:\n";
|
||||
foreach (reverse @animals) {
|
||||
print 'item = ' . $_ . "\n";
|
||||
if ($_ eq $animals[0]) {
|
||||
print " Condition is TRUE, \"$_\" eq " . "$animals[0]\n";
|
||||
} else {
|
||||
print " Condition is FALSE, \"$_\" ne " . "$animals[0]\n";
|
||||
}
|
||||
}
|
||||
|
||||
# print our fruit_color hash (key/value pairs)
|
||||
print "\nValue of fruit_color hash:\n";
|
||||
foreach (keys %fruit_color) {
|
||||
print "$_ = $fruit_color{$_}\n";
|
||||
}
|
||||
|
||||
# Let's create the file test.out and write animals array to it...
|
||||
print "\nWriting test.out file...\n";
|
||||
open(my $out, ">", "test.out") or die "Can't create/open test.out! $!\n";
|
||||
foreach (@animals) {
|
||||
print $out "$_\n";
|
||||
}
|
||||
close $out or die "$out: $!\n";
|
||||
|
||||
# Now open the file we wrote and read it back...
|
||||
print "\nContents of test.out file:\n";
|
||||
open (my $in, "<", "test.out") or die "Can't open test.out! $!\n";
|
||||
my $linenum = 1;
|
||||
while (<$in>) {
|
||||
print "line $linenum: $_";
|
||||
$linenum += 1;
|
||||
}
|
||||
close $in or die "$in $!\n";
|
||||
81
python/hello.py
Executable file
81
python/hello.py
Executable file
|
|
@ -0,0 +1,81 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Sample Hello World! python script...
|
||||
#
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
|
||||
animals = ["camel", "llama", "owl"]
|
||||
fruit_color = { "apple":"red", "banana":"yellow"}
|
||||
fruits = fruit_color.keys()
|
||||
colors = fruit_color.items()
|
||||
verinfo = subprocess.check_output(["git", "describe", "--abbrev=7",
|
||||
"--dirty", "--always", "--tags"])
|
||||
|
||||
# Obligatory Hello World with some version info
|
||||
print "Hello Python World! Version: " +verinfo
|
||||
|
||||
# Show list of command line arguments
|
||||
print "Command line args: ",
|
||||
for i in sys.argv[1:]:
|
||||
print " " + i,
|
||||
print ""
|
||||
|
||||
# Determine number of physical CPU sockets
|
||||
if os.name == 'nt':
|
||||
pass
|
||||
else:
|
||||
socketcount = subprocess.check_output(["bash","-c",
|
||||
"(cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l)"])
|
||||
print "CPU socket count: ", socketcount
|
||||
|
||||
# print out our animals array in reverse-sorted order
|
||||
print "\nValue of animals array:"
|
||||
for i in sorted(animals, reverse=True):
|
||||
print "item = " + i
|
||||
if (i == animals[0]):
|
||||
print " Condition is TRUE, \"" +i+ "\" == " + animals[0]
|
||||
else:
|
||||
print " Condition is FALSE, \"" +i+ "\" != " + animals[0]
|
||||
|
||||
# print our fruit_color dictionary (key/value pairs)
|
||||
print "\nValue of fruit_color hash:"
|
||||
for fruit,color in sorted(fruit_color.items(), reverse=True):
|
||||
print fruit, " = ", color
|
||||
|
||||
# Read a non-existent environment variable and supply default value...
|
||||
some_env_var = os.getenv("PROBABLY_NOT_THERE", "Default Value")
|
||||
print "\nPROBABLY_NOT_THERE is set to '"+some_env_var+"'\n"
|
||||
|
||||
# Let's read in the PATH variable from the OS and print it out...
|
||||
path_env_var = os.environ['PATH']
|
||||
print "OS PATH var is set to: '"+path_env_var+"'\n"
|
||||
|
||||
# Let's manipulate PATH variable and then restore it
|
||||
print "Adding :/test to PATH variable"
|
||||
os.environ['PATH'] = os.environ['PATH'] + ":/test"
|
||||
print "OS PATH var is set to: '"+os.environ['PATH']+"'\n"
|
||||
print "Restoring original PATH value."
|
||||
os.environ['PATH'] = path_env_var
|
||||
print "OS PATH var is set to: '"+path_env_var+"'\n"
|
||||
|
||||
|
||||
# Let's create the file test.out and write animals array to it...
|
||||
print "\nWriting test.out file..."
|
||||
file = open("test.out", "w")
|
||||
for i in animals:
|
||||
file.write(i+"\n")
|
||||
file.close()
|
||||
|
||||
# Now open the file we wrote and read it back...
|
||||
print "\nContents of test.out file:"
|
||||
file = open("test.out", "r")
|
||||
linenum = 1
|
||||
for line in file:
|
||||
print "line "+str(linenum)+": "+line,
|
||||
linenum += 1
|
||||
file.close()
|
||||
|
||||
sys.exit(0)
|
||||
45
ruby/hello.rb
Executable file
45
ruby/hello.rb
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env ruby
|
||||
#
|
||||
# Hello Ruby World!
|
||||
#
|
||||
|
||||
animals = ["camel", "llama", "owl"]
|
||||
fruit_color = { "apple" => "red", "banana" => "yellow" }
|
||||
|
||||
verinfo = `git describe --abbrev=7 --dirty --always --tags`
|
||||
|
||||
puts "Hello Ruby World! Version: #{verinfo}"
|
||||
print "Command line args: "
|
||||
ARGV.each do |arg|
|
||||
print "#{arg} "
|
||||
end
|
||||
print "\n"
|
||||
|
||||
# print out our animals array reverse sorted...
|
||||
(animals.reverse).each do |i|
|
||||
print "item = ", i, "\n"
|
||||
if i == animals.first
|
||||
print 'Condition is True, "camel" == ', i, "\n"
|
||||
else
|
||||
print 'Condition is False, "camel" != ', i, "\n"
|
||||
end
|
||||
end
|
||||
|
||||
# print out our Ruby hash
|
||||
fruit_color.each do |key, value|
|
||||
print key, " = ", value, "\n"
|
||||
end
|
||||
|
||||
# Let's create the file test.out and write animals array to it...
|
||||
file = File.new("test.out", "w")
|
||||
animals.each do |i|
|
||||
file.syswrite("#{i}\n")
|
||||
end
|
||||
file.close
|
||||
|
||||
# Now open the file we wrote and read it back...
|
||||
filelines = IO.readlines("test.out")
|
||||
filelines.each do |i|
|
||||
print i
|
||||
end
|
||||
|
||||
40
sizeofchk/Makefile
Normal file
40
sizeofchk/Makefile
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Makefile for Simple Sizeof Utility
|
||||
#
|
||||
# Created 2014-06-26 by Ed Braaten
|
||||
#
|
||||
|
||||
# Variables that may need tweaking...
|
||||
COMPILER=gcc
|
||||
#COMPILER=icc
|
||||
#COMPILER=clang
|
||||
CCOPTIONS=-O -Wall
|
||||
INSTALLPATH=/usr/local/bin
|
||||
|
||||
# These variables shouldn't need any tweaking
|
||||
CCVERSION=`${COMPILER} --version | head -1`
|
||||
BINARYNAME=sizeofchk-${COMPILER}
|
||||
SHORT_SHA:=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
||||
PGM_VERSION=1.0 (git-$(SHORT_SHA))
|
||||
|
||||
|
||||
# Target to build the main program...
|
||||
${BINARYNAME}: Makefile sizeofchk.c
|
||||
@echo "#define COMPILEINFO \"${CCVERSION}\"" >sizeofchk.h
|
||||
@echo "#define ARCHINFO \""`uname -m`"\"" >>sizeofchk.h
|
||||
@echo "#define SYSINFO \""`uname -s`"\"" >>sizeofchk.h
|
||||
@echo "#define RELEASEINFO \""`uname -r`"\"" >>sizeofchk.h
|
||||
@echo "#define VERSION_STRING \"${PGM_VERSION}\"" >>sizeofchk.h
|
||||
@echo "Header file created..."
|
||||
${COMPILER} ${CCOPTIONS} -o ${BINARYNAME} sizeofchk.c
|
||||
chmod 755 ${BINARYNAME}
|
||||
|
||||
install:
|
||||
mkdir -p /usr/local/bin
|
||||
cp ${BINARYNAME} ${INSTALLPATH}
|
||||
chmod 755 ${INSTALLPATH}/${BINARYNAME}
|
||||
|
||||
clean:
|
||||
rm -f ${BINARYNAME} sizeofchk.h *.o
|
||||
|
||||
tidy:
|
||||
rm -f *.o
|
||||
4
sizeofchk/README.md
Normal file
4
sizeofchk/README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
sizeofchk
|
||||
=========
|
||||
|
||||
Utility to print out size in bits of basic types supported by your compiler.
|
||||
46
sizeofchk/sizeofchk.c
Normal file
46
sizeofchk/sizeofchk.c
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/* simple utility to print out sizeof values...
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <x86intrin.h>
|
||||
#include "sizeofchk.h" /* generated by makefile */
|
||||
|
||||
static char version[] = VERSION_STRING;
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
int (*funcptr)();
|
||||
|
||||
printf("Sizeof Utility by Ed Braaten - Version %s\n", version);
|
||||
printf("Running on %s (%s %s)\n", ARCHINFO, SYSINFO, RELEASEINFO);
|
||||
printf("Compiler version: '%s'\n\n", COMPILEINFO);
|
||||
|
||||
printf(" sizeof(char) = %lu bits\n", sizeof(char) * 8);
|
||||
printf(" sizeof(short) = %lu bits\n", sizeof(short) * 8);
|
||||
printf(" sizeof(int) = %lu bits\n", sizeof(int) * 8);
|
||||
printf(" sizeof(long int) = %lu bits\n", sizeof(long int) * 8);
|
||||
printf(" sizeof(long) = %lu bits\n", sizeof(long) * 8);
|
||||
printf(" sizeof(long long) = %lu bits\n", sizeof(long long) * 8);
|
||||
printf(" sizeof(float) = %lu bits\n", sizeof(float) * 8);
|
||||
printf(" sizeof(double) = %lu bits\n", sizeof(double) * 8);
|
||||
printf(" sizeof(long double) = %lu bits\n", sizeof(long double) * 8);
|
||||
printf(" sizeof(char *) = %lu bits\n", sizeof(char *) * 8);
|
||||
printf(" sizeof((*)()) = %lu bits\n", sizeof(funcptr) * 8);
|
||||
|
||||
#ifdef __SSE__
|
||||
printf("\nSSE types\n\n");
|
||||
printf(" sizeof(__m64) = %lu bits\n", sizeof(__m64) * 8);
|
||||
printf(" sizeof(__m128) = %lu bits\n", sizeof(__m128) * 8);
|
||||
#endif
|
||||
#ifdef __clang__
|
||||
/* clang doesn't support __float128 */
|
||||
#else
|
||||
#ifdef __SSE2__
|
||||
printf(" sizeof(__float128) = %lu bits\n", sizeof(__float128) * 8);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
printf("\n");
|
||||
return(0);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue