behaves exactly like the design says, since it doesn't allow for
Serializer::get_filename_extension() to return a *list*
of space-separated extensions; rather, it assumes that a Serializer
will return just *one* extension)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@999 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Implement GuiBuilder::on_file_save_activate()
- TODO: manage more than one serializer
- TODO: append standard extension to filename if it isn't there
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@998 3ecf2c5c-341e-0410-92b4-d18e462d057c
installed anyway). To run a test with the textual version of sgpemv2,
start it with [wd : src/testsuite/scheduling-wizards].
(note: "wd" stands for "working directory")
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@996 3ecf2c5c-341e-0410-92b4-d18e462d057c
to copy them into the install destination directory
- Yaling in preferences treeviews
- Changing policy now resets history
- Corrected some detail in speed control widget
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@995 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Connect also simulation menu items in SimulationController
- Fix typo in SchedulablesTreeWidget
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@993 3ecf2c5c-341e-0410-92b4-d18e462d057c
This optimization causes some trouble when using jumpto, but nothing terrible.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@991 3ecf2c5c-341e-0410-92b4-d18e462d057c
them extensively, mind you. Closes task #14.
- Added documentation for each cpu policy
- Manage extra-exception into PythonCPUPolicy (when the .py
file doesn't contain a similarly named class)
- Update exception output in GuiBuilder to make it slightly
more descriptive
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@983 3ecf2c5c-341e-0410-92b4-d18e462d057c
altough till lacking exception handling
if no sgpem.cfg file is present, segmentation fault
therefore no loading is ever done by now.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@979 3ecf2c5c-341e-0410-92b4-d18e462d057c
run and immediately block
- Use modulo to check the end of the time slice instead than a
simple equality
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@976 3ecf2c5c-341e-0410-92b4-d18e462d057c
- (temp) Add debug printout into text simulation of
a thread acquiring time and release time. Will be removed
just after scheduler is fixed.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@975 3ecf2c5c-341e-0410-92b4-d18e462d057c
is update separately by the state of future or blocked ones at the
beginning of step_forward() (since else it didn't influence the state of
threads coming before it in the global thread list)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@974 3ecf2c5c-341e-0410-92b4-d18e462d057c
- added tests for gap management
- added test for resource policy
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@971 3ecf2c5c-341e-0410-92b4-d18e462d057c
toolbar button about the "Scheduling policy". The same is true also
for a ResourcePolicy. These two features will also need a related
entry under the "Edit" menu. Closes task #15.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@970 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Started doing initialization of glade dialogs in a lazy manner
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@964 3ecf2c5c-341e-0410-92b4-d18e462d057c
- TODO: write a test for this both in the case of the parent process
having a "hole" between threads and being a) terminated, and b) blocked
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@960 3ecf2c5c-341e-0410-92b4-d18e462d057c
if there was a 'hole' between threads of the same process. The
fix isn't the most elegant thing in the universe, but it's simple
and it'll do.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@957 3ecf2c5c-341e-0410-92b4-d18e462d057c
that uses a callback to run the simulation in continuous mode.
It isn't finished yet.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@948 3ecf2c5c-341e-0410-92b4-d18e462d057c
we need to move the "continous/non-continous" code snippet out of ConcreteSimulation
and into TextualSimulation/the GUI Simulation. In fact, ConcreteSimulation
is just a state machine that performs a single step and then puts itself
either in paused state (if the Simulation hasn't finished) or into stopped state
(if it finished)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@945 3ecf2c5c-341e-0410-92b4-d18e462d057c
It isn't elegant, but it's the best I can come up with in 10 minutes before
having dinner.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@944 3ecf2c5c-341e-0410-92b4-d18e462d057c
handling, hoping it's unnecessary. Code should be slightly more
maintainable now.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@943 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Value of dialog is now resetted, so they no more show up with the last data that was given
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@938 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Reverted the patch to ConcreteSimulation, I was trying to make it do what ought to be done in the frontend, and now the frontend does it
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@927 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Little patch to ConcreteHistory to make it remove emptied requests after a resource removal. I hope this will not break anything...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@926 3ecf2c5c-341e-0410-92b4-d18e462d057c
- now hinerith from SimulationObserver and HistoryObserver
- updated gui_builder and test-simulation_widget accordling
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@925 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Started work on the add-request-dialog derived widget, it`s not so difficult as I first thinked...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@909 3ecf2c5c-341e-0410-92b4-d18e462d057c
- CairoWidget doesn't extend more History Observer
- Modified scaling in CairoWidget
- NOTE: this is a partial update; total update will follow soon
- added File save/file open in GuiBuilder
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@903 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Actually there is some printing issue to fix, but
the logics works fine.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@902 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Laid out widget code for request adding. That`s not a trivial dialog like the previous...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@900 3ecf2c5c-341e-0410-92b4-d18e462d057c
revisions 846:897 into trunk, with approval and peer review of manager (Luca).
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@898 3ecf2c5c-341e-0410-92b4-d18e462d057c
with a *factor* of ~640x480. That means ~64*48*10^6*3 bytes = a ~1.1 Gb RAM pixmap.
The problem didn't show in versions of cairo >= 1.2 because it automagically
clips (yeah, cairo programmers *are* smart :-))
It is temporary fixed for the moment, will be made better asap.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@892 3ecf2c5c-341e-0410-92b4-d18e462d057c
to removing all of its resources and all of its processes, but
faster)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@887 3ecf2c5c-341e-0410-92b4-d18e462d057c
the user may now add plugin directories,
policy directories, and set the simulation
speed.
- Added some menu voice to the main window.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@872 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Now CPUPolicy has a callback method for scripting languages, but it is up to derived classes to take
mutexes and set the value when needed (maybe we can improve this?)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@862 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Drop the old SchedulablesWidget in favor of a simple Gtk::TreeView
- Update the GuiBuilder consequentially
- FIXME: in cairo_widget.cc : have we to scale the context before or after
drawing on it?
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@845 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Added a wizard just for show, but there is no
interesting cpu-scheduling policy to test it with
- Better textual output.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@842 3ecf2c5c-341e-0410-92b4-d18e462d057c
NOTE: to use it _SG_SCHEDULABLES_TREE_WIDGET must be defined, which is obvioulsy not, by default
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@841 3ecf2c5c-341e-0410-92b4-d18e462d057c
imlpementation, so this version should not be considered definitive.
please give me an other day to check it.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@840 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Added a base class for cpu policy exceptions to make simpler their catching
- Implemented all numeric fields in dialogs with spinboxes, with bounds checking
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@838 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Changed the way syntactically incorrect python policies are handled, we no more exit abruptly
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@829 3ecf2c5c-341e-0410-92b4-d18e462d057c
that the size of the history was the coordinate of the instant
to add.
- Corrected a bug in step forward, which was incorrectly assuming
that all processes started at instant 0.
- Added a wizard to show a bug in step forward, which thinks that
the simulation is terminated while it isn't since some processes
are still future.
- Commented some unused code in step forward (extendThread()).
- Still to extract methods from Extender and provide them to
step forward in a more suitable (static) way.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@828 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Fix throwing of exceptions from sgpem::Module
- **THOU SHALL ALWAYS UPDATE THY MAKEFILES, OR THE WRATH OF GOD
WILL DESCEND UPON THEE**
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@827 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Setup makefile for xmlsave plugin. It still can`t be activated. why?
- Added a temporary command SAVE to commandline interface to try serialization
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@826 3ecf2c5c-341e-0410-92b4-d18e462d057c
at all. Compiles and runs, but the output is not
correct. Anyway, now it is just a matter of logics :P
- Corrected some minor bugs in step forward.
- Step forward is now rather messy, but still better than
four hours ago.. altough this can be hard to believe.
- Added some wizards that help finding bugs.
- Rewritten dyn process get_state as it was guilty of
premature optimization :)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@825 3ecf2c5c-341e-0410-92b4-d18e462d057c
copy constructor and by the add_resource and remove_resource methods
found in ConcreteHistory.
- Scheduler now adds the requests in the queue when appropriate, and
removes them when exhausted.
- Still to implement the management of the state of requests depending
on their position in the queue
- Still to implement the way threads block depending on the state of
their requests
- step_forward now reuses some bunch of code taken from the prototype
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@824 3ecf2c5c-341e-0410-92b4-d18e462d057c
derived widget
- Add History::set_notify_enabled() for usage by the frontend
(for example, when loading from file, you'll want to call
set_notify_enabled(false) before starting)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@823 3ecf2c5c-341e-0410-92b4-d18e462d057c
an abstract base class, and I'll start working out the
adjustement / resizing problems (they're not easy to work out
correctly).
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@822 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Added exception specifications to the methods of the serializer interface and xml plugin
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@821 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Make test-history run by commenting some "dangerous" lines
- Added a couple of comments to SchedulablesWidget::update() in the hope the may be useful to others in finding where the bug resides...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@818 3ecf2c5c-341e-0410-92b4-d18e462d057c
their elapsed time
- requests are now behaving nicely, since they are raised at the correct
instant, and terminated at the right instant
- the ready queues are still not ready, tough :(, anyway, now there is
really nothing else to do before them.
- stepforward is looking much more uglier (if possible).
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@816 3ecf2c5c-341e-0410-92b4-d18e462d057c
when that thread had just been given the cpu.
fixed a bug involving text-simulation displaying the wrong timestamp for
each snaphot. Now the first snapshot printed is correctly tagged "-1".
added (for the sake of lazyness) a method to readyqueue letting anyone
delete the first element on the queue. Not having this would imply
rebuilding the whole queue each time a thread was selected to run.
Small commits avoid complex mergings.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@814 3ecf2c5c-341e-0410-92b4-d18e462d057c
will SIGSEGV. I will fix this asap, in the meantime use the cmdline
interface.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@810 3ecf2c5c-341e-0410-92b4-d18e462d057c
the step went okay or otherwise if the simulation ended
- Fix simulation states in concrete_simulation.cc
- Manage end of input (now CTRL+D exits the program, and
you can redirect a file in input knowing that at EOF
sgpemv2 will terminate)
- Fix a bug in Scheduler that didn't add the newly created
environment to History when the simulation ended, thus leading
both to a memory leak and an inconsistency in representing
the simulation
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@807 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Added the "continuous" attribute for the SET and GET commands
- Now resource ids are checked for validity
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@805 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Fixed bug in get_parameter<bool> in TextSimulation
- Written some new code for visualization of the simulation
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@799 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Start code for double buffering in custom widgets, using
an off-screen pixmap. Problem: we don't know the height from the
beginning
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@798 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Started code for printing the state of the scheduling
- Fixed a bug in the copy constructor of DynamicThread
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@794 3ecf2c5c-341e-0410-92b4-d18e462d057c
- TODO: fix test-history consequentially (request queues should be prepared
by Scheduler or by Environment?)
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@793 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Fix test-history wrong index variable that made the program try to poke its nose
where it shouldn't
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@783 3ecf2c5c-341e-0410-92b4-d18e462d057c
make life easier to Scheduler
- Go on implementing a bit more of Scheduler::step_forward()
- Remove "places" from SubRequest
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@778 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Removed a bunch of FIXME from text_simulation.cc, now TextSimulation fully cooperates with Environment and History
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@774 3ecf2c5c-341e-0410-92b4-d18e462d057c
> - Completed ConcreteSimulation, i think it is all we need at the moment...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@773 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Layout of output is not tested so it will surely look odd the first time it is run...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@757 3ecf2c5c-341e-0410-92b4-d18e462d057c
Paint a red clown nose just to show the humour of the thing, and that it
works(?).
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@755 3ecf2c5c-341e-0410-92b4-d18e462d057c
vector
- Split push_back in constructors on two lines so the compiler warns
us if returned vectors are temporary objects, or do not match the
expected type
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@745 3ecf2c5c-341e-0410-92b4-d18e462d057c
- This is not so important, but the app now segfaults because of this "improvement", don`t say it`s my fault, from what I can understand, glib crashes at some time in between the call to parse_options() is terminated and the call to start_gui() is performed
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@735 3ecf2c5c-341e-0410-92b4-d18e462d057c
- To make sure libraries are not loaded multiple times, only .so files are considered. Beware that this is not portable
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@731 3ecf2c5c-341e-0410-92b4-d18e462d057c
signals
- Remember that sigc::bind exists for passing extra parameters to
called methods/functions
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@729 3ecf2c5c-341e-0410-92b4-d18e462d057c
- Fix SWIG interface to correctly manage things
- PythonPolicyManager isn't a singleton anymore. Since I did this in
a bit of a hurry, check the modifications are right
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@725 3ecf2c5c-341e-0410-92b4-d18e462d057c