RuntimeCompiledCPlusPlus
ipython
Our great sponsors
RuntimeCompiledCPlusPlus | ipython | |
---|---|---|
5 | 34 | |
2,105 | 16,129 | |
- | 0.2% | |
5.7 | 9.6 | |
3 months ago | 5 days ago | |
C++ | Python | |
- | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
RuntimeCompiledCPlusPlus
-
hscpp: An experimental library to hot-reload C++
hscpp (Hotswap C++) is an experimental library I created which allows you to hot-reload C++. It was heavily inspired by Runtime Compiled C++, and works by linking DLLs into your project at runtime.
-
Continue with Javascript or switch to C++
The only recent attempt to make something like this practical, as far as I know, was RCCpp. Going by the GH activity, it looks like it kind of went nowhere.
-
I want to make my game a dll that can use functions from my engine exe
FYI I maintain a list of runtime compiled C++ approaches on this wiki: https://github.com/RuntimeCompiledCPlusPlus/RuntimeCompiledCPlusPlus/wiki/Alternatives
-
Reloadr – Hot code reloading tool for Python
There is https://github.com/RuntimeCompiledCPlusPlus/RuntimeCompiledC...
The idea is to use virtual functions, and recompile new classes into a shared library. The shared lib is linked into the running program, and old instances of the classes are deleted and replaced by new instances constructed from the share library.
I am working on a library using the same (stolen) idea here:
https://github.com/jheruty/hscpp
Proof of concept demo:
https://m.youtube.com/watch?v=pjGngeKgni8
hscpp is still very alpha, and I’m sure I’ll find lots of bugs as I work on a “real” demo. In contrast, Runtime Compiled C++ is quite mature and is used in real game projects.
Note that this approach very much limits your architecture. For example, you won’t be able to use statics, as the newly compiled shared libraries won’t see them.
It’s a finicky thing, worth it to me, but not something you can just plop in to an established project.
-
Quine or self reproducing program written using C language
Well of course it's possible to generate executable code at runtime in C++ since clang itself is written in C++, but it's definitely a much larger undertaking, but there's two such efforts I know of, Cling and RuntimeCompiledCPlusPlus.
ipython
-
The new pdbp (Pdb+) Python debugger!
If you’re already using ipython, this isn’t a problem because you’ll already need to download most of these dependencies anyway. But if you’re not using ipython… you’ll still need to download those dependencies.
-
Pandas 1.5 released
!pip install is error-prone, it is better to use %pip install, ipython even warns about this, https://github.com/ipython/ipython/pull/12954/
-
Why deprecate loading unpackaged extensions?
The git history (here is the git blame) shows it has not been updated in 9 year. Looks like a documentation issue that you should open an issue against.
-
Debugging Python programs without an IDE
Do you know IPython? It is a modern Python console that extends the capabilities of the classic builtin Python shell by offering introspection, tab completion, syntaxing coloring, as well as history. If you don't know it, I can't recommend it enough. More information can be found in its GitHub page.
-
External variables in lambda functions in Python
There is an IPython ticket on GitHub on the topic, but it's unclear if the problem has been solved.
-
Pipx: A python package consumption tool for CLI packages
For further documentation on ipython using the CLI, you can refer to the GitHub link or the documentation page.
-
Workflow-killing crash from strange added characters.
> ??????_ Traceback (most recent call last): File "/home/nvaughn4/bin/miniconda3/envs/newprime/bin/ipython", line 11, in sys.exit(start_ipython()) File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/__init__.py", line 126, in start_ipython return launch_new_instance(argv=argv, **kwargs) File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/traitlets/config/application.py", line 658, in launch_instance app.start() File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/terminal/ipapp.py", line 356, in start self.shell.mainloop() File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/terminal/interactiveshell.py", line 563, in mainloop self.interact() File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/terminal/interactiveshell.py", line 554, in interact self.run_cell(code, store_history=True) File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2858, in run_cell raw_cell, store_history, silent, shell_futures) File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2880, in _run_cell elif self.should_run_async(raw_cell): File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2918, in should_run_async return _should_be_async(cell) File "/home/nvaughn4/bin/miniconda3/envs/newprime/lib/python3.6/site-packages/IPython/core/async_helpers.py", line 161, in _should_be_async code = compile(cell, "<>", "exec") UnicodeEncodeError: 'utf-8' codec can't encode characters in position 537-542: surrogates not allowed If you suspect this is an IPython 7.15.0 bug, please report it at: https://github.com/ipython/ipython/issues or send an email to the mailing list at [email protected] You can print a more detailed traceback right now with "%tb", or use "%debug" to interactively debug it. Extra-detailed tracebacks for bug-reporting purposes can be enabled via: %config Application.verbose_crash=True sys:1: RuntimeWarning: coroutine 'InteractiveShell.run_cell_async' was never awaited
-
No_color
There’s one I’ve come across recently here where you’re fighting against syntax highlighting with extra error context. https://github.com/ipython/ipython/issues/13446#issuecomment...
-
Anybody else getting tired of parso and jedi?
I see. https://github.com/ipython/ipython/issues/13529
-
Django Codebase Reformatted with Black
You can automate setup for developers using this simple script:
https://github.com/ipython/ipython/pull/12091/files
And here’s a GitLab issue requesting support for blame-ignore:
https://gitlab.com/gitlab-org/gitlab/-/issues/31423
I don’t think there’s a corresponding GitHub request, but maybe if GitLab adds this feature GitHub will have some incentive to follow suit.
What are some alternatives?
jurigged - Hot reloading for Python
CPython - The Python programming language
ipdb - Integration of IPython pdb
bpython - bpython - A fancy curses interface to the Python interactive interpreter
Revise.jl - Automatically update function definitions in a running Julia session
xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.
reloadr - Hot code reloading tool for Python
vim-slime - A vim plugin to give you some slime. (Emacs)
cr - cr.h: A Simple C Hot Reload Header-only Library
spacemacs - A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
hotpatch - In-place hotpatching for Python functions