summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pstream.cpp
Commit message (Collapse)AuthorAgeFilesLines
* (nw) Clean up the mess on master Vas Crabb2019-03-261-105/+26
| | | | | | | | | | | | | 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-26/+105
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* netlist: memory code refactoring. (nw) couriersud2019-03-011-37/+7
|
* netlist: memory management. [Couriersud] couriersud2019-02-221-6/+6
| | | | | | | | | | | | | | 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: Refactoring after adding clang-tidy support to netlist makefile couriersud2019-02-071-35/+2
| | | | | | | - 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: code maintenance and fixing kidniki ... (nw) couriersud2019-02-011-1/+0
| | | to run at acceptable speed again.
* netlist: pstream and ppreprocessor (now a pistream) refactoring. (nw) couriersud2019-01-191-14/+6
|
* Improve dealing ownership in pstreams. (nw) couriersud2019-01-131-18/+11
| | | | I am not really happy with this. But I am missing some creativity currently.
* More c++ alignment. pstring now behaves like std::string. (nw) couriersud2019-01-061-5/+5
| | | | | This change removes all string extensions like trim, rpad, left, right, ... from pstring and replaces them by function templates. This aligns a lot better with the intentions of the standard library.
* Change pstring to use std::string as storage container. couriersud2017-03-301-1/+1
| | | | | | | | This removes all allocation code from pstring. const_iterator is consequently now based on pstring::const_iterator. Removed pstring_buffer. This was class wasn't a good idea. Vas was right: This change did not impact runtime performance. Startup performance (string intensive) increased. (nw)
* Fix clang warnings in netlist code. couriersud2017-03-051-1/+2
| | | | | | Fixed -Winconsistent-missing-destructor-override warnings. Made some constructors of template classes and classes with virtual .. = 0 methods protected. Fixed src/lib/netlist/build/makefile (nw)
* More cppcheck fixes. (nw) Couriersud2017-03-051-2/+2
|
* Reworked truthtables a bit. couriersud2017-02-171-2/+2
| | | | | - Moved 9312 and 74279 to ttl macro library. - Renamed TTL_9312_* to DM9312. This is more appropriate. - Fixed a number of warnings from latest ubuntu clang-5.0.
* Move from <cstring> to std::copy and friends. (nw) couriersud2017-02-161-5/+4
|
* Make windows builds of nltool and nlwav understand unicode. couriersud2017-02-101-4/+23
| | | nltool and nlwav now use wmain, i.e. UNICODE main on windows. (nw)
* Netlist: code refactoring couriersud2017-01-201-23/+35
| | | | | | | Make streams provide binary access only. Use putf8_reader and putf8_writer to actually access streams. Replace some char * parameters with pstring where appropriate. Minor code refactoring and move functionality were it belongs. (nw)
* Fix clang "-Wno-weak-vtables" warnings in netlist source. Refactored couriersud2017-01-051-0/+39
| | | code along the way. (nw)
* cstr() ==> c_str() (nw) couriersud2016-12-301-2/+2
|
* Netlist updates: couriersud2016-07-211-28/+28
| | | | | | | | | | | | | | | - 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]
* Moved two macros, added more RAII and improved exceptions. Fixed some couriersud2016-07-091-76/+47
| | | | bugs in parser code. (nw)
* Srcclean on netlist files. Avoid the merge massacre. (nw) couriersud2016-06-251-1/+0
|
* Merge netlist_dev branch, all code_refactoring: (nw) couriersud2016-06-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Object model optimisation. Merge remote-tracking branch 'origin/master' into netlist_dev Fix a merge issue. #if ==> #elif. Ouch. Default PHAS_PMF_INTERNAL=0 for 32bit windows mingw. Change UINT8 to uint_[fast|least|8_t. Move state_var so it can be used by base devices as well. Remove last traces of ATTR_ALIGN. Refactored netlist_time into a template. Removed implicit double assignment to netlist. Doomed to produce bugs. Instead, use netlist_time::from_double. Switch to using proper (i.e. bool type) param_logic_t. Formally differentiate between logic inputs (e.g. switches) and int inputs (e.g. resistor ladders or selection switches). Added parameter USE_DEACTIVATE to truthtable devices. Added more constexpr to netlist_time. Fixed some ifdef code paths. - More c++. - Simplify main processing loop. As a nice side-effect that squeezed out some cycles. - More cycle squeezing. - Removed pvector_t. - Use std::sort. - Refactored netlist state manager. - Introduction of state_var object template to be used on device state members. - Changed remaining save occurrences to state_var. - Rewrote nltool's listdevices command. This allowed removal of one member from devices which served solely for listdevices. - Remove hashmap_t. Fix kidniki regression.
* - Minor cosmetic refactoring. Added a "uninitialised array" template to balr0g2016-06-071-2/+2
| | | | | | | | | | | 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-0/+4
|
* Remove dependency on osd_ticks. Converted palloc and friends into couriersud2016-05-271-3/+3
| | | templates. First effort on a separate plib namespace. (nw)
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-4/+4
|
* netlist updates: couriersud2016-03-141-8/+8
| | | | | | | | | | - First steps to move towards c++11. - Base plist on std::vector - Replace pstack with std::stack - Remove pnamed_list - use c++ "for each" in a number of places - Fixed two "time bombs" [couriersud]
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+362