Commit Graph

31 Commits

Author SHA1 Message Date
couriersud
034e0d2c87
netlist: Address comments from PR #9794, partially fix issue #9801 (#9805)
- added cstddef to includes in ppmf.h
- more explicit comments in ppmf.h
- Fixed more typos and improved readiability
2022-05-23 03:05:22 +10:00
couriersud
324f9d44d5
netlist: More c++, less macros, added support for cspell (#9794)
- More c++, less macros
  * Significantly reduced the use of unused_var and replaced it with
    [[maybe_unused]]
  * use enum class in ppmf.h

- Changes to testing code in ptest.h
  * Catch exceptions in more places
  * The verbosity of the output can now be controlled
  * Display of test stats totals

- added support for cspell
- fixed various typos
- fixed SUBTARGET=nl build
- fixed more file permissions
- srcclean and add fix_permissions target to netlist makefile
2022-05-22 01:16:50 +10:00
Olivier Galibert
40acc597d4 netlist: Relicensing of the GPL code to BSD-3 with the blessing of the
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.
2021-03-09 09:26:00 +01:00
couriersud
f3b2dd65f5 netlist: fix multi byte string issues. 2020-09-06 13:16:05 +02:00
Couriersud
f3eb632465 netlist: code maintenance and performance optimizations.
* 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
2020-09-05 21:31:49 +02:00
couriersud
8a1ece4a3b netlist: Reduce macro usage and make use of pstring utf8. (nw) 2020-06-06 20:43:12 +02:00
couriersud
62c3f75221 netlist: More clang-tidy fixes. (nw) 2020-04-28 21:08:03 +02:00
couriersud
5b6013caea netlist: improve performance up to 65% on audio netlists. [Couriersud]
This commit introduces precompiled static solver code. Due to
additional optimizations the compiler can use because the detail
calculation steps for the solution are known e.g. the kidniki netlist
sees a 100% speed increase.

In all environments (windows/*nix/osx) the source for the static
solver code can be created using
	bash src/lib/netlist/nl_create_mame_solvers.sh

This will create src/lib/netlist/generated/static_solvers.cpp which is
compiled into the mame binary.
The script is just a temporary workaround. The intention is that nltool
whill be able to create this file with one call.

There are other improvements in this commit speeding up the processing
of timestep and dynamic calculations.
2020-04-13 21:32:00 +02:00
couriersud
bcfa9eae6f netlist: maintenance and bug fixes, remove DUMMY_INPUT. [Couriersud]
- Removed DUMMY_INPUT. NC (not connected) pins should now use NC_PIN.
  If a NC_PIN is actually connected, an error will be logged and
  validation will fail.
- Enabled "extended" validation. This will catch now if power terminals
  are not connected.
- Added const and noexcept where appropriate.
- Removed dead code.
- Fixed the 7414 Schmitt-Trigger device to use nld_power_pins
2019-11-15 22:16:37 +01:00
couriersud
88f702b416 netlist: code maintenance and bug fixes. (nw)
- 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.
2019-11-08 23:52:14 +01:00
Justin Kerk
490709a6c1 Fix build in newer Emscripten versions (nw) 2019-08-08 14:23:12 +00:00
Vas Crabb
97b6717027 (nw) Clean up the mess on master
This effectively reverts b380514764 and
c24473ddff, restoring the state at
598cd52272.

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.
2019-03-26 11:13:37 +11:00
andreasnaive
b380514764 Revert "conflict resolution (nw)"
This reverts commit c24473ddff, reversing
changes made to 009cba4fb8.
2019-03-25 23:13:40 +01:00
couriersud
17fcc38a25 netlist: memory code refactoring. (nw) 2019-03-01 10:30:24 +01:00
couriersud
66154af0f2 netlist: fix visibility issues and more issues reported by tidy. (nw) 2019-02-22 21:46:55 +01:00
couriersud
cf73ccc764 netlist: memory management. [Couriersud]
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.
2019-02-22 08:18:01 +01:00
couriersud
3b899b86e6 netlist: Refactoring after adding clang-tidy support to netlist makefile
- convert macros to c++ code.
- order of device creation should not depend on std lib.
- some state saving cleanup.
- added support for clang-tidy to makefile.
- modifications triggered by clang-tidy-9.
2019-02-07 21:54:11 +01:00
Justin Kerk
0e77f9c540 Fixed issue causing drivers using netlists to fail on the Emscripten target. [Justin Kerk] 2018-03-06 03:12:21 +00:00
couriersud
0eefe5f02d cstr() ==> c_str() (nw) 2016-12-30 23:42:24 +01:00
couriersud
8c297602c4 Fix noexcept and NL_NOEXCEPT to pass g++ 6.x builds. (nw) 2016-08-07 22:28:04 +02:00
Giuseppe Gorgoglione
1344df7496 Fix for netlist library when built for WINDOWS with UNICODE defined
When UNICODE is defined LoadLibrary is redefined to LoadLibraryW which expects a widechar string as library name, while libname is always UTF8. Fixed copying TCHAR conversion code from strconv.cpp since netlist is meant to be also a stand-alone library.
2016-07-24 13:27:08 +02:00
couriersud
af750f143c Srcclean on netlist files. Avoid the merge massacre. (nw) 2016-06-25 00:20:17 +02:00
balr0g
b277908905 - Minor cosmetic refactoring. Added a "uninitialised array" template to
allow in-place creation (for increased locality) of netlist classes.
Main use is in truthtable class.
- Remove PLIB_NAMESPACE macros.
- Remove namespace macros. Use explicit namespace declarations.
- Moved device definitions into cpp files.
- Moved more device definitions into cpp files.
- New prefix "nlid" for include files flags purely internal include
files not to be leaked into userland. 
- Fix factory code.
2016-06-07 21:40:30 +02:00
couriersud
02e3213897 Leading underscore massacre. (nw) 2016-05-27 01:20:09 +02:00
couriersud
111c5a3dc0 Remove dependency on osd_ticks. Converted palloc and friends into
templates. First effort on a separate plib namespace. (nw)
2016-05-27 01:17:39 +02:00
couriersud
cac1c41edf Moved all parameter definitions in constructors. (nw) 2016-05-25 14:31:43 +02:00
Miodrag Milanovic
68785dccfe Cleanups and version bump 2016-05-25 08:19:21 +02:00
couriersud
d200744fbf Converted more devices to new layout. Improved memory handling in
factories. (nw)
2016-05-21 12:58:23 +02:00
couriersud
1eb9c20772 Fix standalone-compile. 2016-05-06 01:10:21 +02:00
Miodrag Milanovic
cfee536f22 Cleanups and version bump 2016-04-27 08:13:59 +02:00
couriersud
64eeebb967 Add missing files. 2016-04-23 14:20:48 +02:00