IncludeCPP 4.0.3__tar.gz → 4.2.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. {includecpp-4.0.3 → includecpp-4.2.5}/IncludeCPP.egg-info/PKG-INFO +101 -1
  2. {includecpp-4.0.3 → includecpp-4.2.5}/IncludeCPP.egg-info/SOURCES.txt +10 -1
  3. {includecpp-4.0.3 → includecpp-4.2.5}/MANIFEST.in +1 -0
  4. {includecpp-4.0.3 → includecpp-4.2.5}/PKG-INFO +101 -1
  5. {includecpp-4.0.3 → includecpp-4.2.5}/README.md +101 -1
  6. includecpp-4.2.5/includecpp/CHANGELOG.md +228 -0
  7. includecpp-4.2.5/includecpp/DOCUMENTATION.md +644 -0
  8. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/__init__.py +1 -1
  9. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/__init__.pyi +4 -1
  10. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/cli/commands.py +700 -86
  11. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/ai_integration.py +46 -13
  12. includecpp-4.2.5/includecpp/core/cpp_api_extensions.pyi +350 -0
  13. includecpp-4.2.5/includecpp/core/cssl/CSSL_DOCUMENTATION.md +1720 -0
  14. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_builtins.py +101 -4
  15. includecpp-4.2.5/includecpp/core/cssl/cssl_languages.py +1757 -0
  16. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_parser.py +626 -110
  17. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_runtime.py +710 -49
  18. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_syntax.py +88 -4
  19. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_types.py +31 -2
  20. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/generator/parser.cpp +121 -4
  21. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/generator/parser.h +6 -0
  22. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +2 -2
  23. {includecpp-4.0.3 → includecpp-4.2.5}/pyproject.toml +2 -1
  24. {includecpp-4.0.3 → includecpp-4.2.5}/setup.py +2 -1
  25. includecpp-4.2.5/tests/test_multilang.py +511 -0
  26. includecpp-4.0.3/includecpp/core/cssl/CSSL_DOCUMENTATION.md +0 -1501
  27. {includecpp-4.0.3 → includecpp-4.2.5}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  28. {includecpp-4.0.3 → includecpp-4.2.5}/IncludeCPP.egg-info/entry_points.txt +0 -0
  29. {includecpp-4.0.3 → includecpp-4.2.5}/IncludeCPP.egg-info/requires.txt +0 -0
  30. {includecpp-4.0.3 → includecpp-4.2.5}/IncludeCPP.egg-info/top_level.txt +0 -0
  31. {includecpp-4.0.3 → includecpp-4.2.5}/LICENSE +0 -0
  32. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/__main__.py +0 -0
  33. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/cli/__init__.py +0 -0
  34. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/cli/config_parser.py +0 -0
  35. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/__init__.py +0 -0
  36. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/build_manager.py +0 -0
  37. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cpp_api.py +0 -0
  38. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cpp_api.pyi +0 -0
  39. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cppy_converter.py +0 -0
  40. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/CSSL_DOCUMENTATION_NEW.md +0 -0
  41. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/__init__.py +0 -0
  42. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
  43. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_events.py +0 -0
  44. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl/cssl_modules.py +0 -0
  45. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl_bridge.py +0 -0
  46. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/cssl_bridge.pyi +0 -0
  47. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/error_catalog.py +0 -0
  48. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/error_formatter.py +0 -0
  49. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/exceptions.py +0 -0
  50. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/path_discovery.py +0 -0
  51. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/project_ui.py +0 -0
  52. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/core/settings_ui.py +0 -0
  53. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/generator/__init__.py +0 -0
  54. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/generator/type_resolver.cpp +0 -0
  55. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/generator/type_resolver.h +0 -0
  56. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/py.typed +0 -0
  57. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/templates/cpp.proj.template +0 -0
  58. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/__init__.py +0 -0
  59. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/__init__.py +0 -0
  60. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/extension.js +0 -0
  61. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/images/cssl.png +0 -0
  62. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
  63. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/language-configuration.json +0 -0
  64. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/package.json +0 -0
  65. {includecpp-4.0.3 → includecpp-4.2.5}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
  66. {includecpp-4.0.3 → includecpp-4.2.5}/requirements.txt +0 -0
  67. {includecpp-4.0.3 → includecpp-4.2.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 4.0.3
3
+ Version: 4.2.5
4
4
  Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
5
5
  Home-page: https://github.com/liliassg/IncludeCPP
6
6
  Author: Lilias Hatterscheidt
@@ -906,3 +906,103 @@ print(greeter.name) # "Python"
906
906
  - `python::export(instance)` - Alias
907
907
 
908
908
  All three do the same thing: wrap a CSSL class instance for Python use.
909
+
910
+ ## Universal Instances (v4.0.3+)
911
+
912
+ Universal instances are shared containers accessible from CSSL, Python, and C++:
913
+
914
+ ```python
915
+ from includecpp import CSSL
916
+
917
+ cssl = CSSL.CsslLang()
918
+
919
+ # Create in CSSL
920
+ cssl.run('''
921
+ instance<"myContainer"> container;
922
+ container.data = "Hello";
923
+ container.count = 42;
924
+ ''')
925
+
926
+ # Access from Python
927
+ container = cssl.getInstance("myContainer")
928
+ print(container.data) # "Hello"
929
+ print(container.count) # 42
930
+
931
+ # Modify from Python
932
+ container.newValue = "Added from Python"
933
+
934
+ # Changes reflect in CSSL
935
+ cssl.run('''
936
+ instance<"myContainer"> c;
937
+ printl(c.newValue); // "Added from Python"
938
+ ''')
939
+ ```
940
+
941
+ ### Instance Methods
942
+
943
+ ```python
944
+ cssl.getInstance("name") # Get instance (None if not found)
945
+ cssl.createInstance("name") # Create or get instance
946
+ cssl.deleteInstance("name") # Delete instance
947
+ cssl.listInstances() # List all instance names
948
+ ```
949
+
950
+ ### Method Injection
951
+
952
+ Inject methods into instances using `+<<==`:
953
+
954
+ ```cssl
955
+ instance<"api"> api;
956
+
957
+ // Inject a method
958
+ api +<<== {
959
+ void greet(string name) {
960
+ printl("Hello, " + name + "!");
961
+ }
962
+ };
963
+
964
+ api.greet("World"); // Hello, World!
965
+ ```
966
+
967
+ ## Simplified Module API (v4.0.2+)
968
+
969
+ Create CSSL modules from files with payload binding:
970
+
971
+ ```python
972
+ from includecpp import CSSL
973
+
974
+ # Register payload from file
975
+ CSSL.makepayload("api", "lib/api/myapi.cssl-pl")
976
+
977
+ # Create module from file, binding to payload
978
+ mod = CSSL.makemodule("writer", "lib/writer.cssl", bind="api")
979
+ mod.SaySomething("Hello!") # Call functions directly
980
+ ```
981
+
982
+ ## VSCode Extension
983
+
984
+ IncludeCPP includes a VSCode extension for CSSL syntax highlighting.
985
+
986
+ ### Installation
987
+
988
+ ```bash
989
+ # Copy extension to VSCode extensions folder
990
+ # Windows: %USERPROFILE%\.vscode\extensions\
991
+ # Linux/Mac: ~/.vscode/extensions/
992
+
993
+ # Or install from included files
994
+ pip show includecpp # Find package location
995
+ # Copy vscode/cssl folder to extensions
996
+ ```
997
+
998
+ ### Features
999
+
1000
+ - Syntax highlighting for `.cssl`, `.cssl-pl`, `.cssl-mod` files
1001
+ - Snippets for common patterns
1002
+ - Run CSSL files with F5
1003
+ - Proper coloring for:
1004
+ - Keywords and control flow
1005
+ - Data types (purple/lilac)
1006
+ - Variable declarations (light blue)
1007
+ - Injection operators (`<<==`, `<==`)
1008
+ - Global (`@`), shared (`$`), and captured (`%`) references
@@ -4,6 +4,8 @@ README.md
4
4
  pyproject.toml
5
5
  requirements.txt
6
6
  setup.py
7
+ ./includecpp/CHANGELOG.md
8
+ ./includecpp/DOCUMENTATION.md
7
9
  ./includecpp/__init__.py
8
10
  ./includecpp/__init__.pyi
9
11
  ./includecpp/__main__.py
@@ -16,6 +18,7 @@ setup.py
16
18
  ./includecpp/core/build_manager.py
17
19
  ./includecpp/core/cpp_api.py
18
20
  ./includecpp/core/cpp_api.pyi
21
+ ./includecpp/core/cpp_api_extensions.pyi
19
22
  ./includecpp/core/cppy_converter.py
20
23
  ./includecpp/core/cssl_bridge.py
21
24
  ./includecpp/core/cssl_bridge.pyi
@@ -31,6 +34,7 @@ setup.py
31
34
  ./includecpp/core/cssl/cssl_builtins.py
32
35
  ./includecpp/core/cssl/cssl_builtins.pyi
33
36
  ./includecpp/core/cssl/cssl_events.py
37
+ ./includecpp/core/cssl/cssl_languages.py
34
38
  ./includecpp/core/cssl/cssl_modules.py
35
39
  ./includecpp/core/cssl/cssl_parser.py
36
40
  ./includecpp/core/cssl/cssl_runtime.py
@@ -57,6 +61,8 @@ IncludeCPP.egg-info/dependency_links.txt
57
61
  IncludeCPP.egg-info/entry_points.txt
58
62
  IncludeCPP.egg-info/requires.txt
59
63
  IncludeCPP.egg-info/top_level.txt
64
+ includecpp/CHANGELOG.md
65
+ includecpp/DOCUMENTATION.md
60
66
  includecpp/__init__.py
61
67
  includecpp/__init__.pyi
62
68
  includecpp/__main__.py
@@ -69,6 +75,7 @@ includecpp/core/ai_integration.py
69
75
  includecpp/core/build_manager.py
70
76
  includecpp/core/cpp_api.py
71
77
  includecpp/core/cpp_api.pyi
78
+ includecpp/core/cpp_api_extensions.pyi
72
79
  includecpp/core/cppy_converter.py
73
80
  includecpp/core/cssl_bridge.py
74
81
  includecpp/core/cssl_bridge.pyi
@@ -84,6 +91,7 @@ includecpp/core/cssl/__init__.py
84
91
  includecpp/core/cssl/cssl_builtins.py
85
92
  includecpp/core/cssl/cssl_builtins.pyi
86
93
  includecpp/core/cssl/cssl_events.py
94
+ includecpp/core/cssl/cssl_languages.py
87
95
  includecpp/core/cssl/cssl_modules.py
88
96
  includecpp/core/cssl/cssl_parser.py
89
97
  includecpp/core/cssl/cssl_runtime.py
@@ -103,4 +111,5 @@ includecpp/vscode/cssl/package.json
103
111
  includecpp/vscode/cssl/images/cssl.png
104
112
  includecpp/vscode/cssl/images/cssl_pl.png
105
113
  includecpp/vscode/cssl/snippets/cssl.snippets.json
106
- includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
114
+ includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
115
+ tests/test_multilang.py
@@ -5,4 +5,5 @@ recursive-include includecpp/templates *
5
5
  recursive-include includecpp/generator *.cpp *.h
6
6
  recursive-include includecpp *.py
7
7
  recursive-include includecpp *.pyi
8
+ recursive-include includecpp *.md
8
9
  recursive-include includecpp/vscode *.json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 4.0.3
3
+ Version: 4.2.5
4
4
  Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
5
5
  Home-page: https://github.com/liliassg/IncludeCPP
6
6
  Author: Lilias Hatterscheidt
@@ -906,3 +906,103 @@ print(greeter.name) # "Python"
906
906
  - `python::export(instance)` - Alias
907
907
 
908
908
  All three do the same thing: wrap a CSSL class instance for Python use.
909
+
910
+ ## Universal Instances (v4.0.3+)
911
+
912
+ Universal instances are shared containers accessible from CSSL, Python, and C++:
913
+
914
+ ```python
915
+ from includecpp import CSSL
916
+
917
+ cssl = CSSL.CsslLang()
918
+
919
+ # Create in CSSL
920
+ cssl.run('''
921
+ instance<"myContainer"> container;
922
+ container.data = "Hello";
923
+ container.count = 42;
924
+ ''')
925
+
926
+ # Access from Python
927
+ container = cssl.getInstance("myContainer")
928
+ print(container.data) # "Hello"
929
+ print(container.count) # 42
930
+
931
+ # Modify from Python
932
+ container.newValue = "Added from Python"
933
+
934
+ # Changes reflect in CSSL
935
+ cssl.run('''
936
+ instance<"myContainer"> c;
937
+ printl(c.newValue); // "Added from Python"
938
+ ''')
939
+ ```
940
+
941
+ ### Instance Methods
942
+
943
+ ```python
944
+ cssl.getInstance("name") # Get instance (None if not found)
945
+ cssl.createInstance("name") # Create or get instance
946
+ cssl.deleteInstance("name") # Delete instance
947
+ cssl.listInstances() # List all instance names
948
+ ```
949
+
950
+ ### Method Injection
951
+
952
+ Inject methods into instances using `+<<==`:
953
+
954
+ ```cssl
955
+ instance<"api"> api;
956
+
957
+ // Inject a method
958
+ api +<<== {
959
+ void greet(string name) {
960
+ printl("Hello, " + name + "!");
961
+ }
962
+ };
963
+
964
+ api.greet("World"); // Hello, World!
965
+ ```
966
+
967
+ ## Simplified Module API (v4.0.2+)
968
+
969
+ Create CSSL modules from files with payload binding:
970
+
971
+ ```python
972
+ from includecpp import CSSL
973
+
974
+ # Register payload from file
975
+ CSSL.makepayload("api", "lib/api/myapi.cssl-pl")
976
+
977
+ # Create module from file, binding to payload
978
+ mod = CSSL.makemodule("writer", "lib/writer.cssl", bind="api")
979
+ mod.SaySomething("Hello!") # Call functions directly
980
+ ```
981
+
982
+ ## VSCode Extension
983
+
984
+ IncludeCPP includes a VSCode extension for CSSL syntax highlighting.
985
+
986
+ ### Installation
987
+
988
+ ```bash
989
+ # Copy extension to VSCode extensions folder
990
+ # Windows: %USERPROFILE%\.vscode\extensions\
991
+ # Linux/Mac: ~/.vscode/extensions/
992
+
993
+ # Or install from included files
994
+ pip show includecpp # Find package location
995
+ # Copy vscode/cssl folder to extensions
996
+ ```
997
+
998
+ ### Features
999
+
1000
+ - Syntax highlighting for `.cssl`, `.cssl-pl`, `.cssl-mod` files
1001
+ - Snippets for common patterns
1002
+ - Run CSSL files with F5
1003
+ - Proper coloring for:
1004
+ - Keywords and control flow
1005
+ - Data types (purple/lilac)
1006
+ - Variable declarations (light blue)
1007
+ - Injection operators (`<<==`, `<==`)
1008
+ - Global (`@`), shared (`$`), and captured (`%`) references
@@ -870,4 +870,104 @@ print(greeter.name) # "Python"
870
870
  - `python::wrap(instance)` - Alias
871
871
  - `python::export(instance)` - Alias
872
872
 
873
- All three do the same thing: wrap a CSSL class instance for Python use.
873
+ All three do the same thing: wrap a CSSL class instance for Python use.
874
+
875
+ ## Universal Instances (v4.0.3+)
876
+
877
+ Universal instances are shared containers accessible from CSSL, Python, and C++:
878
+
879
+ ```python
880
+ from includecpp import CSSL
881
+
882
+ cssl = CSSL.CsslLang()
883
+
884
+ # Create in CSSL
885
+ cssl.run('''
886
+ instance<"myContainer"> container;
887
+ container.data = "Hello";
888
+ container.count = 42;
889
+ ''')
890
+
891
+ # Access from Python
892
+ container = cssl.getInstance("myContainer")
893
+ print(container.data) # "Hello"
894
+ print(container.count) # 42
895
+
896
+ # Modify from Python
897
+ container.newValue = "Added from Python"
898
+
899
+ # Changes reflect in CSSL
900
+ cssl.run('''
901
+ instance<"myContainer"> c;
902
+ printl(c.newValue); // "Added from Python"
903
+ ''')
904
+ ```
905
+
906
+ ### Instance Methods
907
+
908
+ ```python
909
+ cssl.getInstance("name") # Get instance (None if not found)
910
+ cssl.createInstance("name") # Create or get instance
911
+ cssl.deleteInstance("name") # Delete instance
912
+ cssl.listInstances() # List all instance names
913
+ ```
914
+
915
+ ### Method Injection
916
+
917
+ Inject methods into instances using `+<<==`:
918
+
919
+ ```cssl
920
+ instance<"api"> api;
921
+
922
+ // Inject a method
923
+ api +<<== {
924
+ void greet(string name) {
925
+ printl("Hello, " + name + "!");
926
+ }
927
+ };
928
+
929
+ api.greet("World"); // Hello, World!
930
+ ```
931
+
932
+ ## Simplified Module API (v4.0.2+)
933
+
934
+ Create CSSL modules from files with payload binding:
935
+
936
+ ```python
937
+ from includecpp import CSSL
938
+
939
+ # Register payload from file
940
+ CSSL.makepayload("api", "lib/api/myapi.cssl-pl")
941
+
942
+ # Create module from file, binding to payload
943
+ mod = CSSL.makemodule("writer", "lib/writer.cssl", bind="api")
944
+ mod.SaySomething("Hello!") # Call functions directly
945
+ ```
946
+
947
+ ## VSCode Extension
948
+
949
+ IncludeCPP includes a VSCode extension for CSSL syntax highlighting.
950
+
951
+ ### Installation
952
+
953
+ ```bash
954
+ # Copy extension to VSCode extensions folder
955
+ # Windows: %USERPROFILE%\.vscode\extensions\
956
+ # Linux/Mac: ~/.vscode/extensions/
957
+
958
+ # Or install from included files
959
+ pip show includecpp # Find package location
960
+ # Copy vscode/cssl folder to extensions
961
+ ```
962
+
963
+ ### Features
964
+
965
+ - Syntax highlighting for `.cssl`, `.cssl-pl`, `.cssl-mod` files
966
+ - Snippets for common patterns
967
+ - Run CSSL files with F5
968
+ - Proper coloring for:
969
+ - Keywords and control flow
970
+ - Data types (purple/lilac)
971
+ - Variable declarations (light blue)
972
+ - Injection operators (`<<==`, `<==`)
973
+ - Global (`@`), shared (`$`), and captured (`%`) references
@@ -0,0 +1,228 @@
1
+ # IncludeCPP Changelog
2
+
3
+ ## v4.2.5 (2026-01-08)
4
+
5
+ ### New Features
6
+ - **Added `embedded` keyword for immediate `&target` replacement**
7
+ - `embedded func() &exit { }` - replaces `exit` immediately at registration
8
+ - `embedded class MyClass &$Target { }` - replaces `$Target` immediately at registration
9
+ - Regular `define func() &target { }` now defers replacement until function is called
10
+ - Regular `class MyClass &$Target { }` now defers replacement until class is instantiated
11
+ - `: overwrites` behavior remains unchanged (always immediate)
12
+ - Added VSCode syntax highlighting for `embedded` keyword
13
+ - **Added `switch` for open parameters** - pattern matching on provided named parameters
14
+ - `case name:` - executes if parameter exists
15
+ - `case name & age:` - executes if both parameters exist (AND)
16
+ - `case name & not age:` - executes if name exists AND age doesn't
17
+ - `except name:` - executes if parameter does NOT exist
18
+ - `default:` - executes if no case matched
19
+ - `always:` - executes after any matching case
20
+ - `finally:` - executes regardless of match (cleanup)
21
+
22
+ ### Bug Fixes
23
+ - **Fixed `OpenFind<type, "name">` returning function reference instead of value**
24
+ - `OpenFind<dynamic, "task">` now works without `()` parentheses
25
+ - Both `OpenFind<type, "name">` and `OpenFind<type>(index)` work correctly
26
+
27
+ ### Behavior Changes
28
+ - **`&target` replacement timing**:
29
+ - `define func() &exit { }` - deferred (only when `func()` is called)
30
+ - `embedded func() &exit { }` - immediate (at registration)
31
+ - `class MyClass &$Game { }` - deferred (only when `new MyClass()` is called)
32
+ - `embedded class MyClass &$Game { }` - immediate (at registration)
33
+
34
+ ---
35
+
36
+ ## v4.2.4 (2026-01-08)
37
+
38
+ ### Bug Fixes
39
+ - **Fixed `%name` priority for `&function` overrides** - `%exit()` now correctly calls the original builtin
40
+ - `define _exit() &exit { %exit(); }` no longer causes infinite recursion
41
+ - Original functions are stored BEFORE replacement for proper `%` capture
42
+ - `_original_functions` is checked FIRST when resolving `%name` references
43
+
44
+ ---
45
+
46
+ ## v4.2.3 (2026-01-08)
47
+
48
+ ### Bug Fixes
49
+ - Removed pagination from `includecpp cssl doc` - documentation now outputs completely without requiring Enter
50
+ - **Fixed `&builtin` function override** - `define MyFunc() &exit { ... }` now properly replaces builtin functions
51
+ - `&exit`, `&printl`, `&input`, etc. now correctly override the builtin implementations
52
+ - Builtins in scope were incorrectly treated as CSSLClass instances, preventing override
53
+
54
+ ---
55
+
56
+ ## v4.2.2 (2026-01-08)
57
+
58
+ ### Bug Fixes
59
+ - **Fixed bidirectional `lang$Instance` mutations** - Cross-language instance access now correctly modifies shared objects
60
+ - `js$GameData.score = 1337` now properly updates the original instance
61
+ - All mutations via `lang$Instance.member = value` are now applied bidirectionally
62
+ - Fixed `LANG_INSTANCE_REF` token not being recognized in `parse_program()`, `_parse_statement()`, and `_parse_action_block()`
63
+ - Parser now correctly handles `lang$Instance` as a valid expression start token
64
+
65
+ ---
66
+
67
+ ## v4.2.1 (2026-01-08)
68
+
69
+ ### CLI Improvements
70
+ - `--doc` and `--doc "term"` now load from local DOCUMENTATION.md
71
+ - `--changelog` now loads from local CHANGELOG.md
72
+ - Added `--changelog --N` (e.g., `--changelog --5`) for showing N releases
73
+ - Added `--changelog --all` for showing all releases
74
+
75
+ ### Documentation
76
+ - Added comprehensive DOCUMENTATION.md for CLI reference
77
+ - Added CHANGELOG.md for version history
78
+
79
+ ---
80
+
81
+ ## v4.2.0 (2026-01-08)
82
+
83
+ ### Multi-Language Support
84
+ - Added `libinclude("language")` for loading language support modules
85
+ - Added `supports <lang>` keyword for writing in other language syntax
86
+ - Added cross-language instance sharing with `lang$InstanceName` syntax
87
+ - Added language transformers for Python, JavaScript, Java, C#, C++
88
+ - Added default parameter values in CSSL functions
89
+
90
+ ### SDK Packages
91
+ - Added C++ SDK (`sdk/cpp/includecpp.h`)
92
+ - Added Java SDK (`sdk/java/src/com/includecpp/CSSL.java`)
93
+ - Added C# SDK (`sdk/csharp/IncludeCPP.cs`)
94
+ - Added JavaScript SDK (`sdk/javascript/includecpp.js`)
95
+ - Added `includecpp cssl sdk <lang>` command to generate SDKs
96
+
97
+ ### CLI Improvements
98
+ - Added `--doc "searchterm"` for documentation search
99
+ - Added `--changelog --all`, `--changelog --N` for changelog viewing
100
+ - Improved error messages with line context
101
+
102
+ ### Bug Fixes
103
+ - Fixed compound assignment operators in Python transformer (-=, +=, *=, /=)
104
+ - Fixed type annotation stripping in `supports python` blocks
105
+ - Fixed self parameter handling in Python method transformation
106
+
107
+ ---
108
+
109
+ ## v4.1.0 (2024-12-15)
110
+
111
+ ### CodeInfusion System
112
+ - Added `<<==` operator for code injection into functions
113
+ - Added `+<<==` for appending code without replacing
114
+ - Added method appending with `&Class::method` syntax
115
+ - Added `++` append mode for function definitions
116
+
117
+ ### Class Improvements
118
+ - Added `overwrites` keyword for method replacement
119
+ - Added `extends Parent::method` for method-level inheritance
120
+ - Added `super()` and `super::method()` calls
121
+ - Added shuffled returns with `shuffled<T>` type
122
+
123
+ ### New Containers
124
+ - Added `combo<T>` for filter/search operations
125
+ - Added `iterator<T>` for programmable iterators
126
+ - Added `datastruct<T>` universal container
127
+
128
+ ### Python Interop
129
+ - Added `python::pythonize()` for returning CSSL classes to Python
130
+ - Added `python::wrap()` and `python::export()` aliases
131
+ - Added universal instances with `instance<"name">`
132
+
133
+ ---
134
+
135
+ ## v4.0.3 (2024-11-20)
136
+
137
+ ### Universal Instances
138
+ - Added `instance<"name">` for cross-runtime shared containers
139
+ - Added `cssl.getInstance("name")` Python API
140
+ - Added `cssl.createInstance("name")` Python API
141
+ - Added `cssl.deleteInstance("name")` Python API
142
+ - Added method injection into instances with `+<<==`
143
+
144
+ ### Module System
145
+ - Added `CSSL.makemodule()` for creating callable modules
146
+ - Added `CSSL.makepayload()` for payload file registration
147
+ - Added payload binding with `bind=` parameter
148
+
149
+ ---
150
+
151
+ ## v4.0.2 (2024-11-01)
152
+
153
+ ### Simplified API
154
+ - Added `CSSL.run()` as main entry point
155
+ - Added `CSSL.module()` for creating modules from strings
156
+ - Added `CSSL.script()` for inline payload registration
157
+ - Improved parameter handling with `parameter.get()` and `parameter.return()`
158
+
159
+ ### Shared Objects
160
+ - Added `cssl.share(obj, "name")` for Python object sharing
161
+ - Added `$name` syntax for accessing shared objects
162
+ - Changes in CSSL reflect back to Python objects
163
+
164
+ ---
165
+
166
+ ## v4.0.0 (2024-10-15)
167
+
168
+ ### Major Release
169
+ - Complete rewrite of CSSL parser and runtime
170
+ - Added generic container types (`stack<T>`, `vector<T>`, `map<K,V>`)
171
+ - Added class system with constructors and inheritance
172
+ - Added BruteInjection operators (`<==`, `+<==`, `-<==`)
173
+ - Added global variables with `@name` syntax
174
+ - Added captured variables with `%name` syntax
175
+
176
+ ### AI Integration
177
+ - Added `includecpp ai` command group
178
+ - Added AI-assisted code analysis
179
+ - Added AI-powered optimization
180
+ - Added `includecpp ai ask` for project questions
181
+
182
+ ---
183
+
184
+ ## v3.2.0 (2024-09-01)
185
+
186
+ ### CPPY Conversion
187
+ - Added `includecpp cppy convert` command
188
+ - Added Python to C++ conversion
189
+ - Added C++ to Python conversion
190
+ - Added AI-assisted conversion with `--ai` flag
191
+ - Added type mapping tables
192
+
193
+ ### Build Improvements
194
+ - Added `--fast` flag for incremental builds
195
+ - Added object file caching
196
+ - Added SHA256 hash checking for unchanged modules
197
+ - Reduced rebuild time to ~0.4s when unchanged
198
+
199
+ ---
200
+
201
+ ## v3.1.0 (2024-08-01)
202
+
203
+ ### CLI Enhancements
204
+ - Added `includecpp auto` command
205
+ - Added `includecpp fix` for code analysis
206
+ - Added `--verbose` flag for detailed output
207
+ - Added `-j` flag for parallel jobs
208
+
209
+ ### Plugin Format
210
+ - Added `DEPENDS()` for module dependencies
211
+ - Added `TEMPLATE_FUNC()` for template instantiation
212
+ - Added `METHOD_CONST()` for overloaded methods
213
+
214
+ ---
215
+
216
+ ## v3.0.0 (2024-07-01)
217
+
218
+ ### Initial CSSL
219
+ - Added CSSL scripting language
220
+ - Added basic data types and control flow
221
+ - Added functions and basic classes
222
+ - Added Python interop with shared objects
223
+
224
+ ### Core Features
225
+ - C++ to Python binding generation
226
+ - Plugin file format (.cp)
227
+ - CMake-based build system
228
+ - Cross-platform support (Windows, Linux, Mac)