Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
353 commits
Select commit Hold shift + click to select a range
d21b48e
one pass clean up of symtab_t
jeffpanici75 Dec 9, 2020
91e2bbf
slightly better version of stack allocator
jeffpanici75 Dec 9, 2020
2849882
second pass of clean up
jeffpanici75 Dec 9, 2020
80d7287
fix compilation errors on linux
jeffpanici75 Dec 10, 2020
f93fc25
updated to blake3 0.3.7
jeffpanici75 Dec 10, 2020
a268a47
add obj_pool_t and basic tests
jeffpanici75 Dec 10, 2020
fca938c
start getopt
jeffpanici75 Dec 10, 2020
5fef439
sketch out data structures
jeffpanici75 Dec 10, 2020
8a730e8
upgrade to latest imgui; rename scheme config files
jeffpanici75 Dec 16, 2020
5f453dc
incremental work on getopt
jeffpanici75 Dec 16, 2020
59af585
rework bintree
jeffpanici75 Mar 11, 2021
d234789
working on bug fixes
jeffpanici75 Mar 11, 2021
e3845e3
rework graphviz
jeffpanici75 Mar 11, 2021
5b93805
continue graphviz work
jeffpanici75 Mar 12, 2021
63b50a6
tidy up api
jeffpanici75 Mar 12, 2021
25fef0a
continued work on graphviz
jeffpanici75 Mar 13, 2021
d6cf8a0
basic serialization working
jeffpanici75 Mar 13, 2021
e21b099
graphviz serialization to dot works
jeffpanici75 Mar 13, 2021
6a1068b
tidy up the graphviz api
jeffpanici75 Mar 14, 2021
6f3c1b2
instrument bst with graphviz output
jeffpanici75 Mar 14, 2021
d35542e
reworked bst_t to use slabs/pointers
jeffpanici75 Mar 17, 2021
f764b7b
bug fixes for graphviz, bst_t, set_t
jeffpanici75 Mar 17, 2021
445eba0
implement red-black tree
jeffpanici75 Mar 17, 2021
0793860
implement bin_tree_cursor_t
jeffpanici75 Mar 17, 2021
8c0a8a8
finish binary tree implementation
jeffpanici75 Mar 19, 2021
9d8d1cd
finished digraph_t...finally
jeffpanici75 Mar 19, 2021
6665e22
clean up set_t, hashtab_t, intern pool
jeffpanici75 Mar 20, 2021
12c49d5
hashtab_t, obj_pool_t, digraph_t bug fixes
jeffpanici75 Mar 20, 2021
234710c
set_t, hashtab_t, stack_t, hashable & more bug fixes
jeffpanici75 Mar 20, 2021
c2aceee
clean up intern pool
jeffpanici75 Mar 20, 2021
97de7eb
clean up stack_t & fixed_stack_t
jeffpanici75 Mar 21, 2021
0fa5ed4
phew...everything ironed out and working at speed again
jeffpanici75 Mar 21, 2021
584204e
start adding iterator support to set_t
jeffpanici75 Mar 21, 2021
c7b5de8
scm: implement eval primitive; scm: start qq, uq, uqs
jeffpanici75 Mar 21, 2021
d2a6ac0
lots of fixes & improvements to hashtab_t, set_t, and intern_t
jeffpanici75 Mar 22, 2021
54569f6
start of leb_128_t
jeffpanici75 Mar 22, 2021
3732026
start of wasm support
jeffpanici75 Mar 22, 2021
60e636a
more work on the wasm codez
jeffpanici75 Mar 22, 2021
6df5be3
leb128 working
jeffpanici75 Mar 22, 2021
0a6af30
more work on the wonky wasm
jeffpanici75 Mar 23, 2021
7822664
progress checkpoint for wasm
jeffpanici75 Mar 23, 2021
f604dee
wasm parser consumes all sections
jeffpanici75 Mar 24, 2021
c8d49f9
clean up hash_common namespace & function names
jeffpanici75 Mar 24, 2021
a2e323a
fill out the hash table prime number sizes array
jeffpanici75 Mar 24, 2021
4884da5
finish byte code decoding for 0xfc prefixed instructions
jeffpanici75 Mar 24, 2021
c82e7b0
bug fixes in slab allocator; add timers to wasm_tests
jeffpanici75 Mar 24, 2021
838cf04
fix slab alloc to use os_allocation_granularity
jeffpanici75 Mar 24, 2021
a187b77
bug fixes & minor enhancements to obj_pool
jeffpanici75 Mar 24, 2021
718aed5
start restructuring the wasm codez
jeffpanici75 Mar 25, 2021
a16ae8f
tidy up stable_array_t
jeffpanici75 Mar 25, 2021
2c2fce0
tidy up array_t
jeffpanici75 Mar 25, 2021
e5375f2
more tidying; bug fixing
jeffpanici75 Mar 25, 2021
cbf24e5
getopt_t: nearly finished
jeffpanici75 Mar 25, 2021
a49b0f4
getopt_t: finally got this one done
jeffpanici75 Mar 26, 2021
22a0c57
getopt: implement argument validation
jeffpanici75 Mar 26, 2021
563c7ff
getopt: implemented bag_t and used for option counts
jeffpanici75 Mar 26, 2021
ea84562
core.scm: fix append; add new additional procedures
jeffpanici75 Mar 27, 2021
0708d25
scm: quasiquote, unquote, unquote-splicing works!
jeffpanici75 Mar 27, 2021
6ed175d
core.scm: add more base procs & macros
jeffpanici75 Mar 27, 2021
e725edc
scm: most of the work for tail call optimization
jeffpanici75 Mar 28, 2021
0880cba
scm: finalized TCO changes
jeffpanici75 Mar 28, 2021
57ddfdb
lots of bug fixes after testing with release builds
jeffpanici75 Mar 28, 2021
2fa16c9
array_common: handle contains edge cases
jeffpanici75 Mar 28, 2021
8af2a91
buf: enhance each_line to use SIMD-based index
jeffpanici75 Mar 28, 2021
97ad3f0
scm: integrate ffi for far superior native callback goodness
jeffpanici75 Mar 29, 2021
1c16b7f
scm: rework the ffi call after sleep; much better
jeffpanici75 Mar 29, 2021
79e6cae
core-test: add time_block calls for each init/fini
jeffpanici75 Mar 29, 2021
1300413
core-test: add TIME_BLOCK macro
jeffpanici75 Mar 29, 2021
3980d36
buf: add support for AVX2
jeffpanici75 Mar 29, 2021
7af977e
config: migrate cvar_set kernel function
jeffpanici75 Mar 29, 2021
28751d5
ffi: extend model to support overloads per proto_t
jeffpanici75 Mar 29, 2021
bbdcac7
scm + config: more cleanup
jeffpanici75 Mar 29, 2021
ae0e392
wasm: clean up modularity
jeffpanici75 Mar 29, 2021
624394a
wasm: added missing test support file
jeffpanici75 Mar 29, 2021
6350c1b
scm: rework type system to make ffi integration easier
jeffpanici75 Mar 30, 2021
9471eba
scm: fix and & or primitives
jeffpanici75 Mar 30, 2021
0fb7746
scm + ffi: work on function overload selection
jeffpanici75 Mar 30, 2021
258f953
scm + ffi: kernel function overload selection works!
jeffpanici75 Mar 31, 2021
7958733
scm + ffi: more conversion of kernel functions; bug fixes
jeffpanici75 Mar 31, 2021
b82f9a4
scm: rework read api to use buf_t & memory mapping
jeffpanici75 Mar 31, 2021
07848bd
scm: finalize read part of i/o rewrite
jeffpanici75 Apr 1, 2021
0b220a4
scm: rework the write portion of i/o
jeffpanici75 Apr 1, 2021
317207b
scm: make error variadic
jeffpanici75 Apr 1, 2021
100d355
scm: implement error object type & prim
jeffpanici75 Apr 1, 2021
257c463
scm: intermediate step reworking environments
jeffpanici75 Apr 2, 2021
ceb7edd
scm: start transforming to bytecode terp + compiler
jeffpanici75 Apr 2, 2021
53914b1
scm: add missing apply instruction to vm
jeffpanici75 Apr 2, 2021
bcb98b1
scm: maybe 40% complete writing bytecode compiler
jeffpanici75 Apr 3, 2021
fe9a90b
scm: more work on the bytecode compiler
jeffpanici75 Apr 3, 2021
49c6e32
scm: restructure compiler into own module
jeffpanici75 Apr 3, 2021
27a9de7
scm: continued work on bytecode compiler
jeffpanici75 Apr 4, 2021
54671fd
scm: start work on procedure calls
jeffpanici75 Apr 4, 2021
d2cc981
scm: procedure call implemented
jeffpanici75 Apr 4, 2021
01f4dc0
scm: bug fixes and simplification of some bytecode gen
jeffpanici75 Apr 4, 2021
566a985
scm: code cleanup & minor bug fixes; op encodings
jeffpanici75 Apr 4, 2021
7e98544
scm: rework compiler model for better reg control
jeffpanici75 Apr 4, 2021
02899db
scm: more restructuring; cleanup; bug fixing
jeffpanici75 Apr 5, 2021
4e46f2b
scm: implement version variable for bytecode emitter
jeffpanici75 Apr 5, 2021
62a0efd
scm: push all bytecode building into bytecode module
jeffpanici75 Apr 5, 2021
955f014
scm: minor tidy after refactor
jeffpanici75 Apr 5, 2021
41aae95
scm: first pass changes to operand encoding
jeffpanici75 Apr 5, 2021
a37627a
scm: start rework of bytecode encoding
jeffpanici75 Apr 5, 2021
b502430
scm: massive rewrite of the encoding mechanism
jeffpanici75 Apr 5, 2021
e849320
scm: first cut of ssa; more to do but on right track
jeffpanici75 Apr 6, 2021
12e8cb2
scm: first pass of complete ssa var assignments
jeffpanici75 Apr 6, 2021
9d43e5a
scm: deflate bb_t; emitter_t now owns all the datas
jeffpanici75 Apr 6, 2021
57f0605
scm: rework preds & succs
jeffpanici75 Apr 6, 2021
d24dad8
scm: minor code tidying
jeffpanici75 Apr 6, 2021
5b93df1
scm: bug fixed sexpr evaluator
jeffpanici75 Apr 7, 2021
a898644
scm: continued work on virtual vars & block sequencing
jeffpanici75 Apr 7, 2021
d5949e5
scm: ffi w/rest params
jeffpanici75 Apr 7, 2021
5d98d7d
scm: ffi keyword/defaulted params
jeffpanici75 Apr 7, 2021
741f114
scm + ffi: last of config module reworked to utilize ffi
jeffpanici75 Apr 8, 2021
54fbff0
scm: rework scm terp to be in harmony with vm
jeffpanici75 Apr 8, 2021
9db2ad9
scm: reimplement relational operators in terp
jeffpanici75 Apr 8, 2021
6f05bbb
scm: first pass cleaning up memory map of vm
jeffpanici75 Apr 8, 2021
bb23ae6
scm: fix basic block sequencing in bytecode::apply
jeffpanici75 Apr 8, 2021
2f53cf9
scm: fix basic block sequencing issue; graphviz bug fixes
jeffpanici75 Apr 8, 2021
6df32e8
graphviz: bug fix edges across multiple graphs
jeffpanici75 Apr 8, 2021
5f96e39
scm: rework vm + terp to merge EP & GP stacks
jeffpanici75 Apr 9, 2021
a923590
scm: cleanup stack related ops
jeffpanici75 Apr 9, 2021
f777214
scm: sketch out a data-driven ffi reg system
jeffpanici75 Apr 9, 2021
1ed6d94
term: first pass clean-up & new features
jeffpanici75 Apr 9, 2021
f7adadf
term: more stateful approach
jeffpanici75 Apr 9, 2021
fb9b8e1
term: fine tune when ansi output is enabled
jeffpanici75 Apr 9, 2021
890f1e3
scm: finished data-driven kernel configurator
jeffpanici75 Apr 9, 2021
cc1d1f3
scm: introduce system; move kernel to root scm folder
jeffpanici75 Apr 9, 2021
57e7508
scm + bugfix: working on cxx kernel module
jeffpanici75 Apr 9, 2021
024cb08
symtab: reverted to standard array; did a little cleanup ...
jeffpanici75 Apr 9, 2021
7466be8
term + log: maybe fixes for redirection/ansi issues
jeffpanici75 Apr 9, 2021
e466170
gfx: upgrade imgui & glfw
jeffpanici75 Apr 10, 2021
e1006b9
gfx: update to latest clip
jeffpanici75 Apr 10, 2021
b55a95b
test: upgrade to catch 2.13.4; only single header
jeffpanici75 Apr 10, 2021
6c5c74b
binfmt: true-up test runner with latest core
jeffpanici75 Apr 10, 2021
6934604
scm: unit test vm ops + bug fixes
jeffpanici75 Apr 10, 2021
879fdf8
scm: lots of tidying up
jeffpanici75 Apr 10, 2021
19ece35
scm: add support for macro expand and simple let
jeffpanici75 Apr 10, 2021
9889df4
scm: added basic module; load; broke up scm files
jeffpanici75 Apr 11, 2021
d5675b3
scm: finish wrapping the cxx kernel
jeffpanici75 Apr 11, 2021
375321b
scm: move test loggers to core-tests.scm
jeffpanici75 Apr 11, 2021
196f0db
scm: update repl + more kernel procs; bug fixes
jeffpanici75 Apr 11, 2021
6e57207
scm: extend handler mechanism
jeffpanici75 Apr 11, 2021
1222a4e
memory: finally clean up the rat's nest
jeffpanici75 Apr 12, 2021
b3957c3
scm: move print, format & expand to basic kernel module
jeffpanici75 Apr 12, 2021
7d2970a
scm: add missing procs in cxx module; cxx core cleanup
jeffpanici75 Apr 12, 2021
27b93d4
scm: rework cvars to use get/set/define callbacks...
jeffpanici75 Apr 13, 2021
8e25504
scm: introduce log module; move procs from config
jeffpanici75 Apr 13, 2021
61e696b
math: toying around with arbitrary precision
jeffpanici75 Apr 13, 2021
87181f5
scm + list: code clean up
jeffpanici75 Apr 13, 2021
a2d4866
scm: improve mem_area interface for stacks
jeffpanici75 Apr 13, 2021
f97b293
scm: redefine fn/mac -> lambda; func/macro -> proc
jeffpanici75 Apr 13, 2021
f74b4f6
scm: error no longer calls exit
jeffpanici75 Apr 13, 2021
9a26415
scm: rework how errors propogate
jeffpanici75 Apr 14, 2021
a89d9df
scm: implement virt. var. liveliness ranges
jeffpanici75 Apr 14, 2021
a3a4b81
scm: tidy up bytecode generation
jeffpanici75 Apr 14, 2021
ef454e6
scm: eliminate stupid hack with M register
jeffpanici75 Apr 14, 2021
03355b9
scm: work on a pretty printer; bug fixes bytecode emitter
jeffpanici75 Apr 15, 2021
5702aaa
symtab + scm + misc: bug fixes found on linux
jeffpanici75 Apr 16, 2021
50fcce2
error: fix a memory leak; not calling dtor on dyn_fmt_args_t
jeffpanici75 Apr 16, 2021
db366a5
misc: bug fixes in buf_pool; scm; intern; term
jeffpanici75 Apr 16, 2021
c8407c2
memory: clean up slab/page initializations
jeffpanici75 Apr 16, 2021
c46641f
test: restructure so tests can be run *n* times...
jeffpanici75 Apr 16, 2021
8a578be
test: at long last the unit test runner is now configurable
jeffpanici75 Apr 16, 2021
1e8f000
graphviz: add support for record fields on node
jeffpanici75 Apr 16, 2021
38bdba1
scm: first pass register allocator working
jeffpanici75 Apr 17, 2021
924e56b
scm: bug fixes & cleanup around bytecode emit
jeffpanici75 Apr 17, 2021
25f3230
scm: temporary partial fix for if bytecode emit
jeffpanici75 Apr 17, 2021
cd95d80
scm: rework file structure; much cleaner now
jeffpanici75 Apr 17, 2021
0c1162d
scm: break var_t into var_t & var_version_t
jeffpanici75 Apr 17, 2021
97c3833
scm: optimize scanning active set during reg alloc
jeffpanici75 Apr 18, 2021
3c9fa3b
digraph: rework how edges are indexed
jeffpanici75 Apr 18, 2021
9ddca5a
term: clang native on mingw64 #include <windows.h>
jeffpanici75 Apr 18, 2021
489b53e
ffi: rewrite the match_signature function
jeffpanici75 Apr 18, 2021
255fd52
ffi: finish rework & test of new overload resolution
jeffpanici75 Apr 18, 2021
4ed0ed8
memory: rewrite the meta tracker
jeffpanici75 Apr 18, 2021
1369bb6
macro: sketch some ideas for macro system
jeffpanici75 Apr 18, 2021
707e072
gfx: initial app + test shell
jeffpanici75 Apr 18, 2021
665ab3e
gfx: add some fonts
jeffpanici75 Apr 18, 2021
f667703
legal: update copyright notice
jeffpanici75 Apr 19, 2021
62ecbc1
gfx: added allocator tool window
jeffpanici75 Apr 19, 2021
eabcab6
core: use macros to clean up some redundant code
jeffpanici75 Apr 19, 2021
583ef6a
binfmt: review & update todo with action plan
jeffpanici75 Apr 20, 2021
59e97ae
memory: added scratch allocator (circular buffer)
jeffpanici75 Apr 20, 2021
330cea0
misc: minor clean up while thinking
jeffpanici75 Apr 20, 2021
a66b713
memory: rework how config is integrated
jeffpanici75 Apr 20, 2021
4d6e4a1
gfx: update test shell to use new memory api
jeffpanici75 Apr 20, 2021
752d641
gfx: more work on test app
jeffpanici75 Apr 20, 2021
0361abe
gfx: continued work
jeffpanici75 Apr 20, 2021
a6720aa
gfx: integrate font awesome 5 icons
jeffpanici75 Apr 21, 2021
593c849
gfx: reincorporate harfbuzz; allocator meta tracking
jeffpanici75 Apr 21, 2021
ee02233
memory: clean up proxy system & buddy allocator
jeffpanici75 Apr 21, 2021
cd6d6f3
profiler: optimize for windows
jeffpanici75 Apr 21, 2021
81a7ea9
global: bite the bullet and fwd decl in core/types.h
jeffpanici75 Apr 21, 2021
c2e5955
profiler: do what the linux kernel does:
jeffpanici75 Apr 21, 2021
155d2a3
gfx: more work on alloc_window & supporting code
jeffpanici75 Apr 22, 2021
bf4fa79
memory: all allocators can have a name
jeffpanici75 Apr 22, 2021
2976e7e
thread: fix is_main_thread
jeffpanici75 Apr 22, 2021
6ef4742
memory: fix base allocator so size adjusts for alignment
jeffpanici75 Apr 22, 2021
00735ae
scm: add CP & LP registers; rename BRA to B
jeffpanici75 Apr 22, 2021
e118b42
scm: add simple assembler directives
jeffpanici75 Apr 22, 2021
da247e1
scm: complete assembler directive enhancements
jeffpanici75 Apr 22, 2021
9dad08f
types: added macro & literal operator for common sizes
jeffpanici75 Apr 22, 2021
c34d9be
gfx: adding more functionality
jeffpanici75 Apr 22, 2021
29e6345
gfx: continue to expand the test application
jeffpanici75 Apr 23, 2021
7127028
env + filesys + path: close out long standing issues
jeffpanici75 Apr 23, 2021
4bd501c
scm: start refactoring process
jeffpanici75 Apr 24, 2021
d27185e
scm: second pass strip-down of bytecode compiler...
jeffpanici75 Apr 24, 2021
5a5f518
scm: fix application of anonymous lambda
jeffpanici75 Apr 24, 2021
41198a3
str_array + bump alloc + page_alloc: rework + bugs
jeffpanici75 Apr 24, 2021
8c59e9b
binfmt: add objdump utility for testing
jeffpanici75 Apr 24, 2021
5793447
binfmt: first pass consolidation for eventual refactor
jeffpanici75 Apr 24, 2021
794a1d3
binfmt: rework ar implementation
jeffpanici75 Apr 24, 2021
b3d68a3
scm: rework eval2 to be closer to what it will be
jeffpanici75 Apr 24, 2021
b826093
gfx: fix text_right_align & sketch out prop_editor ideas
jeffpanici75 Apr 25, 2021
2e78f19
gfx: implement status bar
jeffpanici75 Apr 25, 2021
0bab38f
buf_pool: remove loop; direectly index array
jeffpanici75 Apr 25, 2021
c17d743
clang: clean up for true clang support
jeffpanici75 Apr 25, 2021
18ca1a9
build: clean up msvc/clang/mingw64 differences
jeffpanici75 Apr 26, 2021
6d1022e
gfx: work on a text editor widget called "ed"
jeffpanici75 Apr 26, 2021
000db4b
gfx: create private heap for imgui
jeffpanici75 Apr 27, 2021
5c8e3a8
context: move struct into types.h...
jeffpanici75 Apr 27, 2021
6a3f5ac
gfx: add msg_stack_t, mostly to test timers
jeffpanici75 Apr 27, 2021
8472ddd
gfx: fix color ordering in msg_stack_t
jeffpanici75 Apr 27, 2021
b63eb69
gfx: first cut of property editor grid
jeffpanici75 Apr 28, 2021
0051421
slab: expose the slab_t structure in slab header
jeffpanici75 Apr 28, 2021
091526a
str: add operator= overload for str::slice_t
jeffpanici75 Apr 28, 2021
0ad92ec
core: refactoring api to support gfx test app
jeffpanici75 Apr 28, 2021
1f1c15d
error: rework args to be array_t<std::any> temporarily
jeffpanici75 Apr 28, 2021
bb7f979
gfx: add wrappers for text input via str_t
jeffpanici75 Apr 28, 2021
e56b11d
gfx: texture loading; atlas maps..still WIP
jeffpanici75 Apr 29, 2021
3837ceb
gfx: textures are working
jeffpanici75 Apr 29, 2021
81aa577
gfx: cleaner output from AtlasTool
jeffpanici75 Apr 29, 2021
78f48e4
gfx: icons for docked windows sort-of works
jeffpanici75 Apr 30, 2021
df64aa4
gfx: tool window icons working better but still needs love...
jeffpanici75 Apr 30, 2021
b43de4c
gfx: wrap up custom rendering for "tool windows"
jeffpanici75 Apr 30, 2021
88b6f0d
gfx: updated icons texture
jeffpanici75 Apr 30, 2021
faa589c
gfx: get localized strings into a table view
jeffpanici75 Apr 30, 2021
245520e
gfx: integrate imgui list clipper
jeffpanici75 Apr 30, 2021
636bbd6
str + slice: consolidate into types header
jeffpanici75 May 1, 2021
c52d840
format: consolidate custom formatters to format_fwd.h
jeffpanici75 May 1, 2021
94025ce
core: continue consolidation into types.h
jeffpanici75 May 1, 2021
59cd4e9
filesys: glob functionality working & tested
jeffpanici75 May 1, 2021
75b456b
memory: implement temp/frame allocator
jeffpanici75 May 1, 2021
b955fae
variant: initial work
jeffpanici75 May 2, 2021
6e8224e
core: more consolidation into types header
jeffpanici75 May 3, 2021
327481f
core: continued consolidation into types.h
jeffpanici75 May 3, 2021
516149c
variant: (sigh) evolved to a variant_array_t...
jeffpanici75 May 4, 2021
d744b84
variant: ok, getting better
jeffpanici75 May 4, 2021
cbcf003
variant + error: finalize the variant; remove std::any
jeffpanici75 May 4, 2021
85d9c9d
fix issues after msvc & mingw64 upgrades
jeffpanici75 Jul 24, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .temp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //
109 changes: 55 additions & 54 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,11 @@ if (MSVC)
-Wno-signed-enum-bitfield
-Wno-nonportable-system-include-path
-Wno-newline-eof
-Wno-unknown-pragmas
-Wno-deprecated-declarations
-Wno-documentation-unknown-command
-Wno-c99-designator
-Wno-missing-braces
)
add_compile_options(
"$<$<COMPILE_LANGUAGE:C,CXX>:${CXX_FLAGS}>"
Expand All @@ -61,9 +64,25 @@ if (MSVC)
"$<$<COMPILE_LANGUAGE:C,CXX>:${CXX_DEFINES}>"
)
else ()
set(CXX_FLAGS -Wall -Wno-string-plus-int -Wno-signed-enum-bitfield -Wno-cast-qual -Wno-auto-var-id -Wno-unused-private-field -Wno-unknown-pragmas -Wno-inconsistent-missing-override -Wno-c99-designator)
set(
CXX_FLAGS
-Wall
-Wno-string-plus-int
-Wno-signed-enum-bitfield
-Wno-cast-qual
-Wno-auto-var-id
-Wno-unused-private-field
-Wno-unknown-pragmas
-Wno-inconsistent-missing-override
-Wno-c99-designator
-Wno-deprecated-declarations
-Wno-missing-braces
)

