| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
copyright owners. Much thanks for that Couriersud, the main creator
and contributor, but also to Jonathan Gevaryahu and Sergey Svishchev.
There are small remnants in machine/NL_*, specifially breakout, pong
doubles and rebound that are also copyrighted by the DICE team,
whoever that means. They're not critical since they only concern
these drivers and not an important core subsystem.
|
| |
|
|
|
|
|
|
|
|
|
| |
* rename some misleading type names
* remove callback_t and replace by better scalable approach
* hide implementations details
* move sources classes from putil.h to psources.h
* reduce code complexity
* improve parsing performance, parsing netlists now is twice as fast.
* fix issues around multi-byte string support
* moved psplit into pstrutil.h
|
| |
|
|
|
|
|
|
|
| |
* Separated tokenizing and reading of tokens.
* This enables caching of parsing results on the token level.
* Implemented caching of token stream.
* Overall this significantly improves parsing performance (~10x)
* Next step towards a bare-bone nltool which does not depend on macro
devices.
|
| |
|
|
|
|
|
|
|
|
|
| |
* palloc.h/pmatrix2d.h: Fix static_assert warnings at the origin.
* Rework hints to broaden their use and fix NC hint.
* 74377: use NC hint
* plists.h: Fix debugging in MSVC
* Include cleanup: Move everything not needed by netlists from
nl_setup.h into core/setup.h
* Fix some clang tidy warnings
* srcclean
|
| |
|
|
|
|
|
|
| |
The purpose of this ongoing exercise is to remove unnecessary
dependencies in header files. netlist implementations should only have
access to what they need. The same applies to device implementations.
Core stuff will be moved to the core subdirectory going forward.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Kidniki now achieves up to 910% when run with static solvers and with
nltool. That is significant better than the 860% we have seen
previously.
This increase is driven by using a global memory pool in the solver
code.
In addition the following refactoring and code maintenance work is
included. Please excuse the large commit, some of this took interfered
with other work and the detail development steps were ugly.
- gsl support: This commit adds pgsl.h which implements a very limited
number of the functionality of the gsl header described in the c++ core
guidelines.
- clang-tidy fixes
- A significant refactoring of palloc.h. Aligned hints were removed,
they added complexity without a significant performance gain. Vector
operations should better be done on special spans/views.
The code has been tested on linux with g++-7, g++-9, clang-11.
On Windows mingw-10 and VS2019, OSX clang-11.
|
| |
|
|
|
|
| |
- more c++14, use enable_if_t instead of enable_if
- cleaned up the use of memory allocation arenas
- reduce MACRO usage, use std::conditional where possible
|
| |
|
|
|
|
|
|
|
| |
plists.h was splitted into plists.h, pmulti_threading.h and
ptimed_queue.h. In addition removed plists.h from a number of files it
wasn't used in.
Certain minor adjustment needed to be made for cuda toolkit 10.1 and
10.2.
|
| | |
|
| |
|
| |
Rename COPYASSIGN* and friends to PCOPYASSIGN*.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Remove dead code, fix lint warnings, make spice netlist conversion more
flexible, implement changes to controlled sources.
|
| | |
|
| |
|
|
| |
This is work in progress. The aim is to remove all hacks in netlist
conversion going forward.
|
| |
|
|
|
| |
- Fixes performance regression and net_splitter struct.
- Fixes nltool time measurements
- pstream simplification
|
| |
|
|
|
|
|
|
|
| |
- Fixed some clang lint warnings
- Removed dead code
- Experimental parser code to allow calculations in parameter value.
This already works for compiled netlists. These changes are
currently disabled. Updated pong netlist (and CRC/SHA) to work
with this new code.
|
| |
|
|
|
|
|
|
| |
"./nltool -c convert -f UA741.mod" now runs without errors. UA741.mod is
the official TI SPICE subckt for the 741 opamp.
This commit fixes a number of issues and adds linear POLY support for
E/F SPICE models.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- refactor error messages.
- Fix some drivers to cope with outputted added my the mame driver
for video and sound.
- Fix validation.
|
| |
|
|
|
|
|
| |
- comment style migration continues.
- Fixed a two bugs in the truthtable ignore inputs code
- refactored the truthtable code a bit for better readability.
- updated netlist specific gitignore.
|
| |
|
|
|
|
|
|
| |
- more const
- explicitly raise exceptions instead of leaving this to log.fatal()
- correct a number of cppcheck findings.
- dead code removal
- clang lint corrections, e.g. include order
|
| |
|
|
|
|
| |
- Separate code out into pmath.h and pstonum.h.
- Fix VC build error
- optimize pfmtlog.h a bit
|
| |
|
| |
Only used inconsistently in the code. May as well go.
|
| |
|
|
|
|
|
|
| |
- Removed code no longer used
- Add noexcept where appropriate
- split pparser.[c|h] into ppreprocessor and ptokenizer
- smaller optimizations, e.g. use of std::size_t
- fix lint warnings
|
| |
|
|
|
|
|
|
|
|
| |
The builtin preprocessor now behaves closer to cpp:
- supports macro parameters, i.e. define x(a) a
- supports stringification, i.e. define x(a) #a
- supports concatenation, i.e. define x(a) a ## _ext
In addition, error reporting now provides a source context including the
include history.
|
| |
|
|
| |
- clang lint and pedantic fixes
- mat_cr.h: separate solving linear systems from underlying matrix
|
| | |
|
| |
|
|
|
| |
- lint warnings
- remove const on return types
|
| |
|
|
| |
Removed the home-brew implementation pstreams and replaced those with
c++ streams.
|
| |
|
|
|
| |
- prepare move to c++ streams and later std::string
- fix more lint and clang pedantic warnings/errors
- fix some bugs
|
| |
|
|
|
|
| |
- remove a lot of c library use and instead use c++
- improved pstring compatibility to std::string
- prepare removal of pstream
|
| |
|
|
| |
All pstonum calls now need to specify if they want local locale
or the "classic" "C" locale.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and
c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at
598cd5227223c3b04ca31f0dbc1981256d9ea3ff.
Before pushing, please check that what you're about to push is sane.
Check your local commit log and ensure there isn't anything out-of-place
before pushing to mainline. When things like this happen, it wastes
everyone's time. I really don't need this in a week when real work⢠is
busting my balls and I'm behind where I want to be with preparing for
MAME release.
|
| |
|
|
|
| |
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing
changes made to 009cba4fb8102102168ef32870892438327f3705.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Memory management in plib is now alignment-aware. All allocations
respect c++11 alignas. Selected classes like parray and aligned_vector
also provide hints (__builtin_assume_aligned) to g++ and clang.
The alignment optimizations have little impact on the current use cases.
They only become effective on bigger data processing.
What has a measurable impact is memory pooling. This speeds up netlist
games like breakout and pong by about 5%.
Tested with linux, macosx and windows cross builds. All features are
disabled since I can not rule out they may temporarily break more exotic
builds.
|
| | |
|
| | |
|
| | |
|