Carp/core
Veit Heller 02936cc74c
feat: Derive (#1120)
* core: add derive

* fix: fix errors with set!

Notably, don't type check dynamic bindings (which can be set to
whatever) and eliminate a hang that resulted from not handling an error
at the end of the `set!` call. Also refactors some of the code in
efforts to make it a bit cleaner.

Also adds an error when `set!` can't find the variable one calls set!
on.

* feat: better derive

* test: add error test for derive

* document derive

* add derive to core documentation to generate

* core: add derive

* fix: fix errors with set!

Notably, don't type check dynamic bindings (which can be set to
whatever) and eliminate a hang that resulted from not handling an error
at the end of the `set!` call. Also refactors some of the code in
efforts to make it a bit cleaner.

Also adds an error when `set!` can't find the variable one calls set!
on.

* feat: better derive

* document derive

* feat: first completely working version of derive

* feat: make name of derivable customizable (thanks @scolsen)

* refactor: implement doc edits provided by @scolsen

* feat: change argument order for derive

* fix: change deriver error test

* test: add derive tests

* fix: change order of derive back

* docs: fix typo in derive document

Co-authored-by: scottolsen <scg.olsen@gmail.com>
2021-01-15 10:48:34 +01:00
..
Array.carp feat: Add "rest" function to Array (#1099) 2020-12-24 16:19:53 +01:00
ArrayExt.carp core: update dcostring for range-or-default 2020-05-24 12:51:11 +02:00
Bench.carp core: move elapsed_time into bench module 2020-01-27 16:56:22 +01:00
Binary.carp Move Byte Order type outside of the Binary module 2020-03-20 19:02:55 -04:00
Blitable.carp feat: 'delete' interface (deciding whether a type is managed or not) (#1061) 2020-12-20 21:21:14 +01:00
Bool.carp core: add Bool.zero 2020-06-23 12:26:53 +02:00
Byte.carp core: make bit-* interfaces 2020-07-08 21:11:28 +02:00
carp_bench.h Replace return by pure. (#1009) 2020-11-24 06:09:15 +01:00
carp_binary.h all: various long fixes 2020-04-23 21:50:30 +02:00
carp_bool.h core: do not have short functions on single lines 2019-10-30 11:07:32 +01:00
carp_byte.h core: fix #688 by using the correct formatting macros\n\n(and pray that windows does c99) 2020-02-21 12:28:34 +01:00
carp_char.h Merge 2020-05-11 16:10:35 +02:00
carp_debug.h Preserve includes order in generated output. 2019-10-03 00:23:27 +02:00
carp_double.h Long type to ensure longs are actually 64 bits. 2020-04-22 10:40:06 +02:00
carp_float.h core: do not have short functions on single lines 2019-10-30 11:07:32 +01:00
carp_int.h core: do not have short functions on single lines 2019-10-30 11:07:32 +01:00
carp_io.h Hopefully portable and simple get-line. 2020-05-11 16:08:40 +02:00
carp_long.h Detect __builtin_x_overflow() based on __GNUC__ macro. 2020-05-23 19:03:07 +02:00
carp_memory.h all: various long fixes 2020-04-23 21:50:30 +02:00
carp_pattern.h Remove braces so different clang-formats output the same. 2020-05-30 09:32:50 +02:00
carp_safe_int.h Detect __builtin_x_overflow() based on __GNUC__ macro. 2020-05-23 19:03:07 +02:00
carp_stdbool.h core: remove stdbool dependency 2018-11-17 15:42:36 +01:00
carp_stdint.h Use CARP_MALLOC throughout carp_stdint (#1024) 2020-11-27 10:19:32 +01:00
carp_string.h fix: Pointer str & prn (#1060) 2020-12-09 06:19:07 +01:00
carp_system.h core: use static array for args 2020-08-24 11:20:52 +02:00
carp_utf8.h Unicode fixes (#994) 2020-11-22 06:45:26 +01:00
Char.carp Add some more calls to implement to make tests pass 2020-05-10 13:32:22 -04:00
Collection.carp Add some more calls to implement to make tests pass 2020-05-10 13:32:22 -04:00
Color.carp Support defining types in modules (BREAKING) (#1084) 2020-12-22 13:27:57 +01:00
Control.carp Fix signature of Control.iterate-until 2020-05-20 23:40:46 -04:00
ControlMacros.carp refactor: Move code out of Macros.carp into other files (#1014) 2020-11-28 12:53:18 +01:00
Core.carp feat: Derive (#1120) 2021-01-15 10:48:34 +01:00
core.h feat: Reduce binary size with more compact exhaustiveness error reporting (#1112) 2021-01-05 07:22:43 +01:00
Debug.carp core: fix Debug.trace for new evaluator 2020-05-16 12:46:05 +02:00
Derive.carp feat: Derive (#1120) 2021-01-15 10:48:34 +01:00
Double.carp Add remaining implements declarations 2020-05-10 22:53:35 -04:00
Dynamic.carp feat: add Dynamic.mod (#1051) 2020-12-03 19:24:52 +01:00
Filepath.carp Return reference from unsafe-first/unsafe-last (#1027) 2020-11-27 10:19:06 +01:00
Float.carp core: add implements for FloatRef comparators 2020-05-12 22:45:29 +02:00
Format.carp Implement private 2020-06-19 10:30:55 -04:00
Function.carp docs: Expands docs around C function pointers (#1038) 2020-12-01 10:44:03 +01:00
Generics.carp core: fix typo in docs for Generis.approx 2020-05-13 16:45:11 +02:00
Gensym.carp refactor: Move code out of Macros.carp into other files (#1014) 2020-11-28 12:53:18 +01:00
Geometry.carp Generics no longer propagated. 2019-09-09 22:08:50 +02:00
GLFW.carp Added some of GLFW constants 2020-06-18 23:19:31 +02:00
Heap.carp Fix all nth usage 2019-10-31 06:23:23 -03:00
Int.carp core: make bit-* interfaces 2020-07-08 21:11:28 +02:00
Interfaces.carp feat: 'delete' interface (deciding whether a type is managed or not) (#1061) 2020-12-20 21:21:14 +01:00
Introspect.carp refactor: Move code out of Macros.carp into other files (#1014) 2020-11-28 12:53:18 +01:00
IO.carp refactor: Move code out of Macros.carp into other files (#1014) 2020-11-28 12:53:18 +01:00
List.carp refactor: Move code out of Macros.carp into other files (#1014) 2020-11-28 12:53:18 +01:00
Long.carp Add support for cross-compilation. 2020-10-10 20:01:18 +02:00
Macros.carp macros: try fixing #1030 (#1117) 2021-01-11 13:21:29 +01:00
Map.carp feat: add Map.merge (#1106) 2021-01-03 13:20:46 +01:00
Maybe.carp core: make NULL Ptr a instead of a 2020-05-18 23:21:16 +02:00
Opaque.carp Update Opaque docs; fix typos 2020-06-18 09:57:28 -04:00
OpenGL.carp Add header/lib for OpenGL on each platform. 2020-06-29 11:57:06 +02:00
Pattern.carp feat: 'delete' interface (deciding whether a type is managed or not) (#1061) 2020-12-20 21:21:14 +01:00
Phantom.carp core: add docs for phantom 2020-06-17 19:06:49 +02:00
Platform.carp feat: Recognize the NetBSD platform. (#1109) 2021-01-03 13:22:56 +01:00
Pointer.carp Pointer: Add utility functions (#1012) 2020-11-30 07:06:04 +01:00
Project.carp refactor: Move code out of Macros.carp into other files (#1014) 2020-11-28 12:53:18 +01:00
Random.carp core: call Random.reseed at program start 2020-10-14 15:31:26 +02:00
Result.carp Add some more calls to implement to make tests pass 2020-05-10 13:32:22 -04:00
SafeInt.carp Added --compile-fast to compile with tcc. 2020-05-21 20:04:54 +02:00
SDL_gfx.carp Refactored flags handling (add-pkg). 2019-06-17 09:02:34 +02:00
SDL_image.carp Add support for cross-compilation. 2020-10-10 20:01:18 +02:00
SDL_mixer.carp Merge 2020-05-11 16:10:35 +02:00
SDL_ttf.carp Merge 2020-05-11 16:10:35 +02:00
SDL.carp Window manager flags and events for SDL (#1081) 2020-12-20 12:12:29 +01:00
SDLHelper.h core: fix SDL for newer versions 2020-10-15 13:14:31 +02:00
Sort.carp core: add sort flavors with custom comparators 2018-11-13 11:11:21 +01:00
StaticArray.carp Adds unsafe-raw to StaticArray module 2020-11-07 17:49:41 +00:00
Statistics.carp Fix all nth usage 2019-10-31 06:23:23 -03:00
StdInt.carp Moves StdInt functions with dependency on String into String.carp 2020-10-26 19:14:50 +00:00
String.carp feat: Derive (#1120) 2021-01-15 10:48:34 +01:00
System.carp Pointer: Add utility functions (#1012) 2020-11-30 07:06:04 +01:00
Test.carp Add support for cross-compilation. 2020-10-10 20:01:18 +02:00
Tuples.carp Meta set fix and refactor (#1008) 2020-11-24 19:27:34 +01:00
Unit.carp Unit: Add implementations of = (#1017) 2020-11-24 19:31:53 +01:00
Unsafe.carp core: rearrange templates 2020-05-12 21:58:40 +02:00
Vector.carp Add remaining implements declarations 2020-05-10 22:53:35 -04:00