Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
8 years agoOffer the possibility to change smpi bandwidth and latency factor into tag config...
navarro [Mon, 16 Jan 2012 17:42:55 +0000 (18:42 +0100)]
Offer the possibility to change smpi bandwidth and latency factor into tag config or by command line.
Use --cfg=smpi/bw_factor="thresholh:return_value;threshold:return_value;..."
or --cfg=smpi/lat_factor="thresholh:return_value;threshold:return_value;...

8 years agoPut xbt_cfg_register for smpi into surf_config.c file
navarro [Mon, 16 Jan 2012 16:37:09 +0000 (17:37 +0100)]
Put xbt_cfg_register for smpi into surf_config.c file

8 years agoMerge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Mon, 16 Jan 2012 15:32:50 +0000 (16:32 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid

8 years agodocument what I've done, and note that a written item is not finished yet
Martin Quinson [Mon, 16 Jan 2012 15:32:31 +0000 (16:32 +0100)]
document what I've done, and note that a written item is not finished yet

8 years agoLua chord: simplify the code by reusing tasks since it now works
Christophe Thiéry [Mon, 16 Jan 2012 11:18:45 +0000 (12:18 +0100)]
Lua chord: simplify the code by reusing tasks since it now works

8 years agoAdd a test for Chord in Lua
Christophe Thiéry [Mon, 16 Jan 2012 11:07:10 +0000 (12:07 +0100)]
Add a test for Chord in Lua

8 years agoMSG_task_dsend: don't apply a default function if cleanup is NULL
Christophe Thiéry [Mon, 16 Jan 2012 10:47:16 +0000 (11:47 +0100)]
MSG_task_dsend: don't apply a default function if cleanup is NULL

NULL now means that no cleanup function will be called by SIMIX.
This is useful if the task is garbage collected (as in Lua).

8 years agoLua: close the Lua world of a process being destroyed
Christophe Thiéry [Fri, 13 Jan 2012 16:04:03 +0000 (17:04 +0100)]
Lua: close the Lua world of a process being destroyed

Also make sure MSG_clean is called only once (by maestro).

8 years agoFix a compilation error
Christophe Thiéry [Fri, 13 Jan 2012 15:59:02 +0000 (16:59 +0100)]
Fix a compilation error

8 years agoLua: forgot the timeout argument of simgrid.comm.send
Christophe Thiéry [Fri, 13 Jan 2012 15:22:52 +0000 (16:22 +0100)]
Lua: forgot the timeout argument of simgrid.comm.send

8 years agoChange the prototype of copy data callbacks to add the source buffer
Christophe Thiéry [Fri, 13 Jan 2012 14:24:49 +0000 (15:24 +0100)]
Change the prototype of copy data callbacks to add the source buffer

8 years agoMSG_comm_destroy should not assume that the task still exists
Christophe Thiéry [Fri, 13 Jan 2012 14:07:08 +0000 (15:07 +0100)]
MSG_comm_destroy should not assume that the task still exists

task->isused is reset when a comm finishes.
It's just MSG_comm_waitany who forgot to do it.

8 years agoMerge branch 'MC_LTL'
Marion Guthmuller [Fri, 13 Jan 2012 15:35:46 +0000 (16:35 +0100)]
Merge branch 'MC_LTL'

8 years agomodel-checker : new function MC_diff to display all informations about a system state
Marion Guthmuller [Fri, 13 Jan 2012 15:33:04 +0000 (16:33 +0100)]
model-checker : new function MC_diff to display all informations about a system state

8 years agomodel-checker : break forgotten in switch
Marion Guthmuller [Fri, 13 Jan 2012 15:29:52 +0000 (16:29 +0100)]
model-checker : break forgotten in switch

8 years agoMerge branch 'MC_LTL'
Martin Quinson [Fri, 13 Jan 2012 14:13:42 +0000 (15:13 +0100)]
Merge branch 'MC_LTL'

8 years agoPackage of simgrid.dll
unknown [Fri, 13 Jan 2012 13:32:59 +0000 (14:32 +0100)]
Package of simgrid.dll

8 years agoDeclare functions XBT_PUBLIC to export them.
unknown [Fri, 13 Jan 2012 13:31:40 +0000 (14:31 +0100)]
Declare functions XBT_PUBLIC to export them.

8 years agoAdd more debug messages and add flag _I_X86 on windows platform
unknown [Fri, 13 Jan 2012 10:35:29 +0000 (11:35 +0100)]
Add more debug messages and add flag _I_X86 on windows platform

8 years agoThe function is not implemented so put a THROW_UNIMPLEMENTED
unknown [Fri, 13 Jan 2012 10:30:03 +0000 (11:30 +0100)]
The function is not implemented so put a THROW_UNIMPLEMENTED

8 years agoAdd a dll for simgrid and protect DLL_EXPORT and DLL_IMPORT from multiple definition
unknown [Thu, 12 Jan 2012 16:24:58 +0000 (17:24 +0100)]
Add a dll for simgrid and protect DLL_EXPORT and DLL_IMPORT from multiple definition

8 years agoLua: only keep tracks of tables coming from maestro
Christophe Thiéry [Thu, 12 Jan 2012 15:51:40 +0000 (16:51 +0100)]
Lua: only keep tracks of tables coming from maestro

8 years agoFix a variable name
Christophe Thiéry [Thu, 12 Jan 2012 15:51:02 +0000 (16:51 +0100)]
Fix a variable name

8 years agoSplit simgrid_lua.c in one source file per module
Christophe Thiéry [Thu, 12 Jan 2012 10:45:10 +0000 (11:45 +0100)]
Split simgrid_lua.c in one source file per module

8 years agomodel-checker : add informations when log debug enabled
Marion Guthmuller [Thu, 12 Jan 2012 09:55:28 +0000 (10:55 +0100)]
model-checker : add informations when log debug enabled

8 years agoAdd binaries and various files to .gitignore
Christophe Thiéry [Thu, 12 Jan 2012 09:28:04 +0000 (10:28 +0100)]
Add binaries and various files to .gitignore

8 years agoAdd comments to the Lua task copy callback
Christophe Thiéry [Thu, 12 Jan 2012 09:23:01 +0000 (10:23 +0100)]
Add comments to the Lua task copy callback

8 years agoMSG: register a SIMIX copy data callback only if necessary
Christophe Thiéry [Thu, 12 Jan 2012 09:14:08 +0000 (10:14 +0100)]
MSG: register a SIMIX copy data callback only if necessary

8 years agomodel-checker : prototypes of static functions moved
Marion Guthmuller [Thu, 12 Jan 2012 08:50:44 +0000 (09:50 +0100)]
model-checker : prototypes of static functions moved

8 years agomodel-checker : prototypes of unused functions removed
Marion Guthmuller [Thu, 12 Jan 2012 08:41:14 +0000 (09:41 +0100)]
model-checker : prototypes of unused functions removed

8 years agomodel-checker : %zu instead of %Zu in printf
Marion Guthmuller [Thu, 12 Jan 2012 08:23:43 +0000 (09:23 +0100)]
model-checker : %zu instead of %Zu in printf

8 years agomerge conflicts resolved
Marion Guthmuller [Wed, 11 Jan 2012 15:26:44 +0000 (16:26 +0100)]
merge conflicts resolved

8 years agomodel-checker : more informations if log enabled for mc_liveness
Marion Guthmuller [Wed, 11 Jan 2012 14:09:25 +0000 (15:09 +0100)]
model-checker : more informations if log enabled for mc_liveness

8 years agomodel-checker : add example centralized_liveness in CMakeLists.txt
Marion Guthmuller [Wed, 11 Jan 2012 14:08:02 +0000 (15:08 +0100)]
model-checker : add example centralized_liveness in CMakeLists.txt

8 years agomodel-checker : new example for liveness properties
Marion Guthmuller [Wed, 11 Jan 2012 14:05:57 +0000 (15:05 +0100)]
model-checker : new example for liveness properties

8 years agoLua: copy the Lua task right after the C task using an MSG callback
Christophe Thiéry [Wed, 11 Jan 2012 12:15:51 +0000 (13:15 +0100)]
Lua: copy the Lua task right after the C task using an MSG callback

Copying the task when the receiver wakes up was too late since the
sender process might already be freed.

8 years agoMSG: add a function to register a task copy callback
Christophe Thiéry [Wed, 11 Jan 2012 12:15:04 +0000 (13:15 +0100)]
MSG: add a function to register a task copy callback

8 years agoRemove declaration of unexisting functions
Christophe Thiéry [Wed, 11 Jan 2012 12:11:53 +0000 (13:11 +0100)]
Remove declaration of unexisting functions

8 years agoThe timings of these tests have changed since crosstraffic is enabled
Christophe Thiéry [Wed, 11 Jan 2012 11:57:28 +0000 (12:57 +0100)]
The timings of these tests have changed since crosstraffic is enabled

8 years agoDownload doc with wget on windows and add a target for nsis.
unknown [Wed, 11 Jan 2012 12:20:48 +0000 (13:20 +0100)]
Download doc with wget on windows and add a target for nsis.

8 years agoAdd missing headers to simgrid install for windows
unknown [Wed, 11 Jan 2012 10:06:44 +0000 (11:06 +0100)]
Add missing headers to simgrid install for windows

8 years agoNew logo for installer.
unknown [Wed, 11 Jan 2012 09:43:47 +0000 (10:43 +0100)]
New logo for installer.

8 years agoreturn 0 instead of die.
unknown [Tue, 10 Jan 2012 21:42:29 +0000 (22:42 +0100)]
return 0 instead of die.

8 years agoOn windows pthread_atfork is not implemented
unknown [Tue, 10 Jan 2012 21:38:11 +0000 (22:38 +0100)]
On windows pthread_atfork is not implemented

8 years agoMake Hello World example works with mingw
unknown [Tue, 10 Jan 2012 21:37:49 +0000 (22:37 +0100)]
Make Hello World example works with mingw

8 years agoUpdate nsis script.
unknown [Tue, 10 Jan 2012 21:16:32 +0000 (22:16 +0100)]
Update nsis script.
Update version of pcre lib.

8 years agoDon't compile those examples on Win
unknown [Tue, 10 Jan 2012 20:42:10 +0000 (21:42 +0100)]
Don't compile those examples on Win

8 years agoUpdate README from HelloWorld.
unknown [Tue, 10 Jan 2012 17:46:28 +0000 (18:46 +0100)]
Update README from HelloWorld.
Replace gmake by mingw32-make

8 years agoUpdate doc for MinGW
unknown [Tue, 10 Jan 2012 17:38:00 +0000 (18:38 +0100)]
Update doc for MinGW

8 years agosleep doesn't exist on windows.
unknown [Tue, 10 Jan 2012 17:37:40 +0000 (18:37 +0100)]
sleep doesn't exist on windows.

8 years agoCosmetics and replace some deprecated function 'exec_program' for 'execute_process'.
unknown [Tue, 10 Jan 2012 17:14:29 +0000 (18:14 +0100)]
Cosmetics and replace some deprecated function 'exec_program' for 'execute_process'.
Remove unused part for windows.

8 years agoMake Simgrid compile with MinGW and gcc4.6
unknown [Tue, 10 Jan 2012 17:05:36 +0000 (18:05 +0100)]
Make Simgrid compile with MinGW and gcc4.6
Need new flags.
For now on gcc 64bits it fails so we must use gcc 32bits on 64platforms.

8 years agoRemove unused part.
unknown [Tue, 10 Jan 2012 17:03:57 +0000 (18:03 +0100)]
Remove unused part.

8 years agoOnly use MinGW compilator
unknown [Tue, 10 Jan 2012 14:27:38 +0000 (15:27 +0100)]
Only use MinGW compilator

8 years agoMake those programs succed on windows.
unknown [Tue, 10 Jan 2012 14:27:15 +0000 (15:27 +0100)]
Make those programs succed on windows.

8 years agoFix other "missing prototype" errors.
Arnaud Giersch [Tue, 10 Jan 2012 13:22:58 +0000 (14:22 +0100)]
Fix other "missing prototype" errors.

8 years agomodel-checker : bugged2_liveness with promela of LTL properties checked
Marion Guthmuller [Tue, 10 Jan 2012 12:37:17 +0000 (13:37 +0100)]
model-checker : bugged2_liveness with promela of LTL properties checked

8 years agoFix test, and remove duplicated checks.
Arnaud Giersch [Thu, 5 Jan 2012 15:51:34 +0000 (16:51 +0100)]
Fix test, and remove duplicated checks.

8 years agoFix error: passing argument 7 of ‘SIMIX_req_comm_isend’ from incompatible pointer...
Arnaud Giersch [Mon, 9 Jan 2012 13:48:25 +0000 (14:48 +0100)]
Fix error: passing argument 7 of ‘SIMIX_req_comm_isend’ from incompatible pointer type.

Note: casting non-compatible pointers to functions results in undefined behavior.

8 years agoFix error: passing argument 3 of ‘xbt_dict_set’ discards ‘const’ qualifier from point...
Arnaud Giersch [Mon, 9 Jan 2012 13:42:15 +0000 (14:42 +0100)]
Fix error: passing argument 3 of ‘xbt_dict_set’ discards ‘const’ qualifier from pointer target type.

8 years agoFix compilation errors about "enumeration value not handled in switch".
Arnaud Giersch [Mon, 9 Jan 2012 13:36:47 +0000 (14:36 +0100)]
Fix compilation errors about "enumeration value not handled in switch".

8 years agoAdd missing declaration.
Arnaud Giersch [Tue, 10 Jan 2012 12:23:00 +0000 (13:23 +0100)]
Add missing declaration.

8 years agomodel-checker : new LTL property for bugged2_liveness example
Marion Guthmuller [Tue, 10 Jan 2012 12:07:48 +0000 (13:07 +0100)]
model-checker : new LTL property for bugged2_liveness example

8 years agoFix format.
Arnaud Giersch [Tue, 10 Jan 2012 12:06:03 +0000 (13:06 +0100)]
Fix format.

8 years agoDon't use printf modifier %Z. Use %z instead.
Arnaud Giersch [Tue, 10 Jan 2012 11:04:32 +0000 (12:04 +0100)]
Don't use printf modifier %Z.  Use %z instead.

8 years agomodel-checker : add comments for the example bugged2_liveness
Marion Guthmuller [Mon, 9 Jan 2012 20:59:31 +0000 (21:59 +0100)]
model-checker : add comments for the example bugged2_liveness

8 years agomodel-checker : new examples for verification of liveness properties
Marion Guthmuller [Mon, 9 Jan 2012 20:52:59 +0000 (21:52 +0100)]
model-checker : new examples for verification of liveness properties

8 years agogive the localisation of parse errors more accurately
Martin Quinson [Mon, 9 Jan 2012 17:17:37 +0000 (18:17 +0100)]
give the localisation of parse errors more accurately

8 years agoMerge branches 'MC_LTL' and 'MC_LTL' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Mon, 9 Jan 2012 17:16:57 +0000 (18:16 +0100)]
Merge branches 'MC_LTL' and 'MC_LTL' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid

