colinsheppard / time

A NetLogo extension that brings date/time utilities and discrete event scheduling to NetLogo
12 stars 13 forks source link

Building in Netlogo 6.0.2 on Mac OSX #57

Closed plopezmp closed 6 years ago

plopezmp commented 6 years ago

Hi,

I have been trying to build the Makefile of the time extension in my system. I have written the Netlogo 6.0.2 path in the Makefile like this

/Applications/NetLogo\\ 6.0.2

but it does not work. The output of the building is long:

mkdir -p classes /usr/bin/javac -g -encoding us-ascii -source 1.8 -target 1.8 -classpath /Applications/NetLogo\\ 6.0.2/Java/netlogo-6.0.2.jar:joda-time-2.2.jar -d classes src/main/java/time/TimeEnums.java src/main/java/time/TimeExtension.java src/main/java/time/TimeUtils.java src/main/java/time/datatypes/LogoEvent.java src/main/java/time/datatypes/LogoEventComparator.java src/main/java/time/datatypes/LogoSchedule.java src/main/java/time/datatypes/LogoTime.java src/main/java/time/datatypes/LogoTimeComparator.java src/main/java/time/datatypes/LogoTimeSeries.java src/main/java/time/datatypes/TimeSeriesColumn.java src/main/java/time/datatypes/TimeSeriesRecord.java src/main/java/time/primitives/DiscreteEventSchedulerPrimitives.java src/main/java/time/primitives/TimePrimitives.java src/main/java/time/primitives/TimeSeriesPrimitives.java src/main/java/time/TimeExtension.java:8: error: package org.nlogo.api does not exist import org.nlogo.api.Context; ^ src/main/java/time/TimeExtension.java:10: error: package org.nlogo.api does not exist public class TimeExtension extends org.nlogo.api.DefaultClassManager { ^ src/main/java/time/datatypes/LogoSchedule.java:6: error: package org.nlogo.agent does not exist import org.nlogo.agent.Agent; ^ src/main/java/time/datatypes/LogoSchedule.java:7: error: package org.nlogo.agent does not exist import org.nlogo.agent.AgentIterator; ^ src/main/java/time/datatypes/LogoSchedule.java:8: error: package org.nlogo.agent does not exist import org.nlogo.agent.ArrayAgentSet; ^ src/main/java/time/datatypes/LogoSchedule.java:9: error: package org.nlogo.agent does not exist import org.nlogo.agent.TickCounter; ^ src/main/java/time/datatypes/LogoSchedule.java:10: error: package org.nlogo.agent does not exist import org.nlogo.agent.TreeAgentSet; ^ src/main/java/time/datatypes/LogoSchedule.java:11: error: package org.nlogo.agent does not exist import org.nlogo.agent.World; ^ src/main/java/time/datatypes/LogoSchedule.java:12: error: package org.nlogo.agent does not exist import org.nlogo.agent.AgentSet; ^ src/main/java/time/datatypes/LogoSchedule.java:13: error: package org.nlogo.nvm does not exist import org.nlogo.nvm.AnonymousCommand; ^ src/main/java/time/datatypes/LogoSchedule.java:14: error: package org.nlogo.api does not exist import org.nlogo.api.AnonymousProcedure; ^ src/main/java/time/datatypes/LogoSchedule.java:15: error: package org.nlogo.api does not exist import org.nlogo.api.Argument; ^ src/main/java/time/datatypes/LogoSchedule.java:16: error: package org.nlogo.api does not exist import org.nlogo.api.Context; ^ src/main/java/time/datatypes/LogoSchedule.java:17: error: package org.nlogo.api does not exist import org.nlogo.api.ExtensionException; ^ src/main/java/time/datatypes/LogoSchedule.java:18: error: package org.nlogo.api does not exist import org.nlogo.api.LogoException; ^ src/main/java/time/datatypes/LogoSchedule.java:19: error: package org.nlogo.core does not exist import org.nlogo.core.AgentKindJ; ^ src/main/java/time/datatypes/LogoSchedule.java:20: error: package org.nlogo.core does not exist import org.nlogo.core.ExtensionObject; ^ src/main/java/time/datatypes/LogoSchedule.java:21: error: package org.nlogo.core does not exist import org.nlogo.core.LogoList; ^ src/main/java/time/datatypes/LogoSchedule.java:22: error: package org.nlogo.nvm does not exist import org.nlogo.nvm.ExtensionContext; ^ src/main/java/time/datatypes/LogoSchedule.java:29: error: cannot find symbol public class LogoSchedule implements ExtensionObject{ ^ symbol: class ExtensionObject src/main/java/time/TimeExtension.java:19: error: cannot find symbol public static Context context; ^ symbol: class Context location: class TimeExtension src/main/java/time/TimeExtension.java:23: error: package org.nlogo.api does not exist public void load(org.nlogo.api.PrimitiveManager primManager) { ^ src/main/java/time/datatypes/LogoEvent.java:2: error: package org.nlogo.api does not exist import org.nlogo.api.Agent; ^ src/main/java/time/datatypes/LogoEvent.java:3: error: package org.nlogo.agent does not exist import org.nlogo.agent.AgentSet; ^ src/main/java/time/datatypes/LogoEvent.java:4: error: package org.nlogo.nvm does not exist import org.nlogo.nvm.AnonymousCommand; ^ src/main/java/time/datatypes/LogoEvent.java:5: error: package org.nlogo.api does not exist import org.nlogo.api.ExtensionException; ^ src/main/java/time/datatypes/LogoEvent.java:6: error: package org.nlogo.core does not exist import org.nlogo.core.ExtensionObject; ^ src/main/java/time/datatypes/LogoEvent.java:12: error: cannot find symbol public class LogoEvent implements ExtensionObject{ ^ symbol: class ExtensionObject src/main/java/time/datatypes/LogoSchedule.java:32: error: cannot find symbol TickCounter tickCounter = null; ^ symbol: class TickCounter location: class LogoSchedule src/main/java/time/datatypes/LogoTime.java:14: error: package org.nlogo.agent does not exist import org.nlogo.agent.World; ^ src/main/java/time/datatypes/LogoTime.java:15: error: package org.nlogo.api does not exist import org.nlogo.api.ExtensionException; ^ src/main/java/time/datatypes/LogoTime.java:16: error: package org.nlogo.core does not exist import org.nlogo.core.ExtensionObject; ^ src/main/java/time/datatypes/LogoTime.java:22: error: cannot find symbol public class LogoTime implements ExtensionObject{ ^ symbol: class ExtensionObject src/main/java/time/datatypes/LogoSchedule.java:56: error: cannot find symbol public Double timeToTick(LogoTime time) throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:60: error: cannot find symbol public void addEvent(Argument args[], Context context, AddType addType) throws ExtensionException, LogoException { ^ symbol: class Argument location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:60: error: cannot find symbol public void addEvent(Argument args[], Context context, AddType addType) throws ExtensionException, LogoException { ^ symbol: class Context location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:60: error: cannot find symbol public void addEvent(Argument args[], Context context, AddType addType) throws ExtensionException, LogoException {                                                                               ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:60: error: cannot find symbol public void addEvent(Argument args[], Context context, AddType addType) throws ExtensionException, LogoException {                                                                                                   ^ symbol: class LogoException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:129: error: cannot find symbol TickCounter getTickCounter() throws ExtensionException{ ^ symbol: class TickCounter location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:129: error: cannot find symbol TickCounter getTickCounter() throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:133: error: cannot find symbol TickCounter getTickCounter(ExtensionContext context){ ^ symbol: class ExtensionContext location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:133: error: cannot find symbol TickCounter getTickCounter(ExtensionContext context){ ^ symbol: class TickCounter location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:139: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context) throws ExtensionException, LogoException { ^ symbol: class Argument location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:139: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context) throws ExtensionException, LogoException { ^ symbol: class Context location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:139: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context) throws ExtensionException, LogoException {                                                                           ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:139: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context) throws ExtensionException, LogoException {                                                                                               ^ symbol: class LogoException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:142: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, LogoTime untilTime) throws ExtensionException, LogoException { ^ symbol: class Argument location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:142: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, LogoTime untilTime) throws ExtensionException, LogoException { ^ symbol: class Context location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:142: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, LogoTime untilTime) throws ExtensionException, LogoException {                                                                                               ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:142: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, LogoTime untilTime) throws ExtensionException, LogoException {                                                                                                                   ^ symbol: class LogoException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:148: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, Double untilTick) throws ExtensionException, LogoException { ^ symbol: class Argument location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:148: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, Double untilTick) throws ExtensionException, LogoException { ^ symbol: class Context location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:148: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, Double untilTick) throws ExtensionException, LogoException {                                                                                             ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:148: error: cannot find symbol public void performScheduledTasks(Argument args[], Context context, Double untilTick) throws ExtensionException, LogoException {                                                                                                                 ^ symbol: class LogoException location: class LogoSchedule src/main/java/time/datatypes/LogoSchedule.java:198: error: cannot find symbol public LogoTime getCurrentTime() throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoSchedule src/main/java/time/datatypes/LogoEvent.java:15: error: cannot find symbol public AnonymousCommand task = null; ^ symbol: class AnonymousCommand location: class LogoEvent src/main/java/time/datatypes/LogoEvent.java:16: error: cannot find symbol public AgentSet agents = null; ^ symbol: class AgentSet location: class LogoEvent src/main/java/time/datatypes/LogoEvent.java:21: error: package org.nlogo.agent does not exist LogoEvent(org.nlogo.agent.AgentSet agents, AnonymousCommand task, Double tick, Double repeatInterval, PeriodType repeatIntervalPeriodType, Boolean shuffleAgentSet) { ^ src/main/java/time/datatypes/LogoEvent.java:21: error: cannot find symbol LogoEvent(org.nlogo.agent.AgentSet agents, AnonymousCommand task, Double tick, Double repeatInterval, PeriodType repeatIntervalPeriodType, Boolean shuffleAgentSet) { ^ symbol: class AnonymousCommand location: class LogoEvent src/main/java/time/datatypes/LogoEvent.java:31: error: cannot find symbol public void replaceData(Agent agent, AnonymousCommand task, Double tick) { ^ symbol: class Agent location: class LogoEvent src/main/java/time/datatypes/LogoEvent.java:31: error: cannot find symbol public void replaceData(Agent agent, AnonymousCommand task, Double tick) { ^ symbol: class AnonymousCommand location: class LogoEvent src/main/java/time/datatypes/LogoEvent.java:40: error: cannot find symbol public Boolean reschedule(LogoSchedule callingSchedule) throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoEvent src/main/java/time/datatypes/LogoTime.java:35: error: cannot find symbol private World world; ^ symbol: class World location: class LogoTime src/main/java/time/datatypes/LogoTime.java:37: error: cannot find symbol public LogoTime(LogoTime time) throws ExtensionException { ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:55: error: cannot find symbol public LogoTime(String dateString) throws ExtensionException { ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:58: error: cannot find symbol public LogoTime(String dateString, String customFormat) throws ExtensionException { ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:181: error: cannot find symbol String parseDateString(String dateString) throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:237: error: cannot find symbol public void setAnchor(Double tickCount, PeriodType tickType, World world) throws ExtensionException{ ^ symbol: class World location: class LogoTime src/main/java/time/datatypes/LogoTime.java:237: error: cannot find symbol public void setAnchor(Double tickCount, PeriodType tickType, World world) throws ExtensionException{                                                                                 ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:275: error: cannot find symbol public void updateFromTick() throws ExtensionException { ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:310: error: cannot find symbol public Integer get(PeriodType periodType) throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:450: error: cannot find symbol public LogoTime plus(PeriodType pType, Double durVal) throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:461: error: cannot find symbol public LogoTime plus(Object refTime, PeriodType pType, Double durVal) throws ExtensionException{                                                                             ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:510: error: cannot find symbol public boolean isBefore(LogoTime timeB)throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:522: error: cannot find symbol public boolean isEqual(LogoTime timeB)throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:534: error: cannot find symbol public boolean isBetween(LogoTime timeA, LogoTime timeB)throws ExtensionException{ ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/datatypes/LogoTime.java:552: error: cannot find symbol public Double getDifferenceBetween(PeriodType pType, LogoTime endTime)throws ExtensionException{                                                                             ^ symbol: class ExtensionException location: class LogoTime src/main/java/time/TimeUtils.java:11: error: package org.nlogo.api does not exist import org.nlogo.api.Argument; ^ src/main/java/time/TimeUtils.java:12: error: package org.nlogo.api does not exist import org.nlogo.api.Context; ^ src/main/java/time/TimeUtils.java:13: error: package org.nlogo.api does not exist import org.nlogo.api.Dump; ^ src/main/java/time/TimeUtils.java:14: error: package org.nlogo.api does not exist import org.nlogo.api.ExtensionException; ^ src/main/java/time/TimeUtils.java:15: error: package org.nlogo.api does not exist import org.nlogo.api.LogoException; ^ src/main/java/time/TimeUtils.java:16: error: package org.nlogo.api does not exist import org.nlogo.api.OutputDestination; ^ src/main/java/time/TimeUtils.java:17: error: package org.nlogo.api does not exist import org.nlogo.api.OutputDestinationJ; ^ src/main/java/time/TimeUtils.java:18: error: package org.nlogo.core does not exist import org.nlogo.core.LogoList; ^ src/main/java/time/TimeUtils.java:19: error: package org.nlogo.nvm does not exist import org.nlogo.nvm.ExtensionContext; ^ src/main/java/time/TimeUtils.java:20: error: package org.nlogo.window does not exist import org.nlogo.window.OutputArea; ^ src/main/java/time/TimeUtils.java:35: error: cannot find symbol public static PeriodType stringToPeriodType(String sType) throws ExtensionException{ ^ symbol: class ExtensionException location: class TimeUtils src/main/java/time/TimeUtils.java:62: error: cannot find symbol public static LogoTime getTimeFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException { ^ symbol: class Argument location: class TimeUtils src/main/java/time/TimeUtils.java:62: error: cannot find symbol public static LogoTime getTimeFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                     ^ symbol: class ExtensionException location: class TimeUtils src/main/java/time/TimeUtils.java:62: error: cannot find symbol public static LogoTime getTimeFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                                         ^ symbol: class LogoException location: class TimeUtils src/main/java/time/TimeUtils.java:75: error: cannot find symbol public static Double getDoubleFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException { ^ symbol: class Argument location: class TimeUtils src/main/java/time/TimeUtils.java:75: error: cannot find symbol public static Double getDoubleFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                     ^ symbol: class ExtensionException location: class TimeUtils src/main/java/time/TimeUtils.java:75: error: cannot find symbol public static Double getDoubleFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                                         ^ symbol: class LogoException location: class TimeUtils src/main/java/time/TimeUtils.java:82: error: cannot find symbol public static LogoList getListFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException { ^ symbol: class Argument location: class TimeUtils src/main/java/time/TimeUtils.java:82: error: cannot find symbol public static LogoList getListFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException { ^ symbol: class LogoList location: class TimeUtils src/main/java/time/TimeUtils.java:82: error: cannot find symbol public static LogoList getListFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                     ^ symbol: class ExtensionException location: class TimeUtils src/main/java/time/TimeUtils.java:82: error: cannot find symbol public static LogoList getListFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                                         ^ symbol: class LogoException location: class TimeUtils src/main/java/time/TimeUtils.java:89: error: cannot find symbol public static Integer getIntFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException { ^ symbol: class Argument location: class TimeUtils src/main/java/time/TimeUtils.java:89: error: cannot find symbol public static Integer getIntFromArgument(Argument args[], Integer argIndex) throws ExtensionException, LogoException {                                                                                   ^ symbol: class ExtensionException location: class TimeUtils 100 errors make: *** [time.jar] Error 1

Can you help me to have the time extension working in my computer. Thank you very much

plopezmp commented 6 years ago

testing with

ifeq ($(origin JAVA_HOME), undefined) JAVA_HOME=/usr endif

ifeq ($(origin NETLOGO), undefined) NETLOGO=/Applications/NetLogo\\ 6.0.2 endif

ifneq (,$(findstring CYGWIN,$(shell uname -s))) COLON=\; JAVA_HOME := cygpath -up "$(JAVA_HOME)" else COLON=: endif

SRCS=$(wildcard src/main/java/time/.java src/main/java/time//*.java)

time.jar time.jar.pack.gz: $(SRCS) manifest.txt mkdir -p classes $(JAVA_HOME)/bin/javac -g -encoding us-ascii -source 1.8 -target 1.8 -classpath $(NETLOGO)/Java/netlogo-6.0.2.jar:joda-time-2.2.jar -d classes $(SRCS) jar cmf manifest.txt time.jar -C classes . pack200 --modification-time=latest --effort=9 --strip-debug --no-keep-file-order --unknown-attribute=strip time.jar.pack.gz time.jar

time.zip: time.jar rm -rf time mkdir time cp -rp time.jar time.jar.pack.gz README.md Makefile src manifest.txt time zip -rv time time rm -rf time

works fine

Thank you

plopezmp commented 6 years ago

I have build the extension but it gives me errors when executing code:

extensions [time]

globals[dt] to setup clear-all set dt time:create "2000/01/01 10:00" end

to go create-turtles 5

time:schedule-event turtles ([ [] -> fd 10]) 100 time:schedule-event (turtle 1) ([ [] -> fd 3]) 50 time:go end

the error message is:

java.lang.IllegalAccessError: tried to access field org.nlogo.agent.World.tickCounter from class time.datatypes.LogoSchedule at time.datatypes.LogoSchedule.getTickCounter(LogoSchedule.java:135) at time.datatypes.LogoSchedule.performScheduledTasks(LogoSchedule.java:156) at time.datatypes.LogoSchedule.performScheduledTasks(LogoSchedule.java:140) at time.primitives.DiscreteEventSchedulerPrimitives$Go.perform(DiscreteEventSchedulerPrimitives.java:78) at org.nlogo.prim._extern.perform(_extern.java:36) at org.nlogo.nvm.Context.stepConcurrent(Context.java:107) at org.nlogo.nvm.ConcurrentJob.step(ConcurrentJob.scala:65) at org.nlogo.job.JobThread.runPrimaryJobs(JobThread.scala:133) at org.nlogo.job.JobThread.$anonfun$run$1(JobThread.scala:68) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) at scala.util.control.Exception$Catch.apply(Exception.scala:224) at org.nlogo.api.Exceptions$.handling(Exceptions.scala:41) at org.nlogo.job.JobThread.run(JobThread.scala:66)

NetLogo 6.0.2 main: org.nlogo.app.AppFrame thread: AWT-EventQueue-0 Java HotSpot(TM) 64-Bit Server VM 1.8.0_141 (Oracle Corporation; 1.8.0_141-b15) operating system: Mac OS X 10.11.6 (x86_64 processor) Scala version 2.12.2 JOGL: (3D View not initialized) OpenGL Graphics: (3D View not initialized) model: time-test

07:46:55.898 AddJobEvent (org.nlogo.app.common.CommandLine) AWT-EventQueue-0 07:46:55.897 OutputEvent (org.nlogo.app.common.CommandLine) AWT-EventQueue-0 07:46:55.897 CompiledEvent (org.nlogo.window.CompilerManager) AWT-EventQueue-0 07:46:55.880 CompileMoreSourceEvent (org.nlogo.app.common.CommandLine) AWT-EventQueue-0 07:46:55.849 PeriodicUpdateEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0 07:46:55.643 PeriodicUpdateEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0 07:46:55.439 PeriodicUpdateEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0 07:46:55.236 PeriodicUpdateEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0 07:46:55.034 PeriodicUpdateEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0 07:46:54.833 PeriodicUpdateEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0