summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib
Commit message (Collapse)AuthorAgeFilesLines
* Removed some unnecessary backslash line continuations. (#12047) amameuser2024-02-212-3/+3
| | | | | | * Removed unnecessary preprocessor line continuations from C++ code. * Use parentheses to avoid need for line continuations in expressions in Python code. * Removed line continuations at the end of lists in makefiles. * cpu/m68000: Regenerated C++ source files.
* Fix compilation against musl (#12000) Elaine Gibson2024-02-031-1/+1
|
* xbox_nv2a: better fix for dangling pointer warning, hap2023-06-141-2/+2
| | | | coleco: remove romhacked bios rom
* Fix building with gcc-13 (#10917) Julian Sikorski2023-02-201-0/+1
|
* plib/plist.h: Stop using deprecated std::iterator template. (#10864) Miodrag Milanović2023-01-311-1/+6
|
* netlist: include file work (#10096) couriersud2022-07-161-63/+32
| | | | | | - move code to more appropriate locations - apply clang-format to modified files - fixed some cspell errors - Applied emu.h rule.
* bus/nubus: Implemented Spectrum/8 oscillator selection and vertical count read. Vas Crabb2022-06-221-5/+5
|
* netlist: fix bug, prepare for future changes and improve readability (#9947) couriersud2022-06-2013-58/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * netlist: fix bug, prepare for future changes and improve readability - fix a bug where a net processing error may trigger a nullptr access - applied some clang-tidy recommendations - add no_return to plib::terminate - properly encapsulate dynamic_cast usage - more review of noexcept - added a clang-format file. Over time, all source files will be processed with clang-format - Used clang format on a number of files - Rewrote 74174 - all device constructors now use a struct to pass data on to base classes. Neither netlist state nor the name are intended to be used in a constructor. After the base class was constructed, they can be accessed by state() and name(). - The device construction macros can now be removed. Changes to the core will not need to be reflected in constructors. - Change truth table macros so that going forward NETLIST_END and TRUTH_TABLE_END can be replaced by a closing curly brace. netlists can than use curly braces enclosed blocks. - more clang-format - removed some macros completely - all derived classes from base_device_t now don't use macros any longer. - as a result, delegator_t was removed. This class was only used to support macros :-(
* netlist: fix bugs and more cpp instead of macros (#9897) couriersud2022-06-1019-274/+356
| | | | | | | | | | | | | | | | | * netlist: fix bugs and more cpp instead of macros - C-style comments converted to c++ - Fix crash in state saving code when an abort queue processing event is pending. - Fix a bug where a net could be twice in the queue. - Convert more macros to c++ - fixed SUBTARGET=nl build - fixed potential bugs which would allow a terminal to belong to more than one net. This is not possible even for a short time. - moved some member function definitions out-of-class. - moved code out-of-class - added constexpr where appropriate - fixed mamenl build - Cleanup and indentation
* pong: remove obsolete external version hap2022-06-101-1/+1
|
* netlist/plib: Fix compile with Apple clang. Vas Crabb2022-06-061-1/+1
|
* Adjust toolchain versions for triggering workarounds: Vas Crabb2022-06-061-2/+2
| | | | | | | | | * Make netlist/plib noexcept issue workaround trigger for clang 8 or Apple clang 11.0.0. * Disable lifetime DSE optimisation for GCC 10.2 (this may be an issue in GNU libstdc++ rather than GCC itself - using compiler version as a proxy for standard library version is bad, but it's the path of least resistance for now).
* netlist: static solver work and improve code readability (#9841) couriersud2022-05-3031-376/+411
| | | | | | | | | | | - nltool: Added support for building individual static solver files. - Added pre-built documentation files for nltool and nlwav. - plib: Extended typed_version to have patchlevel as well. - plib: Compile more of ppmf.h with nvcc. - create_devinc.py: Add include guards to the generated files. - makefile: Recreate generated files when python code has changed. - Reduced nld_base.h usage in the core. - <oved extern template class declarations to where they belong. - Generally improved code readability and fixed a lot of issues cspell reported.
* netlist: Abbreviate one more type trait in palloc.h Vas Crabb2022-05-271-3/+3
|
* netlist: palloc now uses c++17 alignment aware operator new. (#9834) couriersud2022-05-279-362/+520
| | | | | | | | | - Added more documentation to palloc.h - Made the use of allocation arenas more transparent throughout code - palloc now uses c++17 alignment aware operator new. This required further changes to the arena_deleter object to track alignment and size of allocated objects to avoid the use of alignment and size of base classes in case a unique_ptr was cast to a unique_ptr of the base class.
* netlist: fix aligned_alloc (PR #9801) (#9813) couriersud2022-05-221-0/+2
|
* netlist: Address comments from PR #9794, partially fix issue #9801 (#9805) couriersud2022-05-2312-43/+63
| | | | | - added cstddef to includes in ppmf.h - more explicit comments in ppmf.h - Fixed more typos and improved readiability
* netlist: More c++, less macros, added support for cspell (#9794) couriersud2022-05-2220-186/+309
| | | | | | | | | | | | | | | | | - 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
* netlist/plib: Fixed detection of clang versions with noexcept issue, added ↵ Vas Crabb2022-05-212-3/+20
| | | | feature constants for C++ standard library version.
* netlist: Fixes to address PR #9752 and issue #8590 / EMSCRIPTEN (#9773) couriersud2022-05-194-202/+363
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | netlist: pointer to member function code - Address PR #9752 and issue #8590 - change comments in ppmf.h - add support for function desciptors (IA64) - sizeof(size_t) may be different on build targets make plib::hash use uint64 to ensure consistent static solver hashes across platforms (EMSCRIPTEN) - Moved constructor and member functions outside the class declaration with the exception of "call" member functions. - Updated comment on accessing RDX - Added more test cases * Removed execution bit on certain files I have separated out the raw processing code into `ppmf.cpp`. I have also taken first steps to clean the abi identification. The code submitted now supports: a) The unknown virtual inheritance case with specific code for MSVC for simple (i.e. scalar, void, reference, pointer) return types using the optimized code. This is the test case only supported under MSVC and which should return 7. Please have a look at the code. Basically m_vptr_offset is an index into a pointer table. It needs to be multiplied by `sizeof(void *)`. b) If you enable PPMF_EXPERIMENTAL complex return type member functions for MSVC will also use the optimized code path. This is explained in detail in the code in ppmf, including caveats and possible solutions. c) Enabling PPMF_USE_MAME_DELEGATES will use `src/lib/util/delegate.h` as a replacement for `ppmf.h`. This allows to run the same tests (`nltool -c tests` from standalone build) as for the ppmf code. d) The code now also supports `clang-cl` e) sizeof(size_t) may be different on build targets. Make plib::hash use uint64 to ensure consistent static solver hashes across platforms. This fixes loading static solvers (if enabled) on EMSCRIPTEN.
* netlist: Improved PPMF target support and test coverage. (#9752) couriersud2022-05-154-289/+338
| | | | | | | | | | This addresses most of the issues described in #8590. * Fixed standalone Visual Studio 2019 builds, including support for clang toolchain. * Added static stub to PMF to support MSVC ABI. * Better aligned ppmf syntax with MAME's delegate syntax. * Add tests/test_ppmf*.cpp testing examples given in #8590. Also worked around issues some versions of Apple clang have with 5aaae19230bd39dda6766641672f57276a3f9ea1.
* netlist: Fixed standalone nltool building with nvcc. (#9731) couriersud2022-05-118-19/+20
| | | | nvcc 11.3 (latest cuda tools) has an issue with some auto x(some variable) declarations.
* netlist: standalone makefile and prototype modifications (#9708) couriersud2022-05-089-21/+16
| | | | | | - update netlist makefile to more recent compilers - prototypes for NETLISTs in macros are now created create_devinc.py - apply ctidy recommendations - Python None in create_device.py
* Netlist lint, first version of a FAQ and small code changes. (#9684) couriersud2022-05-062-7/+14
| | | | | - Added a first version of a FAQ. - Use better error messages in pfunction. - Made member functions static where appropriate in nld_solver.
* Drop unnecessary executable permissions (#9257) Julian Sikorski2022-02-034-0/+0
|
* Fix building with gcc-12 (#9204) Julian Sikorski2022-01-241-0/+1
|
* Fix a duplicate #include and an indendation error Vas Crabb2021-08-231-1/+0
|
* netlist: Relicensing of the GPL code to BSD-3 with the blessing of the Olivier Galibert2021-03-0946-46/+46
| | | | | | | | | | 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.
* srcclean in preparation for 0.226 release branch Vas Crabb2020-10-251-2/+2
|
* netlist: fix VS build. couriersud2020-10-031-3/+3
|
* netlist: catch parenthesis count mismatch in formulas. couriersud2020-10-031-0/+2
|
* Exception specifications on deleted operators/constructors aren't useful. Vas Crabb2020-10-032-6/+6
|
* pmatrix_cr.h: More logical fix for the nothrow issue AJR2020-10-021-1/+1
|
* netlist: Revert changes intended to make the code work on OSX 10.10. couriersud2020-10-032-4/+4
| | | | * This is working on all contemporary compilers. If outdated compilers are to be used it is fine but a suitable compile path should be used.
* Fix clang error: exception specification of explicitly defaulted move ↵ AJR2020-10-022-6/+6
| | | | assignment operator does not match the calculated one
* netlist: simplify code. couriersud2020-10-023-59/+31
|
* netlist: move core_terms to netlist_state. couriersud2020-10-021-0/+5
| | | | | * These are used during creation and reset only. No need to maintain them on net_t level.
* netlist: more clang lint fixes. couriersud2020-10-0214-138/+176
|
* netlist: Add parse optimization to pfunction. couriersud2020-10-022-20/+99
| | | | * "(1 + 2)*a" now during parse step will be rewritten to "3*a".
* netlist: Convert driver filenames to lower case. couriersud2020-09-301-5/+5
|
* netlist: Rewrote frontier documentation. couriersud2020-09-302-1/+7
| | | | * Also includes a small optimization for FP signal code.
* netlist: applied some clang tidy recommendations couriersud2020-09-306-7/+17
|
* Disable SOUND_DEBUG for non-debug builds, and srcclean Vas Crabb2020-09-272-3/+3
|
* netlist: minor code cleanup. couriersud2020-09-253-9/+21
| | | | | | * a number of minor fixes leading to an increase of 570% to 588% on pongf. * admittedly micro optimization. * Includes some comments why certain decisions have been taken.
* netlist: Fixed a couple of issues with various compilers. couriersud2020-09-244-3/+5
|
* netlist: make pstring length/size use consistent. couriersud2020-09-245-13/+30
| | | | | | | | | | | * length reports the number of character codes in the string * size reports the size in memory units * Reminder: Set PSTRING_USE_STD_STRING to 1 in pstring.h and get native std::string * pstrings are compatible to std::string but only support a limited subset of functionality. * By default (always like this) utf8 is supported and thus length reports the number of multi-byte characters.
* netlist: clearly identify void * casts. couriersud2020-09-242-2/+6
|
* netlist: Fix 128 bit integer support. couriersud2020-09-242-15/+27
|
* netlist: Improve queue handling documentation in code. couriersud2020-09-241-0/+1
| | | | | | | * Document that for performance reasons pushes to queue are allowed even if they may not change state and are filtered out during process. * Provide alternative code path. This is currently not used.
* netlist: code refactoring couriersud2020-09-2411-96/+98
| | | | | | * use default move and copy constructors * various minor edits like adding noexcept * removed a lot of inline keywords - you can't beat the compiler