8 years agomake sure that we won't survive a parser error in the deployment file
Martin Quinson [Mon, 9 Jan 2012 15:48:39 +0000 (16:48 +0100)]
make sure that we won't survive a parser error in the deployment file

8 years agomake it compile with -Werror by forcing a type casting
Martin Quinson [Mon, 9 Jan 2012 15:18:59 +0000 (16:18 +0100)]
make it compile with -Werror by forcing a type casting

8 years agoMerge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Mon, 9 Jan 2012 15:11:11 +0000 (16:11 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid

8 years agoimprove doc of multicore in FAQ
Martin Quinson [Mon, 9 Jan 2012 15:10:18 +0000 (16:10 +0100)]
improve doc of multicore in FAQ

8 years agoRemove test masterslave-cpu_ti-no-crosstraffic because it is close to simple masterslave
Navarrop [Mon, 9 Jan 2012 14:58:29 +0000 (15:58 +0100)]
Remove test masterslave-cpu_ti-no-crosstraffic because it is close to simple masterslave

8 years agoUpdate option page: Write that crosstraffic is enable by default.
Navarrop [Mon, 9 Jan 2012 13:58:46 +0000 (14:58 +0100)]
Update option page: Write that crosstraffic is enable by default.

8 years agoAdd the faq to documentation because it is under version control
Navarrop [Mon, 9 Jan 2012 13:57:57 +0000 (14:57 +0100)]
Add the faq to documentation because it is under version control

8 years agoRename old tesh with no-crosstraffic and new like old name because crosstraffic is...
Navarrop [Mon, 9 Jan 2012 11:37:11 +0000 (12:37 +0100)]
Rename old tesh with no-crosstraffic and new like old name because crosstraffic is enable by default.

8 years agocosmetics in the ChangeLog
Martin Quinson [Mon, 9 Jan 2012 10:27:20 +0000 (11:27 +0100)]
cosmetics in the ChangeLog

8 years ago[trace] valgrind's memcheck to wipe out memory leaks from the tracing system
Lucas Schnorr [Sun, 8 Jan 2012 01:19:39 +0000 (02:19 +0100)]
[trace] valgrind's memcheck to wipe out memory leaks from the tracing system

and some simplifications in tracing resource utilization

8 years agoFix the order of contraints changed by previous commits:
Arnaud Giersch [Fri, 9 Dec 2011 15:45:14 +0000 (16:45 +0100)]
Fix the order of contraints changed by previous commits:

7591b36 Reduce the number of calls to lmm_update_modified_set.
c44aefe In lmm_update_modified_set, don't visit variables twice.

8 years agoIn lmm_update_modified_set, don't visit variables twice.
Arnaud Giersch [Fri, 9 Dec 2011 15:45:13 +0000 (16:45 +0100)]
In lmm_update_modified_set, don't visit variables twice.

Note: the constraints may be ordered differently in
modified_constraint_set, and the timings may vary a bit.
If it is really important, the following patch fixes that:

--- a/src/surf/maxmin.c
+++ b/src/surf/maxmin.c
@@ -790,10 +790,8 @@ static void lmm_update_modified_set_rec(lmm_system_t sys,
     lmm_variable_t var = elem->variable;
     s_lmm_element_t *cnsts = var->cnsts;
     int i;
-    if (var->visited == sys->visited_counter)
-      continue;
-    var->visited = sys->visited_counter;
-    for (i = 0; i < var->cnsts_number; i++) {
+    for (i = 0; var->visited != sys->visited_counter
+                && i < var->cnsts_number ; i++) {
       if (cnsts[i].constraint != cnst
           && !xbt_swag_belongs(cnsts[i].constraint,
                                &sys->modified_constraint_set)) {
@@ -801,6 +799,7 @@ static void lmm_update_modified_set_rec(lmm_system_t sys,
         lmm_update_modified_set_rec(sys, cnsts[i].constraint);
       }
     }
+    var->visited = sys->visited_counter;
   }
 }

8 years agoTry hard to optimize lmm_update_modified_set.
Arnaud Giersch [Fri, 9 Dec 2011 15:45:12 +0000 (16:45 +0100)]
Try hard to optimize lmm_update_modified_set.

* move tests for final case before calling the recursive function
* try to help the compiler inliner/optimizer by putting accesses to
  modified_constraint_set together

8 years agoThe variable-constraint graph is already traversed, and there is no
Navarrop [Fri, 6 Jan 2012 15:01:33 +0000 (16:01 +0100)]
The variable-constraint graph is already traversed, and there is no
need to call lmm_update_modified_set for each constraint of a variable.

Note: the fix in lmm_update_variable_weight may change the order of the
elements in modified_constraint_set, and some timings may slightly vary.
If it is really important, the following patch fixes that:

--- a/src/surf/maxmin.c
+++ b/src/surf/maxmin.c
@@ -716,13 +716,13 @@ void lmm_update_variable_weight(lmm_system_t sys, lmm_variable_t var,
       xbt_swag_insert_at_head(elem, &(elem->constraint->element_set));
     else
       xbt_swag_insert_at_tail(elem, &(elem->constraint->element_set));
+
+    if (i == 0)
+      lmm_update_modified_set(sys, elem->constraint);
   }
   if (!weight)
     var->value = 0.0;

-  if (var->cnsts_number)
-    lmm_update_modified_set(sys, var->cnsts[0].constraint);
-
   XBT_OUT();
 }

8 years agoEnsure that all constraints are put in modified_constraint_set on lmm_expand.
Arnaud Giersch [Fri, 9 Dec 2011 15:45:10 +0000 (16:45 +0100)]
Ensure that all constraints are put in modified_constraint_set on lmm_expand.

Without this change, if cnst was previously marked as modified, the constraints
involving var were not considered.

8 years agoRemove constraint from modified_constraint_set, when made inactive.
Arnaud Giersch [Fri, 9 Dec 2011 15:45:09 +0000 (16:45 +0100)]
Remove constraint from modified_constraint_set, when made inactive.

8 years agoRewrite script for update tesh file.
Navarrop [Fri, 6 Jan 2012 14:14:07 +0000 (15:14 +0100)]
Rewrite script for update tesh file.

8 years agoKeep iwannadie set instead of lying to the context factory
Christophe Thiéry [Fri, 6 Jan 2012 14:29:17 +0000 (15:29 +0100)]
Keep iwannadie set instead of lying to the context factory

8 years agoMerge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid
Christophe Thiéry [Fri, 6 Jan 2012 14:27:35 +0000 (15:27 +0100)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid

8 years agoSIMIX: when a process is killed, remove its blocking comm from the list
Christophe Thiéry [Fri, 6 Jan 2012 14:27:04 +0000 (15:27 +0100)]
SIMIX: when a process is killed, remove its blocking comm from the list

8 years agoMSG: don't keep pointers to a structure freed
Christophe Thiéry [Fri, 6 Jan 2012 14:26:26 +0000 (15:26 +0100)]
MSG: don't keep pointers to a structure freed

8 years agoAdd some tests for crosstraffic = 1.
Navarrop [Fri, 6 Jan 2012 14:08:43 +0000 (15:08 +0100)]
Add some tests for crosstraffic = 1.
Set crosstraffic = 1 with default workstation model.
Update tesh.

8 years agoMerge branch 'smpi'
Christophe Thiéry [Fri, 6 Jan 2012 09:26:02 +0000 (10:26 +0100)]
Merge branch 'smpi'

8 years agoclean_fun is the function that frees the userdata of a detached send
Christophe Thiéry [Thu, 5 Jan 2012 18:30:23 +0000 (19:30 +0100)]
clean_fun is the function that frees the userdata of a detached send

8 years agoSMPI: don't finish immediately a dsend comm.
Christophe Thiéry [Thu, 5 Jan 2012 18:03:18 +0000 (19:03 +0100)]
SMPI: don't finish immediately a dsend comm.

Otherwise, the receiver would make invalid memory reads while matching
the comm. I'm not sure when the request can be freed, so for now,
dsends make a memory leaks. But smpi-reduce now works.

8 years agoSMPI: before terminating a process, wait for its asynchronous comms
Christophe Thiéry [Thu, 5 Jan 2012 17:10:46 +0000 (18:10 +0100)]
SMPI: before terminating a process, wait for its asynchronous comms

8 years agoWhen a process leaves, no one should ever finish a communication with it
Christophe Thiéry [Thu, 5 Jan 2012 17:01:13 +0000 (18:01 +0100)]
When a process leaves, no one should ever finish a communication with it

Its unstarted comms must never get matched in the future and its
started comms must be canceled, no matter if they are detached.

8 years agoExport SIMIX_rdv_remove and fix debug messages
Christophe Thiéry [Thu, 5 Jan 2012 16:59:36 +0000 (17:59 +0100)]
Export SIMIX_rdv_remove and fix debug messages

8 years ago-0.000000 is lower than 0.0. True story.
Christophe Thiéry [Thu, 5 Jan 2012 16:56:22 +0000 (17:56 +0100)]
-0.000000 is lower than 0.0. True story.

8 years agomodel-checker : warnings fixed
Marion Guthmuller [Thu, 5 Jan 2012 13:44:51 +0000 (14:44 +0100)]
model-checker : warnings fixed

8 years agoSorry, for this stupid error
Navarrop [Thu, 5 Jan 2012 11:52:39 +0000 (12:52 +0100)]
Sorry, for this stupid error