Re: [gem5-dev] Review Request 3812: ext: Include SystemC 2.3.1 into gem5

2017-02-26 Thread Andreas Hansson

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3812/#review9485
---


I think this is a good step in the right direction, and it has the potential of 
greatly enhancing the support for gem5 in SystemC environments. The only 
question is have is with respect to our current build process for gem5-SystemC, 
and how it interacts with the with/without Python build.

Could we eventually have one executable that can do both SC and non-SC, and 
then only leave the with/without Python as an option? What combinations 
actually make sense, and what is the overhead if we were to always include SC?

I think having "one executable to rule them all" would also help tremendously 
with testing, but perhaps there are other ways of keeping this working.

On a separate note, I think it would be really interesting if someone skilled 
in the arts could take a stab at moving gem5 to use the SystemC event kernel. 
This would enable a more elaborate set of tools and modelling paradirms, 
including SC_THREAD/SC_CTHREAD style concepts that work very well for state 
machines. Clearly this is off topic for the patch, but I am keen to know if 
anyone has already progress this train of thought, or would be keen to discuss 
the options.

- Andreas Hansson


On Feb. 14, 2017, 8:33 p.m., Matthias Jung wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3812/
> ---
> 
> (Updated Feb. 14, 2017, 8:33 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> ---
> 
> Changeset 11837:f68a638dd4c7
> ---
> ext: Include SystemC 2.3.1 into gem5
> 
> In the past it happened several times that some changes in gem5 broke the
> SystemC coupling. Recently Accelera has changed the licence for SystemC from
> their own licence to Apache2.0, which is compatible with gem5. However, 
> SystemC
> usually relies on the Boost library, but I was able to exchange the boost 
> calls
> by c++11 alternatives. The recent SystemC version is placed into /ext and is
> integrated into gem5's build system. The goal is to integrate some SystemC
> tests for the CI in some following patches.
> 
> 
> Diffs
> -
> 
>   ext/systemc/src/sysc/utils/sc_pq.cpp PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_pvector.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_report.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_report.cpp PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_report_handler.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_report_handler.cpp PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_stop_here.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_stop_here.cpp PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_string.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_string.cpp PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_temporary.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_utils_ids.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_utils_ids.cpp PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_vector.h PRE-CREATION 
>   ext/systemc/src/sysc/utils/sc_vector.cpp PRE-CREATION 
>   ext/systemc/src/systemc PRE-CREATION 
>   ext/systemc/src/systemc.h PRE-CREATION 
>   ext/systemc/src/tlm PRE-CREATION 
>   ext/systemc/src/tlm.h PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm.pc.in PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/README.txt PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h 
> PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h 
> PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h 
> PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h 
> PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_fifo_ifs.h 
> PRE-CREATION 
>   
> ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_master_slave_ifs.h
>  PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_tag.h 
> PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_adapters/tlm_adapters.h 
> PRE-CREATION 
>   
> ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/circular_buffer.h
>  PRE-CREATION 
>   ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo.h 
> PRE-CREATION 
>   
> ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_peek.h
>  PRE-CREATION 
>   
> 

[gem5-dev] Review Request 3812: ext: Include SystemC 2.3.1 into gem5

2017-02-14 Thread Matthias Jung

---
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3812/
---

Review request for Default.


Repository: gem5


Description
---

Changeset 11837:f68a638dd4c7
---
ext: Include SystemC 2.3.1 into gem5

In the past it happened several times that some changes in gem5 broke the
SystemC coupling. Recently Accelera has changed the licence for SystemC from
their own licence to Apache2.0, which is compatible with gem5. However, SystemC
usually relies on the Boost library, but I was able to exchange the boost calls
by c++11 alternatives. The recent SystemC version is placed into /ext and is
integrated into gem5's build system. The goal is to integrate some SystemC
tests for the CI in some following patches.


Diffs
-

  ext/systemc/src/sysc/utils/sc_pq.cpp PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_pvector.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_report.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_report.cpp PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_report_handler.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_report_handler.cpp PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_stop_here.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_stop_here.cpp PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_string.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_string.cpp PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_temporary.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_utils_ids.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_utils_ids.cpp PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_vector.h PRE-CREATION 
  ext/systemc/src/sysc/utils/sc_vector.cpp PRE-CREATION 
  ext/systemc/src/systemc PRE-CREATION 
  ext/systemc/src/systemc.h PRE-CREATION 
  ext/systemc/src/tlm PRE-CREATION 
  ext/systemc/src/tlm.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm.pc.in PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/README.txt PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_fifo.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_if.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_port.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_analysis_triple.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_analysis/tlm_write_if.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_fifo_ifs.h 
PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_master_slave_ifs.h
 PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_tag.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_adapters/tlm_adapters.h 
PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/circular_buffer.h
 PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo.h 
PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_peek.h
 PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_put_get.h
 PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_fifo/tlm_fifo_resize.h
 PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_put_get_imp.h
 PRE-CREATION 
  
ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_channels/tlm_req_rsp_channels/tlm_req_rsp_channels.h
 PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_ports/tlm_event_finder.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_ports/tlm_nonblocking_port.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_1/tlm_req_rsp/tlm_req_rsp.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/README.txt PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_2_interfaces/tlm_2_interfaces.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_2_interfaces/tlm_dmi.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_2_interfaces/tlm_fw_bw_ifs.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_generic_payload/tlm_array.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_generic_payload/tlm_endian_conv.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_generic_payload/tlm_generic_payload.h 
PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_generic_payload/tlm_gp.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_generic_payload/tlm_helpers.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_generic_payload/tlm_phase.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_quantum/tlm_global_quantum.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_quantum/tlm_quantum.h PRE-CREATION 
  ext/systemc/src/tlm_core/tlm_2/tlm_sockets/tlm_initiator_socket.h 
PRE-CREATION