set(CLANG_CXX_FLAGS -fcolor-diagnostics)

set(GCC_CXX_FLAGS -fdiagnostics-color=always -Wno-parentheses -Wno-sequence-point)

add_compile_options(
"$<$<COMPILE_LANGUAGE:C,CXX>:${CXX_FLAGS}>"
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:${GCC_CXX_FLAGS}>"
Expand All @@ -80,18 +99,15 @@ endif()
# zlib
add_subdirectory(ext/zlib-1.2.11 EXCLUDE_FROM_ALL)
set(ZLIB_FOUND ON)
set(ZLIB_ROOT "${CMAKE_SOURCE_DIR}/ext/zlib-1.2.11")
set(ZLIB_ROOT "${PROJECT_SOURCE_DIR}/ext/zlib-1.2.11")
if (MSVC)
if (CMAKE_BUILD_TYPE MATCHES Debug)
set(ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/zlibstaticd.lib")
else ()
set(ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/zlibstatic.lib")
endif ()
include_directories("${CMAKE_BINARY_DIR}/ext/zlib-1.2.11")
else ()
set(ZLIB_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libz.a")
endif()
#set(ZLIB_LIBRARIES "${ZLIB_LIBRARY}")

# bzip2
set(
Expand All @@ -107,41 +123,15 @@ set(
add_library(bz2 STATIC ${BZIP2_SOURCES})
target_compile_definitions(bz2 PRIVATE -D_FILE_OFFSET_BITS=64)
set_target_properties(bz2 PROPERTIES LIBRARY_OUTPUT_NAME bz2)
target_include_directories(bz2 INTERFACE "${CMAKE_SOURCE_DIR}/ext/bzip2-1.0.8")
set(BZIP2_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/ext/bzip2-1.0.8")
target_include_directories(bz2 INTERFACE "${PROJECT_SOURCE_DIR}/ext/bzip2-1.0.8")
set(BZIP2_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/ext/bzip2-1.0.8")
set(BZIP2_INCLUDE_DIRS "${BZIP2_INCLUDE_DIR}")
if (MSVC)
set(BZIP2_LIBRARIES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/bz2.lib")
else ()
set(BZIP2_LIBRARIES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libbz2.a")
endif ()


# asmjit
set(ASMJIT_STATIC 1)
add_subdirectory(ext/asmjit-master EXCLUDE_FROM_ALL)

# libpng
option(PNG_STATIC "" ON)
option(PNG_SHARED "" OFF)
option(PNG_TESTS "" OFF)
add_subdirectory(ext/libpng-1.6.37 EXCLUDE_FROM_ALL)
set(PNG_PNG_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/ext/libpng-1.6.37")
set(PNG_PNG_INCLUDE_DIRS "${PNG_PNG_INCLUDE_DIR}")
if (MSVC)
if (CMAKE_BUILD_TYPE MATCHES Debug)
set(PNG_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng16_staticd.lib")
else ()
set(PNG_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng16_static.lib")
endif ()
else ()
if (CMAKE_BUILD_TYPE MATCHES Debug)
set(PNG_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng16d.a")
else ()
set(PNG_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng16.a")
endif ()
endif ()

# libfmt
add_subdirectory(ext/fmt-7.0.3 EXCLUDE_FROM_ALL)

Expand All @@ -150,59 +140,68 @@ option(SPDLOG_FMT_EXTERNAL "" ON)
option(SPDLOG_INSTALL "" OFF)
option(SPDLOG_BUILD_TESTS "" OFF)
option(SPDLOG_BUILD_EXAMPLE "" OFF)
add_subdirectory(ext/spdlog-1.8.1 EXCLUDE_FROM_ALL)
add_subdirectory(ext/spdlog-1.9.0 EXCLUDE_FROM_ALL)

# utf8proc
add_subdirectory(ext/utf8proc-2.5.0 EXCLUDE_FROM_ALL)
target_include_directories(utf8proc PUBLIC ext/utf8proc-2.5.0)

# blake3
set(
BLAKE3_SOURCES
ext/blake3-0.3.1/blake3.c
ext/blake3-0.3.1/blake3_dispatch.c
ext/blake3-0.3.1/blake3_portable.c
ext/blake3-0.3.7/blake3.c
ext/blake3-0.3.7/blake3_dispatch.c
ext/blake3-0.3.7/blake3_portable.c
)
if (WIN32)
set(
BLAKE3_SOURCES
${BLAKE3_SOURCES}
ext/blake3-0.3.1/blake3_sse41_x86-64_windows_gnu.S
ext/blake3-0.3.1/blake3_avx2_x86-64_windows_gnu.S
ext/blake3-0.3.1/blake3_avx512_x86-64_windows_gnu.S
ext/blake3-0.3.7/blake3_sse41_x86-64_windows_gnu.S
ext/blake3-0.3.7/blake3_avx2_x86-64_windows_gnu.S
ext/blake3-0.3.7/blake3_avx512_x86-64_windows_gnu.S
)
else ()
set(
BLAKE3_SOURCES
${BLAKE3_SOURCES}
ext/blake3-0.3.1/blake3_sse41_x86-64_unix.S
ext/blake3-0.3.1/blake3_avx2_x86-64_unix.S
ext/blake3-0.3.1/blake3_avx512_x86-64_unix.S
ext/blake3-0.3.7/blake3_sse41_x86-64_unix.S
ext/blake3-0.3.7/blake3_avx2_x86-64_unix.S
ext/blake3-0.3.7/blake3_avx512_x86-64_unix.S
)
endif ()
add_library(blake3 ${BLAKE3_SOURCES})
if (NOT WIN32)
target_compile_options(blake3 PUBLIC -march=native)
endif()
target_include_directories(blake3 INTERFACE ext/blake3-0.3.1)
target_include_directories(blake3 INTERFACE ext/blake3-0.3.7)

# dyncall
add_subdirectory(ext/dyncall-1.1.0 EXCLUDE_FROM_ALL)
target_include_directories(dyncall_s INTERFACE ext/dyncall-1.1.0)
target_include_directories(dynload_s INTERFACE ext/dyncall-1.1.0)
set (DYN_ALLOC_HEADER "${PROJECT_SOURCE_DIR}/include/basecode/core/memory/dyn_alloc.h")
if (MSVC)
target_compile_options(dyncall_s PRIVATE "/FI${DYN_ALLOC_HEADER}")
target_compile_options(dynload_s PRIVATE "/FI${DYN_ALLOC_HEADER}")
target_compile_options(
dyncall_s PRIVATE

"$<$<COMPILE_LANGUAGE:C,CXX>:/FI${DYN_ALLOC_HEADER}>"
)
target_compile_options(
dynload_s PRIVATE

"$<$<COMPILE_LANGUAGE:C,CXX>:/FI${DYN_ALLOC_HEADER}>"
)
else ()
target_compile_options(
dyncall_s PRIVATE
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:--include=${DYN_ALLOC_HEADER}>"
"$<$<COMPILE_LANG_AND_ID:CXX,Clang>:--include=${DYN_ALLOC_HEADER}>"

"$<$<COMPILE_LANGUAGE:CXX>:--include=${DYN_ALLOC_HEADER}>"
)
target_compile_options(
dynload_s PRIVATE
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:--include=${DYN_ALLOC_HEADER}>"
"$<$<COMPILE_LANG_AND_ID:CXX,Clang>:--include=${DYN_ALLOC_HEADER}>"

"$<$<COMPILE_LANGUAGE:CXX>:--include=${DYN_ALLOC_HEADER}>"
)
endif ()

Expand All @@ -212,12 +211,9 @@ set(
ext/sqlite-3.33.0/sqlite3.c
)
add_library(sqlite3 ${SQLITE3_SOURCES})
target_compile_options(sqlite3 PRIVATE -Wno-unused-variable)
target_include_directories(sqlite3 INTERFACE ext/sqlite-3.33.0)

if (WIN32)
include_directories(include/platform/win32)
endif()

# -----------------------------------------------------------------------------
#
# Project
Expand All @@ -230,3 +226,8 @@ set(PROJECT_DIR_BASE ${PROJECT_SOURCE_DIR})
add_subdirectory(src/libcore)
add_subdirectory(src/libcore-test)
add_subdirectory(src/libgfx)
add_subdirectory(src/libgfx-test)
add_subdirectory(src/libbinfmt)
add_subdirectory(src/libbinfmt-test)
add_subdirectory(src/scm)
add_subdirectory(src/objdump)
5 changes: 5 additions & 0 deletions src/libcore/fe/LICENSE → CREDITS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
The scheme interpreter is based on the *fe* project found here: https://github.com/rxi/fe
The MIT license follows:

Copyright (c) 2020 rxi

Permission is hereby granted, free of charge, to any person obtaining a copy of
Expand All @@ -17,3 +20,5 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

---
9 changes: 1 addition & 8 deletions ....1/include/spdlog/fmt/bundled/LICENSE.rst → LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2012 - present, Victor Zverovich
Copyright (c) 2018-2020 Jeff Panici. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand All @@ -18,10 +18,3 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

--- Optional exception to the license ---

As an exception, if, as a result of your compiling your source code, portions
of this Software are embedded into a machine-executable object form of such
source code, you may redistribute such embedded portions in such object form
without including the above copyright and permission notices.
3 changes: 3 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

"C:/Program Files/JetBrains/CLion 2020.2.3/bin/cmake/win/bin/cmake.exe" --build C:/src/basecode-lang/foundation/build/msvc/debug --target $1
122 changes: 122 additions & 0 deletions etc/basic.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
;; ----------------------------------------------------------------------------
;; ____ _
;; | _\ | |
;; | |_)| __ _ ___ ___ ___ ___ __| | ___ TM
;; | _< / _` / __|/ _ \/ __/ _ \ / _` |/ _ \
;; | |_)| (_| \__ \ __/ (_| (_) | (_| | __/
;; |____/\__,_|___/\___|\___\___/ \__,_|\___|
;;
;; F O U N D A T I O N P R O J E C T
;;
;; Copyright (C) 2017-2021 Jeff Panici
;; All rights reserved.
;;
;; This software source file is licensed under the terms of MIT license.
;; For details, please read the LICENSE file.
;;
;; ----------------------------------------------------------------------------

;; ----------------------------------------------------------------------------
;;
;; basic procedures & macros
;;
;; ----------------------------------------------------------------------------

(define-macro add1 (lambda (e)
`(+ ,e 1)))

(define-macro sub1 (lambda (e)
`(- ,e 1)))

(define-macro ok? (lambda (s)
`(is ,s 0)))

(define-macro let (lambda (args . body)
`(begin
(define proc (lambda ,(map (lambda (p) (car p)) args)
,@body))
(proc ,@(map (lambda (p) (car (cdr p))) args)))))

(define-macro cond (lambda args
(if (not args)
''()
(begin
(define next (car args))
(define rest (cdr args))
(define test (if (is (car next) 'else)
#t
(car next)))
(define expr (car (cdr next)))
`(if ,test ,expr (cond ,@rest))))))

(define-macro for (lambda (item lst . body)
`(begin
(define for-iter ,lst)
(while for-iter
(define ,item (car for-iter))
(set! for-iter (cdr for-iter))
(begin ,@body)))))

(define-macro test-suite (lambda (title . body)
`(begin
(define pass-count 0)
(define fail-count 0)
(define sys-print print)
(define print (lambda (args)
(sys-print " "
(car args)
(car (cdr args)))))
(sys-print "TEST SUITE:" ,title)
(sys-print "----------------------------------------------------")
(sys-print " PASS | FAIL | Assert Expression ")
(sys-print "----------------------------------------------------")

(define results (list ,@body))
(for expr results
(define pass? (cdr (car expr)))
(define test (car (cdr expr)))
(if (is pass? 1)
(begin
(sys-print " P " test)
(set! pass-count (add1 pass-count))))
(if (is pass? 2)
(begin
(sys-print " F " test)
(set! fail-count (add1 fail-count)))))

(sys-print "====================================================")
(sys-print "PASS:" pass-count " FAIL:" fail-count)
(sys-print ""))))

(define-macro assert (lambda (expr)
`(begin
(define result (eval ,expr))
(if result
(list (cons 'assert 1) ,expr)
(list (cons 'assert 2) ,expr)))))

(define map (lambda (proc lst)
(define res nil)
(while lst
(set! res (cons (proc (car lst)) res))
(set! lst (cdr lst)))
(reverse res)))

(define range (lambda (a b step)
(define lst '())
(if (not step)
(set! step 1))
(while (<= a b)
(set! lst (cons a lst))
(set! a (+ a step)))
(reverse lst)))

(define list-tail (lambda (ls k)
(while (> k 0)
(set! ls (cdr ls))
(set! k (sub1 k)))
ls))

(define list-ref (lambda (ls k)
(car (list-tail ls k))))

Loading