Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0xtimmy/crdts #230

Open
wants to merge 127 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
a4b44cd
updated testing instructions and added a block about including gibbon…
0xtimmy Jul 18, 2023
86aba61
orset benchmark
0xtimmy Sep 6, 2023
0bcf926
naive clock and set
0xtimmy Sep 12, 2023
d94f3d1
Merge pull request #225 from iu-parfunc/0xtimmy/benchmarks/set
0xtimmy Sep 12, 2023
9c4eeaf
crdt timeline
0xtimmy Sep 12, 2023
6141fcb
expanded the readme
0xtimmy Sep 13, 2023
f3c876b
gibbon implementation of pure set
0xtimmy Sep 16, 2023
813a3af
gibbon map
0xtimmy Sep 20, 2023
9eb2a57
benchmarking layouts
0xtimmy Oct 4, 2023
d4249be
directory orginization
0xtimmy Oct 4, 2023
fd54ae0
updated testing instructions and added a block about including gibbon…
0xtimmy Jul 18, 2023
efe6253
orset benchmark
0xtimmy Sep 6, 2023
356a6a4
naive clock and set
0xtimmy Sep 12, 2023
38aff98
crdt timeline
0xtimmy Sep 12, 2023
0214589
expanded the readme
0xtimmy Sep 13, 2023
bdd288e
gibbon implementation of pure set
0xtimmy Sep 16, 2023
02e7cde
gibbon map
0xtimmy Sep 20, 2023
0baf862
benchmarking layouts
0xtimmy Oct 4, 2023
966037e
directory orginization
0xtimmy Oct 4, 2023
f676a82
more moving things around
0xtimmy Oct 10, 2023
308c0b0
kmerged
0xtimmy Oct 10, 2023
1afa81f
more CRDTs
0xtimmy Oct 11, 2023
c80d404
built ordered list
0xtimmy Oct 11, 2023
53c0396
fixed clock map issues in ghc
0xtimmy Oct 15, 2023
53e5fca
ordered lists
0xtimmy Oct 15, 2023
e1ec3aa
collision example
0xtimmy Oct 25, 2023
4e81af3
repeatable module import collisions
0xtimmy Oct 27, 2023
a2deafb
declaration renaming works
0xtimmy Nov 6, 2023
7ff377a
module rename can modify function callsites and function decalrations…
0xtimmy Nov 8, 2023
1b2cfaf
finished basic module import resolution
0xtimmy Nov 10, 2023
f05cbdd
parses modules in defs and main as well
0xtimmy Nov 11, 2023
2776226
added a pass to resolve imports in desugarModule
0xtimmy Nov 21, 2023
3d80c84
minor cleanup of README and gibbon-compiler/gibbon.cabal
ulysses4ever Nov 22, 2023
6145e02
aliases work
0xtimmy Nov 22, 2023
434712c
qualified imports
0xtimmy Nov 22, 2023
34e6618
spec imports
0xtimmy Nov 23, 2023
c8bb2d1
finished test cases
0xtimmy Nov 30, 2023
eca7cdd
Merge pull request #233 from ulysses4ever/ap-minor-cleanup
rrnewton Dec 6, 2023
97b9c39
fix? handling local identifier
0xtimmy Dec 7, 2023
2659da7
some testing
0xtimmy Dec 7, 2023
c3e9aca
fixed interp
0xtimmy Dec 10, 2023
22cc526
fixing a test (did not specify the sum function)
0xtimmy Dec 10, 2023
ddbae71
added ext parsing
0xtimmy Dec 11, 2023
cd2ec79
fixed an issue with LetE
0xtimmy Dec 11, 2023
b114741
some oddness
0xtimmy Dec 11, 2023
2f4992c
more bug fixing
0xtimmy Jan 11, 2024
19d4a65
add fixed linear ext handling
0xtimmy Jan 11, 2024
9bc6837
let _default contructors pass through
0xtimmy Jan 11, 2024
09c85cb
collision example
0xtimmy Oct 25, 2023
6020508
repeatable module import collisions
0xtimmy Oct 27, 2023
33f7d48
declaration renaming works
0xtimmy Nov 6, 2023
2a2c42a
module rename can modify function callsites and function decalrations…
0xtimmy Nov 8, 2023
c5f48c6
finished basic module import resolution
0xtimmy Nov 10, 2023
826eb0c
parses modules in defs and main as well
0xtimmy Nov 11, 2023
5acadd1
added a pass to resolve imports in desugarModule
0xtimmy Nov 21, 2023
27269e6
aliases work
0xtimmy Nov 22, 2023
7d61d81
qualified imports
0xtimmy Nov 22, 2023
0aa6bb3
spec imports
0xtimmy Nov 23, 2023
d42d258
finished test cases
0xtimmy Nov 30, 2023
a430af3
fix? handling local identifier
0xtimmy Dec 7, 2023
375baae
some testing
0xtimmy Dec 7, 2023
6847ca9
fixed interp
0xtimmy Dec 10, 2023
0350baf
fixing a test (did not specify the sum function)
0xtimmy Dec 10, 2023
da753a5
added ext parsing
0xtimmy Dec 11, 2023
f886311
fixed an issue with LetE
0xtimmy Dec 11, 2023
fc54de8
some oddness
0xtimmy Dec 11, 2023
fbeca95
more bug fixing
0xtimmy Jan 11, 2024
c3232d4
add fixed linear ext handling
0xtimmy Jan 11, 2024
8ce0e24
let _default contructors pass through
0xtimmy Jan 11, 2024
f20862f
notes from artem
0xtimmy Jan 31, 2024
ecc51cd
built bundler & added bundle flow to the parser and compiler
0xtimmy Jan 31, 2024
2e2e322
passes some tests
0xtimmy Feb 14, 2024
d5cf3f2
Merge branch 'import-module-collisions' into module-bundler
0xtimmy Feb 14, 2024
c3e1d6d
Merge pull request #255 from iu-parfunc/module-bundler
0xtimmy Feb 14, 2024
0df2511
fixing merge issue
0xtimmy Feb 14, 2024
9824c51
removed qualification from unique name (gets rid of the ugly {package…
0xtimmy Feb 14, 2024
ba66015
fixed .gib extension
0xtimmy Feb 15, 2024
237b0e5
fixed verbodity issue
0xtimmy Feb 17, 2024
e10b206
adding the fix to the interpreter
0xtimmy Feb 17, 2024
9662f04
PR cleanup
0xtimmy Feb 20, 2024
f66afdc
cleaning up build file
0xtimmy Feb 20, 2024
41d3b82
reverting common.hs
0xtimmy Feb 20, 2024
1349a7c
some more test fixes
0xtimmy Feb 21, 2024
86c50d6
some more test changes
0xtimmy Feb 21, 2024
6062341
alternatives for showing internal type names
0xtimmy Feb 21, 2024
d1ff39b
Merge branch 'main' of github.com:iu-parfunc/gibbon
0xtimmy Feb 21, 2024
c6b38d2
changed layout benches to print the blogs in a way that's independent…
0xtimmy Feb 21, 2024
24b33ba
removing interp changes
0xtimmy Feb 21, 2024
55373d2
handling _default in freshBundle CaseE
0xtimmy Feb 21, 2024
1387304
fixed more test cases
0xtimmy Feb 21, 2024
1d9fed9
fixing manyFuncs
0xtimmy Feb 21, 2024
4330552
solve layout constrs error
0xtimmy Feb 21, 2024
0d17d3a
test cases pass
0xtimmy Feb 21, 2024
65ab88c
Merge pull request #256 from iu-parfunc/test-case-changes
0xtimmy Feb 21, 2024
bbaa2d7
removed some tests missing from main
0xtimmy Feb 21, 2024
97eff1d
adressed comments and added more robust descriptions to all new modules
0xtimmy Feb 28, 2024
a335c8f
added a pass to resolve imports in desugarModule
0xtimmy Mar 8, 2024
ecac589
merged in main
0xtimmy Mar 8, 2024
88752ca
updated testing instructions and added a block about including gibbon…
0xtimmy Jul 18, 2023
afca133
orset benchmark
0xtimmy Sep 6, 2023
ce0fdb2
naive clock and set
0xtimmy Sep 12, 2023
7ba3949
crdt timeline
0xtimmy Sep 12, 2023
5063b31
expanded the readme
0xtimmy Sep 13, 2023
57db244
gibbon implementation of pure set
0xtimmy Sep 16, 2023
e53ff6b
gibbon map
0xtimmy Sep 20, 2023
7d1401a
benchmarking layouts
0xtimmy Oct 4, 2023
5433b70
directory orginization
0xtimmy Oct 4, 2023
2887b0c
more moving things around
0xtimmy Oct 10, 2023
9115d7d
updated testing instructions and added a block about including gibbon…
0xtimmy Jul 18, 2023
aa2ba8d
orset benchmark
0xtimmy Sep 6, 2023
f83f5d7
naive clock and set
0xtimmy Sep 12, 2023
85c791f
expanded the readme
0xtimmy Sep 13, 2023
e3d4f09
gibbon implementation of pure set
0xtimmy Sep 16, 2023
2dfdc35
gibbon map
0xtimmy Sep 20, 2023
7999ffb
benchmarking layouts
0xtimmy Oct 4, 2023
2e0e324
directory orginization
0xtimmy Oct 4, 2023
1ce8f9c
more CRDTs
0xtimmy Oct 11, 2023
1c5375e
built ordered list
0xtimmy Oct 11, 2023
fbb8a81
fixed clock map issues in ghc
0xtimmy Oct 15, 2023
8342be3
ordered lists
0xtimmy Oct 15, 2023
66cddc8
more work on CRDTs
0xtimmy Feb 28, 2024
0f6d123
fixing CRDT types
0xtimmy Mar 8, 2024
446a895
some more work
0xtimmy Mar 27, 2024
2768cab
Merge branch '0xtimmy/crdts' of github.com:iu-parfunc/gibbon into 0xt…
0xtimmy Mar 27, 2024
4c17cde
ordered list
0xtimmy Apr 3, 2024
cb47f91
benchmark skeleton
0xtimmy Apr 17, 2024
40a5249
full editor code
0xtimmy Apr 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,308 changes: 2,308 additions & 0 deletions IR.log

Large diffs are not rendered by default.

19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,21 @@ Gibbon from source:
$ cd gibbon-compiler && cabal v2-build

At this point you can run the Gibbon executable:
```
$ cabal v2-exec -w ghc-9.0.1 gibbon -- -h
```

$ cabal v2-run gibbon -- -h
And add gibbon to PATH
```
$ export PATH = "{ ... }/gibbon/dist-newstyle/build/{architecture}/ghc-{version}/gibbon-0.2/x/gibbon/build/gibbon/gibbon:$PATH"
```

If you'd like to run the testsuite, you can do so with:
```
$ cd gibbon-compiler
$ cabal v2-exec -w ghc test-gibbon-examples -- -v2
```


$ ./run_all_tests.sh

Expand Down Expand Up @@ -140,6 +151,12 @@ Here's a simple Gibbon program that builds a binary tree and sums up its leaves
using a parallel tuple (`par`):








```haskell
module Main where

Expand Down
93 changes: 93 additions & 0 deletions benchmarks/AddImport.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
/* Gibbon program. */

#include "gibbon_rts.h"

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include <math.h>
#include <stdbool.h>
#include <string.h>
#include <time.h>
#include <alloca.h>
#include <sys/mman.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdarg.h>
#include <errno.h>
#include <uthash.h>

#ifdef _WIN64
#include <windows.h>
#endif

#ifdef _GIBBON_POINTER
#include <gc.h>
#endif

#ifdef _GIBBON_PARALLEL
#include <cilk/cilk.h>
#include <cilk/cilk_api.h>
#endif

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Program starts here
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

typedef struct GibIntProd_struct {
GibInt field0;
} GibIntProd;
GibInt add1(GibInt x_1_10_13);
typedef enum {
GibInt_T,
GibFloat_T,
GibSym_T,
GibBool_T,
GibVector_T,
GibList_T,
GibCursor_T,
} GibDatatype;
void info_table_initialize(void)
{
int error = gib_info_table_initialize(7);

if (error < 0) {
fprintf(stderr, "Couldn't initialize info table, errorno=%d", error);
exit(1);
}

GibDatatype field_tys[0];

gib_info_table_finalize();
}
void symbol_table_initialize(void)
{ }
GibInt add1(GibInt x_1_10_13)
{
GibInt flt_15 = x_1_10_13 + 1;

return flt_15;
}
int main(int argc, char **argv)
{
int init_0 = gib_init(argc, argv);

info_table_initialize();
symbol_table_initialize();

GibInt fltAppE_11_12 = add1(0);
GibInt tmp_app_14 = add1(fltAppE_11_12);

printf("%ld", tmp_app_14);
printf("\n");
return 0;

int exit_1 = gib_exit();

return exit_1;
}
76 changes: 76 additions & 0 deletions benchmarks/Addone.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/* Gibbon program. */

#include "gibbon_rts.h"

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include <math.h>
#include <stdbool.h>
#include <string.h>
#include <time.h>
#include <alloca.h>
#include <sys/mman.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdarg.h>
#include <errno.h>
#include <uthash.h>

#ifdef _WIN64
#include <windows.h>
#endif

#ifdef _GIBBON_POINTER
#include <gc.h>
#endif

#ifdef _GIBBON_PARALLEL
#include <cilk/cilk.h>
#include <cilk/cilk_api.h>
#endif

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Program starts here
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

typedef enum {
GibInt_T,
GibFloat_T,
GibSym_T,
GibBool_T,
GibVector_T,
GibList_T,
GibCursor_T,
} GibDatatype;
void info_table_initialize(void)
{
int error = gib_info_table_initialize(7);

if (error < 0) {
fprintf(stderr, "Couldn't initialize info table, errorno=%d", error);
exit(1);
}

GibDatatype field_tys[0];

gib_info_table_finalize();
}
void symbol_table_initialize(void)
{ }
int main(int argc, char **argv)
{
int init_0 = gib_init(argc, argv);

info_table_initialize();
symbol_table_initialize();

int exit_1 = gib_exit();

return exit_1;
}
76 changes: 76 additions & 0 deletions benchmarks/Addtwo.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/* Gibbon program. */

#include "gibbon_rts.h"

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include <math.h>
#include <stdbool.h>
#include <string.h>
#include <time.h>
#include <alloca.h>
#include <sys/mman.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdarg.h>
#include <errno.h>
#include <uthash.h>

#ifdef _WIN64
#include <windows.h>
#endif

#ifdef _GIBBON_POINTER
#include <gc.h>
#endif

#ifdef _GIBBON_PARALLEL
#include <cilk/cilk.h>
#include <cilk/cilk_api.h>
#endif

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Program starts here
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

typedef enum {
GibInt_T,
GibFloat_T,
GibSym_T,
GibBool_T,
GibVector_T,
GibList_T,
GibCursor_T,
} GibDatatype;
void info_table_initialize(void)
{
int error = gib_info_table_initialize(7);

if (error < 0) {
fprintf(stderr, "Couldn't initialize info table, errorno=%d", error);
exit(1);
}

GibDatatype field_tys[0];

gib_info_table_finalize();
}
void symbol_table_initialize(void)
{ }
int main(int argc, char **argv)
{
int init_0 = gib_init(argc, argv);

info_table_initialize();
symbol_table_initialize();

int exit_1 = gib_exit();

return exit_1;
}
Loading
Loading