summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_factory.cpp
Commit message (Collapse)AuthorAgeFilesLines
* netlist: Reduce memory allocation calls in non-core code. (nw) couriersud2020-04-101-1/+1
|
* netlist: code maintenance. (nw) couriersud2020-01-201-2/+2
| | | | | | - remove pthrow trampline as proposed by Vas. - identify throwing code by adding noexcept(false) - move "connected term" information to setup code. - srcclean
* netlist: maintenance and bug fixes, remove DUMMY_INPUT. [Couriersud] couriersud2019-11-151-2/+2
| | | | | | | | | | - 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
* netlist: code maintenance. (nw) couriersud2019-11-131-2/+2
| | | | | | - move memory pool to netlist_state_t removing one static allocation. - add memory allocation stats to verbose output - nl_assert no longer throws, first step to remove NL_EXCEPT macro.
* netlist: maintenance. (nw) couriersud2019-11-081-6/+3
| | | | | - switch to VS 2019 community and fix standalone build. - more migration to C++ comment style. - add some more doxygen markup.
* netlist: code maintenance. (nw) couriersud2019-11-041-1/+4
| | | | | | | | - 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
* netlist: Use unique_ptr where possible. (nw) couriersud2019-10-151-2/+2
| | | Also improve code readability.
* netlist: scalable error messages. couriersud2019-04-181-2/+2
| | | This approach uses functors for logging messages.
* (nw) Clean up the mess on master Vas Crabb2019-03-261-79/+61
| | | | | | | | | | | | | 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.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-61/+79
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* netlist: memory code refactoring. (nw) couriersud2019-03-011-1/+1
|
* netlist: memory management. [Couriersud] couriersud2019-02-221-1/+1
| | | | | | | | | | | | | | 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.
* netlist: Separation of duties. (nw) couriersud2019-02-161-8/+8
| | | | Make it clearer what is used during parsing a netlist, "compiling" a netlist and execution of a netlist.
* netlist: memory pool now supports aligned storage. (nw) couriersud2019-02-161-2/+2
| | | | | | Set USE_MEMPOOL to 1 to try this (max 5% performance increase). For mingw, there is no alignment support. This triggers -Wattribute errors which due to -Werror crash the build.
* netlist: More cpp core guidelines alignment. (nw) couriersud2019-02-111-5/+0
|
* netlist: more core guidelines work. (nw) couriersud2019-02-091-3/+3
|
* netlist: Refactoring after adding clang-tidy support to netlist makefile couriersud2019-02-071-7/+4
| | | | | | | - 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.
* netlist: All devices now specify parameters in factory constructor. (nw) couriersud2019-02-011-75/+65
| | | | This previously was part of net_lib.cpp and repeatedly caused bugs.
* netlist: code maintenance and fixing kidniki ... (nw) couriersud2019-02-011-4/+0
| | | to run at acceptable speed again.
* netlist: refactored netlist creation. (nw) couriersud2019-01-151-3/+3
| | | | | | This is an effort to separate netlist creation from netlist execution. The primary target is to avoid that code which will only run during execution is able to call setup code and thus create ugly hacks.
* Move information where it belongs ... into the drivers. (nw) couriersud2019-01-101-0/+4
|
* cheekyms: add preliminary netlist sound based on schematics provided by Sam ↵ Vas Crabb2017-05-261-0/+0
| | | | | | | | | | | | | | | | Grech (nw) It doesn't work quite right yet. The "Hammer" and "Pest" sounds are generated by free-running 555/556 timers and gated with LM324 applifiers. For whatever reason, the netlist system produces a kind of buzzing from the "Hammer" circuit when it's supposed to be suppressed, and it doesn't think the pest sound should be suppressed completely so you can always hear it at a low level in the background. The "Cheese" circuit is a bit weird - either they're using the base-emitter junction of a 2SC945 as a signal diode, or there's an error in the schematic (collector is shown unconnected). Connecting this part of the circuit causes the netlist system to hang, so R2/R3/C8/Q2 are not connected for now.
* Fix VS2015 compile. (nw) couriersud2017-02-221-2/+1
|
* Separate include file usage for netlist. couriersud2017-01-291-0/+15
| | | | | | | | Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. (nw)
* Keep track were registry elements are created. (nw) couriersud2017-01-161-1/+9
|
* Prepare source for consistent error message usage. (nw) couriersud2017-01-141-3/+7
|
* Fix clang "-Wno-weak-vtables" warnings in netlist source. Refactored couriersud2017-01-051-1/+21
| | | code along the way. (nw)
* Refactored factory. Use namespace "factory" instead of prefix factory_ couriersud2017-01-021-5/+22
| | | all over the place. (nw)
* Simplify code. Introduce consistent approach to loading macro devices. couriersud2017-01-021-17/+0
| | | | Changed nltool "listdevices" command accordingly. Fix some bugs which surfaced by this exercise. (nw)
* Netlist updates: couriersud2016-07-211-1/+3
| | | | | | | | | | | | | | | - Removed trampolines (OUTLOGIC, INPLOGIC and friends). - Started using doxygen comment and documentation style. Added doxygen files to documentation folder. - Refactored code triggered by doxygen output. - Moved internal and support classes into namespace detail. - Use an anordered map in parser. - -Wconversion fixes - All done now. - Fixed -Wold-style-cast warnings in netlist code. - Added iterators to pstring. - Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. - Fixed a number of bugs in parser code and exception handling. [Couriersud]
* Srcclean on netlist files. Avoid the merge massacre. (nw) couriersud2016-06-251-1/+0
|
* - More code cleanup. couriersud2016-06-071-2/+3
| | | | | | | | | | | | | | - Dead code removal and minor refactoring. - Simplify. Align naming with stl. Fix somed pedantic warnings. - More STL compatability. - Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time. - Fix long standing workaround which would ignore policy of change-only" propagation. - Rewrote for loops to use auto : semantics. - Truthtable cleanup. (nw) - Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h. - Fix standalone build. Refactor ptypes.h. [Couriersud]
* - Added constructors to prepare to move terminal setup into constructor. couriersud2016-06-071-17/+0
| | | | | | | | | | - Reworked twoterm setup. Fixed some timebombs along the way. - Fix r2r dac. Remove dead code. - analog_outputs now created in constructor. - moved analog_input creation into constructor. - moved logic output creation to constructor. - moved all logic inputs into constructor. - Completely removed init_object. Finally. [Couriersud]
* - Minor cosmetic refactoring. Added a "uninitialised array" template to balr0g2016-06-071-6/+0
| | | | | | | | | | | 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.
* Moved more code into plib namespace. (nw) couriersud2016-05-271-7/+7
|
* Fixed breakout attract mode. (nw) couriersud2016-05-251-0/+1
|
* Converted more devices to new layout. Improved memory handling in couriersud2016-05-211-14/+8
| | | factories. (nw)
* More automatic memory handling. (nw) couriersud2016-05-161-2/+2
|
* Converted most subdevices to unique_ptr. This is a temporary measure couriersud2016-05-021-7/+7
| | | | | until the device initialisation is moved into the constructor. Started converting constructors of devices to be passed name and netlist. (nw)
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-2/+2
|
* netlist: rename plist_t to pvector_t to clarify origin. couriersud2016-03-141-6/+6
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+91